Class PlacementCollisionTileFilter
- Namespace
- GridPlacement.GDScript
- Assembly
- MoonBark.GridPlacement.GDScript.dll
Helpers to normalize tile coverage and prune borderline tiles for mapper heuristics.\n\nKeep shape-size magic numbers out of the CollisionMapper by centralizing tile-range adjustments and pruning logic here.
class PlacementCollisionTileFilter extends RefCounted
PlacementCollisionTileFilter
Properties
tiles_w
var tiles_w = int(ceil(rect_size.x / tile_size.x))
tiles_h
var tiles_h = int(ceil(rect_size.y / tile_size.y))
width_half_span
var width_half_span = int(floor(tiles_w / 2.0))
height_half_span
var height_half_span = int(floor(tiles_h / 2.0))
new_start
var new_start = Vector2i(center_tile.x - int(floor(tiles_w/2.0)), center_tile.y - int(floor(tiles_h/2.0)))
new_end_exclusive
var new_end_exclusive = Vector2i(new_start.x + tiles_w, new_start.y + tiles_h)
allowance
var allowance = radius + tile_size.x/2.0
Methods
adjust_rect_tile_range
static func adjust_rect_tile_range(rect_size: Vector2, tile_size: Vector2, center_tile: Vector2i, start_tile: Vector2i, end_exclusive: Vector2i) -> Dictionary:
Parameters
rect_sizetile_sizecenter_tilestart_tileend_exclusive
Returns
circle_tile_allowed
static func circle_tile_allowed(circle_center: Vector2, radius: float, tile_center: Vector2, tile_size: Vector2) -> bool:
Parameters
circle_centerradiustile_centertile_size