コード例 #1
0
    //You can also get a call when the player's cursor hovers over an icon/button so that you can display info about it
    //Example code below for displaying item info in the hotbar
    public override void ButtonEnter(string name, SegmentEntity targetEntity)
    {
        MyModMachine machine = targetEntity as MyModMachine;

        if (name == "itemicon")
        {
            ItemBase itemForSlot = ItemManager.SpawnItem(100);
            int      count       = itemForSlot.GetAmount();
            if (itemForSlot == null)
            {
                return;
            }
            if (HotBarManager.mbInited)
            {
                HotBarManager.SetCurrentBlockLabel(ItemManager.GetItemName(itemForSlot));
            }
            else
            {
                if (!SurvivalHotBarManager.mbInited)
                {
                    return;
                }
                string name1 = !WorldScript.mLocalPlayer.mResearch.IsKnown(itemForSlot) ? "Unknown Material" : ItemManager.GetItemName(itemForSlot);
                if (count > 1)
                {
                    SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}", count, name1));
                }
                else
                {
                    SurvivalHotBarManager.SetCurrentBlockLabel(name1);
                }
            }
        }
    }
コード例 #2
0
    public override void ButtonEnter(string name, SegmentEntity targetEntity)
    {
        ExtraStorageHoppers hopper = targetEntity as ExtraStorageHoppers;
        string   empty             = string.Empty;
        ItemBase itemForSlot       = this.GetItemForSlot(hopper, name);

        if (itemForSlot == null)
        {
            return;
        }
        if (HotBarManager.mbInited)
        {
            HotBarManager.SetCurrentBlockLabel(ItemManager.GetItemName(itemForSlot));
        }
        else
        {
            if (!SurvivalHotBarManager.mbInited)
            {
                return;
            }
            string text             = WorldScript.mLocalPlayer.mResearch.IsKnown(itemForSlot) ? ItemManager.GetItemName(itemForSlot) : "Unknown Material";
            int    currentStackSize = ItemManager.GetCurrentStackSize(itemForSlot);
            if (currentStackSize > 1)
            {
                SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}", currentStackSize, text));
            }
            else
            {
                SurvivalHotBarManager.SetCurrentBlockLabel(text);
            }
        }
    }
コード例 #3
0
    public override void HandleItemDrag(string name, ItemBase draggedItem, DragAndDropManager.DragRemoveItem dragDelegate, SegmentEntity targetEntity)
    {
        ExtraStorageHoppers hopper      = targetEntity as ExtraStorageHoppers;
        ItemBase            itemForSlot = this.GetItemForSlot(hopper, name);
        bool flag = true;

        if (itemForSlot != null)
        {
            flag = (draggedItem.mnItemID == itemForSlot.mnItemID);
        }
        if (hopper.OT && hopper.IsEmpty() && !hopper.ExemplarSet)
        {
            hopper.SetExemplar(draggedItem);
        }
        if (name == "ItemSlot" + this.SlotCount && flag && hopper.IsNotFull() && hopper.CheckExemplar(draggedItem))
        {
            ItemBase itemBase         = ItemManager.CloneItem(draggedItem);
            int      currentStackSize = ItemManager.GetCurrentStackSize(itemBase);
            if (hopper.RemainingCapacity < currentStackSize)
            {
                ItemManager.SetItemCount(itemBase, hopper.RemainingCapacity);
            }
            ExtraStorageHopperWindowNew.StoreItems(WorldScript.mLocalPlayer, hopper, itemBase);
            InventoryPanelScript.mbDirty = true;
            SurvivalHotBarManager.MarkAsDirty();
            SurvivalHotBarManager.MarkContentDirty();
            ExtraStorageHopperWindowNew.networkRedraw = true;
        }
    }
コード例 #4
0
    private void PlayerExtractRequest()
    {
        Player player    = WorldScript.mLocalPlayer;
        int    lensCount = 0;

        if (player == null)
        {
            return;
        }

        if (mStoredLenses != null)
        {
            lensCount = mStoredLenses.GetAmount();
        }
        if (lensCount > 0)
        {
            Debug.Log("[Auto Lens Swapper] Removing " + lensCount + " lenses from machine, placing into " + player.mUserName);
            if (!player.mInventory.AddItem(mStoredLenses))
            {
                ItemManager.instance.DropItem(mStoredLenses, player.mnWorldX, player.mnWorldY, player.mnWorldZ, Vector3.zero);
                Debug.Log("[Auto Lens Swapper] Player's inventory did not accept lenses. Dropping at player's feet.");
            }
        }
        mStoredLenses = null;
        mTargetLens   = null;

        if (mStatus == eStatuses.Running)
        {
            mbHaltedEarly = true;
            mStatus       = eStatuses.Done;
        }
        else if (mStatus == eStatuses.Done)
        {
            mnTrackLPTs      = 0;
            mnTrackSwaps     = 0;
            mnSegmentEIndex1 = 0;
            mnSegmentEIndex2 = 0;
            mnSegmentID      = 0;
            mbHaltedEarly    = false;
            mStatus          = eStatuses.Stopped;
        }


        MarkDirtyDelayed();
        RequestImmediateNetworkUpdate();
        player.mInventory.VerifySuitUpgrades(); //Shouldn't be needed, but lets be safe.
        SurvivalHotBarManager.MarkAsDirty();
        SurvivalHotBarManager.MarkContentDirty();
        UIManager.ForceNGUIUpdate = 0.1f;
        RequestImmediateNetworkUpdate();
        AudioHUDManager.instance.OrePickup();
    }
