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 applyHit(pixelroot32::core::Actor* tileActor, uint16_t tileX, uint16_t tileY, uint8_t& remainingHits) ​

Description:

Apply one hit to a tile without consuming it.

Parameters:

  • tileActor: Pointer to the tile physics actor (for validation; not mutated)
  • tileX: Tile X coordinate
  • tileY: Tile Y coordinate
  • remainingHits: Out-param: hits remaining after this one (0 = ready to consume)

Returns: true on valid hit, false on invalid coordinates or already-consumed tile

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.

Released under the MIT License.