extends TileMap class_name MapTiles var transparentImage := preload("res://Graphics/transparent.png") export(NodePath) var extended_tilemap_node export var occluders := ["Wall"] export var shadow_intensity := 0.2 func run_conversions(): # Make occluders make_occluders() func make_occluders(): var occluder_ids := [] for occluder_name in occluders: var id := tile_set.find_tile_by_name(occluder_name) if id >= 0: occluder_ids.push_back(id) for id in tile_set.get_tiles_ids(): if occluder_ids.find(id) < 0: # Not an occluder, skip it continue # Find all uses of this tile for cell in get_used_cells_by_id(id): # Check sides var occluder := Occluder.new() occluder.ignore_sides = [ occluder_ids.find(get_cell(cell.x, cell.y-1)) >= 0, # Top occluder_ids.find(get_cell(cell.x+1, cell.y)) >= 0, # Right occluder_ids.find(get_cell(cell.x, cell.y+1)) >= 0, # Bottom occluder_ids.find(get_cell(cell.x-1, cell.y)) >= 0 # Left ] occluder.transform.origin = map_to_world(cell) add_child(occluder) func set_occluder_origin(origin): for child in get_children(): if child is Occluder: child.origin = origin