extends StaticBody3D @export var isFirstPlace = true func _ready() -> void: initialize_material.call_deferred() func initialize_material() -> void: $MeshInstance3D.material_override = $MeshInstance3D.material_override.duplicate() $MeshInstance3D.material_override.albedo_color = Color("00000041") if isFirstPlace: placeItem("base:air") isFirstPlace = false func startHighlight(): $MeshInstance3D.material_override.albedo_color = Color("00FF0041") func stopHighlight(): $MeshInstance3D.material_override.albedo_color = Color("00000041") func placeItem(ItemID: String): var segments = ItemID.split(":") var itemResource: ItemData = load("res://GameShit/ItemHandlers/{namespace}/{id}.tres".format({"namespace": segments[0], "id": segments[1]})) if itemResource == null: itemResource = load("res://GameShit/ItemHandlers/base/air.tres") if "texture" in itemResource: $"..".ItemTexture = itemResource.texture $"..".ItemID = itemResource.ID isFirstPlace = false func removeItem(): $"..".ItemTexture = null $"..".ItemID = "base:air" func _interact_press(isRight): if !isRight: if $"..".ItemID == "base:air": placeItem(MainGame.currentHeldItemID) InventoryBus.removeHeldItem.emit() elif isRight: if $"..".ItemID != "base:air": InventoryBus.givePlayerItem.emit($"..".ItemID) removeItem()