Exemplo n.º 1
0
        public override void HandleItemDrag(string name, ItemBase draggedItem,
                                            DragAndDropManager.DragRemoveItem dragDelegate, SegmentEntity targetEntity)
        {
            var quantumIoPort = targetEntity as QuantumIoPortMachine;
            var controller    = quantumIoPort.GetController();

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

            var itemToStore      = ItemManager.CloneItem(draggedItem);
            var currentStackSize = ItemManager.GetCurrentStackSize(itemToStore);

            if (controller.GetRemainigCapacity() < currentStackSize)
            {
                ItemManager.SetItemCount(itemToStore, controller.GetRemainigCapacity());
            }

            StoreItem(WorldScript.mLocalPlayer, controller, itemToStore);
            AudioHUDManager.instance.OrePickup();
            WorldScript.mLocalPlayer.mInventory.VerifySuitUpgrades();
            WorldScript.mLocalPlayer.mInventory.MarkEverythingDirty();
            InventoryPanelScript.MarkDirty();
            controller.Dirty          = true;
            NetworkRedraw             = true;
            UIManager.ForceNGUIUpdate = 0.1f;
        }
    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;
        }
    }
        public override void HandleItemDrag(string name, ItemBase draggedItem,
                                            DragAndDropManager.DragRemoveItem dragDelegate, SegmentEntity targetEntity)
        {
            QuantumOutputPortMachine outputPort = targetEntity as QuantumOutputPortMachine;

            if (name != OutputItemIcon ||
                manager.mWindowLookup[name + "_icon"].GetComponent <UISprite>().spriteName != "empty")
            {
                return;
            }
            SetExemplar(WorldScript.mLocalPlayer, outputPort, draggedItem);
            manager.RedrawWindow();
        }
Exemplo n.º 4
0
    public override void HandleItemDrag(string name, ItemBase draggedItem, DragAndDropManager.DragRemoveItem dragDelegate, SegmentEntity targetEntity)
    {
        FreightCartStation station = targetEntity as FreightCartStation;

        if (station.massStorageCrate == null)
        {
            return;
        }

        if (name.Contains("registry")) // drag drop to a slot
        {
            int slotNum = -1;
            int.TryParse(name.Replace("registry", ""), out slotNum); //Get slot name as number

            if (slotNum == -1)                                       // valid slot
            {
                if (this.manager.mWindowLookup[name + "_icon"].GetComponent <UISprite>().spriteName == "empty")
                {
                    FreightCartWindow.AddRegistry(station, draggedItem);
                }
            }
        }
        else if (name == "hopitemoffer")
        {
            if (this.manager.mWindowLookup["hopitemoffer"].GetComponent <UISprite>().spriteName == "empty")
            {
                FreightCartWindow.SetHopperOfferItem(station, draggedItem);
            }
        }
        else if (name == "hopitemrequest")
        {
            if (this.manager.mWindowLookup["hopitemrequest"].GetComponent <UISprite>().spriteName == "empty")
            {
                FreightCartWindow.SetHopperRequestItem(station, draggedItem);
            }
        }

        return;
    }
Exemplo n.º 5
0
 public override void HandleItemDrag(string name, ItemBase draggedItem, DragAndDropManager.DragRemoveItem dragDelegate, SegmentEntity targetEntity)
 {
     //FreightSystemMonitor monitor = targetEntity as FreightSystemMonitor;
     return;
 }
