#pragma once #include #include "Entity.h" #include #include "Interlocked.h" #include #include "JsonWriter.h" #include "JsonReader.h" using namespace BS::Player; using namespace System; using namespace System::Threading; using namespace System::Collections::Generic; using namespace Newtonsoft::Json; class BaseOnPlayerMoveCallbackComponent : public abstract virtual Object { public: DELEGATE(void, Entity*) OnPlayerMoved; public: void addCOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value); public: void removeCOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value); public: void addSOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value); public: void removeSOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* value); public: List_T* getCSpells(); //Ignored empty method declaration public: List_T* getSSpells(); //Ignored empty method declaration public: virtual void ServerCallbackAdded() = 0; public: virtual void RegisterCOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* callback, int spellId) = 0; public: virtual void RegisterSOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* callback, int spellId) = 0; public: virtual void RemoveCOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* callback, int spellId) = 0; public: virtual void RemoveSOnPlayerMove(BaseOnPlayerMoveCallbackComponent::OnPlayerMoved* callback, int spellId) = 0; public: virtual void ToJSON(JsonWriter* w) = 0; public: virtual void FromJSON(JsonReader* r) = 0; public: void CallCOnPlayerMove(Entity* player); public: void CallSOnPlayerMove(Entity* player); public: bool COnPlayerMoveIsNull(); public: bool SOnPlayerMoveIsNull(); public: virtual List_T* CSpells_var; public: virtual List_T* SSpells_var; public: BaseOnPlayerMoveCallbackComponent(); };