Class ManipulationService3D
- Namespace
- GridPlacement.GDScript
- Assembly
- MoonBark.GridPlacement.GDScript.dll
class ManipulationService3D extends RefCounted
ManipulationService3D
Properties
source
var source: Manipulatable = PlacementSearchUtils.find_first(p_root, Manipulatable)
move_data
var move_data = ManipulationData.new(
failed_reason
var failed_reason: String = _validate_move_preconditions(p_root, move_data)
started
var started: bool = _start_move(move_data)
bad_results
var bad_results = ValidationResults.new(false, "[p_move] is not valid. Cannot move object.", {})
target_root
var target_root: Node3D = p_move.target.root as Node3D
move_rules
var move_rules: Array[PlacementRule] = []
ignore_base
var ignore_base: bool = false
validation_results
var validation_results: ValidationResults
setup_report
var setup_report: PlacementReport = _indicator_manager.try_setup(
issues
var issues: Array = setup_report.indicators_report.issues
vr
var vr = ValidationResults.new(
old_transform
var old_transform: Transform3D = (p_move.source.root as Node3D).global_transform
manipulation_parent
var manipulation_parent: ManipulationParent3D = _states.manipulation.parent_3d
final_position
var final_position: Vector3 = target_root.global_position
accumulated_basis
var accumulated_basis: Basis = manipulation_parent.basis
accumulated_scale
var accumulated_scale: Vector3 = manipulation_parent.scale
root_node
var root_node: Node3D = p_move.source.root as Node3D
applied_position
var applied_position: Vector3 = root_node.global_position if root_node != null else final_position
target
var target: Manipulatable = p_manipulatable if p_manipulatable != null else _states.manipulation.active_manipulatable
demolish_data
var demolish_data = DemolishData.new(
root
var root: Node3D = p_data.target.root as Node3D
display_name
var display_name: String = _get_demolish_display_name(target)
data
var data: ManipulationData = _states.manipulation.data
manipulation_parent
var manipulation_parent: ManipulationParent3D = _states.manipulation.parent_3d
root
var root: Node3D = p_data.target.root as Node3D
kept_script_types
var kept_script_types: Array[String] = ["Manipulatable"]
source_basis
var source_basis: Basis = (p_data.source.root as Node3D).global_transform.basis
source_position
var source_position: Vector3 = (p_data.source.root as Node3D).global_position
move_rules
var move_rules: Array[PlacementRule] = []
ignore_base_rules
var ignore_base_rules: bool = p_data.source.settings != null and p_data.source.settings.ignore_base_rules == true
report
var report: PlacementReport = _indicator_manager.try_setup(move_rules, _states.targeting, ignore_base_rules)
Methods
configure
func configure( p_states: PlacementStates,
set_indicator_manager
func set_indicator_manager(p_indicator_manager: IndicatorManager) -> void:
Parameters
p_indicator_manager
Returns
set_source_tree_exiting_callback
func set_source_tree_exiting_callback(p_callback: Callable) -> void:
Parameters
p_callback
Returns
try_move
func try_move(p_root: Node3D) -> ManipulationData:
Parameters
p_root
Returns
try_placement
func try_placement(p_move: ManipulationData) -> ValidationResults:
Parameters
p_move
Returns
try_demolish
func try_demolish(p_manipulatable: Manipulatable) -> ManipulationData:
Parameters
p_manipulatable
Returns
cancel
func cancel() -> void:
Returns
rotate
func rotate(p_target: Node, increment: int = 1) -> bool:
Parameters
p_targetincrement
Returns
get_targeted
func get_targeted() -> Node:
Returns
set_targeted
func set_targeted(p_obj_root: Node) -> void:
Parameters
p_obj_root
Returns
is_ready
func is_ready() -> bool: