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