public override bool ButtonClicked(string name, SegmentEntity targetEntity)
    {
        MSManufacturer port = targetEntity as MSManufacturer;

        if (name == "currentpod")
        {
            if (port.PodType != null)
            {
                MSManufacturerWindow.SetItemToAssemble(WorldScript.mLocalPlayer, port, null);
                this.manager.RedrawWindow();
            }
            return(true);
        }
        else if (name.Contains("podicon"))
        {
            int slotNum = -1;
            int.TryParse(name.Replace("podicon", ""), out slotNum); //Get slot name as number
            if (slotNum > -1)
            {
                MSManufacturerWindow.SetItemToAssemble(WorldScript.mLocalPlayer, port, ItemManager.SpawnItem(350 + slotNum));
                GenericMachinePanelScript.instance.Hide();
            }
        }
        return(false);
    }
    public static NetworkInterfaceResponse HandleNetworkCommand(Player player, NetworkInterfaceCommand nic)
    {
        MSManufacturer port = nic.target as MSManufacturer;
        string         key  = nic.command;

        if (key != null)
        {
            if (key == InterfaceSetItemToAssemble)
            {
                MSManufacturerWindow.SetItemToAssemble(player, port, nic.itemContext);
            }
        }
        return(new NetworkInterfaceResponse()
        {
            entity = (SegmentEntity)port,
            inventory = player.mInventory
        });
    }
 public static bool SetItemToAssemble(Player player, MSManufacturer port, ItemBase itemtoassemble)
 {
     port.PodType = itemtoassemble;
     if (player.mbIsLocalPlayer && itemtoassemble != null)
     {
         FloatingCombatTextManager.instance.QueueText(port.mnX, port.mnY + 1L, port.mnZ, 1f, "Assembling: " + ItemManager.GetItemName(itemtoassemble), ItemColor(itemtoassemble), 1.5f);
     }
     else
     {
         FloatingCombatTextManager.instance.QueueText(port.mnX, port.mnY + 1L, port.mnZ, 1f, "Assembler recipe cleared!", Color.blue, 1.5f);
     }
     port.MarkDirtyDelayed();
     if (!WorldScript.mbIsServer)
     {
         NetworkManager.instance.SendInterfaceCommand(InterfaceName, InterfaceSetItemToAssemble, (string)null, itemtoassemble, (SegmentEntity)port, 0.0f);
     }
     return(true);
 }
    public override void UpdateMachine(SegmentEntity targetEntity)
    {
        MSManufacturer port = targetEntity as MSManufacturer;

        if (port == null || port.CurrentMachine != MSManufacturer.AttachedMachine.ResearchAssembler)
        {
            GenericMachinePanelScript.instance.Hide();
            UIManager.RemoveUIRules("Machine");
            return;
        }
        //UIUtil.UIdelay = 0;

        ItemBase item = port.PodType;

        if (item != null)
        {
            string itemname = ItemManager.GetItemName(item);
            string iconname = ItemManager.GetItemIcon(item);
            int    slot     = item.mnItemID - 350;
            this.manager.UpdateLabel("podtext" + slot, itemname, Color.cyan);
        }
    }
    public override void SpawnWindow(SegmentEntity targetEntity)
    {
        MSManufacturer port = targetEntity as MSManufacturer;

        if (port == null || port.CurrentMachine != MSManufacturer.AttachedMachine.ResearchAssembler)
        {
            //GenericMachinePanelScript.instance.Hide();
            UIManager.RemoveUIRules("Machine");
            return;
        }
        //UIUtil.UIdelay = 0;
        //UIUtil.UILock = true;

        this.manager.SetTitle("Mass Storage Manufacturer");

        this.manager.AddBigLabel("Infotext", "Select a Pod to Assemble", Color.white, 0, 0);

        int offset  = 40;
        int spacing = 60;

        for (int n = 0; n < 7; n++)
        {
            //Lol code win :P
            string itemname = ItemManager.GetItemName(350 + n);
            string itemicon = ItemManager.GetItemIcon(350 + n);
            //switch (n)
            //{
            //    case 0:
            //        itemname = ItemManager.GetItemName(350);
            //        itemicon = ItemManager.GetItemIcon(350);
            //        break;
            //    case 1:
            //        itemname = ItemManager.GetItemName(351);
            //        itemicon = ItemManager.GetItemIcon(351);
            //        break;
            //    case 2:
            //        itemname = ItemManager.GetItemName(352);
            //        itemicon = ItemManager.GetItemIcon(352);
            //        break;
            //    case 3:
            //        itemname = ItemManager.GetItemName(353);
            //        itemicon = ItemManager.GetItemIcon(353);
            //        break;
            //    case 4:
            //        itemname = ItemManager.GetItemName(354);
            //        itemicon = ItemManager.GetItemIcon(354);
            //        break;
            //    case 5:
            //        itemname = ItemManager.GetItemName(355);
            //        itemicon = ItemManager.GetItemIcon(355);
            //        break;
            //    case 6:
            //        itemname = ItemManager.GetItemName(356);
            //        itemicon = ItemManager.GetItemIcon(356);
            //        break;
            //    default:
            //        itemname = "empty";
            //        break;
            //}

            this.manager.AddIcon("podicon" + n, itemicon, Color.white, 0, offset + (n * spacing));
            this.manager.AddBigLabel("podtext" + n, itemname, Color.white, 60, offset + (n * spacing));
        }

        if (port.PodType != null)
        {
            this.dirty = true;
        }
    }