Upload from upload_mods.ps1
This commit is contained in:
71
Scripts/Network/NPCs/NetPackageTeleportTo.cs
Normal file
71
Scripts/Network/NPCs/NetPackageTeleportTo.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
public class NetPackageTeleportTo : NetPackage
|
||||
{
|
||||
private int playerID;
|
||||
public Vector3 position;
|
||||
|
||||
public NetPackageTeleportTo Setup(int _playerID, Vector3 _position)
|
||||
{
|
||||
this.playerID = _playerID;
|
||||
this.position = _position;
|
||||
return this;
|
||||
}
|
||||
|
||||
public override void read(PooledBinaryReader _br)
|
||||
{
|
||||
this.playerID = _br.ReadInt32();
|
||||
this.position = StreamUtils.ReadVector3(_br);
|
||||
}
|
||||
|
||||
public override void write(PooledBinaryWriter _bw)
|
||||
{
|
||||
base.write(_bw);
|
||||
_bw.Write(this.playerID);
|
||||
StreamUtils.Write(_bw, this.position);
|
||||
}
|
||||
|
||||
public override int GetLength()
|
||||
{
|
||||
return 6;
|
||||
}
|
||||
|
||||
public override void ProcessPackage(World _world, GameManager _callbacks)
|
||||
{
|
||||
//Log.Out("NetPackageTeleporTo-ProcessPackage START");
|
||||
if (_world == null)
|
||||
{
|
||||
//Log.Out("NetPackageTeleporTo-ProcessPackage 1");
|
||||
return;
|
||||
}
|
||||
|
||||
Entity myEntity = _world.GetEntity(this.playerID);
|
||||
if (myEntity is EntityPlayer)
|
||||
{
|
||||
if (SingletonMonoBehaviour<ConnectionManager>.Instance.IsServer)
|
||||
{
|
||||
float height1 = GameManager.Instance.World.GetHeight((int)position.x, (int)position.z);
|
||||
float height2 = GameManager.Instance.World.GetHeight((int)position.x, (int)position.z);
|
||||
|
||||
float height = ((height1 + height2) / 2f) + 1.5f;
|
||||
|
||||
//Log.Out("NetPackageTeleporTo-ProcessPackage height1: " + height1);
|
||||
//Log.Out("NetPackageTeleporTo-ProcessPackage height2: " + height2);
|
||||
//Log.Out("NetPackageTeleporTo-ProcessPackage height: " + height);
|
||||
|
||||
if (height <= position.y)
|
||||
{
|
||||
SingletonMonoBehaviour<ConnectionManager>.Instance.SendPackage(NetPackageManager.GetPackage<NetPackageTeleportTo>().Setup(playerID, position), false, playerID);
|
||||
}
|
||||
else
|
||||
{
|
||||
SingletonMonoBehaviour<ConnectionManager>.Instance.SendPackage(NetPackageManager.GetPackage<NetPackageTeleportTo>().Setup(playerID, new Vector3(position.x, height, position.x)), false, playerID);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//Log.Out("NetPackageTeleporTo-ProcessPackage position: " + position);
|
||||
myEntity.SetPosition(position);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user