Class DemolishData
- Namespace
- GridPlacement.GDScript
- Assembly
- MoonBark.GridPlacement.GDScript.dll
Specialized [ManipulationData] for the DEMOLISH action.\n\nCarries a live [Manipulatable] reference for pre-destroy inspection and exposes a [method veto] hook that listeners can call from the [signal ManipulationState.pre_demolish] callback to cancel the demolition. The base [member ManipulationData.target] is also populated (it was historically [code]null[/code] on the demolish path) so existing consumers that walk the data shape don't have to special-case demolish.\n\nLifecycle (5.1.0-C): [codeblock] try_demolish: status = STARTED emit pre_demolish(data) # listeners may call data.veto() if data.vetoed: status = CANCELED return root.queue_free() status = FINISHED [/codeblock]
class DemolishData extends ManipulationData
Properties
demolish_target
Live [Manipulatable] that will be destroyed if no listener vetoes. This is the same reference that flows through [member ManipulationData.source] but exposed explicitly on the demolish data so listeners can read it without walking the data shape.
var demolish_target: Manipulatable
vetoed
True after any [signal ManipulationState.pre_demolish] listener calls [method veto]. [code]try_demolish[/code] checks this flag after the signal fires and short-circuits to [enum PlacementEnums.Status.CANCELED] when set, preserving the [Node] from [code]queue_free[/code].
var vetoed: bool = false
Methods
veto
func veto() -> void: