Table of Contents

Class PlacementSession

Namespace
GridPlacement.GDScript
Assembly
MoonBark.GridPlacement.GDScript.dll

Primary composition-root for the Grid Building placement system.\n\nPlacementSession is a Resource that holds all states, contexts, settings, and the entry catalog in a single object. It maps 1:1 onto the underlying [code]IPlacementSession[/code] surface, enabling: - Scene-free, code-driven testing (construct a Session, pass it to systems) - Code-built placement without a scene tree injector - Single-source-of-truth composition for both the injector path (scene-composed games) and the explicit path (libraries/tools)\n\nUsage: [codeblock] # Explicit path (code-built, no injector): var session := PlacementSession.new() session.catalog = preload("res://catalog.tres") session.settings = preload("res://settings.tres") var system := PlacementSystem.create_with_session(session)\n\n# Injector path (scene-composed, existing flow): container.session = session # container delegates to session [/codeblock]

class PlacementSession extends Resource
PlacementSession

Properties

settings

Main settings configuration resource.

@export var settings: GridPlacementSettings

catalog

Catalog of available placement entries (objects + terrains).

@export var catalog: PlacementCatalog

states

Shared states for plugin systems.

var states: PlacementStates

contexts

Context for resolving references to current objects.

var contexts: PlacementContexts

logger

Centralized logger instance.

var logger: PlacementLogger

owner

var owner = p_owner if p_owner else PlacementOwnerProvider.new()

log

var log = p_logger if p_logger else _create_fallback_logger()

session

var session = PlacementSession.new()

issues

var issues: Array[String] = []

ds

var ds = PlacementDebugSettings.new()

Methods

from_container

static func from_container(p_container: PlacementContainer) -> PlacementSession:

Parameters

p_container

Returns

get_mode_state

func get_mode_state() -> ModeState:

Returns

get_targeting_state

func get_targeting_state() -> GridTargetingState:

Returns

get_building_state

func get_building_state() -> PlacementState:

Returns

get_manipulation_state

func get_manipulation_state() -> ManipulationState:

Returns

get_placement_rules

func get_placement_rules() -> Array[PlacementRule]:

Returns

get_runtime_issues

func get_runtime_issues() -> Array[String]:

Returns