RapidGameFramework
Reusable Godot managers for data-driven small games
Loading...
Searching...
No Matches
level_manager Namespace Reference

Variables

 DataCacheManager
 
 data_cache_manager
 
 data
 Load a level JSON file.
 
 level = data.duplicate(true)
 
 tile_size = _parse_tile_size(level.get("tile_size", [32, 32]))
 
 legend = level.get("legend", {}).duplicate(true)
 
 metadata = level.get("metadata", level.get("background", {})).duplicate(true) if level.get("metadata", level.get("background", {})) is Dictionary else {}
 
 layers = _normalize_layers(level)
 
 objects = _normalize_objects(level.get("objects", []), level.get("spawns", []))
 
 triggers = level.get("triggers", []).duplicate(true) if level.get("triggers", []) is Array else []
 
 width = max(width, str(row).length())
 
 height = max(height, layer.get("tiles", []).size())
 
 tile_dimensions_cache = Vector2i(width, height)
 Clear derived level caches without unloading level data.
 
 tile_dimensions
 Return level dimensions in pixels.
 
 String
 Return tile character at tile coordinates, or empty string out of bounds.
 
 layer
 
 layer_tiles
 
 row
 
 rects
 
 tile
 
 tile_metadata
 
 Dictionary
 Return tile records for renderers and editors.
 
 include_empty
 
 records
 
 world_rect
 
 margin
 
 Rect2
 
 bool
 
 Array
 Merge adjacent same-row static tile records into wider fill runs.
 
 Vector2
 Return cached/static tile records whose world rect intersects a camera slice.
 
 int
 
 metadata_value
 
 record
 
 Vector2i
 
int current_end_x = cell.x + 1
 
 current = record.duplicate(true)
 
 current_key = key
 
 current_row = cell.y
 
 float
 Test whether a world-space rect intersects a camera/rendering slice.
 
 cache_key
 
 layer_id
 
 tile_rect
 
 spawns
 
 entry
 
int cache_hits = 0
 
int cache_misses = 0
 
 target
 
 target_layers
 
 target_objects
 
 x
 
 y
 
 target_legend
 
 normalized_layers
 
 layer_path
 
 expected_height = layer_tiles.size()
 
 expected_width = row.length()
 
 normalized_objects
 
 object
 
 object_path
 
 object_id
 
 cell
 
 empty_row
 
 ground_row
 
 spawn
 
 Variant
 

Variable Documentation

◆ Array

level_manager.Array

Merge adjacent same-row static tile records into wider fill runs.

This is intended for background color/pass rendering; keep the original records for sprites, grid overlays, collision markers, and other per-tile details.

Definition at line 124 of file level_manager.gd.

◆ bool

level_manager.bool

Definition at line 123 of file level_manager.gd.

◆ cache_hits

int level_manager.cache_hits = 0

Definition at line 550 of file level_manager.gd.

◆ cache_key

level_manager.cache_key

Definition at line 451 of file level_manager.gd.

◆ cache_misses

int level_manager.cache_misses = 0

Definition at line 551 of file level_manager.gd.

◆ cell

level_manager.cell

Definition at line 640 of file level_manager.gd.

◆ current

level_manager.current = record.duplicate(true)

Definition at line 265 of file level_manager.gd.

◆ current_end_x

int level_manager.current_end_x = cell.x + 1

Definition at line 261 of file level_manager.gd.

◆ current_key

level_manager.current_key = key

Definition at line 267 of file level_manager.gd.

◆ current_row

level_manager.current_row = cell.y

Definition at line 268 of file level_manager.gd.

◆ data

level_manager.data

Load a level JSON file.

Definition at line 28 of file level_manager.gd.

◆ data_cache_manager

level_manager.data_cache_manager

Definition at line 22 of file level_manager.gd.

◆ DataCacheManager

level_manager.DataCacheManager

Definition at line 8 of file level_manager.gd.

◆ Dictionary

