aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjaroWMR <jarorutjes07@gmail.com>2024-10-23 16:22:30 +0200
committerjaroWMR <jarorutjes07@gmail.com>2024-10-23 16:22:30 +0200
commit5558d2d0530cc01fd8e3c8ce18cc38ce9c6f8057 (patch)
treed85836ede083ee9faa42eed6fc35bb6b980a8b6a
parent5445331293854aac26af2d5c6a20cedeaa819383 (diff)
parent04a040e28ade412ea5b1767bf77eed3956121973 (diff)
merge with master
-rw-r--r--src/crepe/CMakeLists.txt13
-rw-r--r--src/crepe/Component.h8
-rw-r--r--src/crepe/GameObject.cpp12
-rw-r--r--src/crepe/PhysicsSystem.cpp5
-rw-r--r--src/crepe/api/AudioSource.cpp3
-rw-r--r--src/crepe/api/AudioSource.h4
-rw-r--r--src/crepe/api/BehaviorScript.cpp1
-rw-r--r--src/crepe/api/BehaviorScript.h2
-rw-r--r--src/crepe/api/CMakeLists.txt9
-rw-r--r--src/crepe/api/CircleCollider.h (renamed from src/crepe/CircleCollider.h)4
-rw-r--r--src/crepe/api/Force.cpp (renamed from src/crepe/Force.cpp)4
-rw-r--r--src/crepe/api/Force.h (renamed from src/crepe/Force.h)4
-rw-r--r--src/crepe/api/GameObject.cpp7
-rw-r--r--src/crepe/api/GameObject.h (renamed from src/crepe/GameObject.h)4
-rw-r--r--src/crepe/api/GameObject.hpp (renamed from src/crepe/GameObject.hpp)8
-rw-r--r--src/crepe/api/Rigidbody.cpp (renamed from src/crepe/Rigidbody.cpp)2
-rw-r--r--src/crepe/api/Rigidbody.h (renamed from src/crepe/Rigidbody.h)6
-rw-r--r--src/crepe/api/Sprite.cpp (renamed from src/crepe/Sprite.cpp)2
-rw-r--r--src/crepe/api/Sprite.h (renamed from src/crepe/Sprite.h)6
-rw-r--r--src/example/CMakeLists.txt4
-rw-r--r--src/example/Physics.cpp9
-rw-r--r--src/example/components_internal.cpp11
-rw-r--r--src/example/script.cpp2
-rw-r--r--src/readme.md3
24 files changed, 68 insertions, 65 deletions
diff --git a/src/crepe/CMakeLists.txt b/src/crepe/CMakeLists.txt
index ef2584e..57c77be 100644
--- a/src/crepe/CMakeLists.txt
+++ b/src/crepe/CMakeLists.txt
@@ -9,15 +9,11 @@ target_sources(crepe PUBLIC
SDLApp.cpp
ComponentManager.cpp
Component.cpp
- GameObject.cpp
- Collider.cpp
- Rigidbody.cpp
- Sprite.cpp
ScriptSystem.cpp
PhysicsSystem.cpp
Transform.cpp
- Force.cpp
CollisionSystem.cpp
+ Collider.cpp
)
target_sources(crepe PUBLIC FILE_SET HEADERS FILES
@@ -31,17 +27,12 @@ target_sources(crepe PUBLIC FILE_SET HEADERS FILES
ComponentManager.h
ComponentManager.hpp
Component.h
- GameObject.h
- GameObject.hpp
- Collider.h
- Rigidbody.h
- Sprite.h
System.h
ScriptSystem.h
PhysicsSystem.h
Transform.h
- Force.h
CollisionSystem.h
+ Collider.h
)
add_subdirectory(api)
diff --git a/src/crepe/Component.h b/src/crepe/Component.h
index 8a42a45..9483dad 100644
--- a/src/crepe/Component.h
+++ b/src/crepe/Component.h
@@ -5,16 +5,12 @@ namespace crepe {
class Component {
protected:
- Component() = default;
+ Component(uint32_t id);
public:
- Component(uint32_t id);
- virtual ~Component() {}
- // TODO: shouldn't this constructor be deleted because this class will never
- // directly be instantiated?
- //changed so it sets the id (jaro)
uint32_t gameObjectId;
bool active;
+ virtual ~Component() = default;
};
} // namespace crepe
diff --git a/src/crepe/GameObject.cpp b/src/crepe/GameObject.cpp
deleted file mode 100644
index 36eb886..0000000
--- a/src/crepe/GameObject.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-#include "GameObject.h"
-#include "Transform.h"
-
-using namespace crepe;
-
-GameObject::GameObject(uint32_t id, std::string name, std::string tag,
- int layer)
- : id(id), name(name), tag(tag), active(true), layer(layer)
-{
- Position pos = {0,0};
- this->add_component<Transform>(pos, 0, 0);
-}
diff --git a/src/crepe/PhysicsSystem.cpp b/src/crepe/PhysicsSystem.cpp
index 7d16044..e0bbc5b 100644
--- a/src/crepe/PhysicsSystem.cpp
+++ b/src/crepe/PhysicsSystem.cpp
@@ -1,11 +1,12 @@
#include "PhysicsSystem.h"
#include "ComponentManager.h"
-#include "Rigidbody.h"
+#include "api/Rigidbody.h"
#include "Transform.h"
-#include "Force.h"
+#include "api/Force.h"
#include <iostream>
using namespace crepe;
+using namespace crepe::api;
PhysicsSystem::PhysicsSystem() {
diff --git a/src/crepe/api/AudioSource.cpp b/src/crepe/api/AudioSource.cpp
index b512d27..bb067dc 100644
--- a/src/crepe/api/AudioSource.cpp
+++ b/src/crepe/api/AudioSource.cpp
@@ -1,7 +1,8 @@
+#include <memory>
+
#include "AudioSource.h"
#include "../Sound.h"
-#include <memory>
using namespace crepe::api;
diff --git a/src/crepe/api/AudioSource.h b/src/crepe/api/AudioSource.h
index 2d26cda..7980212 100644
--- a/src/crepe/api/AudioSource.h
+++ b/src/crepe/api/AudioSource.h
@@ -2,8 +2,8 @@
#include <memory>
-#include "Asset.h"
-#include "Component.h"
+#include "../Asset.h"
+#include "../Component.h"
namespace crepe {
class Sound;
diff --git a/src/crepe/api/BehaviorScript.cpp b/src/crepe/api/BehaviorScript.cpp
index 063d225..74788ec 100644
--- a/src/crepe/api/BehaviorScript.cpp
+++ b/src/crepe/api/BehaviorScript.cpp
@@ -1,7 +1,6 @@
#include "../util/log.h"
#include "BehaviorScript.h"
-#include "Script.h"
using namespace crepe::api;
diff --git a/src/crepe/api/BehaviorScript.h b/src/crepe/api/BehaviorScript.h
index 6ce6798..25d3cc5 100644
--- a/src/crepe/api/BehaviorScript.h
+++ b/src/crepe/api/BehaviorScript.h
@@ -2,7 +2,7 @@
#include <memory>
-#include "Component.h"
+#include "../Component.h"
#include "Script.h"
namespace crepe {
diff --git a/src/crepe/api/CMakeLists.txt b/src/crepe/api/CMakeLists.txt
index 6b337be..c97423d 100644
--- a/src/crepe/api/CMakeLists.txt
+++ b/src/crepe/api/CMakeLists.txt
@@ -2,11 +2,20 @@ target_sources(crepe PUBLIC
# AudioSource.cpp
BehaviorScript.cpp
Script.cpp
+ GameObject.cpp
+ Rigidbody.cpp
+ Sprite.cpp
+ Force.cpp
)
target_sources(crepe PUBLIC FILE_SET HEADERS FILES
# AudioSource.h
BehaviorScript.h
Script.h
+ GameObject.h
+ GameObject.hpp
+ Rigidbody.h
+ Sprite.h
+ Force.h
)
diff --git a/src/crepe/CircleCollider.h b/src/crepe/api/CircleCollider.h
index 922477b..4a4883c 100644
--- a/src/crepe/CircleCollider.h
+++ b/src/crepe/api/CircleCollider.h
@@ -1,7 +1,7 @@
#pragma once
-#include "Collider.h"
+#include "../Collider.h"
-namespace crepe {
+namespace crepe::api {
class CircleCollider : public Collider {
public:
diff --git a/src/crepe/Force.cpp b/src/crepe/api/Force.cpp
index b314f49..1b4c81a 100644
--- a/src/crepe/Force.cpp
+++ b/src/crepe/api/Force.cpp
@@ -1,7 +1,7 @@
#include "Force.h"
#include <cmath>
-namespace crepe {
+namespace crepe::api {
Force::Force(uint32_t gameObjectId, uint32_t forceMagnitude, uint32_t direction): Component(gameObjectId)
{
@@ -11,4 +11,4 @@ Force::Force(uint32_t gameObjectId, uint32_t forceMagnitude, uint32_t direction)
force_y = static_cast<int32_t>(std::round(forceMagnitude * std::sin(radian_direction)));
}
-} // namespace crepe
+} // namespace crepe::api
diff --git a/src/crepe/Force.h b/src/crepe/api/Force.h
index a121ec2..0b06da1 100644
--- a/src/crepe/Force.h
+++ b/src/crepe/api/Force.h
@@ -1,10 +1,10 @@
#pragma once
-#include "Component.h"
+#include "../Component.h"
#include <cstdint>
#include <utility>
-namespace crepe {
+namespace crepe::api {
class Force : public Component {
public:
diff --git a/src/crepe/api/GameObject.cpp b/src/crepe/api/GameObject.cpp
new file mode 100644
index 0000000..b167187
--- /dev/null
+++ b/src/crepe/api/GameObject.cpp
@@ -0,0 +1,7 @@
+#include "GameObject.h"
+
+using namespace crepe::api;
+using namespace std;
+
+GameObject::GameObject(uint32_t id, string name, string tag, int layer)
+ : id(id), name(name), tag(tag), active(true), layer(layer) {}
diff --git a/src/crepe/GameObject.h b/src/crepe/api/GameObject.h
index b5d6399..57508c5 100644
--- a/src/crepe/GameObject.h
+++ b/src/crepe/api/GameObject.h
@@ -3,7 +3,7 @@
#include <cstdint>
#include <string>
-namespace crepe {
+namespace crepe::api {
class GameObject {
public:
@@ -19,6 +19,6 @@ public:
int layer;
};
-} // namespace crepe
+} // namespace crepe::api
#include "GameObject.hpp"
diff --git a/src/crepe/GameObject.hpp b/src/crepe/api/GameObject.hpp
index 8cd1abe..8295ea3 100644
--- a/src/crepe/GameObject.hpp
+++ b/src/crepe/api/GameObject.hpp
@@ -1,10 +1,10 @@
#pragma once
-#include "GameObject.h"
+#include "../ComponentManager.h"
-#include "ComponentManager.h"
+#include "GameObject.h"
-namespace crepe {
+namespace crepe::api {
template <typename T, typename... Args>
T & GameObject::add_component(Args &&... args) {
@@ -12,4 +12,4 @@ T & GameObject::add_component(Args &&... args) {
return mgr.add_component<T>(id, std::forward<Args>(args)...);
}
-} // namespace crepe
+} // namespace crepe::api
diff --git a/src/crepe/Rigidbody.cpp b/src/crepe/api/Rigidbody.cpp
index a610e55..30a2cff 100644
--- a/src/crepe/Rigidbody.cpp
+++ b/src/crepe/api/Rigidbody.cpp
@@ -1,6 +1,6 @@
#include "Rigidbody.h"
-using namespace crepe;
+using namespace crepe::api;
Rigidbody::Rigidbody(uint32_t gameObjectId,int mass, int gravityScale, BodyType bodyType)
: Component(gameObjectId), mass(mass), gravity_scale(gravityScale), body_type(bodyType) {}
diff --git a/src/crepe/Rigidbody.h b/src/crepe/api/Rigidbody.h
index a03346f..b7a0064 100644
--- a/src/crepe/Rigidbody.h
+++ b/src/crepe/api/Rigidbody.h
@@ -1,9 +1,9 @@
#pragma once
-#include "Component.h"
+#include "../Component.h"
#include <cstdint>
-namespace crepe {
+namespace crepe::api {
enum class BodyType {
Static, // Does not move (e.g. walls, ground ...)
@@ -21,4 +21,4 @@ public:
BodyType body_type;
};
-} // namespace crepe
+} // namespace crepe::api
diff --git a/src/crepe/Sprite.cpp b/src/crepe/api/Sprite.cpp
index 7f5bca7..4eda466 100644
--- a/src/crepe/Sprite.cpp
+++ b/src/crepe/api/Sprite.cpp
@@ -2,7 +2,7 @@
#include "Sprite.h"
-using namespace crepe;
+using namespace crepe::api;
using namespace std;
Sprite::Sprite(uint32_t gameObjectId, string path) : Component(gameObjectId), path(path) {}
diff --git a/src/crepe/Sprite.h b/src/crepe/api/Sprite.h
index 8c517ed..c06e76c 100644
--- a/src/crepe/Sprite.h
+++ b/src/crepe/api/Sprite.h
@@ -2,9 +2,9 @@
#include <string>
-#include "Component.h"
+#include "../Component.h"
-namespace crepe {
+namespace crepe::api {
class Sprite : public Component {
public:
@@ -13,4 +13,4 @@ public:
std::string path;
};
-} // namespace crepe
+} // namespace crepe::api
diff --git a/src/example/CMakeLists.txt b/src/example/CMakeLists.txt
index 256d87e..ceb8f9d 100644
--- a/src/example/CMakeLists.txt
+++ b/src/example/CMakeLists.txt
@@ -1,3 +1,6 @@
+# all examples
+add_custom_target(examples)
+
# add_example(target_name [SOURCES...])
function(add_example target_name)
# if SOURCES is not specified
@@ -10,6 +13,7 @@ function(add_example target_name)
add_executable(${target_name} EXCLUDE_FROM_ALL ${sources})
target_link_libraries(${target_name} PUBLIC crepe)
+ add_dependencies(examples ${target_name})
endfunction()
add_example(audio_internal)
diff --git a/src/example/Physics.cpp b/src/example/Physics.cpp
index 9ad6da0..6499fb0 100644
--- a/src/example/Physics.cpp
+++ b/src/example/Physics.cpp
@@ -2,13 +2,14 @@
#include <thread>
#include <chrono>
#include "Transform.h"
-#include "Rigidbody.h"
-#include "Force.h"
+#include <crepe/api/Rigidbody.h>
+#include <crepe/api/Force.h>
#include "PhysicsSystem.h"
#include <crepe/Component.h>
#include <crepe/ComponentManager.h>
-#include <crepe/GameObject.h>
+#include <crepe/api/GameObject.h>
+using namespace crepe::api;
using namespace crepe;
using namespace std;
@@ -18,6 +19,8 @@ int main(int argc, char* argv[]) {
GameObject * game_object[2];
game_object[1] = new GameObject(2, "Name", "Tag", 0); // not found not used
game_object[0] = new GameObject(5, "Name", "Tag", 0);
+ Position position = {0, 0};
+ game_object[0]->add_component<Transform>(position,0,0);
game_object[0]->add_component<Rigidbody>(1, 1 , BodyType::Dynamic);
game_object[0]->add_component<Force>(1 , 0);
physicsSystem.update();
diff --git a/src/example/components_internal.cpp b/src/example/components_internal.cpp
index 3ba5b5a..ae6c765 100644
--- a/src/example/components_internal.cpp
+++ b/src/example/components_internal.cpp
@@ -6,14 +6,17 @@
#include <cassert>
#include <chrono>
-#include <crepe/Collider.h>
#include <crepe/Component.h>
#include <crepe/ComponentManager.h>
-#include <crepe/GameObject.h>
-#include <crepe/Rigidbody.h>
-#include <crepe/Sprite.h>
+
+#include <crepe/api/Collider.h>
+#include <crepe/api/GameObject.h>
+#include <crepe/api/Rigidbody.h>
+#include <crepe/api/Sprite.h>
+
#include <crepe/util/log.h>
+using namespace crepe::api;
using namespace crepe;
using namespace std;
diff --git a/src/example/script.cpp b/src/example/script.cpp
index cc585db..6e5563c 100644
--- a/src/example/script.cpp
+++ b/src/example/script.cpp
@@ -4,11 +4,11 @@
*/
#include <crepe/ComponentManager.h>
-#include <crepe/GameObject.h>
#include <crepe/ScriptSystem.h>
#include <crepe/util/log.h>
#include <crepe/api/BehaviorScript.h>
+#include <crepe/api/GameObject.h>
#include <crepe/api/Script.h>
using namespace crepe;
diff --git a/src/readme.md b/src/readme.md
index a4a71e7..a8ffc51 100644
--- a/src/readme.md
+++ b/src/readme.md
@@ -18,7 +18,8 @@ running the build command:
$ ninja -C build test_main
```
-Each source file in the example/ folder corresponds to a CMake target as well:
+Each source file in the example/ folder corresponds to a CMake target as well
+(all examples can be built at once by specifying the `examples` target):
```
$ ninja -C build audio_internal components_internal