Plugin.hx 733 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package arm;
  2. // ArmorPaint plugin API
  3. @:expose
  4. class Plugin {
  5. public static var plugins:Array<Plugin> = [];
  6. public var drawUI:zui.Zui->Void = null;
  7. public var draw:Void->Void = null;
  8. public var update:Void->Void = null;
  9. public static function keep() {}
  10. public function handle(ops: zui.Zui.HandleOptions = null) {
  11. return new zui.Zui.Handle(ops);
  12. }
  13. public function new() {
  14. plugins.push(this);
  15. }
  16. public function log(s) {
  17. trace(s);
  18. }
  19. public function scene() {
  20. return iron.Scene.active;
  21. }
  22. }
  23. // my_plugin.js
  24. // plugin = new arm.Plugin();
  25. // h = plugin.handle();
  26. // plugin.drawUI = function(ui) {
  27. // if (ui.panel(h, "My Plugin")) {
  28. // if (ui.button("Hello")) {
  29. // plugin.log("World");
  30. // }
  31. // }
  32. // }