@@ -17,11 +17,21 @@ var _overlapping_areas := _HistoryBuffer.new()
1717
1818## Returns the result of [method Area2D.get_overlapping_areas] at [param tick]
1919func rollback_get_overlapping_areas (tick : int ) -> Array [Area2D ]:
20- return _overlapping_areas .get_snapshot (tick ) if _overlapping_areas .has (tick ) else []
20+ if not _overlapping_areas .has (tick ):
21+ return []
22+
23+ var areas : Array [Area2D ] = []
24+ areas .assign (_overlapping_areas .get_snapshot (tick ))
25+ return areas
2126
2227## Returns the result of [method Area2D.get_overlapping_bodies] at [param tick]
2328func rollback_get_overlapping_bodies (tick : int ) -> Array [Node2D ]:
24- return _overlapping_bodies .get_snapshot (tick ) if _overlapping_bodies .has (tick ) else []
29+ if not _overlapping_bodies .has (tick ):
30+ return []
31+
32+ var bodies : Array [Node2D ] = []
33+ bodies .assign (_overlapping_bodies .get_snapshot (tick ))
34+ return bodies
2535
2636## Returns the result of [method Area2D.has_overlapping_areas] at [param tick]
2737func rollback_has_overlapping_areas (tick : int ) -> bool :
@@ -44,15 +54,18 @@ func _notification(what: int):
4454 # Use notification instead of _ready, so users can write their own _ready
4555 # callback without having to call super()
4656 if what == NOTIFICATION_READY :
47- NetworkTime . on_tick .connect (_tick )
57+ NetworkRollback . after_prepare_tick .connect (_after_prepare_tick )
4858
4959
50- func _tick ( _d : float , tick : int ):
60+ func _after_prepare_tick ( tick : int ):
5161 _update_bodies (tick )
5262 _update_areas (tick )
5363
5464
5565func _update_bodies (tick : int ):
66+ if not self .monitoring :
67+ return
68+
5669 var current := self .get_overlapping_bodies ()
5770 _overlapping_bodies .set_snapshot (tick , current )
5871
@@ -75,6 +88,9 @@ func _update_bodies(tick: int):
7588
7689
7790func _update_areas (tick : int ):
91+ if not self .monitoring :
92+ return
93+
7894 var current := self .get_overlapping_areas ()
7995 _overlapping_areas .set_snapshot (tick , current )
8096
0 commit comments