mirror of
https://github.com/tonytins/citylimits.git
synced 2025-03-17 21:31:21 +00:00
77 lines
2.4 KiB
Text
77 lines
2.4 KiB
Text
[gd_scene load_steps=3 format=3 uid="uid://cd5wndu01c1sn"]
|
|
|
|
[sub_resource type="StyleBoxFlat" id="2"]
|
|
resource_local_to_scene = true
|
|
bg_color = Color(0, 0.501961, 0.501961, 1)
|
|
|
|
[sub_resource type="GDScript" id="3"]
|
|
resource_name = "Prefab"
|
|
script/source = "extends PanelContainer
|
|
|
|
var odd: Vector2
|
|
|
|
func set_frame_margin(margin: Vector2):
|
|
$MarginContainer.add_theme_constant_override(&\"margin_left\", margin.x)
|
|
$MarginContainer.add_theme_constant_override(&\"margin_top\", margin.y)
|
|
|
|
margin += odd
|
|
|
|
$MarginContainer.add_theme_constant_override(&\"margin_right\", margin.x)
|
|
$MarginContainer.add_theme_constant_override(&\"margin_bottom\", margin.y)
|
|
|
|
func set_texture(texture: Texture2D):
|
|
%TextureRect.texture = texture
|
|
odd = Vector2(int(get_texture_size().x) % 2, int(get_texture_size().y) % 2)
|
|
|
|
func get_texture_size() -> Vector2:
|
|
return %TextureRect.texture.get_size()
|
|
|
|
func get_position2() -> Vector2:
|
|
return position + %TextureRect.position
|
|
|
|
func get_texture_data() -> Image:
|
|
return %TextureRect.texture.get_image()
|
|
|
|
func set_display_background(display: bool):
|
|
get_theme_stylebox(&\"panel\").draw_center = display
|
|
|
|
func set_background_color(color: Color):
|
|
get_theme_stylebox(&\"panel\").bg_color = color
|
|
|
|
func _get_drag_data(p: Vector2):
|
|
var preview = TextureRect.new()
|
|
preview.texture = %TextureRect.texture
|
|
preview.ignore_texture_size = true
|
|
preview.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED
|
|
preview.size = Vector2(64, 64)
|
|
set_drag_preview(preview)
|
|
return {type = \"SpritesheetFrame\", node = self}
|
|
|
|
func _can_drop_data(p: Vector2, data) -> bool:
|
|
return data is Dictionary and data.get(\"type\", \"\") == \"SpritesheetFrame\"
|
|
|
|
func _drop_data(p: Vector2, data) -> void:
|
|
var index = get_index()
|
|
get_parent().move_child(self, data.node.get_index())
|
|
get_parent().move_child(data.node, index)
|
|
get_tree().current_scene.refresh_grid()
|
|
|
|
func _gui_input(event: InputEvent) -> void:
|
|
if event is InputEventMouseButton:
|
|
if event.pressed and event.button_index == MOUSE_BUTTON_RIGHT:
|
|
get_tree().current_scene.remove_frame.call_deferred(self)
|
|
"
|
|
|
|
[node name="FramePrefab" type="PanelContainer" groups=["frame"]]
|
|
theme_override_styles/panel = SubResource("2")
|
|
script = SubResource("3")
|
|
|
|
[node name="MarginContainer" type="MarginContainer" parent="."]
|
|
layout_mode = 2
|
|
mouse_filter = 2
|
|
|
|
[node name="TextureRect" type="TextureRect" parent="MarginContainer"]
|
|
unique_name_in_owner = true
|
|
texture_filter = 1
|
|
layout_mode = 2
|
|
stretch_mode = 4
|