38 lines
622 B
C#
38 lines
622 B
C#
|
using UnityEngine;
|
||
|
using UnityEngine.Networking;
|
||
|
|
||
|
namespace RoR2.Networking;
|
||
|
|
||
|
public class NetworkContextActivationGuard : MonoBehaviour
|
||
|
{
|
||
|
public enum Rule
|
||
|
{
|
||
|
Neutral,
|
||
|
MustBeTrue,
|
||
|
MustBeFalse
|
||
|
}
|
||
|
|
||
|
public Rule server;
|
||
|
|
||
|
public Rule client;
|
||
|
|
||
|
private void Awake()
|
||
|
{
|
||
|
bool flag = true;
|
||
|
flag &= CheckRule(server, NetworkServer.active);
|
||
|
flag &= CheckRule(client, NetworkClient.active);
|
||
|
base.gameObject.SetActive(flag);
|
||
|
}
|
||
|
|
||
|
private bool CheckRule(Rule rule, bool value)
|
||
|
{
|
||
|
return rule switch
|
||
|
{
|
||
|
Rule.Neutral => true,
|
||
|
Rule.MustBeTrue => value,
|
||
|
Rule.MustBeFalse => !value,
|
||
|
_ => false,
|
||
|
};
|
||
|
}
|
||
|
}
|