level_manager.Dictionary

Return tile records for renderers and editors.

Validate the loaded level, or a supplied dictionary, and return issue rows.

Return parallax/background metadata if present.

Build cached draw records for sprite-backed objects with independent visual bounds.

Convert an object tile or position placement into world-space pixels.

Return a compiled tile record by cell without duplicating it.

Return a compiled tile record by cell.

Compile grid authoring data into a static runtime package.

Build static renderer/editor tile records from arbitrary grid rows and legend data.

This keeps JSON and editor-friendly dictionaries at the boundary, then gives gameplay/render loops stable records to query without reparsing tile rows, rebuilding object bounds, or repeatedly filtering collision/hazard tiles.

The fallback avoids returning a live reference.

Use this only in read-only gameplay/render hot paths. If the caller might mutate the record, use runtime_tile_at_cell() instead.

By default this preserves legacy behavior where position is already pixels. Pass { "position_units": "tiles" } when editor-authored free positions are stored in tile units.

Games can pre-enrich object dictionaries with sprite ids, display names, visual sizes, anchors, and _world_center; the returned records can then be culled with get_visible_draw_records.

Return level summary data for editor lists and save-slot-style displays.

Definition at line 106 of file level_manager.gd.

◆ empty_row

level_manager.empty_row

Definition at line 649 of file level_manager.gd.

◆ entry

level_manager.entry

Definition at line 499 of file level_manager.gd.

◆ expected_height

level_manager.expected_height = layer_tiles.size()

Definition at line 610 of file level_manager.gd.

◆ expected_width

level_manager.expected_width = row.length()

Definition at line 616 of file level_manager.gd.

◆ float

level_manager.float

Test whether a world-space rect intersects a camera/rendering slice.

Definition at line 281 of file level_manager.gd.

◆ ground_row

level_manager.ground_row

Definition at line 650 of file level_manager.gd.

◆ height

level_manager.height = max(height, layer.get("tiles", []).size())

Definition at line 53 of file level_manager.gd.

◆ include_empty

level_manager.include_empty

Definition at line 107 of file level_manager.gd.

◆ int

level_manager.int

Definition at line 161 of file level_manager.gd.

◆ layer

level_manager.layer

Definition at line 66 of file level_manager.gd.

◆ layer_id

level_manager.layer_id

Definition at line 458 of file level_manager.gd.

◆ layer_path

level_manager.layer_path

Definition at line 598 of file level_manager.gd.

◆ layer_tiles

level_manager.layer_tiles

Definition at line 69 of file level_manager.gd.

◆ layers

level_manager.layers = _normalize_layers(level)

Definition at line 35 of file level_manager.gd.

◆ legend

level_manager.legend = level.get("legend", {}).duplicate(true)

Definition at line 33 of file level_manager.gd.

◆ level

level_manager.level = data.duplicate(true)

Definition at line 31 of file level_manager.gd.

◆ margin

level_manager.margin

Definition at line 112 of file level_manager.gd.

◆ metadata

level_manager.metadata = level.get("metadata", level.get("background", {})).duplicate(true) if level.get("metadata", level.get("background", {})) is Dictionary else {}

Definition at line 34 of file level_manager.gd.

◆ metadata_value

level_manager.metadata_value

Definition at line 207 of file level_manager.gd.

◆ normalized_layers

level_manager.normalized_layers

Definition at line 590 of file level_manager.gd.

◆ normalized_objects

level_manager.normalized_objects

Definition at line 623 of file level_manager.gd.

◆ object

level_manager.object

Definition at line 627 of file level_manager.gd.

◆ object_id

level_manager.object_id

Definition at line 629 of file level_manager.gd.

◆ object_path

level_manager.object_path

Definition at line 628 of file level_manager.gd.

◆ objects

level_manager.objects = _normalize_objects(level.get("objects", []), level.get("spawns", []))

Definition at line 36 of file level_manager.gd.

