Files
7d2dXG/Mods/zzz_REBIRTH__Utils/Scripts/Network/NetPackageQuickStack.cs
Nathaniel Cosford e06f2bd282 Add All Mods
2025-05-29 23:33:28 +09:30

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);
}
}
}