iso2/scene/ScenePlayerExitBunker.cs
using Sandbox.Utility;
public class ScenePlayerExitBunker : Component {
[Property] public SkinnedModelRenderer Renderer {get; set;}
[Property] public bool Play {get; set;}
[Property, ReadOnly] public bool Playing {get; set;}
private TimeUntil PlayTime;
private TimeUntil LoadTime;
protected override void OnUpdate() {
Playing = Playing && Play;
if (!Play) {
Renderer.Set("play", false);
Renderer.Enabled = false;
return;
}
if (!Playing) {
Renderer.Enabled = true;
foreach (var node in Scene.GetAllComponents<PacViewNode>())
node.AttachedPlayer = null;
BasePlayer.Local.GameObject.SetParent(Renderer.GetAttachmentObject("camera"), false);
BasePlayer.Local.GameObject.LocalRotation = Rotation.FromPitch(90f);
BasePlayer.Local.PacCamera.FullScreenFMV = true;
Renderer.Set("play", true);
Sound.Play("sounds/choreo/player_leave_foley.sound");
Sound.StopAll(1.22f);
PlayTime = 1.22f;
Playing = true;
}
BasePlayer.Local.PacCamera.OverlayStrength = 0f;
BasePlayer.Local.GameObject.LocalRotation = Rotation.Identity;
BasePlayer.Local.PacCamera.Fade = MathF.Pow(PlayTime.Fraction, 8);
if (!PlayTime)
LoadTime = 0.3f;
if (LoadTime)
Scene.LoadFromFile("scenes/iso2_world.scene");
base.OnUpdate();
}
}