Update GetDataHandlers for new packet stuff.

This commit is contained in:
Zack Piispanen 2014-05-10 14:30:59 -04:00
parent 9a36405df2
commit 1eb40afd1c
4 changed files with 123 additions and 146 deletions

View file

@ -101,61 +101,58 @@ namespace TShockAPI.Net
public void Pack(Stream stream)
{
var flags = TileFlags.None;
var bits = new BitsByte();
if ((Active) && (!Inactive))
flags |= TileFlags.Active;
if (Lighted)
flags |= TileFlags.Lighted;
bits[0] = true;
if (HasWall)
flags |= TileFlags.Wall;
bits[2] = true;
if (HasLiquid)
flags |= TileFlags.Liquid;
bits[3] = true;
if (Wire)
flags |= TileFlags.Wire;
bits[4] = true;
if (IsHalf)
flags |= TileFlags.HalfBrick;
bits[5] = true;
if (IsActuator)
flags |= TileFlags.Actuator;
bits[6] = true;
if (Inactive)
{
flags |= TileFlags.Inactive;
bits[7] = true;
}
stream.WriteInt8((byte) flags);
stream.WriteInt8((byte) bits);
var flags2 = TileFlags2.None;
bits = new BitsByte();
if ((Wire2))
flags2 |= TileFlags2.Wire2;
bits[0] = true;
if (Wire3)
flags2 |= TileFlags2.Wire3;
bits[1] = true;
if (HasColor)
flags2 |= TileFlags2.Color;
bits[2] = true;
if (HasWallColor)
flags2 |= TileFlags2.WallColor;
bits[3] = true;
if (Slope)
flags2 |= TileFlags2.Slope;
bits[4] = true;
if (Slope2)
flags2 |= TileFlags2.Slope2;
bits[5] = true;
if (Slope3)
flags2 |= TileFlags2.Slope3;
bits[6] = true;
stream.WriteInt8((byte)flags2);
stream.WriteInt8((byte)bits);
if (HasColor)
{
@ -189,26 +186,26 @@ namespace TShockAPI.Net
public void Unpack(Stream stream)
{
var flags = (TileFlags) stream.ReadInt8();
var flags2 = (TileFlags2)stream.ReadInt8();
var flags = (BitsByte) stream.ReadInt8();
var flags2 = (BitsByte)stream.ReadInt8();
Wire2 = flags2.HasFlag(TileFlags2.Wire2);
Wire3 = flags2.HasFlag(TileFlags2.Wire3);
Slope = flags2.HasFlag(TileFlags2.Slope);
Slope2 = flags2.HasFlag(TileFlags2.Slope2);
Slope3 = flags2.HasFlag(TileFlags2.Slope3);
Wire2 = flags2[0];
Wire3 = flags2[1];
Slope = flags2[4];
Slope2 = flags2[5];
Slope3 = flags2[6];
if (flags2.HasFlag(TileFlags2.Color))
if (flags2[2])
{
TileColor = stream.ReadInt8();
}
if (flags2.HasFlag(TileFlags2.WallColor))
if (flags2[3])
{
WallColor = stream.ReadInt8();
}
Active = flags.HasFlag(TileFlags.Active);
Active = flags[0];
if (Active)
{
Type = stream.ReadUInt16();
@ -219,63 +216,31 @@ namespace TShockAPI.Net
}
}
if (flags.HasFlag(TileFlags.Lighted))
{
Lighted = true;
}
if (flags.HasFlag(TileFlags.Wall))
if (flags[2])
{
Wall = stream.ReadInt8();
}
if (flags.HasFlag(TileFlags.Liquid))
if (flags[3])
{
Liquid = stream.ReadInt8();
LiquidType = stream.ReadInt8();
}
if (flags.HasFlag(TileFlags.Wire))
if (flags[4])
Wire = true;
if (flags.HasFlag(TileFlags.HalfBrick))
if (flags[5])
IsHalf = true;
if (flags.HasFlag(TileFlags.Actuator))
if (flags[6])
IsActuator = true;
if (flags.HasFlag(TileFlags.Inactive))
if (flags[7])
{
Inactive = true;
Active = false;
}
}
}
[Flags]
public enum TileFlags : byte
{
None = 0,
Active = 1,
Lighted = 2,
Wall = 4,
Liquid = 8,
Wire = 16,
HalfBrick = 32,
Actuator = 64,
Inactive = 128
}
[Flags]
public enum TileFlags2 : byte
{
None = 0,
Wire2 = 1,
Wire3 = 2,
Color = 4,
WallColor = 8,
Slope = 16,
Slope2 = 32,
Slope3 = 64
}
}