aboutsummaryrefslogtreecommitdiff
path: root/addons/voxel-core/voxel-core.gd
diff options
context:
space:
mode:
Diffstat (limited to 'addons/voxel-core/voxel-core.gd')
-rw-r--r--addons/voxel-core/voxel-core.gd168
1 files changed, 0 insertions, 168 deletions
diff --git a/addons/voxel-core/voxel-core.gd b/addons/voxel-core/voxel-core.gd
deleted file mode 100644
index 204771a..0000000
--- a/addons/voxel-core/voxel-core.gd
+++ /dev/null
@@ -1,168 +0,0 @@
-tool
-extends EditorPlugin
-
-
-
-## Enums
-enum VoxelCore {
- OTHER = -1,
- VOXEL_SET,
- VOXEL_OBJECT,
- VOXEL_MESH,
-}
-
-
-
-## Constants
-const VoxelObject := preload("res://addons/voxel-core/classes/voxel_object.gd")
-
-const VoxelSetEditor := preload("res://addons/voxel-core/engine/voxel_set_editor/voxel_set_editor.tscn")
-
-const VoxelObjectEditor := preload("res://addons/voxel-core/engine/voxel_object_editor/voxel_object_editor.tscn")
-
-
-
-## Private Variables
-var _current_main_scene : String
-
-var _handling_voxel_set : VoxelSet
-
-var _handling_voxel_object : VoxelObject
-
-var voxel_set_editor
-
-var voxel_object_editor
-
-var Meshes := preload("res://addons/voxel-core/engine/importers/meshes.gd").new()
-
-var VoxelObjects := preload("res://addons/voxel-core/engine/importers/voxel_objects.gd").new()
-
-var VoxelSets := preload("res://addons/voxel-core/engine/importers/voxel_sets.gd").new()
-
-
-
-## Built-In Virtual Methods
-func _enter_tree():
- add_import_plugin(Meshes)
- add_import_plugin(VoxelObjects)
- add_import_plugin(VoxelSets)
-
- connect("scene_closed", self, "_on_scene_closed")
- connect("main_screen_changed", self, "_on_main_screen_changed")
-
- print("Voxel-Core is active...")
-
-
-func _exit_tree():
- remove_import_plugin(Meshes)
- remove_import_plugin(VoxelObjects)
- remove_import_plugin(VoxelSets)
-
- close_voxel_set_editor()
- close_voxel_object_editor()
-
- print("Voxel-Core is inactive!")
-
-
-func handles(object : Object) -> bool:
-
- if _current_main_scene != "3D":
- close_voxel_object_editor()
- if is_instance_valid(_handling_voxel_object):
- var selections := get_editor_interface().get_selection().get_selected_nodes()
- if selections.size() != 1 or not selections.has(_handling_voxel_object):
- _handling_voxel_object = null
- close_voxel_object_editor()
-
- return true if typeof_voxel_core(object) > VoxelCore.OTHER else false
-
-
-func edit(object):
- match typeof_voxel_core(object):
- VoxelCore.VOXEL_SET:
- _handling_voxel_set = object
- if not is_instance_valid(voxel_object_editor) or not voxel_object_editor.is_editing():
- show_voxel_set_editor(object)
- return true
- VoxelCore.VOXEL_OBJECT:
- _handling_voxel_object = object
- if _current_main_scene == "3D":
- show_voxel_object_editor(object)
- return true
-
-
-func forward_spatial_gui_input(camera : Camera, event : InputEvent) -> bool:
- return voxel_object_editor.handle_input(camera, event) if is_instance_valid(voxel_object_editor) else false
-
-
-
-## Public Methods
-static func typeof_voxel_core(object : Object) -> int:
- var type_of = VoxelCore.OTHER
-
- if object is VoxelSet:
- type_of = VoxelCore.VOXEL_SET
- elif object is VoxelObject:
- type_of = VoxelCore.VOXEL_OBJECT
- elif object is VoxelMesh:
- type_of = VoxelCore.VOXEL_MESH
-
- return type_of
-
-
-func show_voxel_set_editor(voxel_set : VoxelSet) -> void:
- if not is_instance_valid(voxel_set_editor):
- voxel_set_editor = VoxelSetEditor.instance()
- voxel_set_editor.undo_redo = get_undo_redo()
- voxel_set_editor.connect("close", self, "close_voxel_set_editor")
- add_control_to_bottom_panel(voxel_set_editor, "VoxelSet")
- voxel_set_editor.voxel_set = voxel_set
- make_bottom_panel_item_visible(voxel_set_editor)
-
-
-func close_voxel_set_editor() -> void:
- if is_instance_valid(voxel_set_editor):
- remove_control_from_bottom_panel(voxel_set_editor)
- voxel_set_editor.queue_free()
- voxel_set_editor = null
-
-
-func show_voxel_object_editor(voxel_object : VoxelObject) -> void:
- if not is_instance_valid(voxel_object_editor):
- voxel_object_editor = VoxelObjectEditor.instance()
- voxel_object_editor.undo_redo = get_undo_redo()
- voxel_object_editor.connect("editing", self, "_on_voxel_object_editor_editing_toggled")
- voxel_object_editor.connect("close", self, "close_voxel_object_editor")
- add_control_to_bottom_panel(voxel_object_editor, "VoxelObject")
- voxel_object_editor.start_editing(voxel_object)
- make_bottom_panel_item_visible(voxel_object_editor)
-
-
-func close_voxel_object_editor() -> void:
- if is_instance_valid(voxel_object_editor):
- voxel_object_editor.stop_editing()
- remove_control_from_bottom_panel(voxel_object_editor)
- voxel_object_editor.queue_free()
- voxel_object_editor = null
-
-
-
-## Private Methods
-func _on_main_screen_changed(screen_name : String) -> void:
- _current_main_scene = screen_name
- if screen_name == "3D" and is_instance_valid(_handling_voxel_object):
- show_voxel_object_editor(_handling_voxel_object)
- else:
- close_voxel_object_editor()
-
-
-func _on_scene_closed(filepath : String) -> void:
- close_voxel_object_editor()
-
-
-func _on_voxel_object_editor_editing_toggled(toggled : bool) -> void:
- if is_instance_valid(voxel_object_editor) and voxel_object_editor.voxel_object == _handling_voxel_object:
- if toggled:
- get_editor_interface().get_selection().clear()
- else:
- get_editor_interface().get_selection().add_node(_handling_voxel_object)