Grid Placement

GDScript 5.1 Godot Error TODO

Scope: demo project demos/grid_building_dev/godot and addons grid_building / grid_building_inventory. Goal: restore clean parse/load for runtime + high‑value tests.


1. Inventory addon path & global class issues

  • Fix inventory preloads to use canonical grid_building_inventory paths (canonical addon + demo save data)

    • res://addons/grid_building_inventory/inventory/item_container.gd
      • ItemContainer factory uses res://addons/grid_building_inventory/inventory/item_container.gd (autoload entry script).
    • res://addons/grid_building_inventory/grid_building_inventory.gd
      • ItemContainer preload → res://addons/grid_building_inventory/inventory/item_container.gd.
    • res://demos/shared/save/player_save_data.gd
      • INVENTORY_SAVE_DATA preload → res://addons/grid_building_inventory/inventory/inventory_save_data.gd.
      • Added explicit type for INVENTORY_SAVE_DATA to avoid inferred‑type error.
    • NOTE: A legacy nested copy still exists in the demo as res://addons/grid_building/addons/grid_building_inventory/... and is still using old grid_placement_inventory paths; decide whether to delete this nested addon or update it.
  • Resolve global script class name collisions in inventory addon

    • Canonical global classes live under res://addons/grid_building_inventory/...:
      • inventory/item_container.gd (ItemContainer)
      • items/base_item.gd (BaseItem)
      • items/base_item_stack.gd (BaseItemStack)
      • grid_building_inventory.gd (GridBuildingInventory)
    • Remaining errors are due to duplicate copies being visible (res://addons/grid_building/addons/grid_building_inventory/...).
    • TODO: keep the canonical addon at res://addons/grid_building_inventory and remove/retire the nested duplicate under res://addons/grid_building/addons/grid_building_inventory so only one set of global classes is active.

2. GridBuilding core runtime parse errors

  • Restore valid implementation for placement commands
    • res://addons/grid_building/core/runtime/placement_commands.gd
      • Plugin source script updated with proper indentation, typed helpers, and logging.
      • Sync updated script into the demo addon and re‑scan to confirm the “Expected indented block” error is gone.
      • Remove any duplicated/stray statements at class scope that still exist in the demo copy, if any.

3. GridPlacement addon test helper path issues

  • Fix missing test resources referenced by GBTestConstants (addon tests)

    • res://addons/grid_building/test/grid_placement/helpers/gb_test_constants.gd
      • Preload paths now point to existing assets under res://addons/grid_building/test/grid_placement/resources/... instead of the old test/grid_building/resources/... folder.
      • The constants file parses and its preloads resolve in the addon scope.
    • Remaining errors mentioning res://addons/grid_building/test/grid_building/... now come from demo helpers/tests (e.g. demo_test_constants.gd, building_env_box_collision_test.gd) that still preload the legacy path; these are tracked in sections 3.2, 3.3 and in section 4.
  • Fix helper preload chains and missing helpers

    • res://addons/grid_building/test/grid_placement/helpers/gb_test_preloads.gd
      • Missing preloads under res://addons/grid_building/test/grid_building/helpers/...:
        • integration_test_component.gd
        • gb_test_search_utils.gd
        • factories/collision_object_test_factory.gd
        • indicator_test_component.gd
        • manipulation_test_helpers.gd
    • res://addons/grid_building/test/grid_placement/helpers/integration_test_component.gd
      • Missing test_safety_utils.gd and unresolved ALL_SYSTEMS_ENV.
    • res://addons/grid_building/test/grid_placement/helpers/factories/environment_test_factory.gd
      • Unresolved external members: ALL_SYSTEMS_ENV, BUILDING_TEST_ENV, COLLISION_TEST_ENV, TEST_TILE_MAP_LAYER_BUILDABLE.
  • Clean up broken/over-complex helpers (consider delete/replace)

    • res://addons/grid_building/test/grid_placement/helpers/gb_service_facade_unit_test.gd
      • Indentation / missing block after func.
    • res://addons/grid_building/test/grid_placement/helpers/manipulation_test_helpers.gd
      • Duplicate MockManipulationState class.
    • res://addons/grid_building/test/grid_placement/helpers/secure_preloader_fixed.gd
      • Invalid C# preload (PathValidator.cs), non-constant preloads.
    • res://addons/grid_building/test/grid_placement/helpers/transform_persistence_diagnostics.gd
      • Bad indentation after if.
    • res://addons/grid_building/test/grid_placement/shared/utils/collision/detection/building_env_box_collision_test.gd
      • Missing gb_test_constants.gd preload; type mismatch assignment to be_on_buildable.
    • res://addons/grid_building/test/grid_placement/shared/utils/collision/detection/targeting_shape_cast_test_helpers.gd
      • Depends on other broken helpers; decide keep vs delete vs rewrite.
  • Fix unit tests in grid_targeting / placement validation

    • res://addons/grid_building/test/grid_placement/systems/grid_targeting/unit/handlers/grid_positioner_unit_test.gd
      • Indentation after if.
    • res://addons/grid_building/test/grid_placement/systems/grid_targeting/unit/handlers/targeting_shape_cast_2d_unit_test.gd
      • Indentation after if.
    • res://addons/grid_building/test/grid_placement/systems/placement/unit/validators/placement_rules/validation/rule_system_integration_tests.gd
      • Indentation after for.
    • res://addons/grid_building/test/grid_placement/systems/placement/unit/validators/placement_rules/validation/tilemap_bounds_rule_unit_test.gd
      • Unresolved COLLISION_TEST_ENV / TEST_TILE_MAP_LAYER_BUILDABLE and invalid String.is_equal usage.

4. Demo tests & shared helpers (non-addon res://test/...)

  • Decide which demo tests to keep vs delete or rewrite

    • Camera tests:
      • res://test/demos/camera/pixel_perfect_camera_test.gd
        • Undeclared variables (i, x_fraction, y_fraction, zoom, default_pos, pixel_perfect_pos, re_enabled_pos).
        • Many unused-variable warnings treated as errors.
      • res://addons/pixel_perfect_camera/tests/pixel_perfect_test_base.gd
      • res://addons/pixel_perfect_camera/tests/test_camera_jitter_fix.gd
      • res://addons/pixel_perfect_camera/tests/test_camera_stability.gd
    • Demo data/tests:
      • res://test/demos/data/demo_test_constants.gd
      • res://test/demos/data/test_constants_load.gd
      • res://test/demos/data/placeables/gigantic_egg_tests.gd
      • res://test/demos/data/placeables/smithy_placeable_test.gd
    • Demo scenarios & systems:
      • res://test/demos/scenarios/platformer/...
      • res://test/demos/scenarios/top_down/...
      • res://test/demos/scenarios/isometric/...
      • res://test/demos/systems/persistence/...
      • res://test/demos/systems/scene_analysis/demo_scene_analyzer_test.gd
  • Fix or retire shared demo helpers

    • res://test/helpers/demo_test_helper_registry.gd
      • Invalid index type for Dictionary[String, Variant] with enum key.
    • res://test/helpers/demo_test_helper_router.gd
      • Unresolved PLACEABLE_ISOMETRIC_BUILDING constant.
    • res://test/TESTING_TOOLS/components/test_fixtures/parameterized_test_fixture.gd
      • Broken match patterns / syntax.
    • res://test/demos/systems/persistence/demo_save_load_test_utils.gd
      • Depends on broken demo tests/constants.

5. UID / ext_resource cleanup (warnings, lower priority)

  • Fix invalid UIDs in template/theme/indicator resources

    • res://addons/grid_building/templates/resources/themes/grid_builder_warm_earth_theme.tres
    • res://addons/grid_building/templates/indicator/rule_check_indicator_16x16.tscn
    • res://addons/grid_building/templates/indicator/rule_check_indicator_isometric.tscn
    • res://addons/grid_building/templates/resources/top_down/td_config.tres
    • res://addons/grid_building/templates/resources/isometric/config.tres
    • res://addons/grid_building/test/grid_placement/resources/scenes/indicators/test_indicator*.tscn
    • res://addons/grid_building/test/grid_placement/resources/data/composition_containers/test_td_settings.tres
    • res://addons/grid_building/test/grid_placement/resources/data/settings/test_cursor_settings.tres
  • Decide on UID policy for third-party addons

    • res://addons/pixel_perfect_camera/tests/... (UIDs and broken preloads).