예제 #1
0
 private void RemoveSlot(HUDItem.Action action)
 {
     this.m_TempButtons.Clear();
     foreach (HUDItemButton item in this.m_ActiveButtons)
     {
         this.m_TempButtons.Add(item);
     }
     this.ClearSlots();
     foreach (HUDItemButton huditemButton in this.m_TempButtons)
     {
         if (huditemButton.action != action)
         {
             this.AddSlot(huditemButton.action);
         }
     }
 }
예제 #2
0
    private void ExecuteAction(HUDItem.Action action, Item item)
    {
        if (action != HUDItem.Action.Close && this.m_ItemReplacer != null)
        {
            item = this.m_ItemReplacer.ReplaceItem(true);
            this.m_ItemReplacer = null;
        }
        switch (action)
        {
        case HUDItem.Action.Close:
            this.m_Active = false;
            break;

        case HUDItem.Action.Take:
            if (item)
            {
                item.Take();
            }
            else if (this.m_PlantFruit)
            {
                this.m_PlantFruit.Take();
            }
            break;

        case HUDItem.Action.PickUp:
            item.PickUp(true);
            break;

        case HUDItem.Action.Eat:
            if (item)
            {
                item.Eat();
            }
            else if (this.m_PlantFruit)
            {
                this.m_PlantFruit.Eat();
            }
            break;

        case HUDItem.Action.Drink:
            if (item)
            {
                item.Drink();
            }
            else if (this.m_LiquidSource)
            {
                this.m_LiquidSource.Drink();
            }
            break;

        case HUDItem.Action.Harvest:
            Player.Get().HideWeapon();
            HarvestingSmallAnimalController.Get().SetItem(item);
            Player.Get().StartController(PlayerControllerType.HarvestingSmallAnimal);
            break;

        case HUDItem.Action.Craft:
            if (Player.Get().CanStartCrafting())
            {
                if (Player.Get().GetCurrentItem(Hand.Left) == item)
                {
                    Player.Get().SetWantedItem(Hand.Left, null, true);
                }
                else if (Player.Get().GetCurrentItem(Hand.Right) == item)
                {
                    Player.Get().SetWantedItem(Hand.Right, null, true);
                }
                else if (!item.m_CurrentSlot && item.m_InventorySlot && item.m_InventorySlot.m_Items.Count > 0)
                {
                    item.m_InventorySlot.RemoveItem(item, false);
                }
                else if (item.m_CurrentSlot && item.m_CurrentSlot.m_InventoryStackSlot)
                {
                    item.m_CurrentSlot.RemoveItem(item, false);
                }
                if (InventoryBackpack.Get().m_EquippedItem == item)
                {
                    InventoryBackpack.Get().m_EquippedItem = null;
                }
                InventoryBackpack.Get().RemoveItem(item, false);
                CraftingManager.Get().Activate();
                CraftingManager.Get().AddItem(item, true);
            }
            break;

        case HUDItem.Action.Fill:
            this.m_LiquidSource.TakeLiquid();
            break;

        case HUDItem.Action.Equip:
            Player.Get().Equip(item.m_CurrentSlot);
            break;

        case HUDItem.Action.Drop:
            if (CraftingManager.Get().gameObject.activeSelf&& CraftingManager.Get().ContainsItem(item))
            {
                CraftingManager.Get().RemoveItem(item);
            }
            if (!item.m_CurrentSlot && item.m_InventorySlot && item.m_InventorySlot.m_Items.Count > 0)
            {
                item.m_InventorySlot.RemoveItem(item, false);
            }
            else if (item.m_CurrentSlot && item.m_CurrentSlot.m_InventoryStackSlot)
            {
                item.m_CurrentSlot.RemoveItem(item, false);
            }
            if (InventoryBackpack.Get().m_EquippedItem == item)
            {
                InventoryBackpack.Get().m_EquippedItem = null;
            }
            InventoryBackpack.Get().RemoveItem(item, false);
            Inventory3DManager.Get().DropItem(item);
            break;

        case HUDItem.Action.Swap:
            item.Swap();
            break;

        case HUDItem.Action.Use:
        {
            Item currentItem = Player.Get().GetCurrentItem();
            if (currentItem)
            {
                InventoryBackpack.Get().InsertItem(currentItem, InventoryBackpack.Get().m_EquippedItemSlot, null, true, true, true, true, false);
                Player.Get().SetWantedItem((!currentItem.m_Info.IsBow()) ? Hand.Right : Hand.Left, null, true);
                if (Player.Get().m_ControllerToStart != PlayerControllerType.Unknown)
                {
                    Player.Get().StartControllerInternal();
                }
            }
            Player.Get().SetWantedItem(this.m_Item, true);
            break;
        }

        case HUDItem.Action.Spill:
            ((LiquidContainer)this.m_Item).Spill(-1f);
            break;
        }
    }
