diff --git a/godot/main/editor.gd b/godot/main/editor.gd index 169f987..62a15e2 100644 --- a/godot/main/editor.gd +++ b/godot/main/editor.gd @@ -31,6 +31,15 @@ func _ready(): $"%line_cursor".hide() # $"%building_type".connect("item_selected", self, "change_building_type") +var ignore_events = [ + "result:get_closest_building", + "mouse_drag", + "mouse_press", + "mouse_drag_on", + "mouse_drag_off", + "line_cursor_motion", + "button:create_building" +] func editor_event(evname: String, args: Array): print(evname, args) if evname == "mode_change_pre": @@ -48,10 +57,6 @@ func editor_event(evname: String, args: Array): $WorldEditor.editor_command("get_building_types", []) elif mode_next == 6: $WorldEditor.editor_command("get_lines_list", []) - elif evname == "result:get_closest_building": - pass -# print(evname, args) -# select_building(args[0], args[3], args[4]) elif evname == "result:get_building_types": print(evname, args) var btypes = args[0] @@ -63,17 +68,7 @@ func editor_event(evname: String, args: Array): $Area.global_transform.origin.z = $Camera.global_transform.origin.z # elif evname == "edit_update_building": # check_edit_building() - elif evname == "mouse_press": - pass -# mouse_press(args[0]) - elif evname == "mouse_drag": - pass -# mouse_drag(args[0]) - elif evname == "mouse_drag_on": - pass - elif evname == "mouse_drag_off": - pass - elif evname == "line_cursor_motion": + elif evname in ignore_events: pass else: breakpoint diff --git a/src/modules/stream/buildings_editor.cpp b/src/modules/stream/buildings_editor.cpp index b0d36f7..7b59028 100644 --- a/src/modules/stream/buildings_editor.cpp +++ b/src/modules/stream/buildings_editor.cpp @@ -6,6 +6,7 @@ #include #include #include +#include "from_string.h" #include "world_editor.h" #include "buildings_editor.h" @@ -53,6 +54,51 @@ protected: &HandleChangeBuildingType::change_building_type); } }; +class HandleButton : public Object { + GDCLASS(HandleButton, Object) + BuildingsEditor *editor; + String button_path; + String event_string; + Array event_args; + Button *get_button() + { + Button *button = editor->get_as_node