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
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]: