Ejemplo n.º 1
0
 public void OnInsertItem(ItemSlot slot)
 {
     slot.m_Item.transform.parent = base.transform;
     slot.Deactivate();
     slot.gameObject.SetActive(false);
     this.m_Particle.Play();
     MakeFireController.Get().OnAddKindling(slot.m_Item);
 }
Ejemplo n.º 2
0
    protected override void Update()
    {
        base.Update();
        if (!this.m_IsInside)
        {
            return;
        }
        if (InsectsController.Get().IsActive())
        {
            return;
        }
        if (MakeFireController.Get().IsActive())
        {
            return;
        }
        if (CraftingController.Get().IsActive())
        {
            return;
        }
        if (HitReactionController.Get().IsActive())
        {
            return;
        }
        if (HarvestingAnimalController.Get().IsActive())
        {
            return;
        }
        if (HarvestingSmallAnimalController.Get().IsActive())
        {
            return;
        }
        Item currentItem = Player.Get().GetCurrentItem(Hand.Right);

        if (currentItem && currentItem.m_Info.IsTorch())
        {
            Torch torch = (Torch)currentItem;
            if (torch.m_Burning)
            {
                return;
            }
        }
        if (Player.Get().IsDead())
        {
            return;
        }
        if (this.m_LastTime == 0f || Time.time - this.m_LastTime > this.m_Cooldown)
        {
            InsectsController.Get().m_Sensor = this;
            Player.Get().StartController(PlayerControllerType.Insects);
            this.m_LastTime = Time.time;
        }
    }
Ejemplo n.º 3
0
    private void UpdateStamina()
    {
        float         deltaTime     = Time.deltaTime;
        FPPController fppcontroller = this.m_Player.m_FPPController;

        if (!fppcontroller)
        {
            return;
        }
        if (Cheats.m_GodMode)
        {
            this.m_Stamina = this.m_MaxStamina;
            return;
        }
        float num = this.m_Stamina;

        if (fppcontroller.IsActive() && fppcontroller.IsWalking())
        {
            num -= this.m_StaminaConsumptionWalkPerSecond * deltaTime * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_StaminaConsumptionMul);
        }
        else if (fppcontroller.IsActive() && fppcontroller.IsRunning())
        {
            num -= this.m_StaminaConsumptionRunPerSecond * deltaTime * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_StaminaConsumptionMul);
        }
        else if (fppcontroller.IsActive() && fppcontroller.IsDepleted())
        {
            num -= this.m_StaminaConsumptionDepletedPerSecond * deltaTime * ((!PlayerCocaineModule.Get().m_Active) ? 1f : PlayerCocaineModule.Get().m_StaminaConsumptionMul);
        }
        else if (!MakeFireController.Get().IsActive())
        {
            num += this.m_StaminaRegenerationPerSecond * deltaTime;
        }
        if (num < this.m_Stamina || Time.time - this.m_LastDecreaseStaminaTime >= this.m_StaminaRenerationDelay)
        {
            this.m_Stamina = num;
        }
        float num2 = this.m_Stamina - this.m_PrevStamina;

        if (num2 < 0f)
        {
            this.m_LastDecreaseStaminaTime = Time.time;
        }
        this.m_Stamina     = Mathf.Clamp(this.m_Stamina, 0f, this.m_MaxStamina);
        this.m_PrevStamina = this.m_Stamina;
    }
Ejemplo n.º 4
0
    protected override void Update()
    {
        base.Update();
        if (!this.m_IsInside)
        {
            return;
        }
        if (!DifficultySettings.ActivePreset.m_Insects)
        {
            return;
        }
        if (InsectsController.Get().IsActive())
        {
            return;
        }
        if (MakeFireController.Get().IsActive())
        {
            return;
        }
        if (HitReactionController.Get().IsActive())
        {
            return;
        }
        if (HarvestingAnimalController.Get().IsActive())
        {
            return;
        }
        if (MudMixerController.Get().IsActive())
        {
            return;
        }
        if (HarvestingSmallAnimalController.Get().IsActive())
        {
            return;
        }
        if (ConsciousnessController.Get().IsActive())
        {
            return;
        }
        if (DeathController.Get().IsActive())
        {
            return;
        }
        if (SleepController.Get().IsActive())
        {
            return;
        }
        if (Player.Get().m_Animator.GetBool(Player.Get().m_CleanUpHash))
        {
            return;
        }
        Item currentItem = Player.Get().GetCurrentItem(Hand.Right);

        if (currentItem && currentItem.m_Info.IsTorch() && ((Torch)currentItem).m_Burning)
        {
            return;
        }
        if (Player.Get().IsDead())
        {
            return;
        }
        if (InsectsSensor.m_LastTime == 0f || Time.time - InsectsSensor.m_LastTime > this.m_Cooldown)
        {
            if (CraftingManager.Get().IsActive())
            {
                CraftingManager.Get().Deactivate();
            }
            InsectsController.Get().m_Sensor = this;
            Player.Get().StartController(PlayerControllerType.Insects);
            InsectsSensor.m_LastTime = Time.time;
        }
    }
Ejemplo n.º 5
0
    public bool Activate(ItemReplacer item)
    {
        this.ResetItems();
        this.m_ItemReplacer = item;
        this.ClearSlots();
        bool flag = Player.Get().m_SwimController.IsActive();

        if (item.m_ReplaceInfo.m_Craftable && !flag)
        {
            this.AddSlot(HUDItem.Action.Craft);
        }
        if (item.m_ReplaceInfo.m_CanBeAddedToInventory)
        {
            this.AddSlot(HUDItem.Action.Take);
        }
        if (item.m_ReplaceInfo.IsHeavyObject() && !item.m_ReplaceInfo.m_CanBeAddedToInventory && !MakeFireController.Get().IsActive())
        {
            this.AddSlot(HUDItem.Action.PickUp);
        }
        if (item.m_ReplaceInfo.m_Eatable && !flag)
        {
            this.AddSlot(HUDItem.Action.Eat);
        }
        if (item.m_ReplaceInfo.CanDrink() && !flag)
        {
            this.AddSlot(HUDItem.Action.Drink);
        }
        if (item.m_ReplaceInfo.m_Harvestable && !flag)
        {
            this.AddSlot(HUDItem.Action.Harvest);
        }
        this.Activate();
        return(true);
    }
