public override void NetReceive(BinaryReader reader, bool lightReceive) { base.NetReceive(reader, lightReceive); if (TileEntity.ByPosition.ContainsKey(Position) && TileEntity.ByPosition[Position] is TEStorageUnit) { TEStorageUnit other = (TEStorageUnit)TileEntity.ByPosition[Position]; items = other.items; hasSpaceInStack = other.hasSpaceInStack; hasItem = other.hasItem; } receiving = true; int count = reader.ReadUInt16(); bool flag = false; for (int k = 0; k < count; k++) { if (UnitOperation.Receive(reader, this)) { flag = true; } } if (flag) { RepairMetadata(); } receiving = false; }
public override void NetReceive(BinaryReader trueReader, bool lightReceive) { //If the workaround is active, then the entity isn't being sent via the NetWorkaround packet byte workaround = trueReader.ReadByte(); if (EditsLoader.MessageTileEntitySyncing || workaround != 1) { base.NetReceive(trueReader, lightReceive); return; } /* Reads the buffer off the network */ MemoryStream buffer = new MemoryStream(65536); BinaryWriter bufferWriter = new BinaryWriter(buffer); bufferWriter.Write(trueReader.ReadBytes(trueReader.ReadUInt16())); buffer.Position = 0; /* Recreate the BinaryReader reader */ DeflateStream decompressor = new DeflateStream(buffer, CompressionMode.Decompress, true); BinaryReader reader = new BinaryReader(decompressor); /* Original code */ base.NetReceive(reader, lightReceive); if (TileEntity.ByPosition.ContainsKey(Position) && TileEntity.ByPosition[Position] is TEStorageUnit) { TEStorageUnit other = (TEStorageUnit)TileEntity.ByPosition[Position]; items = other.items; hasSpaceInStack = other.hasSpaceInStack; hasItem = other.hasItem; } receiving = true; int count = reader.ReadUInt16(); bool flag = false; for (int k = 0; k < count; k++) { if (UnitOperation.Receive(reader, this)) { flag = true; } } if (flag) { RepairMetadata(); } receiving = false; /* Dispose all objects */ reader.Dispose(); decompressor.Dispose(); bufferWriter.Dispose(); buffer.Dispose(); }
public override void NetReceive(BinaryReader trueReader, bool lightReceive) { /* Reads the buffer off the network */ MemoryStream buffer = new MemoryStream(65536); BinaryWriter bufferWriter = new BinaryWriter(buffer); int count = trueReader.ReadUInt16(); for (int i = 0; i < count; i++) { bufferWriter.Write(trueReader.ReadByte()); } buffer.Position = 0; /* Recreate the BinaryReader reader */ DeflateStream decompressor = new DeflateStream(buffer, CompressionMode.Decompress, true); BinaryReader reader = new BinaryReader(decompressor); /* Original code */ base.NetReceive(reader, lightReceive); if (TileEntity.ByPosition.ContainsKey(Position) && TileEntity.ByPosition[Position] is TEStorageUnit) { TEStorageUnit other = (TEStorageUnit)TileEntity.ByPosition[Position]; items = other.items; hasSpaceInStack = other.hasSpaceInStack; hasItem = other.hasItem; } receiving = true; /* int */ count = reader.ReadUInt16(); bool flag = false; for (int k = 0; k < count; k++) { if (UnitOperation.Receive(reader, this)) { flag = true; } } if (flag) { RepairMetadata(); } receiving = false; /* Dispose all objects */ reader.Dispose(); decompressor.Dispose(); bufferWriter.Dispose(); buffer.Dispose(); }