Update systems to the new view

This commit is contained in:
Zoe Roux
2021-06-05 18:42:10 +02:00
parent acb3935c7c
commit f20445cdc8
24 changed files with 213 additions and 131 deletions
+15 -20
View File
@@ -4,33 +4,28 @@
#include <Wal.hpp>
#include <iostream>
//#include "System/Movable/MovableSystem.hpp"
//#include "System/Renderer/RenderSystem.hpp"
#include "System/Movable/MovableSystem.hpp"
#include "System/Renderer/RenderSystem.hpp"
#include <Model/Model.hpp>
#include <Drawables/3D/Cube.hpp>
#include <Drawables/2D/Rectangle.hpp>
//#include <Drawables/3D/Cube.hpp>
#include <TraceLog.hpp>
//#include <System/Keyboard/KeyboardSystem.hpp>
//#include <System/Controllable/ControllableSystem.hpp>
#include <System/Keyboard/KeyboardSystem.hpp>
#include <System/Controllable/ControllableSystem.hpp>
#include <System/Collision/CollisionSystem.hpp>
#include <Component/Movable/MovableComponent.hpp>
#include <Component/Collision/CollisionComponent.hpp>
#include <Component/Controllable/ControllableComponent.hpp>
#include <Component/Keyboard/KeyboardComponent.hpp>
//#include <System/Gamepad/GamepadSystem.hpp>
//#include "Models/Vector2.hpp"
#include <System/Gamepad/GamepadSystem.hpp>
#include "Component/Renderer/CameraComponent.hpp"
//#include "Component/Renderer/Drawable2DComponent.hpp"
#include "Component/Renderer/Drawable3DComponent.hpp"
#include "Runner.hpp"
#include "Models/GameState.hpp"
#include <Model/ModelAnimations.hpp>
#include "Component/Animation/AnimationsComponent.hpp"
//#include "System/Animation/AnimationsSystem.hpp"
#include "System/Animation/AnimationsSystem.hpp"
#include "Map/Map.hpp"
namespace RAY2D = RAY::Drawables::Drawables2D;
namespace RAY3D = RAY::Drawables::Drawables3D;
namespace BBM
@@ -47,22 +42,22 @@ namespace BBM
void addSystems(WAL::Wal &wal)
{
wal.addSystem<CollisionSystem>();
// wal.addSystem<KeyboardSystem>()
// .addSystem<GamepadSystem>()
// .addSystem<ControllableSystem>()
// .addSystem<CollisionSystem>()
// .addSystem<MovableSystem>();
wal.addSystem<KeyboardSystem>()
.addSystem<GamepadSystem>()
.addSystem<ControllableSystem>()
.addSystem<CollisionSystem>()
.addSystem<MovableSystem>();
}
void enableRaylib(WAL::Wal &wal)
{
RAY::TraceLog::setLevel(LOG_WARNING);
RAY::Window &window = RAY::Window::getInstance(600, 400, "Bomberman", FLAG_WINDOW_RESIZABLE);
// wal.addSystem<RenderSystem>(window);
wal.addSystem<AnimationsSystem>()
.addSystem<RenderSystem>(window);
}
std::shared_ptr<WAL::Scene> loadGameScene(WAL::Wal &wal)
std::shared_ptr<WAL::Scene> loadGameScene()
{
auto scene = std::make_shared<WAL::Scene>();
scene->addEntity("player")
@@ -99,7 +94,7 @@ namespace BBM
WAL::Wal wal;
addSystems(wal);
enableRaylib(wal);
wal.scene = loadGameScene(wal);
wal.scene = loadGameScene();
try {
wal.run<GameState>(updateState);
@@ -15,10 +15,10 @@ namespace BBM
: System(wal)
{}
void AnimationsSystem::onUpdate(WAL::Entity &entity, std::chrono::nanoseconds)
void AnimationsSystem::onUpdate(WAL::ViewEntity<Drawable3DComponent, AnimationsComponent> &entity, std::chrono::nanoseconds)
{
auto &model = entity.getComponent<Drawable3DComponent>();
auto &anim = entity.getComponent<AnimationsComponent>();
auto &model = entity.get<Drawable3DComponent>();
auto &anim = entity.get<AnimationsComponent>();
if (anim.isDisabled())
return;
@@ -14,7 +14,7 @@ namespace BBM
{
public:
//! @inherit
void onUpdate(WAL::Entity &entity, std::chrono::nanoseconds) override;
void onUpdate(WAL::ViewEntity<Drawable3DComponent, AnimationsComponent> &entity, std::chrono::nanoseconds) override;
//! @brief A default constructor
explicit AnimationsSystem(WAL::Wal &wal);
+2 -2
View File
@@ -28,8 +28,8 @@ namespace BBM
auto &posA = entity.get<PositionComponent>();
auto &col = entity.get<CollisionComponent>();
Vector3f position = posA.position;
// if (entity.hasComponent(typeid(MovableComponent)))
// position += entity.getComponent<MovableComponent>().getVelocity();
if (auto *movable = entity->tryGetComponent<MovableComponent>())
position += movable->getVelocity();
Vector3f minA = Vector3f::min(position, position + col.bound);
Vector3f maxA = Vector3f::max(position, position + col.bound);
for (auto other : this->getView()) {
@@ -14,10 +14,10 @@ namespace BBM
: System(wal)
{}
void ControllableSystem::onFixedUpdate(WAL::Entity &entity)
void ControllableSystem::onFixedUpdate(WAL::ViewEntity<ControllableComponent, MovableComponent> &entity)
{
auto &controllable = entity.getComponent<ControllableComponent>();
auto &movable = entity.getComponent<MovableComponent>();
auto &controllable = entity.get<ControllableComponent>();
auto &movable = entity.get<MovableComponent>();
Vector2f move = controllable.move.normalized() * ControllableSystem::speed;
movable.addForce(Vector3f(move.x, controllable.jump, move.y));
@@ -19,7 +19,7 @@ namespace BBM
static constexpr const float speed = .25f;
//! @inherit
void onFixedUpdate(WAL::Entity &entity) override;
void onFixedUpdate(WAL::ViewEntity<ControllableComponent, MovableComponent> &entity) override;
//! @brief A default constructor
explicit ControllableSystem(WAL::Wal &wal);
+3 -3
View File
@@ -17,10 +17,10 @@ namespace BBM
: System(wal)
{}
void GamepadSystem::onFixedUpdate(WAL::Entity &entity)
void GamepadSystem::onFixedUpdate(WAL::ViewEntity<GamepadComponent, ControllableComponent> &entity)
{
const auto &gamepadComponent = entity.getComponent<GamepadComponent>();
auto &controllable = entity.getComponent<ControllableComponent>();
const auto &gamepadComponent = entity.get<GamepadComponent>();
auto &controllable = entity.get<ControllableComponent>();
Gamepad gamepad(gamepadComponent.getID());
const std::map<Button, bool &> keyPressedMap = {
+1 -1
View File
@@ -16,7 +16,7 @@ namespace BBM
{
public:
//! @inherit
void onFixedUpdate(WAL::Entity &entity) override;
void onFixedUpdate(WAL::ViewEntity<GamepadComponent, ControllableComponent> &entity) override;
//! @brief A default constructor
explicit GamepadSystem(WAL::Wal &wal);
@@ -12,10 +12,10 @@ namespace BBM
: System(wal)
{}
void GridCenteredSystem::onFixedUpdate(WAL::Entity &entity)
void GridCenteredSystem::onFixedUpdate(WAL::ViewEntity<GridCenteredComponent, MovableComponent, PositionComponent> &entity)
{
auto &grid = entity.getComponent<GridCenteredComponent>();
auto &movement = entity.getComponent<MovableComponent>();
auto &grid = entity.get<GridCenteredComponent>();
auto &movement = entity.get<MovableComponent>();
// movement.addForce(grid.force * )
}
}
@@ -13,7 +13,7 @@ namespace BBM
class GridCenteredSystem : public WAL::System<GridCenteredComponent, MovableComponent, PositionComponent>
{
public:
void onFixedUpdate(WAL::Entity &entity) override;
void onFixedUpdate(WAL::ViewEntity<GridCenteredComponent, MovableComponent, PositionComponent> &entity) override;
//! @brief A default constructor
explicit GridCenteredSystem(WAL::Wal &wal);
+2 -2
View File
@@ -14,9 +14,9 @@ namespace BBM
: System(wal)
{}
void HealthSystem::onFixedUpdate(WAL::Entity &entity)
void HealthSystem::onFixedUpdate(WAL::ViewEntity<HealthComponent> &entity)
{
auto &health = entity.getComponent<HealthComponent>();
auto &health = entity.get<HealthComponent>();
if (health.getHealthPoint() == 0)
health.onDeath(entity);
+1 -1
View File
@@ -15,7 +15,7 @@ namespace BBM
{
public:
//! @inherit
void onFixedUpdate(WAL::Entity &entity) override;
void onFixedUpdate(WAL::ViewEntity<HealthComponent> &entity) override;
//! @brief A default constructor
explicit HealthSystem(WAL::Wal &wal);
+3 -5
View File
@@ -3,11 +3,9 @@
// Edited by Benjamin Henry on 2021-05-20.
//
#include <iostream>
#include "KeyboardSystem.hpp"
#include "Component/Keyboard/KeyboardComponent.hpp"
#include "Component/Controllable/ControllableComponent.hpp"
#include "Entity/Entity.hpp"
#include "Controllers/Keyboard.hpp"
using Keyboard = RAY::Controller::Keyboard;
@@ -18,10 +16,10 @@ namespace BBM
: System(wal)
{}
void KeyboardSystem::onFixedUpdate(WAL::Entity &entity)
void KeyboardSystem::onFixedUpdate(WAL::ViewEntity<KeyboardComponent, ControllableComponent> &entity)
{
const auto &keyboard = entity.getComponent<KeyboardComponent>();
auto &controllable = entity.getComponent<ControllableComponent>();
const auto &keyboard = entity.get<KeyboardComponent>();
auto &controllable = entity.get<ControllableComponent>();
const std::map<KeyboardKey, bool &> keyPressedMap = {
{keyboard.keyJump, controllable.jump},
+1 -1
View File
@@ -17,7 +17,7 @@ namespace BBM
{
public:
//! @inherit
void onFixedUpdate(WAL::Entity &entity) override;
void onFixedUpdate(WAL::ViewEntity<KeyboardComponent, ControllableComponent> &entity) override;
//! @brief A default constructor
explicit KeyboardSystem(WAL::Wal &wal);
+3 -3
View File
@@ -12,10 +12,10 @@ namespace BBM
: System(wal)
{}
void MovableSystem::onFixedUpdate(WAL::Entity &entity)
void MovableSystem::onFixedUpdate(WAL::ViewEntity<MovableComponent, PositionComponent> &entity)
{
auto &movable = entity.getComponent<MovableComponent>();
auto &position = entity.getComponent<PositionComponent>();
auto &movable = entity.get<MovableComponent>();
auto &position = entity.get<PositionComponent>();
position.position += movable._velocity;
movable._velocity = movable._acceleration;
+1 -1
View File
@@ -17,7 +17,7 @@ namespace BBM
{
public:
//! @inherit
void onFixedUpdate(WAL::Entity &entity) override;
void onFixedUpdate(WAL::ViewEntity<MovableComponent, PositionComponent> &entity) override;
//! @brief A default constructor
explicit MovableSystem(WAL::Wal &wal);
+3 -3
View File
@@ -52,10 +52,10 @@ namespace BBM
this->_window.endDrawing();
}
void RenderSystem::onUpdate(WAL::Entity &entity, std::chrono::nanoseconds dtime)
void RenderSystem::onUpdate(WAL::ViewEntity<CameraComponent, PositionComponent> &entity, std::chrono::nanoseconds dtime)
{
const auto &pos = entity.getComponent<PositionComponent>();
const auto &cam = entity.getComponent<CameraComponent>();
const auto &pos = entity.get<PositionComponent>();
const auto &cam = entity.get<CameraComponent>();
_camera.setPosition(pos.position);
_camera.setTarget(cam.target);
}
+1 -1
View File
@@ -27,7 +27,7 @@ namespace BBM
void onSelfUpdate() override;
//! @inherit
void onUpdate(WAL::Entity &entity, std::chrono::nanoseconds dtime) override;
void onUpdate(WAL::ViewEntity<CameraComponent, PositionComponent> &entity, std::chrono::nanoseconds dtime) override;
//! @brief ctor
RenderSystem(WAL::Wal &wal, RAY::Window &window);