CollisionProcessor
Merge two collision position dictionaries
Merge two collision position dictionaries
Version: v5.0.0
Inherits: GBInjectable
Source: collision_processor.gd
Parsing: AST-based for maximum accuracy with symbol typing
Constants
GeometryCacheManager
Value: preload("uid://d0cdgiqycnh43")
Variables
_cache_manager:
_logger:
Methods
_init
Signature: _init(p_logger: GBLogger) -> void
Returns: void
Parameters:
p_logger: GBLogger
invalidate_cache
Signature: invalidate_cache() -> void
Invalidate all cached geometry data
Returns: void
resolve_gb_dependencies
Signature: resolve_gb_dependencies(container: GBCompositionContainer) -> bool
Resolve dependencies from composition container
Returns: bool
Parameters:
container: GBCompositionContainer
get_runtime_issues
Signature: get_runtime_issues() -> Array
Get runtime validation issues
Returns: Array
get_tile_offsets_for_collision
Signature: get_tile_offsets_for_collision(collision_obj: Node2D, test_data: CollisionTestSetup2D, map: TileMapLayer, positioner: Node2D) -> Dictionary
@return Dictionary[Vector2i, Array] containing RELATIVE tile offsets as keys and collision objects as values
Returns: Dictionary
Parameters:
collision_obj: Node2Dtest_data: CollisionTestSetup2Dmap: TileMapLayerpositioner: Node2D
_get_tile_offsets_for_collision_polygon
Signature: _get_tile_offsets_for_collision_polygon(polygon_node: CollisionPolygon2D, map: TileMapLayer, positioner: Node2D) -> Dictionary
Uses positioner as coordinate reference for consistent positioning behavior
Returns: Dictionary
Parameters:
polygon_node: CollisionPolygon2Dmap: TileMapLayerpositioner: Node2D
_get_tile_offsets_for_collision_object
Signature: _get_tile_offsets_for_collision_object(test_data: CollisionTestSetup2D, map: TileMapLayer, positioner: Node2D) -> Dictionary
See positioning-regression-fix-guide.mdx for coordinate system details.
Returns: Dictionary
Parameters:
test_data: CollisionTestSetup2Dmap: TileMapLayerpositioner: Node2D
_initialize_collision_mapping
Signature: _initialize_collision_mapping(positioner: Node2D, collision_positions: Dictionary[Vector2i: Variant, Array]: Variant) -> bool
Initialize collision mapping with validation
Returns: bool
Parameters:
positioner: Node2Dcollision_positions: Dictionary[Vector2i: VariantArray]: Variant
process_shape_offsets
Signature: process_shape_offsets(rect_test_setup: RectCollisionTestingSetup, test_data: CollisionTestSetup2D, map: TileMapLayer, center_tile: Vector2i, tile_size: Vector2, shape_epsilon: float, col_obj: CollisionObject2D) -> Dictionary
- These offsets will be added to positioner position by IndicatorFactory
Returns: Dictionary
Parameters:
rect_test_setup: RectCollisionTestingSetuptest_data: CollisionTestSetup2Dmap: TileMapLayercenter_tile: Vector2itile_size: Vector2shape_epsilon: floatcol_obj: CollisionObject2D
calculate_tile_range
Signature: calculate_tile_range(shape: Shape2D, bounds: Rect2, map: TileMapLayer, tile_size: Vector2, shape_transform: Transform2D) -> Dictionary
Returns a dictionary with ‘start’ and ’end_exclusive’ Vector2i values
Returns: Dictionary
Parameters:
shape: Shape2Dbounds: Rect2map: TileMapLayertile_size: Vector2shape_transform: Transform2D
compute_shape_tile_offsets
Signature: compute_shape_tile_offsets(shape: Shape2D, shape_transform: Transform2D, map: TileMapLayer, tile_size: Vector2, shape_epsilon: float, start_tile: Vector2i, end_exclusive: Vector2i, center_tile: Vector2i, shape_polygon: PackedVector2Array) -> Array
Compute which tiles a shape overlaps with, returning offset positions
Returns: Array
Parameters:
shape: Shape2Dshape_transform: Transform2Dmap: TileMapLayertile_size: Vector2shape_epsilon: floatstart_tile: Vector2iend_exclusive: Vector2icenter_tile: Vector2ishape_polygon: PackedVector2Array
_merge_offsets_into_positions
Signature: _merge_offsets_into_positions(shape_offsets: Array[Vector2i]: Variant, collision_positions: Dictionary[Vector2i: Variant, Array]: Variant, col_obj: Node2D, center_tile: Vector2i) -> void
to convert back to world positions as: positioner_position + (offset * tile_size)
Returns: void
Parameters:
shape_offsets: Array[Vector2i]: Variantcollision_positions: Dictionary[Vector2i: VariantArray]: Variantcol_obj: Node2Dcenter_tile: Vector2i
_merge_collision_positions
Signature: _merge_collision_positions(target_positions: Dictionary[Vector2i: Variant, Array]: Variant, source_positions: Dictionary[Vector2i: Variant, Array]: Variant) -> void
Merge two collision position dictionaries
Returns: void
Parameters:
target_positions: Dictionary[Vector2i: VariantArray]: Variantsource_positions: Dictionary[Vector2i: VariantArray]: Variant