1
0
forked from joey/godottest
Joey Eamigh 9989fab018
addons?
2025-10-10 14:07:23 -04:00

45 lines
843 B
GDScript

extends SS2D_Action
class_name SS2D_ActionSetPivot
var _shape: SS2D_Shape
var _new_pos: Vector2
var _old_pos: Vector2
func _init(s: SS2D_Shape, pos: Vector2) -> void:
_shape = s
_new_pos = pos
_old_pos = _shape.global_position
func get_name() -> String:
return "Set Pivot"
func do() -> void:
_set_pivot(_new_pos)
func undo() -> void:
_set_pivot(_old_pos)
func _set_pivot(shape_position: Vector2) -> void:
var shape_gt: Transform2D = _shape.get_global_transform()
var pa := _shape.get_point_array()
_shape.global_position = shape_position
pa.begin_update()
pa.disable_constraints()
for i in pa.get_point_count():
var key: int = pa.get_point_key_at_index(i)
var point: Vector2 = pa.get_point_position(key)
pa.set_point_position(key, _shape.to_local(shape_gt * point))
pa.enable_constraints()
pa.end_update()