class_name FullTile extends Floor var static_body = StaticBody3D.new() var item: Node3D = null func _init(rename: String, neighbors: Array): super(rename, neighbors) var shape = CollisionShape3D.new() var box = BoxShape3D.new() shape.position.y += .5 shape.shape = box shape.name = "Box" static_body.add_child(shape) static_body.name = "Body" base.add_child(static_body) # defines where items go when interacting static func interact_target() -> Vector3: return Vector3(0, 0, 0) # actions when interacting, e.g. animations func interact(): pass func put_item(i: Node3D): if item != null: push_error("already holding an item") item = i func take_item() -> Node3D: var i = item item = null return i