NETManaged.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #include <ThirdParty/SDL/include/SDL.h>
  2. #include <Atomic/IO/FileSystem.h>
  3. #include <Atomic/IO/Log.h>
  4. #include <Atomic/Core/StringUtils.h>
  5. #include "NETCore.h"
  6. #include "NETManaged.h"
  7. #include "CSEventHelper.h"
  8. #include "CSComponent.h"
  9. namespace Atomic
  10. {
  11. NETManaged::NETManaged(Context* context) :
  12. Object(context),
  13. CSComponentCreate_(0),
  14. CSComponentCallMethod_(0),
  15. CSBeginSendEvent_(0),
  16. NETUpdate_(0)
  17. {
  18. }
  19. NETManaged::~NETManaged()
  20. {
  21. }
  22. bool NETManaged::Initialize()
  23. {
  24. NETCore* core = GetSubsystem<NETCore>();
  25. core->CreateDelegate("AtomicNETEngine", "AtomicEngine.ComponentCore", "CSComponentCreate", (void**) &CSComponentCreate_);
  26. core->CreateDelegate("AtomicNETEngine", "AtomicEngine.NativeCore", "NETUpdate", (void**) &NETUpdate_);
  27. return true;
  28. }
  29. void NETManaged::SetNETUpdate(NETUpdateFunctionPtr ptr)
  30. {
  31. NETUpdate_ = ptr;
  32. }
  33. void NETManaged::NETUpdate(float timeStep)
  34. {
  35. if (!NETUpdate_)
  36. return;
  37. NETUpdate_(timeStep);
  38. }
  39. CSComponent* NETManaged::CSComponentCreate(const String& assemblyName, const String& componentName)
  40. {
  41. if (!CSComponentCreate_)
  42. return 0;
  43. return CSComponentCreate_(assemblyName.CString(), componentName.CString());
  44. }
  45. void NETManaged::CSComponentCallMethod(unsigned id, CSComponentMethod methodID, float value)
  46. {
  47. if (!CSComponentCallMethod_)
  48. return;
  49. CSComponentCallMethod_(id, methodID, value);
  50. }
  51. void NETManaged::CSBeginSendEvent(unsigned senderRefID, unsigned eventType, VariantMap* eventData)
  52. {
  53. if (!CSBeginSendEvent_)
  54. return;
  55. CSBeginSendEvent_(senderRefID, eventType, eventData);
  56. }
  57. void NETManaged::SetCSComponentCreate(CSComponentCreateFunctionPtr ptr)
  58. {
  59. CSComponentCreate_ = ptr;
  60. }
  61. void NETManaged::SetCSComponentCallMethod(CSComponentCallMethodFunctionPtr ptr)
  62. {
  63. CSComponentCallMethod_ = ptr;
  64. }
  65. void NETManaged::SetCSBeginSendEvent(CSBeginSendEventFunctionPtr ptr)
  66. {
  67. CSBeginSendEvent_ = ptr;
  68. }
  69. }