예제 #3
0
    private void AddSlot(HUDItem.Action action)
    {
        Localization  localization  = GreenHellGame.Instance.GetLocalization();
        HUDItemButton huditemButton = this.m_Buttons[this.m_ActiveButtons.Count];

        huditemButton.action = action;
        switch (action)
        {
        case HUDItem.Action.None:
            huditemButton.text.text = localization.Get("None");
            break;

        case HUDItem.Action.Close:
            huditemButton.text.text = localization.Get("HUD_Trigger_Close");
            break;

        case HUDItem.Action.Take:
            huditemButton.text.text = localization.Get("HUD_Trigger_Take");
            break;

        case HUDItem.Action.PickUp:
            huditemButton.text.text = localization.Get("HUD_Trigger_PickUp");
            break;

        case HUDItem.Action.Eat:
            huditemButton.text.text = localization.Get("HUD_Trigger_Eat");
            break;

        case HUDItem.Action.Drink:
            huditemButton.text.text = localization.Get("HUD_Trigger_Drink");
            break;

        case HUDItem.Action.Harvest:
            huditemButton.text.text = localization.Get("HUD_Trigger_Harvest");
            break;

        case HUDItem.Action.Craft:
            huditemButton.text.text = localization.Get("Craft");
            break;

        case HUDItem.Action.Fill:
            huditemButton.text.text = localization.Get("HUD_Trigger_Fill");
            break;

        case HUDItem.Action.Equip:
            huditemButton.text.text = localization.Get("HUD_Trigger_Equip");
            break;

        case HUDItem.Action.Drop:
            huditemButton.text.text = localization.Get("HUD_ItemInHand_Drop");
            break;

        case HUDItem.Action.Swap:
            huditemButton.text.text = localization.Get("HUD_Trigger_SwapHold");
            break;

        case HUDItem.Action.Use:
            huditemButton.text.text = localization.Get("HUD_Trigger_Use");
            break;

        case HUDItem.Action.Spill:
            huditemButton.text.text = localization.Get("HUD_Trigger_Spill");
            break;
        }
        huditemButton.button.SetActive(true);
        this.m_ActiveButtons.Add(huditemButton);
    }