Exemplo n.º 6
0
 public void HandleItemDrag(string name, ItemBase draggedItem, DragAndDropManager.DragRemoveItem dragDelegate)
 {
     //Debug.Log("Handle Item Drag: " + ItemManager.GetItemName(draggedItem));
     if (this.SuitInventory.ValidItems.Contains(draggedItem.mnItemID))
     {
         if (name.StartsWith("Suit_Slot"))
         {
             int      num    = int.Parse(name.Substring("Suit_Slot".Length, name.Length - "Suit_Slot".Length - "_Collider".Length)) - 1;
             int      num2   = num % 10;
             int      num3   = num / 10;
             ItemBase itemAt = this.SuitInventory.GetItemAt(num2, num3);
             if (this.dragSourceX >= 0 && this.dragSourceY >= 0 && (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)))
             {
                 bool flag             = true;
                 int  currentStackSize = ItemManager.GetCurrentStackSize(draggedItem);
                 if (currentStackSize < 2)
                 {
                     flag = false;
                 }
                 if (itemAt != null)
                 {
                     if (itemAt.mnItemID != draggedItem.mnItemID)
                     {
                         flag = false;
                     }
                     else if (itemAt.mType == ItemType.ItemCubeStack)
                     {
                         ItemCubeStack itemCubeStack  = itemAt as ItemCubeStack;
                         ItemCubeStack itemCubeStack2 = draggedItem as ItemCubeStack;
                         if (itemCubeStack.mCubeType != itemCubeStack2.mCubeType || itemCubeStack.mCubeValue != itemCubeStack2.mCubeValue)
                         {
                             flag = false;
                         }
                     }
                 }
                 if (flag)
                 {
                     UIManager.instance.mSplitPanel.Show(draggedItem, this.dragSourceX, this.dragSourceY, itemAt, num2, num3);
                     this.SuitInventory.MarkDirtyDelayed(5);
                     return;
                 }
             }
             if (itemAt != null)
             {
                 if (draggedItem.mType == ItemType.ItemCubeStack && itemAt.mType == ItemType.ItemCubeStack)
                 {
                     ItemCubeStack itemCubeStack3 = draggedItem as ItemCubeStack;
                     ItemCubeStack itemCubeStack4 = itemAt as ItemCubeStack;
                     if (itemCubeStack3.mCubeType == itemCubeStack4.mCubeType && itemCubeStack3.mCubeValue == itemCubeStack4.mCubeValue)
                     {
                         int maxStackSize = global::TerrainData.GetMaxStackSize(itemCubeStack4.mCubeType);
                         if (maxStackSize != 100)
                         {
                             if (itemCubeStack3.mnAmount + itemCubeStack4.mnAmount > maxStackSize)
                             {
                                 int num4 = maxStackSize - itemCubeStack4.mnAmount;
                                 itemCubeStack3.mnAmount -= num4;
                                 itemCubeStack4.mnAmount += num4;
                                 this.SuitInventory.MarkDirty();
                                 this.dirty = true;
                                 return;
                             }
                         }
                         if (dragDelegate(draggedItem, null))
                         {
                             itemCubeStack4.mnAmount += itemCubeStack3.mnAmount;
                             this.SuitInventory.MarkDirty();
                             this.dirty = true;
                             return;
                         }
                         return;
                     }
                 }
                 if (draggedItem.mType == ItemType.ItemStack && itemAt.mnItemID == draggedItem.mnItemID)
                 {
                     ItemStack itemStack  = draggedItem as ItemStack;
                     ItemStack itemStack2 = itemAt as ItemStack;
                     if (dragDelegate(draggedItem, null))
                     {
                         itemStack2.mnAmount += itemStack.mnAmount;
                         this.SuitInventory.MarkEverythingDirty();
                         this.dirty = true;
                         return;
                     }
                     return;
                 }
             }
             if (dragDelegate(draggedItem, itemAt))
             {
                 if (itemAt != null)
                 {
                     this.SuitInventory.RemoveItemAt(num2, num3);
                 }
                 this.SuitInventory.AddItemAt(num2, num3, draggedItem);
                 this.SuitInventory.MarkEverythingDirty();
                 this.dirty = true;
             }
             return;
         }
     }
 }
 //For handling when a player drags an item to an object (icon slot for example) in the UI
 public override void HandleItemDrag(string name, ItemBase draggedItem, DragAndDropManager.DragRemoveItem dragDelegate, SegmentEntity targetEntity)
 {
     base.HandleItemDrag(name, draggedItem, dragDelegate, targetEntity);
 }