69 lines
2.0 KiB
C#
69 lines
2.0 KiB
C#
using static EntityDrone;
|
|
using System.Collections.Generic;
|
|
|
|
public class NetPackageQuickStack : NetPackage
|
|
{
|
|
private int playerID;
|
|
private bool mine;
|
|
public List<Vector3i> tileList;
|
|
|
|
|
|
public NetPackageQuickStack Setup(int playerID,
|
|
bool mine
|
|
)
|
|
{
|
|
this.playerID = playerID;
|
|
this.mine = mine;
|
|
|
|
return this;
|
|
}
|
|
|
|
public override void read(PooledBinaryReader _br)
|
|
{
|
|
this.playerID = _br.ReadInt32();
|
|
this.mine = _br.ReadBoolean();
|
|
}
|
|
|
|
public override void write(PooledBinaryWriter _bw)
|
|
{
|
|
base.write(_bw);
|
|
_bw.Write(this.playerID);
|
|
_bw.Write(this.mine);
|
|
}
|
|
|
|
public override int GetLength()
|
|
{
|
|
return 3;
|
|
}
|
|
|
|
public override void ProcessPackage(World _world, GameManager _callbacks)
|
|
{
|
|
//Log.Out("NetPackageQuickStack-ProcessPackage START");
|
|
if (_world == null)
|
|
{
|
|
//Log.Out("NetPackageQuickStack-ProcessPackage 1");
|
|
return;
|
|
}
|
|
|
|
if (GameManager.Instance.World.GetEntity(this.playerID) is EntityPlayer player)
|
|
{
|
|
//Log.Out("NetPackageQuickStack-ProcessPackage 1");
|
|
List<TileEntity> tileEntities = RebirthUtilities.GetTileEntities(player, RebirthVariables.quickStackDistance, true);
|
|
|
|
tileList = new List<Vector3i>();
|
|
|
|
foreach (var tileEntity in tileEntities)
|
|
{
|
|
if (GameManager.Instance.lockedTileEntities.ContainsKey((ITileEntity)tileEntity))
|
|
{
|
|
//Log.Out("RebirthUtilities-QuickStackOnClick IS LOCKED: " + tileEntity.ToWorldPos());
|
|
tileList.Add(tileEntity.ToWorldPos());
|
|
}
|
|
}
|
|
|
|
SingletonMonoBehaviour<ConnectionManager>.Instance.SendPackage((NetPackage)NetPackageManager.GetPackage<NetPackageQuickstackLockedTiles>().Setup(this.playerID, this.mine, this.tileList), _attachedToEntityId: this.playerID);
|
|
}
|
|
}
|
|
}
|
|
|