Added footsteps, new tree, various other tweaks
This commit is contained in:
55
addons/proton_scatter/src/modifiers/single_item.gd
Normal file
55
addons/proton_scatter/src/modifiers/single_item.gd
Normal file
@@ -0,0 +1,55 @@
|
||||
@tool
|
||||
extends "base_modifier.gd"
|
||||
|
||||
# Adds a single object with the given transform
|
||||
|
||||
@export var offset := Vector3.ZERO
|
||||
@export var rotation := Vector3.ZERO
|
||||
@export var scale := Vector3.ONE
|
||||
|
||||
|
||||
func _init() -> void:
|
||||
display_name = "Add Single Item"
|
||||
category = "Create"
|
||||
warning_ignore_no_shape = true
|
||||
warning_ignore_no_transforms = true
|
||||
can_restrict_height = false
|
||||
global_reference_frame_available = true
|
||||
local_reference_frame_available = true
|
||||
individual_instances_reference_frame_available = false
|
||||
use_local_space_by_default()
|
||||
|
||||
|
||||
func _process_transforms(transforms, domain, _seed) -> void:
|
||||
var gt: Transform3D = domain.get_global_transform()
|
||||
var gt_inverse: Transform3D = gt.affine_inverse()
|
||||
|
||||
var t_origin := offset
|
||||
var basis := Basis()
|
||||
var x_axis = Vector3.RIGHT
|
||||
var y_axis = Vector3.UP
|
||||
var z_axis = Vector3.FORWARD
|
||||
|
||||
if is_using_global_space():
|
||||
t_origin = gt_inverse.basis * t_origin
|
||||
x_axis = gt_inverse.basis * x_axis
|
||||
y_axis = gt_inverse.basis * y_axis
|
||||
z_axis = gt_inverse.basis * z_axis
|
||||
basis = gt_inverse.basis
|
||||
|
||||
basis = basis.rotated(x_axis, deg_to_rad(rotation.x))
|
||||
basis = basis.rotated(y_axis, deg_to_rad(rotation.y))
|
||||
basis = basis.rotated(z_axis, deg_to_rad(rotation.z))
|
||||
|
||||
var transform := Transform3D(basis, Vector3.ZERO)
|
||||
|
||||
if is_using_global_space():
|
||||
var global_t: Transform3D = gt * transform
|
||||
global_t.basis = global_t.basis.scaled(scale)
|
||||
transform = gt_inverse * global_t
|
||||
else:
|
||||
transform = transform.scaled_local(scale)
|
||||
|
||||
transform.origin = t_origin
|
||||
|
||||
transforms.list.push_back(transform)
|
||||
Reference in New Issue
Block a user