mirror of
https://github.com/Relintai/world_generator_addon.git
synced 2024-11-19 20:47:19 +01:00
- Use EditorInspectors instead of custom properties.
- Make the properties a bit smaller by default in the world view.
- Now only the properties will grow on the right side in the Continent, SubZone, and Zone editors.
- Update world generator tab values when they become visible.
- The addon now needs engine version at least 4cc096a002
.
This commit is contained in:
parent
a9344fb743
commit
e1135e8b84
@ -33,6 +33,3 @@ func remove_content_entry(entry : WorldGenBaseResource) -> void:
|
|||||||
zones.remove(i)
|
zones.remove(i)
|
||||||
emit_changed()
|
emit_changed()
|
||||||
return
|
return
|
||||||
|
|
||||||
func setup_property_inspector(inspector) -> void:
|
|
||||||
.setup_property_inspector(inspector)
|
|
||||||
|
@ -2,6 +2,3 @@ tool
|
|||||||
extends "res://addons/world_generator/resources/world_gen_base_resource.gd"
|
extends "res://addons/world_generator/resources/world_gen_base_resource.gd"
|
||||||
class_name SubZoneProp
|
class_name SubZoneProp
|
||||||
|
|
||||||
func setup_property_inspector(inspector) -> void:
|
|
||||||
.setup_property_inspector(inspector)
|
|
||||||
|
|
||||||
|
@ -34,5 +34,3 @@ func remove_content_entry(entry : WorldGenBaseResource) -> void:
|
|||||||
emit_changed()
|
emit_changed()
|
||||||
return
|
return
|
||||||
|
|
||||||
func setup_property_inspector(inspector) -> void:
|
|
||||||
.setup_property_inspector(inspector)
|
|
||||||
|
@ -209,11 +209,3 @@ func editor_draw_additional_background(control : Control) -> void:
|
|||||||
|
|
||||||
func _editor_draw_additional_background(control : Control) -> void:
|
func _editor_draw_additional_background(control : Control) -> void:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func setup_property_inspector(inspector) -> void:
|
|
||||||
inspector.add_slot_line_edit("get_name", "set_name", "Name")
|
|
||||||
inspector.add_slot_rect2("get_rect", "set_rect", "Rect", 1)
|
|
||||||
inspector.add_slot_vector2i("get_min_size", "set_min_size", "Min Size", 1)
|
|
||||||
inspector.add_slot_vector2i("get_max_size", "set_max_size", "Max Size", 1)
|
|
||||||
inspector.add_slot_bool("get_locked", "set_locked", "Locked")
|
|
||||||
|
|
||||||
|
@ -34,9 +34,6 @@ func remove_content_entry(entry : WorldGenBaseResource) -> void:
|
|||||||
emit_changed()
|
emit_changed()
|
||||||
return
|
return
|
||||||
|
|
||||||
func setup_property_inspector(inspector) -> void:
|
|
||||||
.setup_property_inspector(inspector)
|
|
||||||
|
|
||||||
func generate_terra_chunk(chunk: TerrainChunk, pseed : int, spawn_mobs: bool) -> void:
|
func generate_terra_chunk(chunk: TerrainChunk, pseed : int, spawn_mobs: bool) -> void:
|
||||||
var p : Vector2 = Vector2(chunk.get_position_x(), chunk.get_position_z())
|
var p : Vector2 = Vector2(chunk.get_position_x(), chunk.get_position_z())
|
||||||
|
|
||||||
|
@ -33,6 +33,3 @@ func remove_content_entry(entry : WorldGenBaseResource) -> void:
|
|||||||
subzones.remove(i)
|
subzones.remove(i)
|
||||||
emit_changed()
|
emit_changed()
|
||||||
return
|
return
|
||||||
|
|
||||||
func setup_property_inspector(inspector) -> void:
|
|
||||||
.setup_property_inspector(inspector)
|
|
||||||
|
@ -1,540 +1,30 @@
|
|||||||
tool
|
tool
|
||||||
extends ScrollContainer
|
extends Container
|
||||||
|
|
||||||
var EditorResourceWidget : PackedScene = preload("res://addons/world_generator/widgets/EditorResourceWidget.tscn")
|
|
||||||
|
|
||||||
var _edited_resource : WorldGenBaseResource = null
|
var _edited_resource : WorldGenBaseResource = null
|
||||||
var properties : Array = Array()
|
|
||||||
|
|
||||||
var _ignore_changed_evend : bool = false
|
|
||||||
var _refresh_queued : bool = false
|
|
||||||
|
|
||||||
var _plugin : EditorPlugin = null
|
var _plugin : EditorPlugin = null
|
||||||
var _undo_redo : UndoRedo = null
|
var _undo_redo : UndoRedo = null
|
||||||
|
|
||||||
|
var _inspector : EditorInspector = null
|
||||||
|
|
||||||
func set_plugin(plugin : EditorPlugin) -> void:
|
func set_plugin(plugin : EditorPlugin) -> void:
|
||||||
_plugin = plugin
|
_plugin = plugin
|
||||||
_undo_redo = _plugin.get_undo_redo()
|
_undo_redo = _plugin.get_undo_redo()
|
||||||
|
|
||||||
func add_h_separator() -> int:
|
|
||||||
var hsep : HSeparator = HSeparator.new()
|
|
||||||
|
|
||||||
var content_node = $MainContainer/Content
|
|
||||||
|
|
||||||
content_node.add_child(hsep)
|
|
||||||
var slot_idx : int = content_node.get_child_count() - 1
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func add_slot_color(getter : String, setter : String) -> int:
|
|
||||||
var cp : ColorPickerButton = ColorPickerButton.new()
|
|
||||||
|
|
||||||
var slot_idx : int = add_slot(getter, setter, cp)
|
|
||||||
|
|
||||||
cp.color = _edited_resource.call(getter)
|
|
||||||
|
|
||||||
cp.connect("color_changed", _edited_resource, setter)
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func add_slot_label(getter : String, setter : String, slot_name : String) -> int:
|
|
||||||
var l : Label = Label.new()
|
|
||||||
|
|
||||||
l.text = slot_name
|
|
||||||
|
|
||||||
return add_slot(getter, setter, l)
|
|
||||||
|
|
||||||
func add_slot_resource(getter : String, setter : String, slot_name : String, resource_type : String = "Resource") -> int:
|
|
||||||
var bc : HBoxContainer = HBoxContainer.new()
|
|
||||||
bc.set_h_size_flags(SIZE_EXPAND_FILL)
|
|
||||||
|
|
||||||
var l : Label = Label.new()
|
|
||||||
l.text = slot_name
|
|
||||||
bc.add_child(l)
|
|
||||||
|
|
||||||
var r : Control = EditorResourceWidget.instance()
|
|
||||||
r.set_plugin(_plugin)
|
|
||||||
r.set_resource_type(resource_type)
|
|
||||||
r.set_resource(_edited_resource.call(getter))
|
|
||||||
r.set_h_size_flags(SIZE_EXPAND_FILL)
|
|
||||||
|
|
||||||
bc.add_child(r)
|
|
||||||
|
|
||||||
var slot_idx : int = add_slot(getter, setter, bc)
|
|
||||||
|
|
||||||
r.connect("on_resource_changed", self, "on_widget_resource_changed", [ slot_idx ])
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func add_slot_line_edit(getter : String, setter : String, slot_name : String, placeholder : String = "") -> int:
|
|
||||||
var bc : HBoxContainer = HBoxContainer.new()
|
|
||||||
bc.set_h_size_flags(SIZE_EXPAND_FILL)
|
|
||||||
|
|
||||||
var l : Label = Label.new()
|
|
||||||
l.text = slot_name
|
|
||||||
bc.add_child(l)
|
|
||||||
|
|
||||||
var le : LineEdit = LineEdit.new()
|
|
||||||
le.placeholder_text = placeholder
|
|
||||||
le.set_h_size_flags(SIZE_EXPAND_FILL)
|
|
||||||
bc.add_child(le)
|
|
||||||
|
|
||||||
var slot_idx : int = add_slot(getter, setter, bc)
|
|
||||||
|
|
||||||
le.text = _edited_resource.call(getter)
|
|
||||||
|
|
||||||
le.connect("text_entered", self, "on_slot_line_edit_text_entered", [ slot_idx ])
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func add_slot_enum(getter : String, setter : String, slot_name : String, values : Array) -> int:
|
|
||||||
var bc : VBoxContainer = VBoxContainer.new()
|
|
||||||
|
|
||||||
if slot_name:
|
|
||||||
var l : Label = Label.new()
|
|
||||||
l.text = slot_name
|
|
||||||
bc.add_child(l)
|
|
||||||
|
|
||||||
var mb : OptionButton = OptionButton.new()
|
|
||||||
|
|
||||||
for v in values:
|
|
||||||
mb.add_item(v)
|
|
||||||
|
|
||||||
bc.add_child(mb)
|
|
||||||
|
|
||||||
var slot_idx : int = add_slot(getter, setter, bc)
|
|
||||||
|
|
||||||
mb.selected = _edited_resource.call(getter)
|
|
||||||
|
|
||||||
mb.connect("item_selected", self, "on_slot_enum_item_selected", [ slot_idx ])
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func add_slot_int(getter : String, setter : String, slot_name : String, prange : Vector2 = Vector2(-1000, 1000)) -> int:
|
|
||||||
var bc : HBoxContainer = HBoxContainer.new()
|
|
||||||
|
|
||||||
var l : Label = Label.new()
|
|
||||||
l.text = slot_name
|
|
||||||
# l.size_flags_horizontal = SIZE_EXPAND_FILL
|
|
||||||
bc.add_child(l)
|
|
||||||
|
|
||||||
var sb : SpinBox = SpinBox.new()
|
|
||||||
sb.rounded = true
|
|
||||||
sb.min_value = prange.x
|
|
||||||
sb.max_value = prange.y
|
|
||||||
sb.set_h_size_flags(SIZE_EXPAND_FILL)
|
|
||||||
bc.add_child(sb)
|
|
||||||
|
|
||||||
var slot_idx : int = add_slot(getter, setter, bc)
|
|
||||||
|
|
||||||
sb.value = _edited_resource.call(getter)
|
|
||||||
|
|
||||||
sb.connect("value_changed", self, "on_int_spinbox_value_changed", [ slot_idx ])
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func add_slot_bool(getter : String, setter : String, slot_name : String) -> int:
|
|
||||||
var cb : CheckBox = CheckBox.new()
|
|
||||||
cb.text = slot_name
|
|
||||||
|
|
||||||
var slot_idx : int = add_slot(getter, setter, cb)
|
|
||||||
|
|
||||||
cb.pressed = _edited_resource.call(getter)
|
|
||||||
|
|
||||||
cb.connect("toggled", self, "on_checkbox_value_changed", [ slot_idx ])
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func add_slot_float(getter : String, setter : String, slot_name : String, step : float = 0.1, prange : Vector2 = Vector2(-1000, 1000)) -> int:
|
|
||||||
var bc : HBoxContainer = HBoxContainer.new()
|
|
||||||
|
|
||||||
var l : Label = Label.new()
|
|
||||||
l.text = slot_name
|
|
||||||
# l.size_flags_horizontal = SIZE_EXPAND_FILL
|
|
||||||
bc.add_child(l)
|
|
||||||
|
|
||||||
var sb : SpinBox = SpinBox.new()
|
|
||||||
bc.add_child(sb)
|
|
||||||
|
|
||||||
var slot_idx : int = add_slot(getter, setter, bc)
|
|
||||||
sb.rounded = false
|
|
||||||
sb.step = step
|
|
||||||
sb.min_value = prange.x
|
|
||||||
sb.max_value = prange.y
|
|
||||||
sb.value = _edited_resource.call(getter)
|
|
||||||
sb.set_h_size_flags(SIZE_EXPAND_FILL)
|
|
||||||
|
|
||||||
sb.connect("value_changed", self, "on_float_spinbox_value_changed", [ slot_idx ])
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func add_slot_vector2(getter : String, setter : String, slot_name : String, step : float = 0.1, prange : Vector2 = Vector2(-1000, 1000)) -> int:
|
|
||||||
var bc : VBoxContainer = VBoxContainer.new()
|
|
||||||
|
|
||||||
var l : Label = Label.new()
|
|
||||||
l.text = slot_name
|
|
||||||
bc.add_child(l)
|
|
||||||
|
|
||||||
var sbx : SpinBox = SpinBox.new()
|
|
||||||
bc.add_child(sbx)
|
|
||||||
|
|
||||||
var sby : SpinBox = SpinBox.new()
|
|
||||||
bc.add_child(sby)
|
|
||||||
|
|
||||||
var slot_idx : int = add_slot(getter, setter, bc)
|
|
||||||
sbx.rounded = false
|
|
||||||
sby.rounded = false
|
|
||||||
sbx.step = step
|
|
||||||
sby.step = step
|
|
||||||
sbx.min_value = prange.x
|
|
||||||
sbx.max_value = prange.y
|
|
||||||
sby.min_value = prange.x
|
|
||||||
sby.max_value = prange.y
|
|
||||||
|
|
||||||
var val : Vector2 = _edited_resource.call(getter)
|
|
||||||
|
|
||||||
sbx.value = val.x
|
|
||||||
sby.value = val.y
|
|
||||||
|
|
||||||
sbx.connect("value_changed", self, "on_vector2_spinbox_value_changed", [ slot_idx, sbx, sby ])
|
|
||||||
sby.connect("value_changed", self, "on_vector2_spinbox_value_changed", [ slot_idx, sbx, sby ])
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func add_slot_vector3(getter : String, setter : String, slot_name : String, step : float = 0.1, prange : Vector2 = Vector2(-1000, 1000)) -> int:
|
|
||||||
var bc : VBoxContainer = VBoxContainer.new()
|
|
||||||
|
|
||||||
var l : Label = Label.new()
|
|
||||||
l.text = slot_name
|
|
||||||
bc.add_child(l)
|
|
||||||
|
|
||||||
var sbx : SpinBox = SpinBox.new()
|
|
||||||
bc.add_child(sbx)
|
|
||||||
|
|
||||||
var sby : SpinBox = SpinBox.new()
|
|
||||||
bc.add_child(sby)
|
|
||||||
|
|
||||||
var sbz : SpinBox = SpinBox.new()
|
|
||||||
bc.add_child(sbz)
|
|
||||||
|
|
||||||
var slot_idx : int = add_slot(getter, setter, bc)
|
|
||||||
sbx.rounded = false
|
|
||||||
sby.rounded = false
|
|
||||||
sbz.rounded = false
|
|
||||||
sbx.step = step
|
|
||||||
sby.step = step
|
|
||||||
sbz.step = step
|
|
||||||
sbx.min_value = prange.x
|
|
||||||
sbx.max_value = prange.y
|
|
||||||
sby.min_value = prange.x
|
|
||||||
sby.max_value = prange.y
|
|
||||||
sbz.min_value = prange.x
|
|
||||||
sbz.max_value = prange.y
|
|
||||||
|
|
||||||
var val : Vector3 = _edited_resource.call(getter)
|
|
||||||
|
|
||||||
sbx.value = val.x
|
|
||||||
sby.value = val.y
|
|
||||||
sbz.value = val.z
|
|
||||||
|
|
||||||
sbx.connect("value_changed", self, "on_vector3_spinbox_value_changed", [ slot_idx, sbx, sby, sbz ])
|
|
||||||
sby.connect("value_changed", self, "on_vector3_spinbox_value_changed", [ slot_idx, sbx, sby, sbz ])
|
|
||||||
sbz.connect("value_changed", self, "on_vector3_spinbox_value_changed", [ slot_idx, sbx, sby, sbz ])
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
|
|
||||||
func add_slot_rect2(getter : String, setter : String, slot_name : String, step : float = 0.1, prange : Vector2 = Vector2(-10000, 10000)) -> int:
|
|
||||||
var bc : VBoxContainer = VBoxContainer.new()
|
|
||||||
bc.size_flags_horizontal = SIZE_EXPAND_FILL
|
|
||||||
|
|
||||||
var l : Label = Label.new()
|
|
||||||
l.text = slot_name
|
|
||||||
bc.add_child(l)
|
|
||||||
|
|
||||||
var hc1 : HBoxContainer = HBoxContainer.new()
|
|
||||||
hc1.size_flags_horizontal = SIZE_EXPAND_FILL
|
|
||||||
bc.add_child(hc1)
|
|
||||||
|
|
||||||
var sbx : SpinBox = SpinBox.new()
|
|
||||||
sbx.size_flags_horizontal = SIZE_EXPAND_FILL
|
|
||||||
hc1.add_child(sbx)
|
|
||||||
|
|
||||||
var sby : SpinBox = SpinBox.new()
|
|
||||||
sby.size_flags_horizontal = SIZE_EXPAND_FILL
|
|
||||||
hc1.add_child(sby)
|
|
||||||
|
|
||||||
var hc2 : HBoxContainer = HBoxContainer.new()
|
|
||||||
hc2.size_flags_horizontal = SIZE_EXPAND_FILL
|
|
||||||
bc.add_child(hc2)
|
|
||||||
|
|
||||||
var sbw : SpinBox = SpinBox.new()
|
|
||||||
sbw.size_flags_horizontal = SIZE_EXPAND_FILL
|
|
||||||
hc2.add_child(sbw)
|
|
||||||
|
|
||||||
var sbh : SpinBox = SpinBox.new()
|
|
||||||
sbh.size_flags_horizontal = SIZE_EXPAND_FILL
|
|
||||||
hc2.add_child(sbh)
|
|
||||||
|
|
||||||
var slot_idx : int = add_slot(getter, setter, bc)
|
|
||||||
sbx.rounded = false
|
|
||||||
sby.rounded = false
|
|
||||||
sbw.rounded = false
|
|
||||||
sbh.rounded = false
|
|
||||||
sbx.step = step
|
|
||||||
sby.step = step
|
|
||||||
sbw.step = step
|
|
||||||
sbh.step = step
|
|
||||||
sbx.min_value = prange.x
|
|
||||||
sbx.max_value = prange.y
|
|
||||||
sby.min_value = prange.x
|
|
||||||
sby.max_value = prange.y
|
|
||||||
sbw.min_value = prange.x
|
|
||||||
sbw.max_value = prange.y
|
|
||||||
sbh.min_value = prange.x
|
|
||||||
sbh.max_value = prange.y
|
|
||||||
|
|
||||||
var val : Rect2 = _edited_resource.call(getter)
|
|
||||||
|
|
||||||
sbx.value = val.position.x
|
|
||||||
sby.value = val.position.y
|
|
||||||
sbw.value = val.size.x
|
|
||||||
sbh.value = val.size.y
|
|
||||||
|
|
||||||
sbx.connect("value_changed", self, "on_rect2_spinbox_value_changed", [ slot_idx, [ sbx, sby, sbw, sbh ] ])
|
|
||||||
sby.connect("value_changed", self, "on_rect2_spinbox_value_changed", [ slot_idx, [ sbx, sby, sbw, sbh ] ])
|
|
||||||
sbw.connect("value_changed", self, "on_rect2_spinbox_value_changed", [ slot_idx, [ sbx, sby, sbw, sbh ] ])
|
|
||||||
sbh.connect("value_changed", self, "on_rect2_spinbox_value_changed", [ slot_idx, [ sbx, sby, sbw, sbh ] ])
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func add_slot_vector2i(getter : String, setter : String, slot_name : String, step : int = 1, prange : Vector2i = Vector2i(-1000000, 1000000)) -> int:
|
|
||||||
var bc : VBoxContainer = VBoxContainer.new()
|
|
||||||
|
|
||||||
var l : Label = Label.new()
|
|
||||||
l.text = slot_name
|
|
||||||
bc.add_child(l)
|
|
||||||
|
|
||||||
var sbx : SpinBox = SpinBox.new()
|
|
||||||
bc.add_child(sbx)
|
|
||||||
|
|
||||||
var sby : SpinBox = SpinBox.new()
|
|
||||||
bc.add_child(sby)
|
|
||||||
|
|
||||||
var slot_idx : int = add_slot(getter, setter, bc)
|
|
||||||
sbx.rounded = true
|
|
||||||
sby.rounded = true
|
|
||||||
sbx.step = step
|
|
||||||
sby.step = step
|
|
||||||
sbx.min_value = prange.x
|
|
||||||
sbx.max_value = prange.y
|
|
||||||
sby.min_value = prange.x
|
|
||||||
sby.max_value = prange.y
|
|
||||||
|
|
||||||
var val : Vector2 = _edited_resource.call(getter)
|
|
||||||
|
|
||||||
sbx.value = val.x
|
|
||||||
sby.value = val.y
|
|
||||||
|
|
||||||
sbx.connect("value_changed", self, "on_vector2i_spinbox_value_changed", [ slot_idx, sbx, sby ])
|
|
||||||
sby.connect("value_changed", self, "on_vector2i_spinbox_value_changed", [ slot_idx, sbx, sby ])
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func add_slot(getter : String, setter : String, control : Control) -> int:
|
|
||||||
var content_node = $MainContainer/Content
|
|
||||||
|
|
||||||
content_node.add_child(control)
|
|
||||||
var child_idx : int = content_node.get_child_count() - 1
|
|
||||||
|
|
||||||
var arr : Array = Array()
|
|
||||||
|
|
||||||
arr.append(child_idx)
|
|
||||||
arr.append(getter)
|
|
||||||
arr.append(setter)
|
|
||||||
arr.append(control)
|
|
||||||
|
|
||||||
properties.append(arr)
|
|
||||||
|
|
||||||
var slot_idx : int = properties.size() - 1
|
|
||||||
|
|
||||||
return slot_idx
|
|
||||||
|
|
||||||
func get_property_control(slot_idx : int) -> Node:
|
|
||||||
return properties[slot_idx][3]
|
|
||||||
|
|
||||||
func on_int_spinbox_value_changed(val : float, slot_idx) -> void:
|
|
||||||
_ignore_changed_evend = true
|
|
||||||
|
|
||||||
#_edited_resource.call(properties[slot_idx][2], int(val))
|
|
||||||
|
|
||||||
_undo_redo.create_action("WE: Set Value")
|
|
||||||
_undo_redo.add_do_method(_edited_resource, properties[slot_idx][2], int(val))
|
|
||||||
_undo_redo.add_undo_method(_edited_resource, properties[slot_idx][2], _edited_resource.call(properties[slot_idx][1]))
|
|
||||||
_undo_redo.commit_action()
|
|
||||||
|
|
||||||
_ignore_changed_evend = false
|
|
||||||
|
|
||||||
func on_checkbox_value_changed(val : bool, slot_idx) -> void:
|
|
||||||
_ignore_changed_evend = true
|
|
||||||
|
|
||||||
#_edited_resource.call(properties[slot_idx][2], val)
|
|
||||||
|
|
||||||
_undo_redo.create_action("WE: Set Value")
|
|
||||||
_undo_redo.add_do_method(_edited_resource, properties[slot_idx][2], val)
|
|
||||||
_undo_redo.add_undo_method(_edited_resource, properties[slot_idx][2], _edited_resource.call(properties[slot_idx][1]))
|
|
||||||
_undo_redo.commit_action()
|
|
||||||
|
|
||||||
_ignore_changed_evend = false
|
|
||||||
|
|
||||||
func on_float_spinbox_value_changed(val : float, slot_idx) -> void:
|
|
||||||
_ignore_changed_evend = true
|
|
||||||
|
|
||||||
#_edited_resource.call(properties[slot_idx][2], val)
|
|
||||||
|
|
||||||
_undo_redo.create_action("WE: Set Value")
|
|
||||||
_undo_redo.add_do_method(_edited_resource, properties[slot_idx][2], val)
|
|
||||||
_undo_redo.add_undo_method(_edited_resource, properties[slot_idx][2], _edited_resource.call(properties[slot_idx][1]))
|
|
||||||
_undo_redo.commit_action()
|
|
||||||
|
|
||||||
_ignore_changed_evend = false
|
|
||||||
|
|
||||||
func on_vector2_spinbox_value_changed(val : float, slot_idx, spinbox_x, spinbox_y) -> void:
|
|
||||||
_ignore_changed_evend = true
|
|
||||||
var vv : Vector2 = Vector2(spinbox_x.value, spinbox_y.value)
|
|
||||||
|
|
||||||
#_edited_resource.call(properties[slot_idx][2], vv)
|
|
||||||
|
|
||||||
_undo_redo.create_action("WE: Set Value")
|
|
||||||
_undo_redo.add_do_method(_edited_resource, properties[slot_idx][2], vv)
|
|
||||||
_undo_redo.add_undo_method(_edited_resource, properties[slot_idx][2], _edited_resource.call(properties[slot_idx][1]))
|
|
||||||
_undo_redo.commit_action()
|
|
||||||
|
|
||||||
_ignore_changed_evend = false
|
|
||||||
|
|
||||||
func on_vector3_spinbox_value_changed(val : float, slot_idx, spinbox_x, spinbox_y, spinbox_z) -> void:
|
|
||||||
_ignore_changed_evend = true
|
|
||||||
var vv : Vector3 = Vector3(spinbox_x.value, spinbox_y.value, spinbox_z.value)
|
|
||||||
|
|
||||||
#_edited_resource.call(properties[slot_idx][2], vv)
|
|
||||||
|
|
||||||
_undo_redo.create_action("WE: Set Value")
|
|
||||||
_undo_redo.add_do_method(_edited_resource, properties[slot_idx][2], vv)
|
|
||||||
_undo_redo.add_undo_method(_edited_resource, properties[slot_idx][2], _edited_resource.call(properties[slot_idx][1]))
|
|
||||||
_undo_redo.commit_action()
|
|
||||||
|
|
||||||
_ignore_changed_evend = false
|
|
||||||
|
|
||||||
func on_rect2_spinbox_value_changed(val : float, slot_idx, spinboxes) -> void:
|
|
||||||
_ignore_changed_evend = true
|
|
||||||
var vv : Rect2 = Rect2(spinboxes[0].value, spinboxes[1].value, spinboxes[2].value, spinboxes[3].value)
|
|
||||||
|
|
||||||
#_edited_resource.call(properties[slot_idx][2], vv)
|
|
||||||
|
|
||||||
_undo_redo.create_action("WE: Set Value")
|
|
||||||
_undo_redo.add_do_method(_edited_resource, properties[slot_idx][2], vv)
|
|
||||||
_undo_redo.add_undo_method(_edited_resource, properties[slot_idx][2], _edited_resource.call(properties[slot_idx][1]))
|
|
||||||
_undo_redo.commit_action()
|
|
||||||
|
|
||||||
_ignore_changed_evend = false
|
|
||||||
|
|
||||||
func on_vector2i_spinbox_value_changed(val : float, slot_idx, spinbox_x, spinbox_y) -> void:
|
|
||||||
_ignore_changed_evend = true
|
|
||||||
var vv : Vector2i = Vector2i(spinbox_x.value, spinbox_y.value)
|
|
||||||
|
|
||||||
#_edited_resource.call(properties[slot_idx][2], vv)
|
|
||||||
|
|
||||||
_undo_redo.create_action("WE: Set Value")
|
|
||||||
_undo_redo.add_do_method(_edited_resource, properties[slot_idx][2], vv)
|
|
||||||
_undo_redo.add_undo_method(_edited_resource, properties[slot_idx][2], _edited_resource.call(properties[slot_idx][1]))
|
|
||||||
_undo_redo.commit_action()
|
|
||||||
|
|
||||||
_ignore_changed_evend = false
|
|
||||||
|
|
||||||
func on_slot_enum_item_selected(val : int, slot_idx : int) -> void:
|
|
||||||
_ignore_changed_evend = true
|
|
||||||
#_edited_resource.call(properties[slot_idx][2], val)
|
|
||||||
|
|
||||||
_undo_redo.create_action("WE: Set Value")
|
|
||||||
_undo_redo.add_do_method(_edited_resource, properties[slot_idx][2], val)
|
|
||||||
_undo_redo.add_undo_method(_edited_resource, properties[slot_idx][2], _edited_resource.call(properties[slot_idx][1]))
|
|
||||||
_undo_redo.commit_action()
|
|
||||||
|
|
||||||
_ignore_changed_evend = false
|
|
||||||
|
|
||||||
func on_slot_line_edit_text_entered(text : String, slot_idx : int) -> void:
|
|
||||||
_ignore_changed_evend = true
|
|
||||||
#_edited_resource.call(properties[slot_idx][2], text)
|
|
||||||
|
|
||||||
_undo_redo.create_action("WE: Set Value")
|
|
||||||
_undo_redo.add_do_method(_edited_resource, properties[slot_idx][2], text)
|
|
||||||
_undo_redo.add_undo_method(_edited_resource, properties[slot_idx][2], _edited_resource.call(properties[slot_idx][1]))
|
|
||||||
_undo_redo.commit_action()
|
|
||||||
|
|
||||||
_ignore_changed_evend = false
|
|
||||||
|
|
||||||
func on_widget_resource_changed(res : Resource, slot_idx : int) -> void:
|
|
||||||
_ignore_changed_evend = true
|
|
||||||
#_edited_resource.call(properties[slot_idx][2], res)
|
|
||||||
|
|
||||||
_undo_redo.create_action("WE: Set Value")
|
|
||||||
_undo_redo.add_do_method(_edited_resource, properties[slot_idx][2], res)
|
|
||||||
_undo_redo.add_undo_method(_edited_resource, properties[slot_idx][2], _edited_resource.call(properties[slot_idx][1]))
|
|
||||||
_undo_redo.commit_action()
|
|
||||||
|
|
||||||
_ignore_changed_evend = false
|
|
||||||
|
|
||||||
func clear() -> void:
|
|
||||||
properties.clear()
|
|
||||||
|
|
||||||
var content_node = $MainContainer/Content
|
|
||||||
|
|
||||||
if !content_node:
|
|
||||||
return
|
|
||||||
|
|
||||||
for c in content_node.get_children():
|
|
||||||
c.queue_free()
|
|
||||||
content_node.remove_child(c)
|
|
||||||
|
|
||||||
func refresh() -> void:
|
func refresh() -> void:
|
||||||
clear()
|
if !_inspector:
|
||||||
|
_inspector = EditorInspector.new()
|
||||||
|
$MainContainer.add_child(_inspector)
|
||||||
|
_inspector.set_h_size_flags(SIZE_EXPAND_FILL)
|
||||||
|
_inspector.set_v_size_flags(SIZE_EXPAND_FILL)
|
||||||
|
_inspector.set_hide_script(false)
|
||||||
|
|
||||||
var cls_str : String = "[none]"
|
if _inspector.get_edited_object() != _edited_resource:
|
||||||
var script_str : String = "[none]"
|
_inspector.edit(_edited_resource)
|
||||||
|
else:
|
||||||
if _edited_resource:
|
_inspector.refresh()
|
||||||
cls_str = _edited_resource.get_class()
|
|
||||||
|
|
||||||
var scr = _edited_resource.get_script()
|
|
||||||
|
|
||||||
if scr:
|
|
||||||
script_str = scr.resource_path
|
|
||||||
|
|
||||||
_edited_resource.setup_property_inspector(self)
|
|
||||||
|
|
||||||
$MainContainer/HBoxContainer/ClassLE.text = cls_str
|
|
||||||
$MainContainer/HBoxContainer2/ScriptLE.text = script_str
|
|
||||||
|
|
||||||
_refresh_queued = false
|
|
||||||
|
|
||||||
func edit_resource(wgw) -> void:
|
func edit_resource(wgw) -> void:
|
||||||
if _edited_resource:
|
|
||||||
_edited_resource.disconnect("changed", self, "on_edited_resource_changed")
|
|
||||||
|
|
||||||
_edited_resource = wgw
|
_edited_resource = wgw
|
||||||
|
|
||||||
#if !_edited_resource.is_connected("changed", self, "on_edited_resource_changed"):
|
|
||||||
if _edited_resource:
|
|
||||||
_edited_resource.connect("changed", self, "on_edited_resource_changed")
|
|
||||||
|
|
||||||
refresh()
|
refresh()
|
||||||
|
|
||||||
func on_edited_resource_changed() -> void:
|
|
||||||
if _ignore_changed_evend:
|
|
||||||
return
|
|
||||||
|
|
||||||
if _refresh_queued:
|
|
||||||
return
|
|
||||||
|
|
||||||
_refresh_queued = true
|
|
||||||
call_deferred("refresh")
|
|
||||||
|
@ -2,19 +2,17 @@
|
|||||||
|
|
||||||
[ext_resource path="res://addons/world_generator/ui/ResourcePropertyList.gd" type="Script" id=1]
|
[ext_resource path="res://addons/world_generator/ui/ResourcePropertyList.gd" type="Script" id=1]
|
||||||
|
|
||||||
[node name="ResourcePropertyList" type="ScrollContainer"]
|
[node name="ResourcePropertyList" type="MarginContainer"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
rect_min_size = Vector2( 100, 0 )
|
rect_min_size = Vector2( 250, 0 )
|
||||||
scroll_horizontal_enabled = false
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="MainContainer" type="VBoxContainer" parent="."]
|
[node name="MainContainer" type="VBoxContainer" parent="."]
|
||||||
margin_right = 1024.0
|
margin_right = 1024.0
|
||||||
margin_bottom = 90.0
|
margin_bottom = 600.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="MainContainer"]
|
[node name="Label" type="Label" parent="MainContainer"]
|
||||||
@ -28,54 +26,3 @@ valign = 1
|
|||||||
margin_top = 18.0
|
margin_top = 18.0
|
||||||
margin_right = 1024.0
|
margin_right = 1024.0
|
||||||
margin_bottom = 22.0
|
margin_bottom = 22.0
|
||||||
|
|
||||||
[node name="Content" type="VBoxContainer" parent="MainContainer"]
|
|
||||||
margin_top = 26.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 26.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
|
|
||||||
[node name="HSeparator2" type="HSeparator" parent="MainContainer"]
|
|
||||||
margin_top = 30.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 34.0
|
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="MainContainer"]
|
|
||||||
margin_top = 38.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 62.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="MainContainer/HBoxContainer"]
|
|
||||||
margin_top = 5.0
|
|
||||||
margin_right = 37.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
text = "Class "
|
|
||||||
valign = 1
|
|
||||||
|
|
||||||
[node name="ClassLE" type="LineEdit" parent="MainContainer/HBoxContainer"]
|
|
||||||
margin_left = 41.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
editable = false
|
|
||||||
|
|
||||||
[node name="HBoxContainer2" type="HBoxContainer" parent="MainContainer"]
|
|
||||||
margin_top = 66.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 90.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="MainContainer/HBoxContainer2"]
|
|
||||||
margin_top = 5.0
|
|
||||||
margin_right = 36.0
|
|
||||||
margin_bottom = 19.0
|
|
||||||
text = "Script"
|
|
||||||
valign = 1
|
|
||||||
|
|
||||||
[node name="ScriptLE" type="LineEdit" parent="MainContainer/HBoxContainer2"]
|
|
||||||
margin_left = 40.0
|
|
||||||
margin_right = 1024.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
editable = false
|
|
||||||
|
@ -27,3 +27,8 @@ func set_wgworld(wgw : WorldGenWorld) -> void:
|
|||||||
|
|
||||||
func on_request_item_edit(resource : WorldGenBaseResource) -> void:
|
func on_request_item_edit(resource : WorldGenBaseResource) -> void:
|
||||||
emit_signal("request_item_edit", resource)
|
emit_signal("request_item_edit", resource)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_World_visibility_changed() -> void:
|
||||||
|
if visible:
|
||||||
|
refresh()
|
||||||
|
@ -76,3 +76,7 @@ func on_item_selected(idx : int) -> void:
|
|||||||
func on_request_item_edit(resource : WorldGenBaseResource) -> void:
|
func on_request_item_edit(resource : WorldGenBaseResource) -> void:
|
||||||
emit_signal("request_item_edit", edited_continent, resource)
|
emit_signal("request_item_edit", edited_continent, resource)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Continent_visibility_changed() -> void:
|
||||||
|
if visible:
|
||||||
|
refresh()
|
||||||
|
@ -11,9 +11,6 @@ anchor_bottom = 1.0
|
|||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="HSplitContainer" type="HSplitContainer" parent="."]
|
[node name="HSplitContainer" type="HSplitContainer" parent="."]
|
||||||
margin_right = 1024.0
|
margin_right = 1024.0
|
||||||
@ -23,22 +20,22 @@ size_flags_horizontal = 3
|
|||||||
[node name="RectEditor" parent="HSplitContainer" instance=ExtResource( 4 )]
|
[node name="RectEditor" parent="HSplitContainer" instance=ExtResource( 4 )]
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_right = 735.0
|
margin_right = 585.0
|
||||||
margin_bottom = 600.0
|
margin_bottom = 600.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer"]
|
||||||
margin_left = 747.0
|
margin_left = 597.0
|
||||||
margin_right = 1024.0
|
margin_right = 1024.0
|
||||||
margin_bottom = 600.0
|
margin_bottom = 600.0
|
||||||
|
|
||||||
[node name="OptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
[node name="OptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 20.0
|
margin_bottom = 20.0
|
||||||
|
|
||||||
[node name="HBoxContainer2" type="HBoxContainer" parent="HSplitContainer/VBoxContainer"]
|
[node name="HBoxContainer2" type="HBoxContainer" parent="HSplitContainer/VBoxContainer"]
|
||||||
margin_top = 24.0
|
margin_top = 24.0
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 600.0
|
margin_bottom = 600.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
@ -46,16 +43,13 @@ size_flags_vertical = 3
|
|||||||
[node name="ResourcePropertyList" parent="HSplitContainer/VBoxContainer/HBoxContainer2" instance=ExtResource( 2 )]
|
[node name="ResourcePropertyList" parent="HSplitContainer/VBoxContainer/HBoxContainer2" instance=ExtResource( 2 )]
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_right = 100.0
|
margin_right = 250.0
|
||||||
margin_bottom = 576.0
|
margin_bottom = 576.0
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 3
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/VBoxContainer/HBoxContainer2"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/VBoxContainer/HBoxContainer2"]
|
||||||
margin_left = 104.0
|
margin_left = 254.0
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 576.0
|
margin_bottom = 576.0
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer"]
|
[node name="Label" type="Label" parent="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer"]
|
||||||
@ -95,6 +89,7 @@ margin_right = 173.0
|
|||||||
margin_bottom = 576.0
|
margin_bottom = 576.0
|
||||||
class_types = 1
|
class_types = 1
|
||||||
|
|
||||||
|
[connection signal="visibility_changed" from="." to="." method="_on_Continent_visibility_changed"]
|
||||||
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/AddButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="add_button_pressed"]
|
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/AddButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="add_button_pressed"]
|
||||||
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/DeleteButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="delete_button_pressed"]
|
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/DeleteButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="delete_button_pressed"]
|
||||||
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/Duplicate" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="duplicate_button_pressed"]
|
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/Duplicate" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="duplicate_button_pressed"]
|
||||||
|
@ -166,3 +166,7 @@ func on_sub_zone_item_selected(idx : int) -> void:
|
|||||||
func on_request_item_edit(resource : WorldGenBaseResource) -> void:
|
func on_request_item_edit(resource : WorldGenBaseResource) -> void:
|
||||||
emit_signal("request_item_edit", edited_continent, edited_zone, edited_sub_zone, resource)
|
emit_signal("request_item_edit", edited_continent, edited_zone, edited_sub_zone, resource)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_SubZone_visibility_changed() -> void:
|
||||||
|
if visible:
|
||||||
|
refresh()
|
||||||
|
@ -20,32 +20,32 @@ size_flags_horizontal = 3
|
|||||||
[node name="RectEditor" parent="HSplitContainer" instance=ExtResource( 4 )]
|
[node name="RectEditor" parent="HSplitContainer" instance=ExtResource( 4 )]
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_right = 735.0
|
margin_right = 585.0
|
||||||
margin_bottom = 600.0
|
margin_bottom = 600.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer"]
|
||||||
margin_left = 747.0
|
margin_left = 597.0
|
||||||
margin_right = 1024.0
|
margin_right = 1024.0
|
||||||
margin_bottom = 600.0
|
margin_bottom = 600.0
|
||||||
|
|
||||||
[node name="ContinentOptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
[node name="ContinentOptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 20.0
|
margin_bottom = 20.0
|
||||||
|
|
||||||
[node name="ZoneOptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
[node name="ZoneOptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
||||||
margin_top = 24.0
|
margin_top = 24.0
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 44.0
|
margin_bottom = 44.0
|
||||||
|
|
||||||
[node name="SubZoneOptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
[node name="SubZoneOptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
||||||
margin_top = 48.0
|
margin_top = 48.0
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 68.0
|
margin_bottom = 68.0
|
||||||
|
|
||||||
[node name="HBoxContainer2" type="HBoxContainer" parent="HSplitContainer/VBoxContainer"]
|
[node name="HBoxContainer2" type="HBoxContainer" parent="HSplitContainer/VBoxContainer"]
|
||||||
margin_top = 72.0
|
margin_top = 72.0
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 600.0
|
margin_bottom = 600.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
@ -53,16 +53,13 @@ size_flags_vertical = 3
|
|||||||
[node name="ResourcePropertyList" parent="HSplitContainer/VBoxContainer/HBoxContainer2" instance=ExtResource( 2 )]
|
[node name="ResourcePropertyList" parent="HSplitContainer/VBoxContainer/HBoxContainer2" instance=ExtResource( 2 )]
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_right = 100.0
|
margin_right = 250.0
|
||||||
margin_bottom = 528.0
|
margin_bottom = 528.0
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 3
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/VBoxContainer/HBoxContainer2"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/VBoxContainer/HBoxContainer2"]
|
||||||
margin_left = 104.0
|
margin_left = 254.0
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 528.0
|
margin_bottom = 528.0
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer"]
|
[node name="Label" type="Label" parent="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer"]
|
||||||
@ -102,6 +99,7 @@ margin_right = 173.0
|
|||||||
margin_bottom = 528.0
|
margin_bottom = 528.0
|
||||||
class_types = 3
|
class_types = 3
|
||||||
|
|
||||||
|
[connection signal="visibility_changed" from="." to="." method="_on_SubZone_visibility_changed"]
|
||||||
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/AddButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="add_button_pressed"]
|
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/AddButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="add_button_pressed"]
|
||||||
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/DeleteButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="delete_button_pressed"]
|
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/DeleteButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="delete_button_pressed"]
|
||||||
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/Duplicate" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="duplicate_button_pressed"]
|
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/Duplicate" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="duplicate_button_pressed"]
|
||||||
|
@ -18,18 +18,19 @@ script = ExtResource( 5 )
|
|||||||
margin_right = 839.0
|
margin_right = 839.0
|
||||||
margin_bottom = 564.0
|
margin_bottom = 564.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
split_offset = 180
|
||||||
|
|
||||||
[node name="RectEditor" parent="HSplitContainer" instance=ExtResource( 7 )]
|
[node name="RectEditor" parent="HSplitContainer" instance=ExtResource( 7 )]
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_right = 727.0
|
margin_right = 577.0
|
||||||
margin_bottom = 564.0
|
margin_bottom = 564.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
[node name="ResourcePropertyList" parent="HSplitContainer" instance=ExtResource( 2 )]
|
[node name="ResourcePropertyList" parent="HSplitContainer" instance=ExtResource( 2 )]
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_left = 739.0
|
margin_left = 589.0
|
||||||
margin_right = 839.0
|
margin_right = 839.0
|
||||||
margin_bottom = 564.0
|
margin_bottom = 564.0
|
||||||
|
|
||||||
@ -74,6 +75,7 @@ margin_top = 42.0
|
|||||||
margin_right = 173.0
|
margin_right = 173.0
|
||||||
margin_bottom = 564.0
|
margin_bottom = 564.0
|
||||||
|
|
||||||
|
[connection signal="visibility_changed" from="." to="." method="_on_World_visibility_changed"]
|
||||||
[connection signal="pressed" from="VBoxContainer/HBoxContainer/AddButton" to="VBoxContainer/DataList" method="add_button_pressed"]
|
[connection signal="pressed" from="VBoxContainer/HBoxContainer/AddButton" to="VBoxContainer/DataList" method="add_button_pressed"]
|
||||||
[connection signal="pressed" from="VBoxContainer/HBoxContainer/DeleteButton" to="VBoxContainer/DataList" method="delete_button_pressed"]
|
[connection signal="pressed" from="VBoxContainer/HBoxContainer/DeleteButton" to="VBoxContainer/DataList" method="delete_button_pressed"]
|
||||||
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Duplicate" to="VBoxContainer/DataList" method="duplicate_button_pressed"]
|
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Duplicate" to="VBoxContainer/DataList" method="duplicate_button_pressed"]
|
||||||
|
@ -120,3 +120,8 @@ func on_zone_item_selected(idx : int) -> void:
|
|||||||
|
|
||||||
func on_request_item_edit(resource : WorldGenBaseResource) -> void:
|
func on_request_item_edit(resource : WorldGenBaseResource) -> void:
|
||||||
emit_signal("request_item_edit", edited_continent, edited_zone, resource)
|
emit_signal("request_item_edit", edited_continent, edited_zone, resource)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_Zone_visibility_changed() -> void:
|
||||||
|
if visible:
|
||||||
|
refresh()
|
||||||
|
@ -23,27 +23,27 @@ size_flags_horizontal = 3
|
|||||||
[node name="RectEditor" parent="HSplitContainer" instance=ExtResource( 4 )]
|
[node name="RectEditor" parent="HSplitContainer" instance=ExtResource( 4 )]
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_right = 735.0
|
margin_right = 585.0
|
||||||
margin_bottom = 600.0
|
margin_bottom = 600.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer"]
|
||||||
margin_left = 747.0
|
margin_left = 597.0
|
||||||
margin_right = 1024.0
|
margin_right = 1024.0
|
||||||
margin_bottom = 600.0
|
margin_bottom = 600.0
|
||||||
|
|
||||||
[node name="ContinentOptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
[node name="ContinentOptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 20.0
|
margin_bottom = 20.0
|
||||||
|
|
||||||
[node name="ZoneOptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
[node name="ZoneOptionButton" type="OptionButton" parent="HSplitContainer/VBoxContainer"]
|
||||||
margin_top = 24.0
|
margin_top = 24.0
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 44.0
|
margin_bottom = 44.0
|
||||||
|
|
||||||
[node name="HBoxContainer2" type="HBoxContainer" parent="HSplitContainer/VBoxContainer"]
|
[node name="HBoxContainer2" type="HBoxContainer" parent="HSplitContainer/VBoxContainer"]
|
||||||
margin_top = 48.0
|
margin_top = 48.0
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 600.0
|
margin_bottom = 600.0
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
@ -51,16 +51,13 @@ size_flags_vertical = 3
|
|||||||
[node name="ResourcePropertyList" parent="HSplitContainer/VBoxContainer/HBoxContainer2" instance=ExtResource( 2 )]
|
[node name="ResourcePropertyList" parent="HSplitContainer/VBoxContainer/HBoxContainer2" instance=ExtResource( 2 )]
|
||||||
anchor_right = 0.0
|
anchor_right = 0.0
|
||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_right = 100.0
|
margin_right = 250.0
|
||||||
margin_bottom = 552.0
|
margin_bottom = 552.0
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 3
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/VBoxContainer/HBoxContainer2"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/VBoxContainer/HBoxContainer2"]
|
||||||
margin_left = 104.0
|
margin_left = 254.0
|
||||||
margin_right = 277.0
|
margin_right = 427.0
|
||||||
margin_bottom = 552.0
|
margin_bottom = 552.0
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer"]
|
[node name="Label" type="Label" parent="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer"]
|
||||||
@ -100,6 +97,7 @@ margin_right = 173.0
|
|||||||
margin_bottom = 552.0
|
margin_bottom = 552.0
|
||||||
class_types = 2
|
class_types = 2
|
||||||
|
|
||||||
|
[connection signal="visibility_changed" from="." to="." method="_on_Zone_visibility_changed"]
|
||||||
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/AddButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="add_button_pressed"]
|
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/AddButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="add_button_pressed"]
|
||||||
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/DeleteButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="delete_button_pressed"]
|
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/DeleteButton" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="delete_button_pressed"]
|
||||||
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/Duplicate" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="duplicate_button_pressed"]
|
[connection signal="pressed" from="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/HBoxContainer/Duplicate" to="HSplitContainer/VBoxContainer/HBoxContainer2/VBoxContainer/DataList" method="duplicate_button_pressed"]
|
||||||
|
@ -1,68 +0,0 @@
|
|||||||
tool
|
|
||||||
extends HBoxContainer
|
|
||||||
|
|
||||||
var _resource_type : String = "Resource"
|
|
||||||
var _resource : Resource = null
|
|
||||||
var _plugin : EditorPlugin = null
|
|
||||||
|
|
||||||
var _picker : EditorResourcePicker = null
|
|
||||||
|
|
||||||
signal on_resource_changed(new_res)
|
|
||||||
|
|
||||||
func set_resource_type(type : String) -> void:
|
|
||||||
_resource_type = type
|
|
||||||
|
|
||||||
if _picker:
|
|
||||||
_picker.base_type = _resource_type
|
|
||||||
|
|
||||||
func set_resource(res : Resource) -> void:
|
|
||||||
if res && !res.is_class(_resource_type):
|
|
||||||
return
|
|
||||||
|
|
||||||
var emit : bool = res != _resource
|
|
||||||
|
|
||||||
_resource = res
|
|
||||||
|
|
||||||
if _picker:
|
|
||||||
_picker.edited_resource = _resource
|
|
||||||
|
|
||||||
if emit:
|
|
||||||
emit_signal("on_resource_changed", _resource)
|
|
||||||
|
|
||||||
func set_plugin(plugin : EditorPlugin) -> void:
|
|
||||||
_plugin = plugin
|
|
||||||
|
|
||||||
func _enter_tree():
|
|
||||||
if Engine.is_editor_hint():
|
|
||||||
_picker = EditorResourcePicker.new()
|
|
||||||
_picker.set_h_size_flags(SIZE_EXPAND_FILL)
|
|
||||||
_picker.set_v_size_flags(SIZE_EXPAND_FILL)
|
|
||||||
add_child(_picker)
|
|
||||||
|
|
||||||
if _resource:
|
|
||||||
_picker.edited_resource = _resource
|
|
||||||
|
|
||||||
_picker.base_type = _resource_type
|
|
||||||
|
|
||||||
_picker.connect(@"resource_changed", self, "_on_resource_changed")
|
|
||||||
_picker.connect(@"resource_selected", self, "_on_resource_selected")
|
|
||||||
|
|
||||||
func _on_resource_changed(resource: Resource) -> void:
|
|
||||||
var emit : bool = resource != _resource
|
|
||||||
|
|
||||||
_resource = resource
|
|
||||||
|
|
||||||
if emit:
|
|
||||||
emit_signal("on_resource_changed", _resource)
|
|
||||||
|
|
||||||
func _on_resource_selected(resource: Resource, edit: bool) -> void:
|
|
||||||
_plugin.edit_resource(resource)
|
|
||||||
|
|
||||||
func on_clear_button_pressed() -> void:
|
|
||||||
if _resource:
|
|
||||||
set_resource(null)
|
|
||||||
|
|
||||||
func on_resource_button_pressed() -> void:
|
|
||||||
if _resource && _plugin:
|
|
||||||
_plugin.get_editor_interface().inspect_object(_resource)
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://addons/world_generator/widgets/EditorResourceWidget.gd" type="Script" id=1]
|
|
||||||
|
|
||||||
[node name="EditorResourceWidget" type="HBoxContainer"]
|
|
||||||
margin_right = 376.0
|
|
||||||
margin_bottom = 40.0
|
|
||||||
script = ExtResource( 1 )
|
|
Loading…
Reference in New Issue
Block a user