Ejemplo n.º 6
0
    public bool Activate(Item item)
    {
        if (!item || !item.CanExecuteActions())
        {
            return(false);
        }
        this.ResetItems();
        this.m_Item = item;
        this.ClearSlots();
        bool flag = Player.Get().m_SwimController.IsActive();

        if (this.m_Item.m_Info.m_Craftable && !this.m_Item.m_OnCraftingTable && !flag)
        {
            this.AddSlot(HUDItem.Action.Craft);
        }
        if (this.m_Item.m_Info.IsHeavyObject() && !this.m_Item.m_Info.m_CanBeAddedToInventory)
        {
            if (!MakeFireController.Get().IsActive())
            {
                this.AddSlot(HUDItem.Action.PickUp);
            }
        }
        else if (this.m_Item.m_Info.m_CanEquip)
        {
            if (this.m_Item.IsFireTool())
            {
                if (!InventoryBackpack.Get().Contains(this.m_Item))
                {
                    this.AddSlot(HUDItem.Action.Take);
                }
                this.AddSlot(HUDItem.Action.Use);
            }
            else if (this.m_Item.m_InInventory)
            {
                if (item != InventoryBackpack.Get().m_EquippedItem)
                {
                    this.AddSlot(HUDItem.Action.Equip);
                }
            }
            else
            {
                ItemSlot exists = InventoryBackpack.Get().FindFreeSlot(this.m_Item);
                if (exists)
                {
                    this.AddSlot(HUDItem.Action.Take);
                }
                else
                {
                    this.AddSlot(HUDItem.Action.Swap);
                }
            }
        }
        else if (this.m_Item.m_Info.m_CanBeAddedToInventory && !InventoryBackpack.Get().Contains(this.m_Item))
        {
            this.AddSlot(HUDItem.Action.Take);
        }
        if (this.m_Item.m_Info.m_Eatable && !flag)
        {
            this.AddSlot(HUDItem.Action.Eat);
        }
        if (this.m_Item.m_Info.CanDrink() && !flag)
        {
            this.AddSlot(HUDItem.Action.Drink);
        }
        if (this.m_Item.m_Info.IsLiquidContainer())
        {
            LiquidContainerInfo liquidContainerInfo = (LiquidContainerInfo)this.m_Item.m_Info;
            if (liquidContainerInfo.m_Amount > 0f)
            {
                this.AddSlot(HUDItem.Action.Spill);
            }
        }
        if (this.m_Item.m_Info.m_Harvestable && !flag)
        {
            this.AddSlot(HUDItem.Action.Harvest);
        }
        this.Activate();
        return(true);
    }
