Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
d2d6df6
Squashed 'lib/myxmlpp/' content from commit 84111ab
0xmemorygrinder Mar 11, 2022
9f4f95f
Merge commit 'd2d6df6c581d97c5a96024ae816c927b01d5e3ca' as 'lib/myxmlpp'
0xmemorygrinder Mar 11, 2022
9e35375
Merge pull request #2 from PolymorphEngine/feature/libXML
0xmemorygrinder Mar 11, 2022
8c6f6e8
[add] _logFile implementation
0xSwapFeeder Mar 11, 2022
0140264
[add] _logFile implementation
0xSwapFeeder Mar 11, 2022
1d5c08e
[add] _consoleLog implementation
0xSwapFeeder Mar 11, 2022
e49a42c
[add] setLogDir && setLogInstance implementation
0xSwapFeeder Mar 11, 2022
170f907
[fix] members name
0xSwapFeeder Mar 11, 2022
6bd08fe
[add] console colorization based on severity
0xSwapFeeder Mar 11, 2022
5e50860
[fix] removed todo
0xSwapFeeder Mar 11, 2022
dcd5662
[add] documentation (and call to console log in Log
0xSwapFeeder Mar 11, 2022
e310b97
Merge pull request #3 from PolymorphEngine/feature/logger
0xSwapFeeder Mar 11, 2022
87e8931
[add] Definitions of the data initialization
0xSwapFeeder Mar 11, 2022
7017881
Squashed 'lib/myxmlpp/' changes from 84111ab..f67a2ae
0xmemorygrinder Mar 11, 2022
4d5dcfe
[add] some initalisation and exceptions implementation
0xSwapFeeder Mar 12, 2022
8367558
[del] remove unecessary file
0xmemorygrinder Mar 12, 2022
82d464e
[add] Scene/Entity and xml interfaces initialisation (still need XmlC…
0xSwapFeeder Mar 12, 2022
4b85dff
[add] XmlComponent initialisation
0xSwapFeeder Mar 12, 2022
d97c20e
[del] workspace .xml
0xmemorygrinder Mar 13, 2022
0fc5e9a
[add] test build target cmakelist
0xSwapFeeder Mar 14, 2022
c7d34c6
[rework && refactor] XmlComponent and template functions which needed…
0xSwapFeeder Mar 15, 2022
74415a7
[fix] Transform component SetSiblingIndex and RemoveChild
0xSwapFeeder Mar 15, 2022
018bab1
[add] SceneManager implementation
0xmemorygrinder Mar 15, 2022
a4136e6
[fix] doxyfile generation
0xmemorygrinder Mar 15, 2022
51b2946
[add] setParent with offset in TransformComponent
0xmemorygrinder Mar 15, 2022
0a0394a
Merge branch 'feature/dataInitialisation' into feature/sceneManager
0xmemorygrinder Mar 15, 2022
875d77c
[merge] necessary merging finalization
0xmemorygrinder Mar 15, 2022
f23d4eb
Merge branch 'feature/sceneManager' into feature/dataInitialisation
0xmemorygrinder Mar 15, 2022
0a03841
[add] PhysicsSettings initialization
0xmemorygrinder Mar 15, 2022
faee1ae
[add] AudioSettings initialization
0xmemorygrinder Mar 15, 2022
1e2f9a1
[add] prefab management
0xSwapFeeder Mar 16, 2022
230990c
[fix] prefabs error management
0xSwapFeeder Mar 16, 2022
a6ac8e7
[add] default component configs
0xSwapFeeder Mar 16, 2022
ccb9208
Merge remote-tracking branch 'PolymorphEngine/feature/dataInitialisat…
0xSwapFeeder Mar 16, 2022
bd2e25a
[add] VideoSettings
0xmemorygrinder Mar 16, 2022
b65c091
[fix] includes
0xSwapFeeder Mar 16, 2022
6c43cc2
[add] set/save methods on settings classes
0xmemorygrinder Mar 16, 2022
80ed30f
Merge pull request #5 from PolymorphEngine/feature/dataInitialisation
0xmemorygrinder Mar 16, 2022
abb1825
[refactor] re-documented XmlComponent and refactored
0xSwapFeeder Mar 16, 2022
e098425
[refactor] re-documented and refactored diretories : config/scene/ent…
0xSwapFeeder Mar 16, 2022
13bf44e
[refactor] refactored header files
0xmemorygrinder Mar 16, 2022
b6c627c
[refactor] cpp files
0xmemorygrinder Mar 16, 2022
2a05ce5
[refactor] renaming all pascal case methods
0xmemorygrinder Mar 16, 2022
ac27d96
Merge pull request #6 from PolymorphEngine/feature/refactoring
0xmemorygrinder Mar 16, 2022
7b24563
[add] getComponents method, Some usefull interfaces and reworked getC…
0xSwapFeeder Mar 17, 2022
b247ed8
[feature/getComponents] from feature/components/scriptsInterfaces
0xSwapFeeder Mar 17, 2022
7d65980
[add] first check collision and broadcasting collision event trough g…
0xSwapFeeder Mar 17, 2022
52713ac
[fix] includes
0xSwapFeeder Mar 17, 2022
e786f74
[add] some base documentation
0xSwapFeeder Mar 17, 2022
75a9165
[rework] collider2d update to make them independant
0xSwapFeeder Mar 18, 2022
344f914
[add] children managing
0xmemorygrinder Mar 18, 2022
15167ce
[add] start of collider system with rectangle && rectangle as well as…
0xtekgrinder Mar 18, 2022
f725773
[add] Reworked entity arrangement in scene
EnergyCube Mar 18, 2022
9379d68
[add] setAtIdx and setAtBack
Mar 18, 2022
b49d3b6
[fix] inverted delta
Mar 18, 2022
985b5ba
Merge pull request #8 from PolymorphEngine/feature/components/Transform
0xmemorygrinder Mar 18, 2022
34f8772
[add] ColliderCircle2d class
0xtekgrinder Mar 18, 2022
282a801
[add] time class to compute delta time
Mar 18, 2022
24e3b31
Merge remote-tracking branch 'PolymorphEngine/dev' into feature/compo…
0xSwapFeeder Mar 19, 2022
75d73a4
[merge] vector features and transform rework
0xSwapFeeder Mar 19, 2022
3c226a5
[add] Drawable Component class + SpriteRenderer Component + Some base…
0xSwapFeeder Mar 19, 2022
ed7eacd
Merge pull request #9 from PolymorphEngine/feature/time
0xmemorygrinder Mar 19, 2022
4c5a923
[add] static methods for loading properties XmlComponent
0xSwapFeeder Mar 19, 2022
719ccf6
[add] XmlComponent SetProperty from attribute directly
0xSwapFeeder Mar 19, 2022
692bc96
[add] Sprite object
0xSwapFeeder Mar 19, 2022
91b1587
[add] Ctor/Dtor static logic
0xSwapFeeder Mar 19, 2022
3f22d81
[add] Color class
0xSwapFeeder Mar 19, 2022
24d32c2
[fix] was passing shared_ptr to setProperty
0xSwapFeeder Mar 21, 2022
6c37637
[add] graphical API Text object
Mar 21, 2022
6e07a5e
[add] setProperty severity management (default : DEBUG)
0xSwapFeeder Mar 21, 2022
4870116
[add] SpriteRendererComponent Initializer and Display in Graphical API
0xSwapFeeder Mar 21, 2022
edb49cf
[fix] reworked Graphical API
0xSwapFeeder Mar 22, 2022
82d336a
[merge] feature/time into feature/components/Drawable
0xSwapFeeder Mar 22, 2022
a72f529
[re-updated] Vector function delta (formely named as distance)
0xSwapFeeder Mar 22, 2022
3f36b91
[merge] dev to feature/components/drawable
0xSwapFeeder Mar 22, 2022
ed0e0d2
[fix] Engine run (loop condition) && collider returning false checkCo…
0xSwapFeeder Mar 22, 2022
0f7b6bb
[fix] DynamicLoader && XmlComponent useless members
0xSwapFeeder Mar 22, 2022
bca7e78
Merge pull request #10 from PolymorphEngine/feature/components/Drawable
0xmemorygrinder Mar 22, 2022
db2115d
[add] ScriptingAPI && modified the fact that you couldn't load a comp…
0xSwapFeeder Mar 23, 2022
0b88199
[add] Engine loading rework (see test_main for an example)
0xSwapFeeder Mar 23, 2022
8a6bb7a
[fix] getType() for XmlComponent::Empty constant
0xSwapFeeder Mar 23, 2022
13d090b
[add] Input class (Empty)
0xSwapFeeder Mar 23, 2022
6ace99b
[fix && add] catch exceptions in Engine.loadScriptingApi() / fixed co…
0xSwapFeeder Mar 23, 2022
d98bfab
Merge pull request #11 from PolymorphEngine/feature/ScriptingAPI
0xmemorygrinder Mar 23, 2022
ab2882d
Merge branch 'dev' into feature/Input
0xSwapFeeder Mar 23, 2022
12afdd2
Squashed 'lib/myxmlpp/' changes from f67a2ae..bf9002a
Mar 23, 2022
ee53acc
[update] myxmlpp lib from repository
Mar 23, 2022
d2645e8
[add] Input
0xSwapFeeder Mar 23, 2022
13413d7
[fix] input mouse taking now an enum and added log to display module
0xSwapFeeder Mar 23, 2022
35fe0ba
Merge pull request #12 from PolymorphEngine/feature/Input
0xmemorygrinder Mar 23, 2022
fa5927f
[fix] cmake buiild properties for PolymorphEngine targets
Mar 23, 2022
870a45b
[fix] input mouse taking now an enum and added log to display module
0xSwapFeeder Mar 23, 2022
d9192ca
[fix] quitting method
0xSwapFeeder Mar 23, 2022
3921ad1
Merge remote-tracking branch 'PolymorphEngine/feature/QuittingApplica…
0xSwapFeeder Mar 23, 2022
c4fc1a7
Merge pull request #13 from PolymorphEngine/feature/cmakeRefactoring
0xmemorygrinder Mar 23, 2022
6012480
Merge pull request #14 from PolymorphEngine/feature/QuittingApplication
0xmemorygrinder Mar 23, 2022
6ede426
Merge branch 'dev' into feature/GraphicalAPI
0xSwapFeeder Mar 23, 2022
cd85065
[add] handlerPath getter
0xSwapFeeder Mar 23, 2022
a64d484
Merge branch 'dev' into feature/GraphicalAPI
0xSwapFeeder Mar 23, 2022
1ff220f
[add] throw when creating several GraphicalAPI objects
0xSwapFeeder Mar 23, 2022
98ef55a
Merge pull request #15 from PolymorphEngine/feature/GraphicalAPI
0xmemorygrinder Mar 23, 2022
c53b445
[refactor]
0xSwapFeeder Mar 24, 2022
9873801
[refactor] Engine error management
0xSwapFeeder Mar 24, 2022
567162e
[refactor] XmlComponent
Mar 24, 2022
ba741e6
Merge remote-tracking branch 'origin/feature/headersManagement' into …
Mar 24, 2022
69e424d
[add] ColliderRect2d and ColliderCircle2d with initializers
0xtekgrinder Mar 23, 2022
3905395
Merge branch 'feature/refactoringMerging' into feature/headersManagement
Mar 24, 2022
e86f98b
Merge pull request #17 from PolymorphEngine/feature/headersManagement
0xmemorygrinder Mar 24, 2022
f7fcf3e
[update] arcade interfaces
Mar 24, 2022
6cb9136
Merge pull request #18 from PolymorphEngine/feature/updateModule
0xmemorygrinder Mar 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .idea/PolymorphEngine.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

102 changes: 0 additions & 102 deletions .idea/workspace.xml

This file was deleted.

38 changes: 29 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,40 @@ project(Engine)
set(CMAKE_CXX_STANDARD 20)

include_directories(
lib/myxmlpp/include
include
include/Engine
include/Engine/component
include/Engine/entity
include/Engine/config
include/Engine/scene
include/Engine/Utilities
include/Engine/Utilities/Types
include/Core
include/Exceptions
include/Core/component
include/Core/component/builtins
include/Core/component/builtins/drawables
include/Core/component/builtins/colliders
include/Core/entity
include/Config
include/Core/scene
include/Core/settings
include/Utilities
include/Utilities/types
)

add_subdirectory(lib/myxmlpp)
set_target_properties(myxmlpp PROPERTIES POSITION_INDEPENDENT_CODE ON)

file(GLOB_RECURSE SRC src/*.cpp)
file(GLOB_RECURSE ICL include/*.hpp)
file(GLOB_RECURSE ICL_HEADERS include/Polymorph/*.hpp)

add_executable(Engine
add_library(PolymorphEngine
${SRC}
${ICL}
)
${ICL_HEADERS}
)
target_link_libraries(PolymorphEngine myxmlpp dl)
target_link_options(PolymorphEngine PUBLIC "-Wl,--no-undefined")
set_target_properties(PolymorphEngine PROPERTIES POSITION_INDEPENDENT_CODE ON)

add_executable(TestMain EXCLUDE_FROM_ALL
SampleProject/test_main.cpp
)

target_link_libraries(TestMain PolymorphEngine)
4 changes: 2 additions & 2 deletions Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -871,7 +871,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.

INPUT = .
INPUT = src include

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down Expand Up @@ -960,7 +960,7 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.

EXCLUDE = docs clion-utilities
EXCLUDE =

# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
Expand Down
37 changes: 37 additions & 0 deletions SampleProject/test_main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
** EPITECH PROJECT, 2020
** test_main.cpp
** File description:
** test_main.cpp
*/

#include <Polymorph/Core.hpp>
#include <Polymorph/Debug.hpp>

int main()
{
std::string path = "./build";
std::string name = "Test";


try
{
Polymorph::Engine e = Polymorph::Engine(path, name);
e.loadGraphicalAPI("./lib/libarcade_sfml.so");
e.loadScriptingAPI(path + "/" +name + ".so");
e.loadEngine();
e.run();
e;
}
catch (ConfigurationException &e)
{
e.what();
return 84;
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
return 84;
}
return 0;
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,41 @@
** header for IComponentInitializer.c
*/

#ifndef ENGINE_COMPONENTINITIALIZER_HPP
#define ENGINE_COMPONENTINITIALIZER_HPP
#ifndef ENGINE_ACOMPONENTINITIALIZER_HPP
#define ENGINE_ACOMPONENTINITIALIZER_HPP

#include <iostream>
#include <memory>

#include "config/XmlComponent.hpp"
#include "config/XmlEntityRef.hpp"
#include "Component.hpp"
namespace Polymorph
{
namespace Config {
class XmlComponent;
}
class Entity;

class Component;
class AComponentInitializer {
///////////////////////////////// Constructors /////////////////////////////////

public:
AComponentInitializer(std::string type, Config::XmlComponent &data, Entity &entity);

///////////////////////////--------------------------///////////////////////////



///////////////////////////////// Properties ///////////////////////////////////

protected:
std::shared_ptr<Component> component;
Config::XmlComponent &data;
std::string type;


public:
AComponentInitializer(const std::string &type, Config::XmlComponent &data, Entity &entity)
: data(data), type(type){};
virtual std::shared_ptr<Component> &build() = 0;

virtual void reference() = 0;

std::shared_ptr<Component> &get()
Expand All @@ -37,9 +58,10 @@ namespace Polymorph
}

protected:
std::shared_ptr<Component> component;
Config::XmlComponent &data;
std::string type;
void _init();
///////////////////////////--------------------------///////////////////////////
};


}
#endif //ENGINE_COMPONENTINITIALIZER_HPP
#endif //ENGINE_ACOMPONENTINITIALIZER_HPP
66 changes: 66 additions & 0 deletions include/ComponentsFactory/ComponentFactory.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/*
** EPITECH PROJECT, 2020
** ComponentFactory.hpp.h
** File description:
** header for ComponentFactory.c
*/

// @TEMPLATE:
// {"*", [](Config::XmlComponent &data, Entity &entity) -> Initializer{ return Initializer(new *Initializer(data, entity));}},

#ifndef ENGINE_COMPONENTFACTORY_HPP
#define ENGINE_COMPONENTFACTORY_HPP

#include <iostream>
#include <map>

#include <functional>
#include <vector>
#include <memory>

// @COMPONENTS: (add components include here)
#include "ComponentsFactory/initializers/TransformInitializer.hpp"
#include "ComponentsFactory/initializers/SpriteRendererInitializer.hpp"
#include "ComponentsFactory/initializers/TextRendererInitializer.hpp"
#include "ComponentsFactory/initializers/ColliderCircle2dInitializer.hpp"
#include "ComponentsFactory/initializers/ColliderRect2dInitializer.hpp"

namespace Polymorph
{
class AComponentInitializer;
class ComponentFactory
{
public:
using Initializer = std::shared_ptr<AComponentInitializer>;
///////////////////////////////// Constructors /////////////////////////////////

public:
static Initializer create(std::string &type, Config::XmlComponent &data, Entity &entity);

///////////////////////////--------------------------///////////////////////////



///////////////////////////////// Properties ///////////////////////////////////

private:
static const inline std::map<std::string,
std::function<Initializer (Config::XmlComponent &data, Entity &entity)>>
_buildables =
{
// @INITIALIZERS: (add Component Initializers here)
// @TRANSFORM:
{
{"Transform", [](Config::XmlComponent &data, Entity &entity) -> Initializer{ return Initializer(new TransformInitializer(data, entity));}},
{"ColliderCircle2d", [](Config::XmlComponent &data, Entity &entity) -> Initializer{ return Initializer(new ColliderCircle2dInitializer(data, entity));}},
{"ColliderRect2d", [](Config::XmlComponent &data, Entity &entity) -> Initializer{ return Initializer(new ColliderRect2dInitializer(data, entity));}},
{"SpriteRenderer", [](Config::XmlComponent &data, Entity &entity) -> Initializer{ return Initializer(new SpriteRendererInitializer(data, entity));}},
{"TextRenderer", [](Config::XmlComponent &data, Entity &entity) -> Initializer{ return Initializer(new TextRendererInitializer(data, entity));}},
},
};
///////////////////////////--------------------------///////////////////////////

};
}

#endif //ENGINE_COMPONENTFACTORY_HPP
Loading