AtomicTiled.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
  2. // Please see LICENSE.md in repository root for license information
  3. // https://github.com/AtomicGameEngine/AtomicGameEngine
  4. #include "AtomicEditor.h"
  5. #include <Atomic/IO/Log.h>
  6. #include "AEEvents.h"
  7. #include "AEExternalTooling.h"
  8. #include "AtomicTiled.h"
  9. namespace AtomicEditor
  10. {
  11. AtomicTiled::AtomicTiled(Context* context) :
  12. ExternalTool(context)
  13. {
  14. }
  15. AtomicTiled::~AtomicTiled()
  16. {
  17. }
  18. void AtomicTiled::Open(const String& fullpath)
  19. {
  20. }
  21. void AtomicTiled::HandleEvent(StringHash eventType, VariantMap& eventData)
  22. {
  23. if (eventType == E_SUBPROCESSOUTPUT)
  24. {
  25. String output = eventData[SubprocessOutput::P_TEXT].GetString();
  26. LOGINFOF("TILED: %s", output.CString());
  27. }
  28. else if (eventType == E_SUBPROCESSCOMPLETE)
  29. {
  30. ExternalTooling* tooling = GetSubsystem<ExternalTooling>();
  31. tooling->ToolExited("AtomicTiled");
  32. }
  33. }
  34. bool AtomicTiled::Launch(const String& args)
  35. {
  36. ExternalTooling* tooling = GetSubsystem<ExternalTooling>();
  37. String app = tooling->GetToolApplicationPath();
  38. #ifdef ATOMIC_PLATFORM_WINDOWS
  39. app += "AtomicTiled/tiled.exe";
  40. #else
  41. app += "Tiled.app/Contents/MacOS/Tiled";
  42. #endif
  43. LaunchInternal(app, args);
  44. if (subprocess_)
  45. {
  46. SubscribeToEvent(subprocess_, E_SUBPROCESSCOMPLETE, HANDLER(AtomicTiled, HandleEvent));
  47. SubscribeToEvent(subprocess_, E_SUBPROCESSOUTPUT, HANDLER(AtomicTiled, HandleEvent));
  48. }
  49. return false;
  50. }
  51. }