xyz
I am already casting from center to center. That's the default setting of map_to_local().
I am getting collisions detected on tiles that aren't even between the player and the target tile. Unfortunately, I can't find any pattern to it yet, so I can't figure out why it's happening.
func reveal_tile(coords):
#print (coords)
var radius = 1
var x_start = coords.x - radius
var x_end = coords.x + radius + 1
var y_start = coords.y - radius
var y_end = coords.y + radius + 1
print ("Hero Coords: ",coords)
for x in range(x_start,x_end):
for y in range(y_start,y_end):
print ("Target Cell: ",Vector2i(x,y))
if Vector2i(x,y) in invisibletiles:
#tile to hero
#raycast.global_position = self.map_to_local(Vector2i(x,y))
#raycast.target_position = self.map_to_local(coords) - raycast.global_position
#hero to tile
raycast.global_position = self.map_to_local(coords)
raycast.target_position = self.map_to_local(Vector2i(x,y)) - raycast.global_position
#print (BetterTerrain.get_cell(self,raycast.get_collision_point()))
#print (Vector2i(x,y))
#print (self.local_to_map(raycast.get_collision_point()))
#print (raycast.get_collision_normal())
if !raycast.is_colliding() || Vector2i(x,y) == self.local_to_map(raycast.get_collision_point()):
print("Clear")
invisibletiles.erase(Vector2i(x,y))
notify_runtime_tile_data_update()
else:
#print ("Hero Coords: ",coords)
#print ("Target Cell: ",Vector2i(x,y))
print ("Collided : ",self.local_to_map(raycast.get_collision_point()))
else:
print ("Already Revealed")