Scene-free terrain placement service. Extracted from PlacementSystem to make the terrain paint path directly unit-testable. Handles terrain-name → TileSet-ID resolution, plan building/gating, plan application, and signal emission (pre_terrain_paint, success/failed). Usage: var service := TerrainPlacementService2D.new() service.configure(building_state, building_settings) var report := service.try_place_terrain_by_name(&"dungeon_floor", cell, map, owner)
Source: addons/grid_placement/systems/building/terrain/terrain_placement_service_2d.gd
Syntax
class TerrainPlacementService2D extends TerrainServiceContractMembers
| Name | Kind | Summary |
|---|---|---|
configure | Method | |
set_states | Method | |
resolve_placement_dependencies | Method | |
set_catalog | Method | |
set_targeting_state | Method | |
try_place_terrain_by_name | Method | |
resolved_map | Property | |
resolved | Property | |
terrain_painter | Property | |
plan | Property | |
owner | Property | |
report | Property | |
owner | Property | |
paint_data | Property | |
issues | Property | |
veto_report | Property | |
applied | Property | |
report | Property | |
success_report | Property | |
try_place_terrain_brush | Method | |
resolved_map | Property | |
resolved | Property | |
brush_issues | Property | |
cell_issue_map | Property | |
owner | Property | |
paint_data | Property | |
report | Property | |
terrain_painter | Property | |
plan | Property | |
report | Property | |
applied | Property | |
report | Property | |
success_report | Property | |
erase_cells | Method | |
resolved_map | Property | |
owner | Property | |
report | Property | |
tile_set | Property | |
tile_data | Property | |
terrain_name | Property | |
t_set | Property | |
t_id | Property | |
erase_cells_batch | Property | |
remove_data | Property | |
try_demolish_terrain | Method | |
resolved_map | Property | |
owner | Property | |
tile_set | Property | |
resolved_terrain_name | Property | |
seen_names | Property | |
td | Property | |
cell_name | Property | |
demolish_data | Property | |
demolishable_cells | Property | |
td | Property | |
terrain_name | Property | |
entry | Property | |
validate_terrain_cells | Method | |
out | Property | |
shared | Property | |
seed_ctx | Property | |
rules | Property | |
ctx | Property | |
results | Property | |
issues | Property | |
validate_terrain_cell | Method | |
ctx | Property | |
results | Property | |
owner | Property | |
report | Property | |
resolve_terrain_collision_polygons | Method | |
polys | Property | |
tile_set | Property | |
resolved_tile_data | Property | |
source | Property | |
tile_data | Property | |
layer_mask | Property | |
layer_col | Property | |
points | Property | |
cell_collides_with_polygons | Method |
Source
addons/grid_placement/systems/building/terrain/terrain_placement_service_2d.gd
Plugin docs root:gdscript/plugins/grid_placement_dev/docs