Added region-stepped origin.
This commit is contained in:
parent
907695442f
commit
73baafbd6c
9 changed files with 83 additions and 2 deletions
25
scripts/origin/region_origin.gd
Normal file
25
scripts/origin/region_origin.gd
Normal file
|
@ -0,0 +1,25 @@
|
|||
# no name - meant to be an autoload
|
||||
# Handles regional origin.
|
||||
extends Node
|
||||
|
||||
@export var region_size := 1000.0
|
||||
@export var origin := Vector3i.ZERO
|
||||
@export var anchor: RegionTransform
|
||||
|
||||
var nodes_to_move: Dictionary[Node3D, bool]
|
||||
|
||||
func _physics_process(_delta: float) -> void:
|
||||
if (anchor and anchor.region != origin):
|
||||
move_origin(anchor.region)
|
||||
|
||||
func add_node(new_node: Node3D) -> void:
|
||||
nodes_to_move[new_node] = true
|
||||
|
||||
func remove_node(old_node: Node3D) -> void:
|
||||
nodes_to_move.erase(old_node)
|
||||
|
||||
func move_origin(new_origin: Vector3i) -> void:
|
||||
origin = new_origin
|
||||
var move_amount := Vector3(new_origin - origin * 1000)
|
||||
for node in nodes_to_move:
|
||||
node.transform.origin += move_amount
|
Loading…
Add table
Add a link
Reference in a new issue