Skip to content

TileConsumptionHelper

Class

Source: TileConsumptionHelper.h

Description

Helper class for consuming tiles (removing bodies and updating visuals).

This class implements Phase 7 of the tile attribute system:

  1. Remove tile body from Scene (CollisionSystem no longer considers it)
  2. Update TileMapGeneric::runtimeMask to hide consumed tiles
  3. Reuse existing runtimeMask instead of creating separate consumedMask

Usage:

cpp
TileConsumptionHelper helper(scene, tilemap, config);
bool consumed = helper.consumeTile(tileActor, tileX, tileY);

Methods

bool consumeTile(pixelroot32::core::Actor* tileActor, uint16_t tileX, uint16_t tileY)

Description:

Consumes a tile by removing its physics body and updating visuals.

Parameters:

  • tileActor: Pointer to the tile physics actor to consume
  • tileX: Tile X coordinate (from unpacked userData)
  • tileY: Tile Y coordinate (from unpacked userData)

Returns: true if tile was successfully consumed, false if already consumed or invalid

bool consumeTileFromUserData(pixelroot32::core::Actor* tileActor, uintptr_t packedUserData)

Description:

Consumes a tile using packed userData from collision callback.

Parameters:

  • tileActor: Pointer to the tile physics actor
  • packedUserData: Packed userData from tileActor->getUserData()

Returns: true if tile was successfully consumed, false otherwise

bool isTileConsumed(uint16_t tileX, uint16_t tileY) const

Description:

Check if a tile has been consumed (hidden in tilemap).

Parameters:

  • tileX: Tile X coordinate
  • tileY: Tile Y coordinate

Returns: true if tile is consumed (inactive), false if still visible

bool restoreTile(uint16_t tileX, uint16_t tileY)

Description:

Restore a consumed tile (for debugging or special game mechanics).

Parameters:

  • tileX: Tile X coordinate
  • tileY: Tile Y coordinate

Returns: true if tile was restored, false if tile was not consumed

void extractTilemapDimensions()

Description:

Extract tilemap dimensions from the tilemap pointer.

void updateTilemapRuntimeMask(uint16_t tileX, uint16_t tileY, bool active)

Description:

Template method to update tilemap runtimeMask.

bool checkTilemapRuntimeMask(uint16_t tileX, uint16_t tileY) const

Description:

Template method to check tilemap runtimeMask state.

bool validateCoordinates(uint16_t tileX, uint16_t tileY) const

Description:

Validate tile coordinates against tilemap dimensions.

inline bool consumeTileFromCollision(pixelroot32::core::Actor* tileActor, uintptr_t packedUserData, pixelroot32::core::Scene& scene, void* tilemap, const TileConsumptionConfig& config = TileConsumptionConfig())

Description:

Convenience function for consuming tiles from collision callbacks.

Parameters:

  • tileActor: Pointer to the tile physics actor
  • packedUserData: Packed userData from tileActor
  • scene: Reference to the scene
  • tilemap: Pointer to the tilemap (TileMapGeneric*)
  • config: Optional consumption configuration

Returns: true if tile was consumed, false otherwise

inline int consumeTilesBatch(pixelroot32::core::Scene& scene, void* tilemap, const uint16_t tiles[][2], int count, const TileConsumptionConfig& config = TileConsumptionConfig())

Description:

Batch consumption helper for multiple tiles.

Parameters:

  • scene: Reference to the scene
  • tilemap: Pointer to the tilemap
  • tiles: Array of tile coordinates to consume
  • count: Number of tiles in the array
  • config: Optional consumption configuration

Returns: Number of tiles successfully consumed

Released under the MIT License.