Newer
Older
DungeonShooting / DungeonShooting_Godot / addons / dungeonShooting_plugin / Plugin.cs
@lijincheng lijincheng on 10 Mar 2023 2 KB 小修改
  1. #if TOOLS
  2. using Godot;
  3.  
  4. namespace Plugin
  5. {
  6. [Tool]
  7. public partial class Plugin : EditorPlugin
  8. {
  9. public static Plugin Instance => _instance;
  10. private static Plugin _instance;
  11.  
  12. private Control dock;
  13.  
  14. public override void _Process(double delta)
  15. {
  16. _instance = this;
  17. }
  18.  
  19. public override void _EnterTree()
  20. {
  21. _instance = this;
  22. var script = GD.Load<Script>("res://src/framework/activity/ActivityObjectTemplate.cs");
  23. var texture = GD.Load<Texture2D>("res://addons/dungeonShooting_plugin/ActivityObject.svg");
  24. AddCustomType("ActivityObjectTemplate", "Node", script, texture);
  25.  
  26. var script2 = GD.Load<Script>("res://src/framework/map/DungeonRoomTemplate.cs");
  27. var texture2 = GD.Load<Texture2D>("res://addons/dungeonShooting_plugin/Map.svg");
  28. AddCustomType("DungeonRoomTemplate", "TileMap", script2, texture2);
  29. var script3 = GD.Load<Script>("res://src/framework/map/mark/ActivityMark.cs");
  30. var texture3 = GD.Load<Texture2D>("res://addons/dungeonShooting_plugin/Mark.svg");
  31. AddCustomType("ActivityMark", "Node2D", script3, texture3);
  32. var script4 = GD.Load<Script>("res://src/framework/map/mark/EnemyMark.cs");
  33. AddCustomType("EnemyMark", "Node2D", script4, texture3);
  34. var script5 = GD.Load<Script>("res://src/framework/map/mark/WeaponMark.cs");
  35. AddCustomType("WeaponMark", "Node2D", script5, texture3);
  36. dock = GD.Load<PackedScene>("res://addons/dungeonShooting_plugin/Automation.tscn").Instantiate<Control>();
  37. AddControlToDock(DockSlot.LeftUr, dock);
  38. }
  39.  
  40. public override void _ExitTree()
  41. {
  42. RemoveCustomType("ActivityObjectTemplate");
  43. RemoveCustomType("DungeonRoomTemplate");
  44. RemoveCustomType("ActivityMark");
  45. RemoveCustomType("EnemyMark");
  46. RemoveCustomType("WeaponMark");
  47.  
  48. if (dock != null)
  49. {
  50. RemoveControlFromDocks(dock);
  51. dock.Free();
  52. }
  53. }
  54. }
  55.  
  56. }
  57. #endif