public override void OnReceivedServerPacket(int packetid, byte[] data) { if (packetid == (int)EnumBlockStovePacket.OpenGUI) { using (MemoryStream ms = new MemoryStream(data)) { BinaryReader reader = new BinaryReader(ms); string dialogClassName = reader.ReadString(); string dialogTitle = reader.ReadString(); TreeAttribute tree = new TreeAttribute(); tree.FromBytes(reader); Inventory.FromTreeAttributes(tree); Inventory.ResolveBlocksOrItems(); IClientWorldAccessor clientWorld = (IClientWorldAccessor)api.World; SyncedTreeAttribute dtree = new SyncedTreeAttribute(); SetDialogValues(dtree); clientDialog = new GuiDialogBlockEntityQuern(dialogTitle, Inventory, pos, dtree, api as ICoreClientAPI); clientDialog.TryOpen(); } } if (packetid == (int)EnumBlockContainerPacketId.CloseInventory) { IClientWorldAccessor clientWorld = (IClientWorldAccessor)api.World; clientWorld.Player.InventoryManager.CloseInventory(Inventory); } }
public override void OnReceivedServerPacket(int packetid, byte[] data) { if (packetid == (int)EnumBlockStovePacket.OpenGUI && (clientDialog == null || !clientDialog.IsOpened())) { clientDialog = new GuiDialogBlockEntityQuern(DialogTitle, Inventory, Pos, Api as ICoreClientAPI); clientDialog.TryOpen(); clientDialog.OnClosed += () => clientDialog = null; clientDialog.Update(inputGrindTime, maxGrindingTime()); } if (packetid == (int)EnumBlockEntityPacketId.Close) { IClientWorldAccessor clientWorld = (IClientWorldAccessor)Api.World; clientWorld.Player.InventoryManager.CloseInventory(Inventory); } }