Jamie Greunbaum e7fa38058c - Jail call overlay no longer modifies the global material.
- Jail player now disappears when round 2 is initialised or deinitialised.
- Phone box cover now syncs when closed automatically.
2026-05-16 01:19:10 -04:00

62 lines
1.1 KiB
C#

using Newtonsoft.Json.Linq;
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
using VRC.Udon.Common;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class Door : UdonSharpBehaviour
{
[UdonSynced] private bool _OpenDoor = false;
[SerializeField] private Animator _OpenAnimation;
[SerializeField] private bool _AutoCloseDoor;
public override void OnDeserialization(DeserializationResult Result)
{
_OpenDoor_Synced();
base.OnDeserialization(Result);
}
public override void Interact()
{
Networking.SetOwner(Networking.LocalPlayer, gameObject);
if (!_OpenDoor)
{
_OpenDoor = true;
_OpenDoor_Synced();
RequestSerialization();
if (_AutoCloseDoor)
{
SendCustomEventDelayedSeconds(nameof(CloseDoor), 1.5f);
}
}
else if (!_AutoCloseDoor)
{
CloseDoor();
}
base.Interact();
}
private void _OpenDoor_Synced()
{
_OpenAnimation.SetBool("Open", _OpenDoor);
}
public void CloseDoor()
{
Networking.SetOwner(Networking.LocalPlayer, gameObject);
_OpenDoor = false;
_OpenDoor_Synced();
RequestSerialization();
}
}