#pragma once namespace Components { class Events : public Component { public: typedef void(ClientCallback)(int clientNum); typedef void(Callback)(); Events(); // Server side static void OnClientDisconnect(const Utils::Slot& callback); // Client side static void OnSteamDisconnect(const Utils::Slot& callback); static void OnVMShutdown(const Utils::Slot& callback); private: static Utils::Signal ClientDisconnectSignal; static Utils::Signal SteamDisconnectSignal; static Utils::Signal ShutdownSystemSignal; static void ClientDisconnect_Hk(int clientNum); static void SteamDisconnect_Hk(); static void Scr_ShutdownSystem_Hk(unsigned char sys); }; }