Skip to content

Commit a2f170e

Browse files
committed
snapshot only physics bodies in 3D
1 parent 4e4e3c0 commit a2f170e

File tree

3 files changed

+9
-11
lines changed

3 files changed

+9
-11
lines changed

addons/netfox.extras/physics/godot_driver_2d.gd.off

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ func _snapshot_space(tick: int) -> void:
2626
var rid = element.get_rid()
2727
rid_states[rid] = get_body_states(rid)
2828

29-
collision_objects_snapshots[tick] = rid_states
29+
snapshots[tick] = rid_states
3030

3131
func _rollback_space(tick) -> void:
32-
if collision_objects_snapshots.has(tick):
33-
var rid_states = collision_objects_snapshots[tick]
32+
if snapshots.has(tick):
33+
var rid_states = snapshots[tick]
3434
for rid in rid_states.keys():
3535
set_body_states(rid, rid_states[rid])
3636

addons/netfox.extras/physics/godot_driver_3d.gd.off

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ class_name PhysicsDriver3D
55
# Requires a custom build of Godot with https://github.com/godotengine/godot/pull/76462
66

77
# Maps ticks ( int ) to global snapshots ( Dictionary<RID, Array> )
8-
var collision_objects_snapshots: Dictionary = {}
98
var scene_collision_objects: Array = []
109

1110
func _init_physics_space() -> void:
@@ -27,11 +26,11 @@ func _snapshot_space(tick: int) -> void:
2726
var rid = element.get_rid()
2827
rid_states[rid] = get_body_states(rid)
2928

30-
collision_objects_snapshots[tick] = rid_states
29+
snapshots[tick] = rid_states
3130

3231
func _rollback_space(tick) -> void:
33-
if collision_objects_snapshots.has(tick):
34-
var rid_states = collision_objects_snapshots[tick]
32+
if snapshots.has(tick):
33+
var rid_states = snapshots[tick]
3534
for rid in rid_states.keys():
3635
set_body_states(rid, rid_states[rid])
3736

@@ -56,13 +55,13 @@ func scan_tree():
5655

5756
func get_all_children(in_node: Node) -> Array:
5857
var nodes = []
59-
nodes = in_node.find_children("*", "CollisionObject3D", true, false)
58+
nodes = in_node.find_children("*", "PhysicsBody3D", true, false)
6059
return nodes
6160

6261
func node_added(node: Node) -> void:
63-
if node is CollisionObject3D:
62+
if node is PhysicsBody3D:
6463
scene_collision_objects.append(node)
6564

6665
func node_removed(node: Node) -> void:
67-
if node is CollisionObject3D:
66+
if node is PhysicsBody3D:
6867
scene_collision_objects.erase(node)

addons/netfox.extras/physics/physics_driver.gd

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ class_name PhysicsDriver
77

88
var physics_space: RID
99
var snapshots: Dictionary = {}
10-
#var snapshots: Dictionary[int, PackedByteArray] = {}
1110

1211
# Number of physics steps to take per network tick
1312
@export var physics_factor: int = 2

0 commit comments

Comments
 (0)