diff --git a/godot/project.godot b/godot/project.godot index 3e5c2a6..2130c34 100644 --- a/godot/project.godot +++ b/godot/project.godot @@ -158,8 +158,9 @@ prev_spectator={ 3d_physics/layer_2="Remote Player" 3d_physics/layer_3="Walls" 3d_physics/layer_4="Ball and Goals" -3d_physics/layer_5="I forget" +3d_physics/layer_5="Replay Players" 3d_physics/layer_6="Grate Walls" +3d_physics/layer_7="Moving Walls" [physics] diff --git a/godot/scenes/misc/ball.tscn b/godot/scenes/misc/ball.tscn index 9104e68..f78d610 100644 --- a/godot/scenes/misc/ball.tscn +++ b/godot/scenes/misc/ball.tscn @@ -31,7 +31,7 @@ stream_9/stream = ExtResource("10_p4exv") [node name="ball" type="Ball" unique_id=816748600 node_paths=PackedStringArray("bounce_sfx")] bounce_sfx = NodePath("bounce_sfx") collision_layer = 8 -collision_mask = 39 +collision_mask = 103 contact_monitor = true max_contacts_reported = 10 diff --git a/godot/scenes/player/local_player.tscn b/godot/scenes/player/local_player.tscn index d627e46..483554d 100644 --- a/godot/scenes/player/local_player.tscn +++ b/godot/scenes/player/local_player.tscn @@ -45,7 +45,7 @@ punch_cooldown = 1.0 telegrenade_cooldown = NodePath("cooldown_icon") telefrag_area_prefab = ExtResource("1_0yoer") telegrenade_cd = 10.0 -collision_mask = 36 +collision_mask = 100 slide_on_ceiling = false floor_constant_speed = true diff --git a/godot/scenes/player/remote_player.tscn b/godot/scenes/player/remote_player.tscn index 12e9d8a..d59e326 100644 --- a/godot/scenes/player/remote_player.tscn +++ b/godot/scenes/player/remote_player.tscn @@ -60,7 +60,7 @@ arrow = NodePath("arrow") telefrag_area_prefab = ExtResource("1_8dfyr") telegrenade_cd = 10.0 collision_layer = 2 -collision_mask = 36 +collision_mask = 100 slide_on_ceiling = false floor_constant_speed = true diff --git a/rust/src/map/triggers.rs b/rust/src/map/triggers.rs index d3414d2..3ed1645 100644 --- a/rust/src/map/triggers.rs +++ b/rust/src/map/triggers.rs @@ -115,21 +115,29 @@ impl Triggerable { } } + /// Returns true if this triggerable is active currently on the real running + /// version of the game. #[func] pub fn is_server_active(&self) -> bool { self.active.is_some() } + /// Returns the amount of time this triggerable has been active on the real + /// running version of the game. #[func] pub fn server_active_for(&self) -> f64 { self.active_for } + /// Returns true if this triggerable should be visibly active, whether it's + /// happening in a replay or the real game. #[func] pub fn is_active(&self) -> bool { self.visual_active.is_some() } + /// Returns the amount of time this triggerable has been visually active, + /// whether it's happening in replay or in the real game. #[func] pub fn active_for(&self) -> f64 { self.visual_active_for