|
RapidGameFramework
Reusable Godot managers for data-driven small games
|
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 | |
| 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.
| level_manager.bool |
Definition at line 123 of file level_manager.gd.
| int level_manager.cache_hits = 0 |
Definition at line 550 of file level_manager.gd.
| level_manager.cache_key |
Definition at line 451 of file level_manager.gd.
| int level_manager.cache_misses = 0 |
Definition at line 551 of file level_manager.gd.
| level_manager.cell |
Definition at line 640 of file level_manager.gd.
| level_manager.current = record.duplicate(true) |
Definition at line 265 of file level_manager.gd.
| int level_manager.current_end_x = cell.x + 1 |
Definition at line 261 of file level_manager.gd.
| level_manager.current_key = key |
Definition at line 267 of file level_manager.gd.
| level_manager.current_row = cell.y |
Definition at line 268 of file level_manager.gd.
| level_manager.data |
Load a level JSON file.
Definition at line 28 of file level_manager.gd.
| level_manager.data_cache_manager |
Definition at line 22 of file level_manager.gd.
| level_manager.DataCacheManager |
Definition at line 8 of file level_manager.gd.
| 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.
| level_manager.empty_row |
Definition at line 649 of file level_manager.gd.
| level_manager.entry |
Definition at line 499 of file level_manager.gd.
| level_manager.expected_height = layer_tiles.size() |
Definition at line 610 of file level_manager.gd.
| level_manager.expected_width = row.length() |
Definition at line 616 of file level_manager.gd.
| level_manager.float |
Test whether a world-space rect intersects a camera/rendering slice.
Definition at line 281 of file level_manager.gd.
| level_manager.ground_row |
Definition at line 650 of file level_manager.gd.
| level_manager.height = max(height, layer.get("tiles", []).size()) |
Definition at line 53 of file level_manager.gd.
| level_manager.include_empty |
Definition at line 107 of file level_manager.gd.
| level_manager.int |
Definition at line 161 of file level_manager.gd.
| level_manager.layer |
Definition at line 66 of file level_manager.gd.
| level_manager.layer_id |
Definition at line 458 of file level_manager.gd.
| level_manager.layer_path |
Definition at line 598 of file level_manager.gd.
| level_manager.layer_tiles |
Definition at line 69 of file level_manager.gd.
| level_manager.layers = _normalize_layers(level) |
Definition at line 35 of file level_manager.gd.
| level_manager.legend = level.get("legend", {}).duplicate(true) |
Definition at line 33 of file level_manager.gd.
| level_manager.level = data.duplicate(true) |
Definition at line 31 of file level_manager.gd.
| level_manager.margin |
Definition at line 112 of file level_manager.gd.
| 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.
| level_manager.metadata_value |
Definition at line 207 of file level_manager.gd.
| level_manager.normalized_layers |
Definition at line 590 of file level_manager.gd.
| level_manager.normalized_objects |
Definition at line 623 of file level_manager.gd.
| level_manager.object |
Definition at line 627 of file level_manager.gd.
| level_manager.object_id |
Definition at line 629 of file level_manager.gd.
| level_manager.object_path |
Definition at line 628 of file level_manager.gd.
| level_manager.objects = _normalize_objects(level.get("objects", []), level.get("spawns", [])) |
Definition at line 36 of file level_manager.gd.
| level_manager.record |
Definition at line 222 of file level_manager.gd.
| level_manager.records |
Definition at line 108 of file level_manager.gd.
| level_manager.Rect2 |
Definition at line 113 of file level_manager.gd.
| level_manager.rects |
Definition at line 89 of file level_manager.gd.
| level_manager.row |
Definition at line 72 of file level_manager.gd.
| level_manager.spawn |
Definition at line 742 of file level_manager.gd.
| level_manager.spawns |
Definition at line 497 of file level_manager.gd.
| 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.
| level_manager.target |
Definition at line 563 of file level_manager.gd.
| level_manager.target_layers |
Definition at line 564 of file level_manager.gd.
| level_manager.target_legend |
Definition at line 587 of file level_manager.gd.
| level_manager.target_objects |
Definition at line 565 of file level_manager.gd.
| level_manager.tile |
Definition at line 97 of file level_manager.gd.
| level_manager.tile_dimensions |
Return level dimensions in pixels.
Definition at line 60 of file level_manager.gd.
Clear derived level caches without unloading level data.
Definition at line 54 of file level_manager.gd.
| level_manager.tile_metadata |
Definition at line 98 of file level_manager.gd.
| level_manager.tile_rect |
Definition at line 479 of file level_manager.gd.
| level_manager.tile_size = _parse_tile_size(level.get("tile_size", [32, 32])) |
Definition at line 32 of file level_manager.gd.
| level_manager.triggers = level.get("triggers", []).duplicate(true) if level.get("triggers", []) is Array else [] |
Definition at line 37 of file level_manager.gd.
| level_manager.Variant |
Definition at line 774 of file level_manager.gd.
| 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.
| level_manager.Vector2i |
Definition at line 254 of file level_manager.gd.
| level_manager.width = max(width, str(row).length()) |
Definition at line 52 of file level_manager.gd.
| level_manager.world_rect |
Definition at line 109 of file level_manager.gd.
| level_manager.x |
Definition at line 569 of file level_manager.gd.
| level_manager.y |
Definition at line 570 of file level_manager.gd.