switch to using own event system

This commit is contained in:
2026-06-13 17:42:16 +02:00
parent ed17664ef1
commit 5317f35198
49 changed files with 611 additions and 300 deletions

View File

@@ -0,0 +1,10 @@
#pragma once
#include "Event.h"
class ArenaInspectRequestedEvent : public Event
{
public:
explicit ArenaInspectRequestedEvent(int arenaIndex) : arenaIndex(arenaIndex) {}
const int arenaIndex;
};

View File

@@ -0,0 +1,10 @@
#pragma once
#include "Event.h"
class ArenaStartRequestedEvent : public Event
{
public:
explicit ArenaStartRequestedEvent(int arenaIndex) : arenaIndex(arenaIndex) {}
const int arenaIndex;
};

View File

@@ -0,0 +1,7 @@
#pragma once
#include "Event.h"
class BlueprintModeExitedEvent : public Event
{
};

View File

@@ -0,0 +1,12 @@
#pragma once
#include "Blueprint.h"
#include "Event.h"
class BlueprintPlacementRequestedEvent : public Event
{
public:
explicit BlueprintPlacementRequestedEvent(Blueprint blueprint)
: blueprint(std::move(blueprint)) {}
const Blueprint blueprint;
};

View File

@@ -0,0 +1,7 @@
#pragma once
#include "Event.h"
class BuilderModeExitedEvent : public Event
{
};

View File

@@ -0,0 +1,11 @@
#pragma once
#include "BuildingType.h"
#include "Event.h"
class BuildingTypeSelectedEvent : public Event
{
public:
explicit BuildingTypeSelectedEvent(BuildingType type) : type(type) {}
const BuildingType type;
};

View File

@@ -7,6 +7,23 @@ SET(HDRS
${CMAKE_CURRENT_SOURCE_DIR}/GameSpeedChangedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/BossWaveUpdatedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/SchematicChoicesAvailableEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/SelectionChangedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/GameOverEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/BuilderModeExitedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/BlueprintModeExitedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/EscapeMenuRequestedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/DemolishModeChangedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/BuildingTypeSelectedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/ExitBuilderModeRequestedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/DemolishModeToggleRequestedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/BlueprintPlacementRequestedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/ExitBlueprintModeRequestedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/SpeedChangeRequestedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/LayoutDialogRequestedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/InspectWindowClosedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/ArenaStartRequestedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/ArenaInspectRequestedEvent.h
${CMAKE_CURRENT_SOURCE_DIR}/WeaponFiredEvent.h
PARENT_SCOPE
)

View File

@@ -0,0 +1,10 @@
#pragma once
#include "Event.h"
class DemolishModeChangedEvent : public Event
{
public:
explicit DemolishModeChangedEvent(bool active) : active(active) {}
const bool active;
};

View File

@@ -0,0 +1,7 @@
#pragma once
#include "Event.h"
class DemolishModeToggleRequestedEvent : public Event
{
};

View File

@@ -0,0 +1,7 @@
#pragma once
#include "Event.h"
class EscapeMenuRequestedEvent : public Event
{
};

View File

@@ -0,0 +1,7 @@
#pragma once
#include "Event.h"
class ExitBlueprintModeRequestedEvent : public Event
{
};

View File

@@ -0,0 +1,7 @@
#pragma once
#include "Event.h"
class ExitBuilderModeRequestedEvent : public Event
{
};

View File

@@ -0,0 +1,7 @@
#pragma once
#include "Event.h"
class GameOverEvent : public Event
{
};

View File

@@ -0,0 +1,7 @@
#pragma once
#include "Event.h"
class InspectWindowClosedEvent : public Event
{
};

View File

@@ -0,0 +1,12 @@
#pragma once
#include "BuildingId.h"
#include "Event.h"
class LayoutDialogRequestedEvent : public Event
{
public:
explicit LayoutDialogRequestedEvent(BuildingId shipyardId)
: shipyardId(shipyardId) {}
const BuildingId shipyardId;
};

View File

@@ -0,0 +1,14 @@
#pragma once
#include <vector>
#include "BuildingId.h"
#include "Event.h"
class SelectionChangedEvent : public Event
{
public:
explicit SelectionChangedEvent(std::vector<BuildingId> ids)
: ids(std::move(ids)) {}
const std::vector<BuildingId> ids;
};

View File

@@ -0,0 +1,10 @@
#pragma once
#include "Event.h"
class SpeedChangeRequestedEvent : public Event
{
public:
explicit SpeedChangeRequestedEvent(double multiplier) : multiplier(multiplier) {}
const double multiplier;
};

View File

@@ -0,0 +1,17 @@
#pragma once
#include "Event.h"
#include "Tick.h"
#include "entt/entity/entity.hpp"
struct WeaponFiredEvent : public Event
{
WeaponFiredEvent() = default;
WeaponFiredEvent(entt::entity shooter, entt::entity target, Tick emittedAt)
: shooter(shooter), target(target), emittedAt(emittedAt) {}
entt::entity shooter = entt::null;
entt::entity target = entt::null;
Tick emittedAt = 0;
};