You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
@tool
|
|
|
|
|
extends PanelContainer
|
|
|
|
|
|
|
|
|
|
signal hovered
|
|
|
|
|
signal unhovered
|
|
|
|
|
|
|
|
|
|
var data: Dictionary
|
|
|
|
|
|
|
|
|
|
func set_element(element: Dictionary):
|
|
|
|
|
data = element
|
|
|
|
|
%Label.text = data.element
|
|
|
|
|
%Icon.texture = data.get("icon")
|
|
|
|
|
data.map = data.map.trim_prefix(MetSys.settings.map_root_folder)
|
|
|
|
|
|
|
|
|
|
var room := MetSys.map_data.get_cells_assigned_to(data.map)
|
|
|
|
|
if "position" in data and not room.is_empty():
|
|
|
|
|
var top_left := Vector2i.MAX
|
|
|
|
|
for coords in room:
|
|
|
|
|
top_left.x = mini(coords.x, top_left.x)
|
|
|
|
|
top_left.y = mini(coords.y, top_left.y)
|
|
|
|
|
|
|
|
|
|
var pos := top_left + Vector2i(data.position / MetSys.settings.in_game_cell_size)
|
|
|
|
|
data.coords = Vector3i(pos.x, pos.y, room[0].z)
|
|
|
|
|
%Button.tooltip_text = "%s\nat: %s %s" % [data.element, data.map, data.coords]
|
|
|
|
|
else:
|
|
|
|
|
%Button.tooltip_text = "%s\nat: %s" % [data.element, data.map]
|
|
|
|
|
|
|
|
|
|
func on_hover() -> void:
|
|
|
|
|
hovered.emit()
|
|
|
|
|
|
|
|
|
|
func on_unhover() -> void:
|
|
|
|
|
unhovered.emit()
|