extends StaticBody var maker_node var material var destroy_cost = 20 func _ready(): get_node("CollisionShape").disabled = true func init(maker): maker_node = maker material = get_node("MeshInstance").get_surface_material(0) if not material: material = SpatialMaterial.new() get_node("MeshInstance").set_surface_material(0, material) material.flags_transparent = true material.albedo_color.a = 0.5 func place(): # Originally, the ghost is disabled to avoid weird physics get_node("CollisionShape").disabled = false material.flags_transparent = false sync func destroy(): maker_node.placement.remove_placed(get_name()) func make_last(): material.flags_transparent = true material.albedo_color.a = 0.9 func out_of_range(): material.albedo_color.a = 0.2 func within_range(): material.albedo_color.a = 0.5