コード例 #5
0
        public override void ButtonEnter(string name, SegmentEntity targetEntity)
        {
            var quantumIoPort = targetEntity as QuantumIoPortMachine;
            var controller    = quantumIoPort.GetController();

            if (controller == null || !controller.IsOperating())
            {
                return;
            }

            if (name.Contains("iconItem"))
            {
                int.TryParse(name.Replace("iconItem", string.Empty), out var slot);
                if (slot > -1 && slot < SlotCount)
                {
                    var item = controller.GetItem(slot);


                    if (item == null)
                    {
                        return;
                    }

                    if (HotBarManager.mbInited)
                    {
                        HotBarManager.SetCurrentBlockLabel(ItemManager.GetItemName(item));
                    }
                    else
                    {
                        if (!SurvivalHotBarManager.mbInited)
                        {
                            return;
                        }

                        var name1 = WorldScript.mLocalPlayer.mResearch.IsKnown(item)
                            ? ItemManager.GetItemName(item)
                            : PersistentSettings.GetString("Unknown_Material");
                        var currentStackSize = ItemManager.GetCurrentStackSize(item);
                        if (currentStackSize > 1)
                        {
                            SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}",
                                                                                     currentStackSize, name1));
                        }
                        else
                        {
                            SurvivalHotBarManager.SetCurrentBlockLabel(name1);
                        }
                    }
                }
            }
        }
コード例 #6
0
 public void ButtonEnter(string name)
 {
     this.mHoverButton = name;
     if (name.StartsWith("Suit_Slot"))
     {
         int      num    = int.Parse(name.Substring("Suit_Slot".Length, name.Length - "Suit_Slot".Length - "_Collider".Length)) - 1;
         int      x      = num % 10;
         int      y      = num / 10;
         string   text   = string.Empty;
         ItemBase itemAt = this.SuitInventory.GetItemAt(x, y);
         if (itemAt != null)
         {
             if (HotBarManager.mbInited)
             {
                 text = ItemManager.GetItemName(itemAt);
                 HotBarManager.SetCurrentBlockLabel(text);
             }
             else if (SurvivalHotBarManager.mbInited)
             {
                 if (WorldScript.mLocalPlayer.mResearch.IsKnown(itemAt))
                 {
                     text = ItemManager.GetItemName(itemAt);
                 }
                 else
                 {
                     text = "Unknown Material";
                 }
                 int currentStackSize = ItemManager.GetCurrentStackSize(itemAt);
                 if (currentStackSize > 1)
                 {
                     SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}", currentStackSize, text));
                 }
                 else
                 {
                     SurvivalHotBarManager.SetCurrentBlockLabel(text);
                 }
             }
         }
     }
 }
コード例 #7
0
    public override void ButtonEnter(string name, SegmentEntity targetEntity)
    {
        FreightSystemMonitor monitor = targetEntity as FreightSystemMonitor;

        if (this.CurrentWindow != WindowTypes.GlobalInventory)
        {
            return;
        }
        string   str = string.Empty;
        int      count;
        ItemBase itemForSlot = this.GetItemForSlot(name, out count);

        if (itemForSlot == null)
        {
            return;
        }
        if (HotBarManager.mbInited)
        {
            HotBarManager.SetCurrentBlockLabel(ItemManager.GetItemName(itemForSlot));
        }
        else
        {
            if (!SurvivalHotBarManager.mbInited)
            {
                return;
            }
            string name1 = !WorldScript.mLocalPlayer.mResearch.IsKnown(itemForSlot) ? "Unknown Material" : ItemManager.GetItemName(itemForSlot);
            if (count > 1)
            {
                SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}", count, name1));
            }
            else
            {
                SurvivalHotBarManager.SetCurrentBlockLabel(name1);
            }
        }
    }
コード例 #8
0
    public override void ButtonEnter(string name, SegmentEntity targetEntity)
    {
        MSAccessPort port = targetEntity as MSAccessPort;

        if (!name.Contains("itemicon"))
        {
            return;
        }
        string   str = string.Empty;
        int      count;
        ItemBase itemForSlot = this.GetItemForSlot(name, out count, port);

        if (itemForSlot == null)
        {
            return;
        }
        if (HotBarManager.mbInited)
        {
            HotBarManager.SetCurrentBlockLabel(ItemManager.GetItemName(itemForSlot));
        }
        else
        {
            if (!SurvivalHotBarManager.mbInited)
            {
                return;
            }
            string name1 = !WorldScript.mLocalPlayer.mResearch.IsKnown(itemForSlot) ? "Unknown Material" : ItemManager.GetItemName(itemForSlot);
            if (count > 1)
            {
                SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}", count, name1));
            }
            else
            {
                SurvivalHotBarManager.SetCurrentBlockLabel(name1);
            }
        }
    }
