feat: Implement Phase 18 palette image icons and update asset card functionality

This commit is contained in:
2026-10-14 18:08:06 -04:00
parent b7235c503d
commit ba85a967e3
11 changed files with 185 additions and 7 deletions
+12 -2
View File
@@ -3,6 +3,14 @@ extends CanvasLayer
## Shared stage presentation shell. Domain decisions are reported to SandboxStage.
const ASSET_CARD := preload("res://scripts/shared/ui/asset_card.gd")
const PALETTE_ICON_TEXTURES: Dictionary = {
"ground": preload("res://resources/icons/ground.png"),
"ramp": preload("res://resources/icons/ramp.png"),
"step": preload("res://resources/icons/step.png"),
"prop": preload("res://resources/icons/prop.png"),
"stickman": preload("res://resources/icons/stickman.png"),
"area": preload("res://resources/icons/area.png"),
}
signal file_menu_requested(id: int)
signal recent_menu_requested
@@ -496,8 +504,10 @@ func _build_palette(entries: Array[Dictionary]) -> void:
cards.size_flags_horizontal = Control.SIZE_EXPAND_FILL
scroll.add_child(cards)
for entry: Dictionary in entries:
var card: Variant = ASSET_CARD.new()
card.configure(entry, null, _stage_theme)
var card: AssetCard = ASSET_CARD.new() as AssetCard
var placement_id: String = String(entry.get("placement_id", ""))
var icon_texture: Texture2D = PALETTE_ICON_TEXTURES.get(placement_id) as Texture2D
card.configure(entry, icon_texture, _stage_theme)
card.toggle_mode = true
card.activated.connect(_on_palette_activated)
card.drag_started.connect(_on_palette_drag_started)