113 lines
2.5 KiB
C#
113 lines
2.5 KiB
C#
#define UNITY_ASSERTIONS
|
|
using System;
|
|
using ConVar;
|
|
using Network;
|
|
using UnityEngine;
|
|
using UnityEngine.Assertions;
|
|
|
|
public class EngineSwitch : BaseEntity
|
|
{
|
|
public override bool OnRpcMessage(BasePlayer player, uint rpc, Message msg)
|
|
{
|
|
using (TimeWarning.New("EngineSwitch.OnRpcMessage"))
|
|
{
|
|
if (rpc == 1249530220 && player != null)
|
|
{
|
|
Assert.IsTrue(player.isServer, "SV_RPC Message is using a clientside player!");
|
|
if (Global.developer > 2)
|
|
{
|
|
Debug.Log("SV_RPCMessage: " + player?.ToString() + " - StartEngine ");
|
|
}
|
|
using (TimeWarning.New("StartEngine"))
|
|
{
|
|
using (TimeWarning.New("Conditions"))
|
|
{
|
|
if (!RPC_Server.MaxDistance.Test(1249530220u, "StartEngine", this, player, 3f))
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
try
|
|
{
|
|
using (TimeWarning.New("Call"))
|
|
{
|
|
RPCMessage msg2 = new RPCMessage
|
|
{
|
|
connection = msg.connection,
|
|
player = player,
|
|
read = msg.read
|
|
};
|
|
StartEngine(msg2);
|
|
}
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Debug.LogException(exception);
|
|
player.Kick("RPC Error in StartEngine");
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
if (rpc == 1739656243 && player != null)
|
|
{
|
|
Assert.IsTrue(player.isServer, "SV_RPC Message is using a clientside player!");
|
|
if (Global.developer > 2)
|
|
{
|
|
Debug.Log("SV_RPCMessage: " + player?.ToString() + " - StopEngine ");
|
|
}
|
|
using (TimeWarning.New("StopEngine"))
|
|
{
|
|
using (TimeWarning.New("Conditions"))
|
|
{
|
|
if (!RPC_Server.MaxDistance.Test(1739656243u, "StopEngine", this, player, 3f))
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
try
|
|
{
|
|
using (TimeWarning.New("Call"))
|
|
{
|
|
RPCMessage msg3 = new RPCMessage
|
|
{
|
|
connection = msg.connection,
|
|
player = player,
|
|
read = msg.read
|
|
};
|
|
StopEngine(msg3);
|
|
}
|
|
}
|
|
catch (Exception exception2)
|
|
{
|
|
Debug.LogException(exception2);
|
|
player.Kick("RPC Error in StopEngine");
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
return base.OnRpcMessage(player, rpc, msg);
|
|
}
|
|
|
|
[RPC_Server]
|
|
[RPC_Server.MaxDistance(3f)]
|
|
public void StopEngine(RPCMessage msg)
|
|
{
|
|
MiningQuarry miningQuarry = GetParentEntity() as MiningQuarry;
|
|
if ((bool)miningQuarry)
|
|
{
|
|
miningQuarry.EngineSwitch(isOn: false);
|
|
}
|
|
}
|
|
|
|
[RPC_Server]
|
|
[RPC_Server.MaxDistance(3f)]
|
|
public void StartEngine(RPCMessage msg)
|
|
{
|
|
MiningQuarry miningQuarry = GetParentEntity() as MiningQuarry;
|
|
if ((bool)miningQuarry)
|
|
{
|
|
miningQuarry.EngineSwitch(isOn: true);
|
|
}
|
|
}
|
|
}
|