コード例 #9
0
    private void PlayerStoreRequest()
    {
        int      lnAvailable = 0;
        ItemBase itemToStore = UIManager.instance.GetCurrentHotBarItemOrCubeAsItem(out lnAvailable, true);
        Player   player      = WorldScript.mLocalPlayer;

        if (player == null)
        {
            return;
        }
        if (lnAvailable < 0)
        {
            return;
        }
        if (itemToStore == null)
        {
            return;
        }
        if (!isValidLensID(itemToStore.mnItemID))
        {
            Debug.Log("[Auto Lens Swapper] Player " + player.mUserName + " tried inserting a non-lens, but was denied!");
            Debug.Log("[Auto Lens Swapper] itemID: " + itemToStore.mnItemID + " itemName: " + itemToStore.GetName());
            return;
        }
        if (mTargetLens != null)
        {
            if (itemToStore.mnItemID != mTargetLens.mnItemID && getStorageAvailable() < mnStorageMax)
            {
                Debug.Log("[Auto Lens Swapper][info] Player " + player.mUserName + " tried inserting a differing lens than what was still in the machine!");
                return;
            }
        }

        //Easy case, only setting target, not modifying storage.
        //(User didn't have any lenses on them, but they had the target in their hotbar)
        if (lnAvailable == 0)
        {
            Debug.Log("[Auto Lens Swapper][info] Player " + player.mUserName + " set target (new) lens without depositing any.");
            mTargetLens = ItemManager.SpawnItem(itemToStore.mnItemID);
            if (player.mbIsLocalPlayer)
            {
                Color lCol = Color.red;
                FloatingCombatTextManager.instance.QueueText(mnX, mnY + 1L, mnZ, 0.75f, string.Format("Lens Swapper set to: \n", (object)player.GetItemName(itemToStore)), lCol, 1.5f, 64f);
            }
            return;
        }

        int amount           = lnAvailable;
        int storageAvailable = getStorageAvailable();
        int maxStackSize     = ItemManager.GetMaxStackSize(itemToStore);

        //Determine amount that can be transfered.
        if (itemToStore.mnItemID == -1)
        {
            return;
        }
        if (amount > 10 && Input.GetKey(KeyCode.LeftShift))
        {
            amount = 10;
        }
        if (amount > 1 && Input.GetKey(KeyCode.LeftControl))
        {
            amount = 1;
        }
        if (amount > getStorageAvailable())
        {
            amount = getStorageAvailable();
        }
        if (amount > ItemManager.GetMaxStackSize(itemToStore))
        {
            amount = ItemManager.GetMaxStackSize(itemToStore);
        }
        ItemManager.SetItemCount(itemToStore, amount);

        if (!player.mInventory.RemoveItemByExample(itemToStore, true))
        {
            Debug.Log("[Auto Lens Swapper][info] Player " + player.mUserName + " doesnt have " + itemToStore.GetName());
            return;
        }
        mTargetLens = ItemManager.SpawnItem(itemToStore.mnItemID);
        if (mStoredLenses == null || mStoredLenses.mnItemID != mTargetLens.mnItemID)
        {
            mStoredLenses = ItemManager.SpawnItem(itemToStore.mnItemID);
            AddLenses(-1);// SpawnItem starts with the amount as 1.
        }
        AddLenses(amount);
        player.mInventory.VerifySuitUpgrades(); //Shouldn't be needed, but lets be safe.
        Debug.Log("[Auto Lens Swapper][info] Player " + player.mUserName + " stored lenses manually!");

        //render in-world pop-up text.
        if (player.mbIsLocalPlayer)
        {
            Color lCol = Color.cyan;
            FloatingCombatTextManager.instance.QueueText(mnX, mnY + 1L, mnZ, 0.75f, string.Format(PersistentSettings.GetString("Stored_X"), (object)player.GetItemName(itemToStore)), lCol, 1.5f, 64f);
        }
        //else
        //StorageHopperWindowNew.networkRedraw = true;
        player.mInventory.VerifySuitUpgrades();

        /*
         * if (!WorldScript.mbIsServer)
         *  NetworkManager.instance.SendInterfaceCommand(nameof(StorageHopperWindowNew), nameof(StoreItems), (string)null, itemToStore, (SegmentEntity)hopper, 0.0f);
         */
        // ^^^ Reimplement?

        MarkDirtyDelayed();
        RequestImmediateNetworkUpdate();
        UIManager.ForceNGUIUpdate = 0.1f;
        AudioHUDManager.instance.HUDOut();
        SurvivalHotBarManager.MarkAsDirty();
        SurvivalHotBarManager.MarkContentDirty();
    }