Table of Contents

Class GBCollisionTileFilter

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 GBCollisionTileFilter extends RefCounted
GBCollisionTileFilter

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_size
tile_size
center_tile
start_tile
end_exclusive

Returns

circle_tile_allowed

static func circle_tile_allowed(circle_center: Vector2, radius: float, tile_center: Vector2, tile_size: Vector2) -> bool:

Parameters

circle_center
radius
tile_center
tile_size

Returns