z-hack/src/TileMap.gd

26 lines
805 B
GDScript

extends TileMap
func random_valid_position(tile_name):
var clear_tiles = get_used_cells()
while true:
var tile = clear_tiles[randi()%clear_tiles.size()]
if get_cellv(tile) == tile_set.find_tile_by_name(tile_name):
return(tile*self.cell_size + cell_size/2)
func random_valid_safe_position(player, tile_name):
var position
var position_to_player
while true:
position = random_valid_position(tile_name)
position_to_player = position.distance_to(player)
if position_to_player > 4*32 and position_to_player < 30*32:
return(position)
func add_light_campfire():
var clear_tiles = get_used_cells()
var light_tiles = []
for tile in clear_tiles:
if get_cellv(tile) == tile_set.find_tile_by_name("campfire"):
light_tiles.append(tile*self.cell_size + cell_size/2)
return(light_tiles)