예제 #4
0
    private bool ExecuteAction(HUDItem.Action action, Item item)
    {
        if (action != HUDItem.Action.Close && this.m_ItemReplacer != null)
        {
            item = this.m_ItemReplacer.ReplaceItem();
            this.m_ItemReplacer = null;
        }
        switch (action)
        {
        case HUDItem.Action.Close:
            this.SetActive(false);
            break;

        case HUDItem.Action.Take:
            if (item)
            {
                item.Take();
            }
            else if (this.m_PlantFruit)
            {
                this.m_PlantFruit.Take();
            }
            break;

        case HUDItem.Action.PickUp:
            item.PickUp(true);
            break;

        case HUDItem.Action.Eat:
            if (item)
            {
                item.Eat();
            }
            else if (this.m_PlantFruit)
            {
                this.m_PlantFruit.Eat();
            }
            break;

        case HUDItem.Action.Drink:
            if (item)
            {
                item.Drink();
            }
            else if (this.m_LiquidSource)
            {
                this.m_LiquidSource.Drink();
            }
            break;

        case HUDItem.Action.Harvest:
            Player.Get().HideWeapon();
            HarvestingSmallAnimalController.Get().SetItem(item);
            Player.Get().StartController(PlayerControllerType.HarvestingSmallAnimal);
            break;

        case HUDItem.Action.Craft:
            if (Player.Get().CanStartCrafting())
            {
                if (WalkieTalkieController.Get().IsActive())
                {
                    WalkieTalkieController.Get().Stop();
                }
                if (Player.Get().GetCurrentItem(Hand.Left) == item)
                {
                    Player.Get().SetWantedItem(Hand.Left, null, true);
                }
                else if (Player.Get().GetCurrentItem(Hand.Right) == item)
                {
                    Player.Get().SetWantedItem(Hand.Right, null, true);
                }
                else if (!item.m_CurrentSlot && item.m_InventorySlot && item.m_InventorySlot.m_Items.Count > 0)
                {
                    item.m_InventorySlot.RemoveItem(item, false);
                }
                else if (item.m_CurrentSlot && item.m_CurrentSlot.m_InventoryStackSlot)
                {
                    item.m_CurrentSlot.RemoveItem(item, false);
                }
                else if (item.m_CurrentSlot && item.m_CurrentSlot.m_WeaponRackParent)
                {
                    item.m_CurrentSlot.RemoveItem(item, false);
                }
                if (InventoryBackpack.Get().m_EquippedItem == item)
                {
                    InventoryBackpack.Get().m_EquippedItem = null;
                }
                InventoryBackpack.Get().RemoveItem(item, false);
                Storage3D.Get().RemoveItem(item, false);
                CraftingManager.Get().Activate();
                CraftingManager.Get().AddItem(item, true);
            }
            break;

        case HUDItem.Action.Fill:
            this.m_LiquidSource.TakeLiquid();
            break;

        case HUDItem.Action.Equip:
            Player.Get().Equip(item.m_CurrentSlot);
            break;

        case HUDItem.Action.Drop:
            if (CraftingManager.Get().gameObject.activeSelf&& CraftingManager.Get().ContainsItem(item))
            {
                CraftingManager.Get().RemoveItem(item, false);
            }
            if (!item.m_CurrentSlot && item.m_InventorySlot && item.m_InventorySlot.m_Items.Count > 0)
            {
                item.m_InventorySlot.RemoveItem(item, false);
            }
            else if (item.m_CurrentSlot && item.m_CurrentSlot.m_InventoryStackSlot)
            {
                item.m_CurrentSlot.RemoveItem(item, false);
            }
            if (InventoryBackpack.Get().m_EquippedItem == item)
            {
                InventoryBackpack.Get().m_EquippedItem = null;
            }
            InventoryBackpack.Get().RemoveItem(item, false);
            Inventory3DManager.Get().DropItem(item);
            break;

        case HUDItem.Action.Swap:
            item.Swap();
            break;

        case HUDItem.Action.Use:
            if (this.m_Item.IsStorage())
            {
                Storage3D.Get().Activate((Storage)this.m_Item);
            }
            else if (MakeFireController.Get().IsActive())
            {
                InventoryBackpack.Get().RemoveItem(this.m_Item, false);
                MakeFireController.Get().InsertItemToKindlingSlot(this.m_Item);
            }
            else
            {
                Item currentItem = Player.Get().GetCurrentItem();
                if (currentItem)
                {
                    InventoryBackpack.Get().InsertItem(currentItem, InventoryBackpack.Get().m_EquippedItemSlot, null, true, true, true, true, false);
                    Player.Get().SetWantedItem(currentItem.m_Info.IsBow() ? Hand.Left : Hand.Right, null, true);
                    if (Player.Get().m_ControllerToStart != PlayerControllerType.Unknown)
                    {
                        Player.Get().StartControllerInternal();
                    }
                }
                Player.Get().SetWantedItem(this.m_Item, true);
            }
            break;

        case HUDItem.Action.Spill:
            ((LiquidContainer)this.m_Item).Spill(-1f);
            break;

        case HUDItem.Action.Destroy:
            if (GreenHellGame.IsPadControllerActive() && !this.m_DestroyButton.confirm.gameObject.activeSelf)
            {
                this.m_DestroyButton.confirm.gameObject.SetActive(true);
                this.m_DestroyButton.confirm_sel.gameObject.SetActive(true);
                return(false);
            }
            if (!this.m_DestroyButton.confirm_sel.gameObject.activeSelf)
            {
                return(true);
            }
            if (CraftingManager.Get().gameObject.activeSelf&& CraftingManager.Get().ContainsItem(item))
            {
                CraftingManager.Get().RemoveItem(item, false);
            }
            if (!item.m_CurrentSlot && item.m_InventorySlot && item.m_InventorySlot.m_Items.Count > 0)
            {
                item.m_InventorySlot.RemoveItem(item, false);
            }
            else if (item.m_CurrentSlot && item.m_CurrentSlot.m_InventoryStackSlot)
            {
                item.m_CurrentSlot.RemoveItem(item, false);
            }
            if (InventoryBackpack.Get().m_EquippedItem == item)
            {
                InventoryBackpack.Get().m_EquippedItem = null;
            }
            InventoryBackpack.Get().RemoveItem(item, false);
            UnityEngine.Object.Destroy(item.gameObject);
            break;

        case HUDItem.Action.Take3:
            if (item)
            {
                item.Take3();
            }
            break;

        case HUDItem.Action.TakeAll:
            if (item)
            {
                item.TakeAll();
            }
            break;

        case HUDItem.Action.TakeClay:
            if (this.m_LiquidSource)
            {
                this.m_LiquidSource.TakeClay();
            }
            break;

        case HUDItem.Action.CleanUp:
            PlayerArmorModule.Get().SetMeshesVisible(true);
            BodyInspectionController.Get().OnArmorMeshesEnabled();
            Player.Get().m_Animator.SetBool(Player.Get().m_CleanUpHash, false);
            break;

        case HUDItem.Action.DestroyStack:
            if (GreenHellGame.IsPadControllerActive() && !this.m_DestroyStackButton.confirm.gameObject.activeSelf)
            {
                this.m_DestroyStackButton.confirm.gameObject.SetActive(true);
                this.m_DestroyStackButton.confirm_sel.gameObject.SetActive(true);
                return(false);
            }
            if (!this.m_DestroyStackButton.confirm_sel.gameObject.activeSelf)
            {
                return(true);
            }
            if (!item.m_CurrentSlot && item.m_InventorySlot && item.m_InventorySlot.m_Items.Count > 0)
            {
                UnityEngine.Object.Destroy(item.gameObject);
            }
            else if (item.m_CurrentSlot && item.m_CurrentSlot.m_InventoryStackSlot)
            {
                UnityEngine.Object.Destroy(item.m_CurrentSlot.m_ItemParent.gameObject);
            }
            else if (item.m_CurrentSlot && item.m_CurrentSlot.m_BackpackSlot && item.m_CurrentSlot.IsStack())
            {
                for (int i = 0; i < ((ItemSlotStack)item.m_CurrentSlot).m_Items.Count; i++)
                {
                    UnityEngine.Object.Destroy(((ItemSlotStack)item.m_CurrentSlot).m_Items[i].gameObject);
                }
            }
            break;

        case HUDItem.Action.SwapArmor:
        {
            Limb      selectedLimb  = HUDBodyInspection.Get().GetSelectedLimb();
            ArmorData armorData     = PlayerArmorModule.Get().GetArmorData(selectedLimb);
            Item      attachedArmor = armorData.m_AttachedArmor;
            ItemSlot  currentSlot   = attachedArmor.m_CurrentSlot;
            if (currentSlot != null)
            {
                currentSlot.RemoveItem();
            }
            PlayerArmorModule.Get().ArmorCarryStarted(attachedArmor);
            InventoryCellsGroup inventoryCellsGroup = this.m_Item.m_Info.m_InventoryCellsGroup;
            InventoryBackpack.Get().RemoveItem(this.m_Item, false);
            if (attachedArmor.m_Info.m_InventoryRotated != this.m_Item.m_Info.m_InventoryRotated)
            {
                Inventory3DManager.Get().RotateItem(attachedArmor, false);
            }
            InventoryBackpack.Get().InsertItem(attachedArmor, null, inventoryCellsGroup, true, true, true, true, true);
            armorData.m_Slot.InsertItem(this.m_Item);
            break;
        }

        case HUDItem.Action.EquipArmor:
            InventoryBackpack.Get().RemoveItem(this.m_Item, false);
            PlayerArmorModule.Get().GetArmorData(HUDBodyInspection.Get().GetSelectedLimb()).m_Slot.InsertItem(this.m_Item);
            break;

        case HUDItem.Action.Insert:
            if (HUDItemSlot.Get().m_SelectedSlotData == null)
            {
                return(false);
            }
            if (!HUDItemSlot.Get().m_SelectedSlotData.slot.CanInsertItem(this.m_Item))
            {
                ((HUDMessages)HUDManager.Get().GetHUD(typeof(HUDMessages))).AddMessage(GreenHellGame.Instance.GetLocalization().Get("HUD_CannotInsertItem", true), new Color?(Color.red), HUDMessageIcon.None, "", null);
                return(true);
            }
            if (this.m_Item.m_Storage)
            {
                this.m_Item.m_Storage.RemoveItem(this.m_Item, false);
            }
            InventoryBackpack.Get().RemoveItem(this.m_Item, false);
            HUDItemSlot.Get().m_SelectedSlotData.slot.InsertItem(this.m_Item);
            break;

        case HUDItem.Action.Pick:
            Inventory3DManager.Get().StartCarryItem(this.m_Item, false);
            break;

        case HUDItem.Action.TakeOffArmor:
        {
            Item attachedArmor2 = PlayerArmorModule.Get().GetArmorData(HUDBodyInspection.Get().GetSelectedLimb()).m_AttachedArmor;
            if (attachedArmor2)
            {
                PlayerArmorModule.Get().ArmorCarryStarted(attachedArmor2);
                InventoryBackpack.Get().InsertItem(attachedArmor2, null, null, true, true, true, true, true);
            }
            break;
        }

        case HUDItem.Action.Plow:
        {
            Acre acre = (this.m_Item && this.m_Item.IsAcre()) ? ((Acre)this.m_Item) : null;
            if (!acre)
            {
                return(true);
            }
            acre.Plow();
            break;
        }

        case HUDItem.Action.PickStack:
            Inventory3DManager.Get().StartCarryItem(this.m_Item, true);
            break;
        }
        return(true);
    }
