This repository has been archived on 2022-10-27. You can view files and clone it, but cannot push or open issues or pull requests.
space-war/include/game/system.hpp

72 lines
1.5 KiB
C++
Raw Normal View History

#pragma once
#include "tinyengine/ecs/system.hpp"
#include "tinyengine/tinyengine.hpp"
#include "game/global.hpp"
#include "game/component.hpp"
#include "game/entity.hpp"
class PhysicalSystem: public UpdateSystem {
public:
void Update(float dt) override;
private:
void physicalStep(Entity* entity, float dt, MoveCmpt&, MotionCmpt&);
};
2022-02-09 22:33:06 +08:00
class MissileUpdateSystem: public UpdateSystem {
public:
void Update(float dt) override;
private:
void updateMissile(float dt, BulletCmpt&, MoveCmpt&, MotionCmpt&);
};
class ColliRectCorrectSystem: public UpdateSystem {
public:
void Update(float dt) override;
private:
void correctColliRect(MoveCmpt&, CollisionCmpt&);
};
class CollideSystem: public UpdateSystem {
public:
void Update(float dt) override;
};
class CleanupSystem: public UpdateSystem {
public:
void Update(float dt) override;
};
2022-02-09 22:33:06 +08:00
class WeaponCooldownSystem: public UpdateSystem {
public:
void Update(float dt) override;
2022-02-09 22:33:06 +08:00
private:
void coolDown(SpaceshipWeaponCmpt& weapon, float dt);
};
class RenderEntitySystem: public RenderSystem {
public:
void Render() override;
private:
void renderEntity(Entity* entity, const RenderCmpt&, float rotation, const Color&);
void renderCollideBox(Entity* entity);
};
2022-02-15 22:50:31 +08:00
class EnergyProductSystem: public UpdateSystem {
public:
void Update(float) override;
private:
void coolDown(EnergyProductCmpt& cmpt, float dt);
};
class AIUpdateSystem: public UpdateSystem {
public:
void Update(float) override;
};