Table of Contents

Class PreviewBuilder

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

PreviewBuilder\n\nPurpose Manages the visual preview instance used during building placement. The class requires the core runtime objects up-front: PlacementSettings, the GridTargetingState, PlacementState, and a GBLogger. These are accepted in the constructor so the caller is explicit about required dependencies.\n\nIn addition, resolve_gb_dependencies(container) exists to refresh or update dependencies from a PlacementContainer if the container changes during runtime (rare for tests but supported). The GridTargetingState is treated as the single source of truth for the positioner — the preview will always query the latest positioner when creating the preview.

class PreviewBuilder extends GBInjectable
PreviewBuilder

Properties

p_building_settings

var p_building_settings: PlacementSettings = container.get_settings().building

targeting_state

var targeting_state: GridTargetingState = container.get_targeting_state()

building_state

var building_state: PlacementState = container.get_states().building

logger

var logger: GBLogger = container.get_logger()

builder

var builder: PreviewBuilder = PreviewBuilder.new(p_building_settings, targeting_state, building_state, logger)

issues

var issues: Array[String] = []

positioner

var positioner: Node2D = _targeting_state.positioner

idx

var idx = _targeting_state.collision_exclusions.find(_current_preview)

parent

var parent = _current_preview.get_parent()

tile_size

var tile_size = _building_state.get_tile_size()

preview_offset

var preview_offset = Vector2(

Methods

from_container

static func from_container(container: PlacementContainer) -> PreviewBuilder:

Parameters

container

Returns

resolve_gb_dependencies

func resolve_gb_dependencies(container: PlacementContainer) -> bool:

Parameters

container

Returns

get_runtime_issues

func get_runtime_issues() -> Array[String]:

Returns

initialize

func initialize(p_building_settings: PlacementSettings, p_targeting_state: GridTargetingState, p_building_state : PlacementState, p_logger: GBLogger) -> void:

Parameters

p_building_settings
p_targeting_state
p_building_state
p_logger

Returns

create_preview

func create_preview(p_placeable: Placeable) -> Node2D:

Parameters

p_placeable

Returns

get_preview

func get_preview() -> Node2D:

Returns

clear_preview

func clear_preview():

align_to_grid

func align_to_grid(collision_shape_global_position : Vector2):

Parameters

collision_shape_global_position

update_position

func update_position(p_position: Vector2):

Parameters

p_position

has_active_preview

func has_active_preview() -> bool:

Returns