예제 #5
0
    private void AddSlot(HUDItem.Action action)
    {
        Localization  localization  = GreenHellGame.Instance.GetLocalization();
        HUDItemButton huditemButton = this.m_Buttons[this.m_ActiveButtons.Count];

        huditemButton.action = action;
        switch (action)
        {
        case HUDItem.Action.None:
            huditemButton.text.text = localization.Get("None", true);
            break;

        case HUDItem.Action.Close:
            huditemButton.text.text = localization.Get("HUD_Trigger_Close", true);
            break;

        case HUDItem.Action.Take:
            huditemButton.text.text = localization.Get("HUD_Trigger_Take", true);
            break;

        case HUDItem.Action.PickUp:
            huditemButton.text.text = localization.Get("HUD_Trigger_PickUp", true);
            break;

        case HUDItem.Action.Eat:
            huditemButton.text.text = localization.Get("HUD_Trigger_Eat", true);
            break;

        case HUDItem.Action.Drink:
            huditemButton.text.text = localization.Get("HUD_Trigger_Drink", true);
            break;

        case HUDItem.Action.Harvest:
            huditemButton.text.text = localization.Get("HUD_Trigger_Harvest", true);
            break;

        case HUDItem.Action.Craft:
            huditemButton.text.text = localization.Get("Craft", true);
            break;

        case HUDItem.Action.Fill:
            huditemButton.text.text = localization.Get("HUD_Trigger_Fill", true);
            break;

        case HUDItem.Action.Equip:
            huditemButton.text.text = localization.Get("HUD_Trigger_Equip", true);
            break;

        case HUDItem.Action.Drop:
            huditemButton.text.text = localization.Get("HUD_ItemInHand_Drop", true);
            break;

        case HUDItem.Action.Swap:
            huditemButton.text.text = localization.Get("HUD_Trigger_SwapHold", true);
            break;

        case HUDItem.Action.Use:
            huditemButton.text.text = localization.Get("HUD_Trigger_Use", true);
            break;

        case HUDItem.Action.Spill:
            huditemButton.text.text = localization.Get("HUD_Trigger_Spill", true);
            break;

        case HUDItem.Action.Destroy:
            huditemButton.text.text = localization.Get("HUD_Trigger_Destroy", true);
            break;

        case HUDItem.Action.Take3:
            huditemButton.text.text = localization.Get("HUD_Trigger_Take3", true);
            break;

        case HUDItem.Action.TakeAll:
            huditemButton.text.text = localization.Get("HUD_Trigger_TakeAll", true);
            break;

        case HUDItem.Action.TakeClay:
            huditemButton.text.text = localization.Get("HUD_Trigger_TakeClay", true);
            break;

        case HUDItem.Action.CleanUp:
            huditemButton.text.text = localization.Get("HUD_Trigger_CleanUp", true);
            break;

        case HUDItem.Action.DestroyStack:
            huditemButton.text.text = localization.Get("HUD_Trigger_DestroyStack", true);
            break;

        case HUDItem.Action.SwapArmor:
            huditemButton.text.text = localization.Get("HUD_Trigger_SwapArmor", true);
            break;

        case HUDItem.Action.EquipArmor:
            huditemButton.text.text = localization.Get("HUD_Trigger_EquipArmor", true);
            break;

        case HUDItem.Action.Insert:
            huditemButton.text.text = localization.Get("HUD_Trigger_Insert", true);
            break;

        case HUDItem.Action.Pick:
            huditemButton.text.text = localization.Get("HUD_Trigger_Pick", true);
            break;

        case HUDItem.Action.TakeOffArmor:
            huditemButton.text.text = localization.Get("HUD_Trigger_TakeOffArmor", true);
            break;

        case HUDItem.Action.Plow:
            huditemButton.text.text = localization.Get("HUD_Trigger_Plow", true);
            break;

        case HUDItem.Action.PickStack:
            huditemButton.text.text = localization.Get("HUD_Trigger_PickStack", true);
            break;
        }
        huditemButton.button.SetActive(true);
        this.m_ActiveButtons.Add(huditemButton);
        if (action == HUDItem.Action.Destroy)
        {
            this.m_DestroyButton = huditemButton;
            return;
        }
        if (action == HUDItem.Action.DestroyStack)
        {
            this.m_DestroyStackButton = huditemButton;
        }
    }