diff options
Diffstat (limited to '')
-rw-r--r-- | src/Event.hpp | 96 |
1 files changed, 76 insertions, 20 deletions
diff --git a/src/Event.hpp b/src/Event.hpp index c553058..232e6f2 100644 --- a/src/Event.hpp +++ b/src/Event.hpp @@ -9,6 +9,8 @@ #include <variant> #include <functional> +#include <SFML/Window.hpp> + #include "Vector.hpp" #include "Packet.hpp" #include "FSM.hpp" @@ -18,13 +20,25 @@ enum class EventType { ChunkChanged, ConnectToServer, ConnectionSuccessfull, - GlobalAppState, Disconnect, RequestNetworkClient, RegisterNetworkClient, PlayerConnected, RemoveLoadingScreen, ConnectionFailed, + Exit, + Disconnected, + Connecting, + NetworkClientException, + MouseMoved, + KeyPressed, + KeyReleased, + InitalizeSectionRender, + UpdateSectionsRender, + CreateSectionRender, + CreatedSectionRender, + PlayerPosChanged, + DeleteSectionRender, }; struct EchoData { @@ -46,24 +60,8 @@ struct ConnectionSuccessfullData { NetworkClient *ptr; }; -enum class GlobalState { - InitialLoading, - MainMenu, - Connecting, - Loading, - Playing, - PauseMenu, - Exiting, -}; - -void SetGlobalState(GlobalState state); - -struct GlobalAppStateData { - GlobalState state; -}; - struct DisconnectData { - + std::string reason; }; struct SendPacketData { @@ -96,9 +94,64 @@ struct ConnectionFailedData { std::string reason; }; +struct ExitData { + +}; + +struct DisconnectedData { + std::string reason; +}; + +struct ConnectingData { + +}; + +struct NetworkClientExceptionData { + std::string what; +}; + +struct MouseMovedData { + double x, y; +}; + +struct KeyPressedData { + sf::Keyboard::Key key; +}; + +struct KeyReleasedData { + sf::Keyboard::Key key; +}; + +struct InitalizeSectionRenderData { + Vector pos; +}; + +struct CreateSectionRenderData { + Vector pos; +}; + +struct CreatedSectionRenderData { + Vector pos; +}; + +struct PlayerPosChangedData { + Vector newPos; +}; + +struct UpdateSectionsRenderData { + +}; + +struct DeleteSectionRenderData { + Vector pos; +}; + using EventData = std::variant<EchoData, ChunkChangedData, ConnectToServerData, ConnectionSuccessfullData, - GlobalAppStateData, DisconnectData, SendPacketData, ReceivePacketData, RequestNetworkClientData, - RegisterNetworkClientData, PlayerConnectedData, RemoveLoadingScreenData, ConnectionFailedData>; + DisconnectData, SendPacketData, ReceivePacketData, RequestNetworkClientData, RegisterNetworkClientData, + PlayerConnectedData, RemoveLoadingScreenData, ConnectionFailedData, ExitData, DisconnectedData, + ConnectingData, NetworkClientExceptionData, MouseMovedData, KeyPressedData, KeyReleasedData, + InitalizeSectionRenderData, CreateSectionRenderData, CreatedSectionRenderData, PlayerPosChangedData, + UpdateSectionsRenderData, DeleteSectionRenderData>; struct Event { EventType type; @@ -120,6 +173,8 @@ class EventListener { void PushEvent(Event event); + void DirectCall(Event event); + public: EventListener(); ~EventListener(); @@ -147,4 +202,5 @@ class EventAgregator { public: static void PushEvent(EventType type, EventData data); + static void DirectEventCall(EventType, EventData data); };
\ No newline at end of file |