◆ record

level_manager.record

Definition at line 222 of file level_manager.gd.

◆ records

level_manager.records

Definition at line 108 of file level_manager.gd.

◆ Rect2

level_manager.Rect2

Definition at line 113 of file level_manager.gd.

◆ rects

level_manager.rects

Definition at line 89 of file level_manager.gd.

◆ row

level_manager.row

Definition at line 72 of file level_manager.gd.

◆ spawn

level_manager.spawn

Definition at line 742 of file level_manager.gd.

◆ spawns

level_manager.spawns

Definition at line 497 of file level_manager.gd.

◆ String

level_manager.String

Return tile character at tile coordinates, or empty string out of bounds.

Backward-compatible spawn accessor; richer levels should prefer get_objects().

Return placed object dictionaries such as player starts, enemies, exits, and pickups.

Return placed objects intersecting a world-space rect.

Compile the currently loaded level layer into a static runtime package.

Level JSON keeps its compact legend shape, while compile_grid_runtime accepts tile definitions with metadata. This helper adapts loaded level data into the shared runtime compiler so game scenes do not need to repeat that bridge logic.

Options:

  • margin: expands the culling rect in pixels.
  • object_size: fallback size for objects without explicit size metadata.
  • offset: fallback pixel offset from the object's tile origin.

Definition at line 65 of file level_manager.gd.

◆ target

level_manager.target

Definition at line 563 of file level_manager.gd.

◆ target_layers

level_manager.target_layers

Definition at line 564 of file level_manager.gd.

◆ target_legend

level_manager.target_legend

Definition at line 587 of file level_manager.gd.

◆ target_objects

level_manager.target_objects

Definition at line 565 of file level_manager.gd.

◆ tile

level_manager.tile

Definition at line 97 of file level_manager.gd.

◆ tile_dimensions

level_manager.tile_dimensions

Return level dimensions in pixels.

Definition at line 60 of file level_manager.gd.

◆ tile_dimensions_cache

level_manager.tile_dimensions_cache = Vector2i(width, height)

Clear derived level caches without unloading level data.

Definition at line 54 of file level_manager.gd.

◆ tile_metadata

level_manager.tile_metadata

Definition at line 98 of file level_manager.gd.

◆ tile_rect

level_manager.tile_rect

Definition at line 479 of file level_manager.gd.

◆ tile_size

level_manager.tile_size = _parse_tile_size(level.get("tile_size", [32, 32]))

Definition at line 32 of file level_manager.gd.

◆ triggers

level_manager.triggers = level.get("triggers", []).duplicate(true) if level.get("triggers", []) is Array else []

Definition at line 37 of file level_manager.gd.

◆ Variant

level_manager.Variant

Definition at line 774 of file level_manager.gd.

◆ Vector2

level_manager.Vector2

Return cached/static tile records whose world rect intersects a camera slice.

Return a world-space visual rect for an object, independent of collision size.

Convert world-space pixels into a rounded tile-unit array for save data.

Convert a tile-unit position such as [2.5, 3.25] into world-space pixels.

Return a world-space rect for an object using tile, position, and size fields.

Return the world rect occupied by a static tile draw record.

Objects may define visual_size, visual_offset, and visual_anchor. visual_anchor is normalized in the visual rect: [0.5, 1.0] means the object's placement point sits at the bottom center, useful for tall cosmetic sprites whose tops should draw behind/above adjacent gameplay.

Definition at line 149 of file level_manager.gd.

◆ Vector2i

level_manager.Vector2i

Definition at line 254 of file level_manager.gd.

◆ width

level_manager.width = max(width, str(row).length())

Definition at line 52 of file level_manager.gd.

◆ world_rect

level_manager.world_rect

Definition at line 109 of file level_manager.gd.

◆ x

level_manager.x

Definition at line 569 of file level_manager.gd.

◆ y

level_manager.y

Definition at line 570 of file level_manager.gd.