broken_seals/game/addons/world_generator/ui/RectView.gd

66 lines
1.4 KiB
GDScript

tool
extends Control
var rect_editor_node_scene : PackedScene = preload("res://addons/world_generator/ui/RectViewNode.tscn")
var edited_resource : WorldGenBaseResource = null
func _draw():
draw_rect(Rect2(Vector2(), get_size()), Color(0.2, 0.2, 0.2, 1))
func refresh() -> void:
clear()
if !edited_resource:
return
var rect : Rect2 = edited_resource.rect
set_custom_minimum_size(rect.size)
var p : MarginContainer = get_parent() as MarginContainer
p.add_constant_override("margin_left", rect.size.x / 4.0)
p.add_constant_override("margin_right", rect.size.x / 4.0)
p.add_constant_override("margin_top", rect.size.y / 4.0)
p.add_constant_override("margin_bottom", rect.size.y / 4.0)
refresh_rects()
func clear() -> void:
pass
func refresh_rects() -> void:
clear_rects()
if !edited_resource:
return
var cont : Array = edited_resource.get_content()
for c in cont:
if c:
var s : Node = rect_editor_node_scene.instance()
add_child(s)
s.set_edited_resource(c)
func clear_rects():
for c in get_children():
c.queue_free()
remove_child(c)
func set_edited_resource(res : WorldGenBaseResource):
# if edited_resource:
# edited_resource.disconnect("changed", self, "on_edited_resource_changed")
edited_resource = res
refresh()
# if edited_resource:
# edited_resource.connect("changed", self, "on_edited_resource_changed")
#func on_edited_resource_changed() -> void:
# pass