Ejemplo n.º 7
0
 private void UpdateBestTrigger()
 {
     if (HUDReadableItem.Get() != null && HUDReadableItem.Get().enabled)
     {
         this.ResetTrigger();
         return;
     }
     if (this.m_CameraMain == null)
     {
         this.ResetTrigger();
         this.m_CameraMain = Camera.main;
         return;
     }
     if (CutscenesManager.Get().IsCutscenePlaying())
     {
         this.ResetTrigger();
         return;
     }
     if (MakeFireController.Get().IsActive() && (MakeFireController.Get().ShouldBlockTriggers() || !Inventory3DManager.Get().gameObject.activeSelf))
     {
         this.ResetTrigger();
         return;
     }
     if (CraftingController.Get().IsActive() && CraftingController.Get().m_InProgress)
     {
         this.ResetTrigger();
         return;
     }
     if (this.m_Player.m_ActiveFightController && (this.m_Player.m_ActiveFightController.IsBlock() || this.m_Player.m_ActiveFightController.IsAttack()))
     {
         this.ResetTrigger();
         return;
     }
     if (VomitingController.Get().IsActive())
     {
         this.ResetTrigger();
         return;
     }
     if (HUDItem.Get().m_Active&& HUDItem.Get().m_Item)
     {
         this.SetBestTrigger(HUDItem.Get().m_Item, HUDItem.Get().m_Item.transform.position);
         return;
     }
     if (Inventory3DManager.Get().gameObject.activeSelf)
     {
         if (!Inventory3DManager.Get().m_FocusedItem)
         {
             this.ResetTrigger();
             return;
         }
         if (BodyInspectionController.Get().IsActive() && Inventory3DManager.Get().m_FocusedItem.IsStorage())
         {
             this.ResetTrigger();
             return;
         }
         this.SetBestTrigger(Inventory3DManager.Get().m_FocusedItem, Inventory3DManager.Get().m_FocusedItem.transform.position);
         return;
     }
     else
     {
         if (BodyInspectionController.Get().IsActive())
         {
             this.ResetTrigger();
             return;
         }
         if (Player.Get().m_Aim)
         {
             this.ResetTrigger();
             return;
         }
         if (HUDWheel.Get().m_Active)
         {
             this.ResetTrigger();
             return;
         }
         if (this.m_Animator.GetBool(Player.Get().m_CleanUpHash))
         {
             this.ResetTrigger();
             return;
         }
         if (this.m_Animator.GetBool(TriggerController.Get().m_BDrinkWater))
         {
             this.ResetTrigger();
             return;
         }
         if (WeaponSpearController.Get().IsActive() && WeaponSpearController.Get().m_ItemBody)
         {
             this.SetBestTrigger(WeaponSpearController.Get().m_ItemBody, WeaponSpearController.Get().m_ItemBody.transform.position);
             return;
         }
         TriggerController.s_AllPotentialTriggers.Clear();
         TriggerController.s_OffCrosshairTriggers.Clear();
         TriggerController.s_ColldersEnabledMap.Clear();
         Vector3         crossHairOrigin          = this.GetCrossHairOrigin();
         Vector3         position                 = Player.Get().transform.position;
         float           num                      = 0.8f;
         float           num2                     = -1f;
         float           num3                     = -1f;
         float           num4                     = float.MinValue;
         Vector3         vector                   = Vector3.zero;
         Vector3         vector2                  = Vector3.zero;
         TriggersManager triggersManager          = TriggersManager.Get();
         bool            flag                     = false;
         Trigger         trigger                  = null;
         Vector3         hit_pos                  = Vector3.zero;
         Trigger         trigger2                 = null;
         Vector3         hit_pos2                 = Vector3.zero;
         float           num5                     = float.MinValue;
         HashSet <Trigger> .Enumerator enumerator = triggersManager.GetActiveTriggers().GetEnumerator();
         Item currentItem = Player.Get().GetCurrentItem();
         while (enumerator.MoveNext())
         {
             Trigger trigger3 = enumerator.Current;
             if (trigger3 != null && trigger3.enabled && !trigger3.m_IsCut && trigger3.m_Initialized && trigger3.CanTrigger() && (!currentItem || currentItem.GetInfoID() != ItemID.Fire || trigger3.IsFIrecamp() || trigger3.IsCharcoalFurnace() || trigger3.IsForge()))
             {
                 Collider collider = null;
                 trigger3.gameObject.GetComponents <Collider>(TriggerController.s_ColliderCache);
                 if (TriggerController.s_ColliderCache.Count > 0)
                 {
                     collider = TriggerController.s_ColliderCache[0];
                 }
                 if (collider != null)
                 {
                     if (trigger3.CheckInsideCollider() && collider.bounds.Contains(this.m_CameraMain.transform.position) && trigger3.IsAdditionalTrigger() && (!trigger3.CheckDot() || num4 > num3))
                     {
                         hit_pos2 = collider.bounds.center;
                         trigger2 = trigger3;
                         num3     = num4;
                     }
                     float num6 = (trigger3.m_TriggerCheckRange > 0f) ? trigger3.m_TriggerCheckRange : this.m_Player.GetParams().GetTriggerCheckRange();
                     if (trigger3.CheckRange())
                     {
                         vector2 = ((collider != null) ? collider.ClosestPointOnBounds(position) : trigger3.gameObject.transform.position);
                         if (Vector3.Distance(position, vector2) > num6)
                         {
                             continue;
                         }
                     }
                     vector2 = ((collider != null) ? collider.bounds.center : trigger3.gameObject.transform.position);
                     vector  = vector2 - crossHairOrigin;
                     vector.Normalize();
                     if (trigger3.CheckDot())
                     {
                         num4 = Vector3.Dot(this.m_CameraMain.transform.forward, vector);
                         if (num4 < num || (trigger3.m_TriggerMaxDot > 0f && num4 < trigger3.m_TriggerMaxDot))
                         {
                             continue;
                         }
                     }
                     TriggerController.s_AllPotentialTriggers.Add(trigger3);
                     if (!trigger3.OnlyInCrosshair())
                     {
                         TriggerController.s_OffCrosshairTriggers.Add(trigger3);
                     }
                     TriggerController.s_ColldersEnabledMap[collider] = collider.enabled;
                     collider.enabled = true;
                     if (num6 > num5)
                     {
                         num5 = num6;
                     }
                 }
             }
         }
         Vector3 crossHairDir = this.GetCrossHairDir();
         int     num7         = (num5 > 0f) ? Physics.RaycastNonAlloc(crossHairOrigin, crossHairDir, TriggerController.s_RaycastHitCache, num5) : 0;
         if (num7 > 0)
         {
             TriggerController.s_CrosshairOrigin = crossHairOrigin;
             Array.Sort <RaycastHit>(TriggerController.s_RaycastHitCache, 0, num7, TriggerController.s_DistComparer);
             for (int i = 0; i < TriggerController.s_AllPotentialTriggers.Count; i++)
             {
                 Trigger  trigger4  = TriggerController.s_AllPotentialTriggers[i];
                 Collider collider2 = null;
                 trigger4.gameObject.GetComponents <Collider>(TriggerController.s_ColliderCache);
                 if (TriggerController.s_ColliderCache.Count > 0)
                 {
                     collider2 = TriggerController.s_ColliderCache[0];
                 }
                 if (collider2 != null)
                 {
                     for (int j = 0; j < num7; j++)
                     {
                         RaycastHit raycastHit = TriggerController.s_RaycastHitCache[j];
                         if (raycastHit.collider != null && !(raycastHit.collider.gameObject == base.gameObject) && !(raycastHit.collider == FistFightController.Get().m_RightHandCollider) && !(raycastHit.collider == FistFightController.Get().m_LeftHandCollider) && !(raycastHit.collider.gameObject == this.m_Proxy.m_Controller.gameObject))
                         {
                             GhostSlot ghostSlot = null;
                             raycastHit.collider.gameObject.GetComponents <GhostSlot>(TriggerController.s_GhostSlotCache);
                             if (TriggerController.s_GhostSlotCache.Count > 0)
                             {
                                 ghostSlot = TriggerController.s_GhostSlotCache[0];
                             }
                             if (!flag || ghostSlot != null || trigger4.IsAdditionalTrigger())
                             {
                                 if (collider2 == raycastHit.collider || trigger4.IsAdditionalCollider(raycastHit.collider))
                                 {
                                     if (trigger4.IsAdditionalTrigger())
                                     {
                                         if (!trigger4.CheckDot() || num4 > num3 || (trigger4.m_TriggerMaxDot > 0f && num4 >= trigger4.m_TriggerMaxDot))
                                         {
                                             hit_pos2 = raycastHit.point;
                                             trigger2 = trigger4;
                                             num3     = num4;
                                             break;
                                         }
                                         break;
                                     }
                                     else
                                     {
                                         if (trigger4.CheckDot() && num4 < num2 && (trigger4.m_TriggerMaxDot <= 0f || num4 < trigger4.m_TriggerMaxDot))
                                         {
                                             break;
                                         }
                                         hit_pos = raycastHit.point;
                                         trigger = trigger4;
                                         if (!trigger || !trigger.IsLiquidSource())
                                         {
                                             num2 = num4;
                                             break;
                                         }
                                         break;
                                     }
                                 }
                                 else
                                 {
                                     ITriggerThrough triggerThrough = null;
                                     raycastHit.collider.gameObject.GetComponents <ITriggerThrough>(TriggerController.s_TriggerThroughCache);
                                     if (TriggerController.s_TriggerThroughCache.Count > 0)
                                     {
                                         triggerThrough = TriggerController.s_TriggerThroughCache[0];
                                     }
                                     if (triggerThrough == null && !raycastHit.collider.gameObject.GetComponent <TriggerThrough>() && (!trigger || !trigger.IsLiquidSource() || !(trigger.gameObject == raycastHit.collider.gameObject)))
                                     {
                                         if (ghostSlot != null)
                                         {
                                             flag = true;
                                         }
                                         else
                                         {
                                             Item currentItem2 = this.m_Player.GetCurrentItem(Hand.Right);
                                             if (currentItem2 == null || !(currentItem2.gameObject == raycastHit.collider.gameObject))
                                             {
                                                 currentItem2 = this.m_Player.GetCurrentItem(Hand.Left);
                                                 if ((currentItem2 == null || !(currentItem2.gameObject == raycastHit.collider.gameObject)) && !(raycastHit.collider.gameObject == this.m_Proxy.m_Controller.gameObject))
                                                 {
                                                     Trigger trigger5 = null;
                                                     raycastHit.collider.gameObject.GetComponents <Trigger>(TriggerController.s_OtherTriggerCache);
                                                     if (TriggerController.s_OtherTriggerCache.Count > 0)
                                                     {
                                                         trigger5 = TriggerController.s_OtherTriggerCache[0];
                                                     }
                                                     if (trigger5 == null || !trigger5.TriggerThrough())
                                                     {
                                                         break;
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
         if (trigger == null || trigger.IsLiquidSource())
         {
             TriggerController.s_CrosshairDir    = crossHairDir;
             TriggerController.s_CrosshairOrigin = crossHairOrigin;
             TriggerController.s_OffCrosshairTriggers.Sort(TriggerController.s_DotComparer);
             bool flag2 = false;
             int  num8  = 0;
             while (num8 < TriggerController.s_OffCrosshairTriggers.Count && !flag2)
             {
                 Trigger  trigger6  = TriggerController.s_OffCrosshairTriggers[num8];
                 Collider collider3 = null;
                 trigger6.gameObject.GetComponents <Collider>(TriggerController.s_ColliderCache);
                 if (TriggerController.s_ColliderCache.Count > 0)
                 {
                     collider3 = TriggerController.s_ColliderCache[0];
                 }
                 if (collider3 != null)
                 {
                     float maxDistance = (trigger6.m_TriggerCheckRange > 0f) ? trigger6.m_TriggerCheckRange : this.m_Player.GetParams().GetTriggerCheckRange();
                     vector2 = ((collider3 != null) ? collider3.bounds.center : trigger6.gameObject.transform.position);
                     vector  = vector2 - crossHairOrigin;
                     vector.Normalize();
                     num7 = Physics.RaycastNonAlloc(crossHairOrigin, vector, TriggerController.s_RaycastHitCache, maxDistance);
                     if ((float)num7 > 0f)
                     {
                         TriggerController.s_CrosshairOrigin = crossHairOrigin;
                         Array.Sort <RaycastHit>(TriggerController.s_RaycastHitCache, 0, num7, TriggerController.s_DistComparer);
                         for (int k = 0; k < num7; k++)
                         {
                             RaycastHit raycastHit2 = TriggerController.s_RaycastHitCache[k];
                             if (!(raycastHit2.collider.gameObject == base.gameObject))
                             {
                                 GhostSlot ghostSlot2 = null;
                                 raycastHit2.collider.gameObject.GetComponents <GhostSlot>(TriggerController.s_GhostSlotCache);
                                 if (TriggerController.s_GhostSlotCache.Count > 0)
                                 {
                                     ghostSlot2 = TriggerController.s_GhostSlotCache[0];
                                 }
                                 if (!flag || ghostSlot2 != null || trigger6.IsAdditionalTrigger())
                                 {
                                     if (collider3 == raycastHit2.collider)
                                     {
                                         if (!trigger6.CheckDot() || num4 > num2 || (trigger6.m_TriggerMaxDot > 0f && num4 >= trigger6.m_TriggerMaxDot))
                                         {
                                             hit_pos = raycastHit2.point;
                                             trigger = trigger6;
                                             num2    = num4;
                                             flag2   = true;
                                             break;
                                         }
                                         break;
                                     }
                                     else
                                     {
                                         ITriggerThrough triggerThrough2 = null;
                                         raycastHit2.collider.gameObject.GetComponents <ITriggerThrough>(TriggerController.s_TriggerThroughCache);
                                         if (TriggerController.s_TriggerThroughCache.Count > 0)
                                         {
                                             triggerThrough2 = TriggerController.s_TriggerThroughCache[0];
                                         }
                                         if (triggerThrough2 == null && raycastHit2.collider.gameObject.layer != this.m_BalanceSpawnerLayer && (trigger == null || !trigger.IsLiquidSource() || !(trigger.gameObject == raycastHit2.collider.gameObject)))
                                         {
                                             if (ghostSlot2 != null)
                                             {
                                                 flag = true;
                                             }
                                             else
                                             {
                                                 Item currentItem3 = this.m_Player.GetCurrentItem(Hand.Right);
                                                 if (currentItem3 == null || !(currentItem3.gameObject == raycastHit2.collider.gameObject))
                                                 {
                                                     currentItem3 = this.m_Player.GetCurrentItem(Hand.Left);
                                                     if (currentItem3 == null || !(currentItem3.gameObject == raycastHit2.collider.gameObject))
                                                     {
                                                         Trigger trigger7 = null;
                                                         raycastHit2.collider.gameObject.GetComponents <Trigger>(TriggerController.s_OtherTriggerCache);
                                                         if (TriggerController.s_OtherTriggerCache.Count > 0)
                                                         {
                                                             trigger7 = TriggerController.s_OtherTriggerCache[0];
                                                         }
                                                         if (trigger7 == null || !trigger7.TriggerThrough())
                                                         {
                                                             if (trigger7 != null && TriggerController.s_OffCrosshairTriggers.Contains(trigger7))
                                                             {
                                                                 trigger = trigger7;
                                                                 hit_pos = raycastHit2.point;
                                                                 flag2   = true;
                                                                 break;
                                                             }
                                                             break;
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
                 num8++;
             }
         }
         Trigger trigger8 = null;
         if (trigger != this.m_BestTrigger.trigger && this.m_BestTrigger.trigger)
         {
             trigger8 = this.m_BestTrigger.trigger;
         }
         this.SetBestTrigger(trigger, hit_pos);
         if (trigger)
         {
             trigger.UpdateLayer();
         }
         if (trigger8)
         {
             trigger8.UpdateLayer();
         }
         if (this.m_AdditionalTrigger.trigger != trigger2)
         {
             if (trigger2 != this.m_AdditionalTrigger.trigger && this.m_AdditionalTrigger.trigger)
             {
                 trigger8 = this.m_AdditionalTrigger.trigger;
             }
             this.m_AdditionalTrigger.trigger = trigger2;
             this.m_AdditionalTrigger.actions.Clear();
             if (this.m_AdditionalTrigger.trigger)
             {
                 this.m_AdditionalTrigger.trigger.GetActions(this.m_AdditionalTrigger.actions);
             }
             this.m_AdditionalTrigger.hit_pos = hit_pos2;
             if (this.m_AdditionalTrigger.trigger)
             {
                 this.m_AdditionalTrigger.trigger.UpdateLayer();
             }
             if (trigger8)
             {
                 trigger8.UpdateLayer();
             }
         }
         foreach (KeyValuePair <Collider, bool> keyValuePair in TriggerController.s_ColldersEnabledMap)
         {
             Collider key = keyValuePair.Key;
             Dictionary <Collider, bool> .Enumerator enumerator2;
             keyValuePair = enumerator2.Current;
             key.enabled  = keyValuePair.Value;
         }
         return;
     }
 }
Ejemplo n.º 8
0
    public bool CanShow()
    {
        if (GreenHellGame.Instance.m_GameMode != GameMode.Story)
        {
            return(false);
        }
        if (ScenarioManager.Get().IsBoolVariableTrue("PlayerMechGameEnding"))
        {
            return(false);
        }
        if (ConsciousnessController.Get().IsActive())
        {
            return(false);
        }
        if (SleepController.Get().IsActive())
        {
            return(false);
        }
        if (InsectsController.Get().IsActive())
        {
            return(false);
        }
        if (InsectsController.Get().IsActive())
        {
            return(false);
        }
        if (SwimController.Get().IsActive())
        {
            return(false);
        }
        if (Player.Get().m_IsInAir)
        {
            return(false);
        }
        if (ChallengesManager.Get() && ChallengesManager.Get().IsChallengeActive())
        {
            return(false);
        }
        if (HUDReadableItem.Get().enabled)
        {
            return(false);
        }
        if (Player.Get().m_Animator.GetBool(Player.Get().m_CleanUpHash))
        {
            return(false);
        }
        if (Time.time - SwimController.Get().m_LastDisableTime < 0.5f)
        {
            return(false);
        }
        if (Player.Get().m_IsInAir)
        {
            return(false);
        }
        if (DeathController.Get().IsActive())
        {
            return(false);
        }
        if (ScenarioManager.Get().IsDreamOrPreDream())
        {
            return(false);
        }
        if (Inventory3DManager.Get().IsActive())
        {
            return(false);
        }
        if (CutscenesManager.Get().IsCutscenePlaying())
        {
            return(false);
        }
        if (SwimController.Get().IsActive())
        {
            return(false);
        }
        if (BodyInspectionController.Get().IsActive())
        {
            return(false);
        }
        if (HarvestingAnimalController.Get().IsActive())
        {
            return(false);
        }
        if (HarvestingSmallAnimalController.Get().IsActive())
        {
            return(false);
        }
        if (VomitingController.Get().IsActive())
        {
            return(false);
        }
        if (MapController.Get().IsActive())
        {
            return(false);
        }
        if (NotepadController.Get().IsActive())
        {
            return(false);
        }
        if (MudMixerController.Get().IsActive())
        {
            return(false);
        }
        if (MakeFireController.Get().IsActive())
        {
            return(false);
        }
        if (HUDWheel.Get().enabled)
        {
            return(false);
        }
        if (FPPController.Get().m_Dodge)
        {
            return(false);
        }
        if (GreenHellGame.IsPadControllerActive() && HUDItem.Get().m_Active)
        {
            return(false);
        }
        int shortNameHash = Player.Get().m_Animator.GetCurrentAnimatorStateInfo(1).shortNameHash;

        return(shortNameHash != this.m_MapWatchHideHash && shortNameHash != this.m_MapWatchIdleHash && shortNameHash != this.m_MapWatchShowHash && shortNameHash != this.m_MapZoomHash && shortNameHash != this.m_MapHideHash && shortNameHash != this.m_MapIdleHash && shortNameHash != this.m_ShowMapHash);
    }
Ejemplo n.º 9
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);
    }
Ejemplo n.º 10
0
    public bool Activate(Item item)
    {
        if (this.m_Active)
        {
            return(false);
        }
        if (!item || !item.CanExecuteActions())
        {
            return(false);
        }
        this.ResetItems();
        this.m_Item = item;
        this.ClearSlots();
        if (GreenHellGame.IsPadControllerActive() && Inventory3DManager.Get().IsActive() && Inventory3DManager.Get().CanSetCarriedItem(true))
        {
            this.AddSlot(HUDItem.Action.Pick);
            this.AddSlot(HUDItem.Action.PickStack);
        }
        if (this.m_Item.m_Info.IsArmor() && ((Armor)this.m_Item).m_Limb != Limb.None)
        {
            this.AddSlot(HUDItem.Action.TakeOffArmor);
            this.Activate();
            return(true);
        }
        bool flag = Player.Get().m_SwimController.IsActive();

        if (this.m_Item.m_Info.m_Craftable && !this.m_Item.m_OnCraftingTable && Player.Get().CanStartCrafting())
        {
            this.AddSlot(HUDItem.Action.Craft);
        }
        if (this.m_Item.IsStorage())
        {
            this.AddSlot(HUDItem.Action.Use);
        }
        else if (item.IsAcre())
        {
            this.AddSlot(HUDItem.Action.Plow);
        }
        else if (this.m_Item.m_Info.IsHeavyObject() && !this.m_Item.m_Info.m_CanBeAddedToInventory)
        {
            if (!MakeFireController.Get().IsActive())
            {
                this.AddSlot(HUDItem.Action.PickUp);
            }
        }
        else if (this.m_Item.m_Info.m_CanEquip)
        {
            if (this.m_Item.IsFireTool())
            {
                if (!InventoryBackpack.Get().Contains(this.m_Item))
                {
                    this.AddSlot(HUDItem.Action.Take);
                }
                if (!MakeFireController.Get().IsActive() && !Player.Get().IsInWater())
                {
                    this.AddSlot(HUDItem.Action.Use);
                }
            }
            else if (this.m_Item.m_InInventory || this.m_Item.m_InStorage)
            {
                if (item != InventoryBackpack.Get().m_EquippedItem)
                {
                    this.AddSlot(HUDItem.Action.Equip);
                }
            }
            else if (InventoryBackpack.Get().FindFreeSlot(this.m_Item))
            {
                this.AddSlot(HUDItem.Action.Take);
            }
            else
            {
                this.AddSlot(HUDItem.Action.Swap);
            }
        }
        else if (this.m_Item.m_Info.m_CanBeAddedToInventory && !InventoryBackpack.Get().Contains(this.m_Item))
        {
            this.AddSlot(HUDItem.Action.Take);
        }
        if (MakeFireController.Get().IsActive() && MakeFireController.Get().CanUseItemAsKindling(item))
        {
            this.AddSlot(HUDItem.Action.Use);
        }
        if (this.m_Item.m_Info.m_Eatable && !flag)
        {
            this.AddSlot(HUDItem.Action.Eat);
        }
        if (this.m_Item.m_Info.CanDrink() && !flag)
        {
            this.AddSlot(HUDItem.Action.Drink);
        }
        if (this.m_Item.m_Info.IsLiquidContainer() && ((LiquidContainerInfo)this.m_Item.m_Info).CanSpill())
        {
            this.AddSlot(HUDItem.Action.Spill);
        }
        if (this.m_Item.m_Info.m_Harvestable && !flag && (!this.m_Item.RequiresToolToHarvest() || Player.Get().HasBlade()))
        {
            this.AddSlot(HUDItem.Action.Harvest);
        }
        if (this.m_Item.m_Info.IsArmor() && BodyInspectionController.Get().IsActive())
        {
            Limb selectedLimb = HUDBodyInspection.Get().GetSelectedLimb();
            if (PlayerArmorModule.Get().IsArmorActive(selectedLimb))
            {
                this.AddSlot(HUDItem.Action.SwapArmor);
            }
            else
            {
                this.AddSlot(HUDItem.Action.EquipArmor);
            }
        }
        if (HUDItemSlot.Get().m_SelectedSlotData != null && HUDItemSlot.Get().m_SelectedSlotData.slot.CanInsertItem(this.m_Item))
        {
            this.AddSlot(HUDItem.Action.Insert);
        }
        if (GreenHellGame.IsPadControllerActive() && (item.m_InInventory || item.m_InStorage))
        {
            this.AddSlot(HUDItem.Action.Drop);
        }
        if (this.m_Item.m_Info.IsStand())
        {
            Stand stand = (Stand)this.m_Item;
            if (stand.GetNumitems() > 0)
            {
                this.AddSlot(HUDItem.Action.Take);
            }
            if (stand.GetNumitems() >= 3)
            {
                this.AddSlot(HUDItem.Action.Take3);
            }
            if (stand.GetNumitems() >= 2)
            {
                this.AddSlot(HUDItem.Action.TakeAll);
            }
        }
        else if (!item.m_Info.m_CantDestroy && !item.m_AttachedToSpear && item.m_Info.m_ID != ItemID.Chellange_Battery && item.m_Info.m_ID != ItemID.Chellange_WalkieTalkie && !item.IsStorage() && !item.IsAcre())
        {
            this.AddSlot(HUDItem.Action.Destroy);
            if ((item.m_InventorySlot && item.m_InventorySlot.m_Items.Count > 0) || (item.m_CurrentSlot && item.m_CurrentSlot.IsStack()))
            {
                this.AddSlot(HUDItem.Action.DestroyStack);
            }
        }
        this.Activate();
        return(true);
    }
Ejemplo n.º 11
0
 protected override void Update()
 {
     base.Update();
     if (this.m_LastKeyCode != this.m_InputData.m_KeyCode)
     {
         this.m_KeyText.text = KeyCodeToString.GetString(this.m_InputData.m_KeyCode);
         this.m_LastKeyCode  = this.m_InputData.m_KeyCode;
     }
     if ((this.m_LastSelectDialogDeactivationTime == 0f || Time.time - this.m_LastSelectDialogDeactivationTime > 0.5f) && GreenHellGame.IsPCControllerActive())
     {
         if (InputsManager.Get().IsActionActive(InputsManager.InputAction.ShowSelectDialogNode) && !DialogsManager.Get().IsAnyDialogPlaying())
         {
             if (!HUDSelectDialog.Get().enabled&& Player.Get().m_Animator.GetCurrentAnimatorStateInfo(2).shortNameHash == this.m_IdleHash && !MakeFireController.Get().IsActive())
             {
                 HUDSelectDialog.Get().Activate();
                 this.m_LastSelectDialogDeactivationTime = Time.time;
             }
         }
         else if (HUDSelectDialog.Get().enabled&& !DialogsManager.Get().IsAnyDialogPlaying())
         {
             HUDSelectDialog.Get().Deactivate();
             this.m_LastSelectDialogDeactivationTime = Time.time;
         }
     }
     if (this.m_NewDialogsCount == 0 || HUDSelectDialog.Get().enabled || DialogsManager.Get().IsAnyDialogPlaying())
     {
         if (this.m_NewDialogsObject.activeSelf)
         {
             this.m_NewDialogsObject.SetActive(false);
             return;
         }
     }
     else if (!this.m_NewDialogsObject.activeSelf)
     {
         this.m_NewDialogsObject.SetActive(true);
     }
 }
Ejemplo n.º 12
0
    private void UpdateBestTrigger()
    {
        if (HUDReadableItem.Get().enabled)
        {
            this.m_BestTrigger.Reset();
            this.m_AdditionalTrigger.Reset();
            return;
        }
        if (Camera.main == null)
        {
            this.m_BestTrigger.Reset();
            this.m_AdditionalTrigger.Reset();
            return;
        }
        if (CutscenesManager.Get().IsCutscenePlaying())
        {
            this.m_BestTrigger.Reset();
            this.m_AdditionalTrigger.Reset();
            return;
        }
        if (MakeFireController.Get().IsActive() && (MakeFireController.Get().ShouldBlockTriggers() || !Inventory3DManager.Get().gameObject.activeSelf))
        {
            this.m_BestTrigger.Reset();
            this.m_AdditionalTrigger.Reset();
            return;
        }
        if (CraftingController.Get().IsActive() && CraftingController.Get().m_InProgress)
        {
            this.m_BestTrigger.Reset();
            this.m_AdditionalTrigger.Reset();
            return;
        }
        if (this.m_Player.m_ActiveFightController && this.m_Player.m_ActiveFightController.IsBlock())
        {
            this.m_BestTrigger.Reset();
            this.m_AdditionalTrigger.Reset();
            return;
        }
        if (HUDItem.Get().m_Active&& HUDItem.Get().m_Item)
        {
            this.SetBestTrigger(HUDItem.Get().m_Item, HUDItem.Get().m_Item.transform.position);
            return;
        }
        if (Inventory3DManager.Get().gameObject.activeSelf)
        {
            if (Inventory3DManager.Get().m_FocusedItem)
            {
                this.SetBestTrigger(Inventory3DManager.Get().m_FocusedItem, Inventory3DManager.Get().m_FocusedItem.transform.position);
            }
            else
            {
                this.m_BestTrigger.Reset();
                this.m_AdditionalTrigger.Reset();
            }
            return;
        }
        if (BodyInspectionController.Get().IsActive())
        {
            this.m_BestTrigger.Reset();
            this.m_AdditionalTrigger.Reset();
            return;
        }
        if (Player.Get().m_Aim)
        {
            this.m_BestTrigger.Reset();
            this.m_AdditionalTrigger.Reset();
            return;
        }
        if (WeaponSpearController.Get().IsActive() && WeaponSpearController.Get().m_ItemBody)
        {
            this.SetBestTrigger(WeaponSpearController.Get().m_ItemBody, WeaponSpearController.Get().m_ItemBody.transform.position);
            return;
        }
        TriggerController.s_AllPotentialTriggers.Clear();
        TriggerController.s_OffCrosshairTriggers.Clear();
        TriggerController.s_ColldersEnabledMap.Clear();
        Vector3         crossHairOrigin = this.GetCrossHairOrigin();
        Vector3         position        = Player.Get().transform.position;
        float           num             = 0.8f;
        float           num2            = -1f;
        float           num3            = -1f;
        float           num4            = float.MinValue;
        Vector3         vector          = Vector3.zero;
        Vector3         vector2         = Vector3.zero;
        TriggersManager triggersManager = TriggersManager.Get();
        bool            flag            = false;
        Trigger         trigger         = null;
        Vector3         hit_pos         = Vector3.zero;
        Trigger         trigger2        = null;
        Vector3         hit_pos2        = Vector3.zero;
        float           num5            = float.MinValue;

        for (int i = 0; i < triggersManager.GetActiveTriggersCount(); i++)
        {
            Trigger trigger3 = triggersManager.GetTrigger(i, false);
            if (trigger3 && trigger3.enabled)
            {
                if (!trigger3.m_IsCut)
                {
                    if (trigger3.CanTrigger())
                    {
                        Collider collider = null;
                        trigger3.gameObject.GetComponents <Collider>(TriggerController.s_ColliderCache);
                        if (TriggerController.s_ColliderCache.Count > 0)
                        {
                            collider = TriggerController.s_ColliderCache[0];
                        }
                        if (collider)
                        {
                            if (trigger3.CheckInsideCollider() && collider.bounds.Contains(Camera.main.transform.position) && trigger3.IsAdditionalTrigger() && (!trigger3.CheckDot() || num4 > num3))
                            {
                                hit_pos2 = collider.bounds.center;
                                trigger2 = trigger3;
                                num3     = num4;
                            }
                            float num6 = (trigger3.m_TriggerCheckRange <= 0f) ? this.m_Player.GetParams().GetTriggerCheckRange() : trigger3.m_TriggerCheckRange;
                            if (trigger3.CheckRange())
                            {
                                vector2 = ((!collider) ? trigger3.gameObject.transform.position : collider.ClosestPointOnBounds(position));
                                float num7 = Vector3.Distance(position, vector2);
                                if (num7 > num6)
                                {
                                    goto IL_539;
                                }
                            }
                            vector2 = ((!collider) ? trigger3.gameObject.transform.position : collider.bounds.center);
                            vector  = vector2 - crossHairOrigin;
                            vector.Normalize();
                            if (trigger3.CheckDot())
                            {
                                num4 = Vector3.Dot(Camera.main.transform.forward, vector);
                                if (num4 < num)
                                {
                                    goto IL_539;
                                }
                            }
                            TriggerController.s_AllPotentialTriggers.Add(trigger3);
                            if (!trigger3.OnlyInCrosshair())
                            {
                                TriggerController.s_OffCrosshairTriggers.Add(trigger3);
                            }
                            TriggerController.s_ColldersEnabledMap[collider] = collider.enabled;
                            collider.enabled = true;
                            if (num6 > num5)
                            {
                                num5 = num6;
                            }
                        }
                    }
                }
            }
            IL_539 :;
        }
        int num8 = Physics.RaycastNonAlloc(crossHairOrigin, this.GetCrossHairDir(), TriggerController.s_RaycastHitCache, num5);

        if ((float)num8 > 0f)
        {
            TriggerController.s_CrosshairOrigin = this.GetCrossHairOrigin();
            Array.Sort <RaycastHit>(TriggerController.s_RaycastHitCache, 0, num8, TriggerController.s_DistComparer);
            for (int j = 0; j < TriggerController.s_AllPotentialTriggers.Count; j++)
            {
                Trigger  trigger4  = TriggerController.s_AllPotentialTriggers[j];
                Collider collider2 = null;
                trigger4.gameObject.GetComponents <Collider>(TriggerController.s_ColliderCache);
                if (TriggerController.s_ColliderCache.Count > 0)
                {
                    collider2 = TriggerController.s_ColliderCache[0];
                }
                if (collider2)
                {
                    for (int k = 0; k < num8; k++)
                    {
                        RaycastHit raycastHit = TriggerController.s_RaycastHitCache[k];
                        if (raycastHit.collider)
                        {
                            if (!(raycastHit.collider.gameObject == base.gameObject))
                            {
                                if (!(raycastHit.collider == FistFightController.Get().m_RightHandCollider))
                                {
                                    if (!(raycastHit.collider == FistFightController.Get().m_LeftHandCollider))
                                    {
                                        GhostSlot x = null;
                                        raycastHit.collider.gameObject.GetComponents <GhostSlot>(TriggerController.s_GhostSlotCache);
                                        if (TriggerController.s_GhostSlotCache.Count > 0)
                                        {
                                            x = TriggerController.s_GhostSlotCache[0];
                                        }
                                        if (!flag || !(x == null) || trigger4.IsAdditionalTrigger())
                                        {
                                            if (collider2 == raycastHit.collider || trigger4.IsAdditionalCollider(raycastHit.collider))
                                            {
                                                if (trigger4.IsAdditionalTrigger())
                                                {
                                                    if (!trigger4.CheckDot() || num4 > num3)
                                                    {
                                                        hit_pos2 = raycastHit.point;
                                                        trigger2 = trigger4;
                                                        num3     = num4;
                                                    }
                                                }
                                                else if (!trigger4.CheckDot() || num4 > num2)
                                                {
                                                    hit_pos = raycastHit.point;
                                                    trigger = trigger4;
                                                    if (!trigger || !trigger.IsLiquidSource())
                                                    {
                                                        num2 = num4;
                                                    }
                                                }
                                                break;
                                            }
                                            ITriggerThrough triggerThrough = null;
                                            raycastHit.collider.gameObject.GetComponents <ITriggerThrough>(TriggerController.s_TriggerThroughCache);
                                            if (TriggerController.s_TriggerThroughCache.Count > 0)
                                            {
                                                triggerThrough = TriggerController.s_TriggerThroughCache[0];
                                            }
                                            if (triggerThrough == null)
                                            {
                                                if (!trigger || !trigger.IsLiquidSource() || !(trigger.gameObject == raycastHit.collider.gameObject))
                                                {
                                                    if (x != null)
                                                    {
                                                        flag = true;
                                                    }
                                                    else
                                                    {
                                                        Item currentItem = this.m_Player.GetCurrentItem(Hand.Right);
                                                        if (!currentItem || !(currentItem.gameObject == raycastHit.collider.gameObject))
                                                        {
                                                            currentItem = this.m_Player.GetCurrentItem(Hand.Left);
                                                            if (!currentItem || !(currentItem.gameObject == raycastHit.collider.gameObject))
                                                            {
                                                                Trigger trigger5 = null;
                                                                raycastHit.collider.gameObject.GetComponents <Trigger>(TriggerController.s_OtherTriggerCache);
                                                                if (TriggerController.s_OtherTriggerCache.Count > 0)
                                                                {
                                                                    trigger5 = TriggerController.s_OtherTriggerCache[0];
                                                                }
                                                                if (!trigger5 || !trigger5.TriggerThrough())
                                                                {
                                                                    break;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        if (trigger == null || trigger.IsLiquidSource())
        {
            TriggerController.s_CrosshairDir    = this.GetCrossHairDir();
            TriggerController.s_CrosshairOrigin = this.GetCrossHairOrigin();
            TriggerController.s_OffCrosshairTriggers.Sort(TriggerController.s_DotComparer);
            bool flag2 = false;
            int  num9  = 0;
            while (num9 < TriggerController.s_OffCrosshairTriggers.Count && !flag2)
            {
                Trigger  trigger6  = TriggerController.s_OffCrosshairTriggers[num9];
                Collider collider3 = null;
                trigger6.gameObject.GetComponents <Collider>(TriggerController.s_ColliderCache);
                if (TriggerController.s_ColliderCache.Count > 0)
                {
                    collider3 = TriggerController.s_ColliderCache[0];
                }
                if (collider3)
                {
                    float maxDistance = (trigger6.m_TriggerCheckRange <= 0f) ? this.m_Player.GetParams().GetTriggerCheckRange() : trigger6.m_TriggerCheckRange;
                    vector2 = ((!collider3) ? trigger6.gameObject.transform.position : collider3.bounds.center);
                    vector  = vector2 - crossHairOrigin;
                    vector.Normalize();
                    num8 = Physics.RaycastNonAlloc(crossHairOrigin, vector, TriggerController.s_RaycastHitCache, maxDistance);
                    if ((float)num8 > 0f)
                    {
                        TriggerController.s_CrosshairOrigin = this.GetCrossHairOrigin();
                        Array.Sort <RaycastHit>(TriggerController.s_RaycastHitCache, 0, num8, TriggerController.s_DistComparer);
                        for (int l = 0; l < num8; l++)
                        {
                            RaycastHit raycastHit2 = TriggerController.s_RaycastHitCache[l];
                            if (!(raycastHit2.collider.gameObject == base.gameObject))
                            {
                                GhostSlot x2 = null;
                                raycastHit2.collider.gameObject.GetComponents <GhostSlot>(TriggerController.s_GhostSlotCache);
                                if (TriggerController.s_GhostSlotCache.Count > 0)
                                {
                                    x2 = TriggerController.s_GhostSlotCache[0];
                                }
                                if (!flag || !(x2 == null) || trigger6.IsAdditionalTrigger())
                                {
                                    if (collider3 == raycastHit2.collider)
                                    {
                                        if (!trigger6.CheckDot() || num4 > num2)
                                        {
                                            hit_pos = raycastHit2.point;
                                            trigger = trigger6;
                                            num2    = num4;
                                            flag2   = true;
                                        }
                                        break;
                                    }
                                    ITriggerThrough triggerThrough2 = null;
                                    raycastHit2.collider.gameObject.GetComponents <ITriggerThrough>(TriggerController.s_TriggerThroughCache);
                                    if (TriggerController.s_TriggerThroughCache.Count > 0)
                                    {
                                        triggerThrough2 = TriggerController.s_TriggerThroughCache[0];
                                    }
                                    if (triggerThrough2 == null)
                                    {
                                        if (raycastHit2.collider.gameObject.layer != this.m_BalanceSpawnerLayer)
                                        {
                                            if (!trigger || !trigger.IsLiquidSource() || !(trigger.gameObject == raycastHit2.collider.gameObject))
                                            {
                                                if (x2 != null)
                                                {
                                                    flag = true;
                                                }
                                                else
                                                {
                                                    Item currentItem2 = this.m_Player.GetCurrentItem(Hand.Right);
                                                    if (!currentItem2 || !(currentItem2.gameObject == raycastHit2.collider.gameObject))
                                                    {
                                                        currentItem2 = this.m_Player.GetCurrentItem(Hand.Left);
                                                        if (!currentItem2 || !(currentItem2.gameObject == raycastHit2.collider.gameObject))
                                                        {
                                                            Trigger trigger7 = null;
                                                            raycastHit2.collider.gameObject.GetComponents <Trigger>(TriggerController.s_OtherTriggerCache);
                                                            if (TriggerController.s_OtherTriggerCache.Count > 0)
                                                            {
                                                                trigger7 = TriggerController.s_OtherTriggerCache[0];
                                                            }
                                                            if (!trigger7 || !trigger7.TriggerThrough())
                                                            {
                                                                if (trigger7 && TriggerController.s_OffCrosshairTriggers.Contains(trigger7))
                                                                {
                                                                    trigger = trigger7;
                                                                    hit_pos = raycastHit2.point;
                                                                    flag2   = true;
                                                                }
                                                                break;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                num9++;
            }
        }
        this.SetBestTrigger(trigger, hit_pos);
        if (this.m_AdditionalTrigger.trigger != trigger2)
        {
            this.m_AdditionalTrigger.trigger = trigger2;
            this.m_AdditionalTrigger.actions.Clear();
            if (this.m_AdditionalTrigger.trigger)
            {
                this.m_AdditionalTrigger.trigger.GetActions(this.m_AdditionalTrigger.actions);
            }
            this.m_AdditionalTrigger.hit_pos = hit_pos2;
        }
        foreach (KeyValuePair <Collider, bool> keyValuePair in TriggerController.s_ColldersEnabledMap)
        {
            Collider key       = keyValuePair.Key;
            Collider collider4 = key;
            Dictionary <Collider, bool> .Enumerator enumerator;
            KeyValuePair <Collider, bool>           keyValuePair2 = enumerator.Current;
            collider4.enabled = keyValuePair2.Value;
        }
    }