35 lines
860 B
GDScript
35 lines
860 B
GDScript
@tool
|
|
extends HBoxContainer
|
|
|
|
class_name TerrainPickerEntry
|
|
|
|
signal selected(terrain_id : int)
|
|
|
|
var terrain_id : int
|
|
var terrain_name_button : Button
|
|
var terrain_name : String
|
|
var texture_resource : Texture2D
|
|
var icon : TextureRect
|
|
|
|
|
|
func _enter_tree() -> void:
|
|
terrain_name_button = find_child("TerrainNameButton")
|
|
icon = find_child("IconTextureRect")
|
|
terrain_name_button.text = terrain_name
|
|
if is_instance_valid(texture_resource):
|
|
icon.texture = texture_resource
|
|
|
|
|
|
func _on_icon_texture_rect_gui_input(event: InputEvent) -> void:
|
|
if event is InputEventMouseButton:
|
|
if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
|
|
selected.emit(terrain_id)
|
|
terrain_name_button.button_pressed = true
|
|
if event is InputEventMouseMotion:
|
|
terrain_name_button.grab_focus()
|
|
|
|
|
|
func _on_terrain_name_button_pressed() -> void:
|
|
selected.emit(terrain_id)
|
|
|