Example #1
0
        private void LogContentUpdate(ref MultiHolder.ContentTypes showAddIcon)
        {
            bool flag = !BoltNetwork.isRunning || (base.transform.position - LocalPlayer.GameObject.transform.position).magnitude < 5f;

            if ((!BoltNetwork.isRunning && this._contentActual > 0 && LocalPlayer.Inventory.Logs.Amount < 2 && !LocalPlayer.AnimControl.carry) || (BoltNetwork.isRunning && this._contentActual > 0 && LocalPlayer.Inventory.Logs.Amount < 2 && !LocalPlayer.AnimControl.carry && flag))
            {
                this.TakeIcon.SetActive(true);
                if (TheForest.Utils.Input.GetButtonDown("Take"))
                {
                    if (BoltNetwork.isRunning)
                    {
                        ItemHolderTakeItem itemHolderTakeItem = ItemHolderTakeItem.Create(GlobalTargets.OnlyServer);
                        itemHolderTakeItem.ContentType = (int)this._contentTypeActual;
                        itemHolderTakeItem.Target      = this.entity;
                        itemHolderTakeItem.Player      = LocalPlayer.Entity;
                        itemHolderTakeItem.Send();
                    }
                    else if (LocalPlayer.Inventory.Logs.Lift())
                    {
                        this.LogRender[this._contentActual - 1].SetActive(false);
                        this._contentActual--;
                        if (this._contentActual == 0)
                        {
                            this._contentTypeActual = MultiHolder.ContentTypes.None;
                        }
                        this.RefreshMassAndDrag();
                    }
                }
            }
            else
            {
                this.TakeIcon.SetActive(false);
            }
            if (this._contentActual < this.LogRender.Length && LocalPlayer.Inventory.Logs.Amount > 0 && flag)
            {
                showAddIcon = MultiHolder.ContentTypes.Log;
                if (TheForest.Utils.Input.GetButtonDown("Craft"))
                {
                    this._contentTypeActual = MultiHolder.ContentTypes.Log;
                    this._emitter.Play();
                    LocalPlayer.Inventory.Logs.PutDown(false, false, true);
                    if (BoltNetwork.isRunning)
                    {
                        ItemHolderAddItem itemHolderAddItem = ItemHolderAddItem.Create(GlobalTargets.OnlyServer);
                        itemHolderAddItem.ContentType = 1;
                        itemHolderAddItem.Target      = this.entity;
                        itemHolderAddItem.Send();
                    }
                    else
                    {
                        this._contentActual++;
                        this.LogRender[this._contentActual - 1].SetActive(true);
                        this.RefreshMassAndDrag();
                    }
                }
            }
        }
Example #2
0
        private void RockContentUpdate(ref MultiHolder.ContentTypes showAddIcon)
        {
            bool flag = !BoltNetwork.isRunning || (base.transform.position - LocalPlayer.GameObject.transform.position).magnitude < 5f;

            if ((!BoltNetwork.isRunning && this._contentActual > 0 && LocalPlayer.Inventory.AmountOf(this.RockItemId, true) < 5) || (BoltNetwork.isRunning && this._contentActual > 0 && LocalPlayer.Inventory.AmountOf(this.RockItemId, true) < 5 && flag))
            {
                this.TakeRockIcon.SetActive(true);
                if (TheForest.Utils.Input.GetButtonDown("Take"))
                {
                    if (BoltNetwork.isRunning)
                    {
                        ItemHolderTakeItem itemHolderTakeItem = ItemHolderTakeItem.Create(GlobalTargets.OnlyServer);
                        itemHolderTakeItem.ContentType = (int)this._contentTypeActual;
                        itemHolderTakeItem.Target      = this.entity;
                        itemHolderTakeItem.Player      = LocalPlayer.Entity;
                        itemHolderTakeItem.Send();
                    }
                    else if (LocalPlayer.Inventory.AddItem(this.RockItemId, 1, false, false, (WeaponStatUpgrade.Types)(-2)))
                    {
                        this.RockRender[this._contentActual - 1].SetActive(false);
                        this._contentActual--;
                        if (this._contentActual == 0)
                        {
                            this._contentTypeActual = MultiHolder.ContentTypes.None;
                        }
                        this.RefreshMassAndDrag();
                    }
                }
            }
            else
            {
                this.TakeRockIcon.SetActive(false);
            }
            if (this._contentActual < this.RockRender.Length && LocalPlayer.Inventory.Owns(this.RockItemId) && flag && (this._content == MultiHolder.ContentTypes.Rock || (!LocalPlayer.Inventory.Logs.HasLogs && !LocalPlayer.AnimControl.carry)))
            {
                showAddIcon = MultiHolder.ContentTypes.Rock;
                if (TheForest.Utils.Input.GetButtonDown("Craft"))
                {
                    LocalPlayer.Inventory.RemoveItem(this.RockItemId, 1, false);
                    this._emitter.Play();
                    if (BoltNetwork.isRunning)
                    {
                        ItemHolderAddItem itemHolderAddItem = ItemHolderAddItem.Create(GlobalTargets.OnlyServer);
                        itemHolderAddItem.ContentType = 3;
                        itemHolderAddItem.Target      = this.entity;
                        itemHolderAddItem.Send();
                    }
                    else
                    {
                        this._contentTypeActual = MultiHolder.ContentTypes.Rock;
                        this._contentActual++;
                        this.RockRender[this._contentActual - 1].SetActive(true);
                        this.RefreshMassAndDrag();
                    }
                }
            }
        }
Example #3
0
        private void StickContentUpdate(ref MultiHolder.ContentTypes showAddIcon)
        {
            bool flag     = true;
            bool takeIcon = false;

            if ((!BoltNetwork.isRunning && this._contentActual > 0) || (BoltNetwork.isRunning && this._contentActual > 0 && flag))
            {
                takeIcon = true;
                if (TheForest.Utils.Input.GetButtonDown("Take"))
                {
                    if (BoltNetwork.isRunning)
                    {
                        ItemHolderTakeItem itemHolderTakeItem = ItemHolderTakeItem.Create(GlobalTargets.OnlyServer);
                        itemHolderTakeItem.ContentType = (int)this._contentTypeActual;
                        itemHolderTakeItem.Target      = base.entity;
                        itemHolderTakeItem.Player      = LocalPlayer.Entity;
                        itemHolderTakeItem.Send();
                    }
                    else if (LocalPlayer.Inventory.AddItem(this.StickItemId, 1, false, false, null) || LocalPlayer.Inventory.FakeDrop(this.StickItemId, null))
                    {
                        this.StickRender[this._contentActual - 1].SetActive(false);
                        this._contentActual--;
                        if (this._contentActual == 0)
                        {
                            takeIcon = false;
                            this._contentTypeActual = MultiHolder.ContentTypes.None;
                        }
                        this.RefreshMassAndDrag();
                    }
                }
            }
            if (this._contentActual < this.StickRender.Length && LocalPlayer.Inventory.Owns(this.StickItemId, true) && flag && (this._content == MultiHolder.ContentTypes.Stick || this._addingContentType == MultiHolder.ContentTypes.Stick))
            {
                showAddIcon = MultiHolder.ContentTypes.Stick;
                if (TheForest.Utils.Input.GetButtonDown("Craft"))
                {
                    LocalPlayer.Inventory.RemoveItem(this.StickItemId, 1, false, true);
                    Sfx.Play(SfxInfo.SfxTypes.AddLog, this.StickRender[this._contentActual].transform, true);
                    if (BoltNetwork.isRunning)
                    {
                        ItemHolderAddItem itemHolderAddItem = ItemHolderAddItem.Create(GlobalTargets.OnlyServer);
                        itemHolderAddItem.ContentType = 4;
                        itemHolderAddItem.Target      = base.entity;
                        itemHolderAddItem.Send();
                    }
                    else
                    {
                        this._contentTypeActual = MultiHolder.ContentTypes.Stick;
                        this._contentActual++;
                        this.StickRender[this._contentActual - 1].SetActive(true);
                        this.RefreshMassAndDrag();
                    }
                }
            }
            Scene.HudGui.HolderWidgets[0].Show(takeIcon, this._contentTypeActual == MultiHolder.ContentTypes.Stick && showAddIcon == MultiHolder.ContentTypes.Stick, this.TakeIcon.transform);
        }
Example #4
0
 private void BodyContentUpdate(ref MultiHolder.ContentTypes showAddIcon)
 {
     if (BoltNetwork.isRunning)
     {
         this.BodyContentUpdate_MP(ref showAddIcon);
         return;
     }
     if (this._contentActual > 0 && !LocalPlayer.AnimControl.heldBodyGo.activeSelf && !LocalPlayer.Inventory.Logs.HasLogs)
     {
         this.TakeIcon.SetActive(true);
         if (TheForest.Utils.Input.GetButtonDown("Take"))
         {
             LocalPlayer.AnimControl.setMutantPickUp(this.PickUpBody());
             this.RefreshMassAndDrag();
             this.TakeIcon.SetActive(false);
         }
     }
     if (this._contentActual < 3 && LocalPlayer.AnimControl.carry)
     {
         showAddIcon = MultiHolder.ContentTypes.Body;
         if (TheForest.Utils.Input.GetButtonDown("Craft"))
         {
             if (this._bodies == null)
             {
                 this._bodies = new GameObject[3];
             }
             if (this._bodyTypes == null || this._bodyTypes.Length < 3)
             {
                 this._bodyTypes = new EnemyType[3];
             }
             this._contentTypeActual = MultiHolder.ContentTypes.Body;
             this._emitter.Play();
             LocalPlayer.AnimControl.heldBodyGo.SetActive(false);
             GameObject     placedBodyGo   = LocalPlayer.AnimControl.placedBodyGo;
             dummyTypeSetup dummyTypeSetup = placedBodyGo.GetComponent <dummyTypeSetup>() ?? placedBodyGo.GetComponentInChildren <dummyTypeSetup>();
             placedBodyGo.SetActive(true);
             placedBodyGo.SendMessage("dropFromCarry", SendMessageOptions.DontRequireReceiver);
             MultiHolder.GetTriggerChild(placedBodyGo.transform).gameObject.SetActive(false);
             placedBodyGo.transform.position = this.MutantBodySlots[this._contentActual].transform.position;
             placedBodyGo.transform.rotation = this.MutantBodySlots[this._contentActual].transform.rotation;
             placedBodyGo.transform.parent   = base.transform.root;
             dummyAnimatorControl dummyAnimatorControl = placedBodyGo.GetComponent <dummyAnimatorControl>() ?? placedBodyGo.GetComponentInChildren <dummyAnimatorControl>();
             dummyAnimatorControl.enabled         = false;
             this._bodyTypes[this._contentActual] = dummyTypeSetup._type;
             this._bodies[this._contentActual]    = placedBodyGo;
             this._contentActual++;
             this.RefreshMassAndDrag();
             Scene.HudGui.DropButton.SetActive(false);
             LocalPlayer.Animator.SetBoolReflected("bodyHeld", false);
             LocalPlayer.AnimControl.carry        = false;
             LocalPlayer.AnimControl.placedBodyGo = null;
             LocalPlayer.Inventory.ShowAllEquiped();
         }
     }
 }
Example #5
0
 public void TakeItemMP(BoltEntity targetPlayer, MultiHolder.ContentTypes type)
 {
     if (type != this._contentTypeActual)
     {
         return;
     }
     if (this._contentActual > 0)
     {
         if (BoltNetwork.isServer)
         {
             PlayerAddItem playerAddItem;
             if (targetPlayer.isOwner)
             {
                 playerAddItem = PlayerAddItem.Create(GlobalTargets.OnlySelf);
             }
             else
             {
                 playerAddItem = PlayerAddItem.Create(targetPlayer.source);
             }
             if (this._contentTypeActual == MultiHolder.ContentTypes.Rock)
             {
                 playerAddItem.ItemId = this.RockItemId;
             }
             else if (this._contentTypeActual == MultiHolder.ContentTypes.Stick)
             {
                 playerAddItem.ItemId = this.StickItemId;
             }
             else
             {
                 playerAddItem.ItemId = this.LogItemId;
             }
             playerAddItem.Send();
         }
         if (base.entity.isOwner)
         {
             this._contentActual = Mathf.Max(this._contentActual - 1, 0);
             if (this._contentActual == 0)
             {
                 this._contentTypeActual = MultiHolder.ContentTypes.None;
             }
             this.RefreshMassAndDrag();
         }
         else
         {
             ItemHolderTakeItem itemHolderTakeItem = ItemHolderTakeItem.Create(base.entity.source);
             itemHolderTakeItem.Target      = base.entity;
             itemHolderTakeItem.ContentType = (int)this._contentTypeActual;
             itemHolderTakeItem.Send();
         }
         return;
     }
 }
Example #6
0
        private void BodyContentUpdate_MP(ref MultiHolder.ContentTypes showAddIcon)
        {
            bool takeIcon = false;

            if ((base.state.Body0 || base.state.Body1 || base.state.Body2) && !LocalPlayer.Inventory.Logs.HasLogs)
            {
                takeIcon = true;
                if (TheForest.Utils.Input.GetButtonDown("Take"))
                {
                    TakeBody takeBody = TakeBody.Create(GlobalTargets.OnlyServer);
                    takeBody.Sled = base.entity;
                    if (base.state.Body2)
                    {
                        takeBody.Body = base.state.Body2;
                    }
                    else if (base.state.Body1)
                    {
                        takeBody.Body = base.state.Body1;
                    }
                    else if (base.state.Body0)
                    {
                        takeBody.Body = base.state.Body0;
                    }
                    takeBody.Send();
                    Debug.Log("TakeBody:Send");
                }
            }
            if (LocalPlayer.AnimControl.placedBodyGo && LocalPlayer.AnimControl.placedBodyGo.GetComponentInChildren <BoltEntity>() && (!base.state.Body0 || !base.state.Body1 || !base.state.Body2))
            {
                showAddIcon = MultiHolder.ContentTypes.Body;
                if (TheForest.Utils.Input.GetButtonDown("Craft"))
                {
                    GameObject placedBodyGo = LocalPlayer.AnimControl.placedBodyGo;
                    AddBody    addBody      = AddBody.Create(GlobalTargets.OnlyServer);
                    addBody.Body = placedBodyGo.GetComponentInChildren <BoltEntity>();
                    addBody.Sled = base.entity;
                    addBody.Send();
                    LocalPlayer.AnimControl.heldBodyGo.SetActive(false);
                    LocalPlayer.Animator.SetBoolReflected("bodyHeld", false);
                    LocalPlayer.AnimControl.carry        = false;
                    LocalPlayer.AnimControl.placedBodyGo = null;
                    LocalPlayer.Inventory.ShowAllEquiped(true);
                    Scene.HudGui.DropButton.SetActive(false);
                    placedBodyGo.SetActive(true);
                    placedBodyGo.SendMessage("dropFromCarry", false, SendMessageOptions.DontRequireReceiver);
                }
            }
            Scene.HudGui.HolderWidgets[6].Show(takeIcon, this._contentTypeActual == MultiHolder.ContentTypes.Body && showAddIcon == MultiHolder.ContentTypes.Body, this.TakeIcon.transform);
        }
Example #7
0
 public void AddItemMP(MultiHolder.ContentTypes type, BoltConnection source)
 {
     if ((this._contentTypeActual == MultiHolder.ContentTypes.Log || this._contentTypeActual == MultiHolder.ContentTypes.None) && type == MultiHolder.ContentTypes.Log)
     {
         if (type == MultiHolder.ContentTypes.None)
         {
             this._contentActual = 0;
         }
         if (base.entity.isOwner)
         {
             this._contentTypeActual = MultiHolder.ContentTypes.Log;
             if (this._contentActual < this.LogRender.Length)
             {
                 this._contentActual = Mathf.Min(this._contentActual + 1, this.LogRender.Length);
             }
             else
             {
                 PlayerAddItem playerAddItem = PlayerAddItem.Create(source);
                 playerAddItem.ItemId = this.LogItemId;
                 playerAddItem.Send();
             }
             this.RefreshMassAndDrag();
         }
         else
         {
             ItemHolderAddItem itemHolderAddItem = ItemHolderAddItem.Create(base.entity.source);
             itemHolderAddItem.Target      = base.entity;
             itemHolderAddItem.ContentType = 1;
             itemHolderAddItem.Send();
         }
     }
     if ((this._contentTypeActual == MultiHolder.ContentTypes.Rock || this._contentTypeActual == MultiHolder.ContentTypes.None) && type == MultiHolder.ContentTypes.Rock)
     {
         if (type == MultiHolder.ContentTypes.None)
         {
             this._contentActual = 0;
         }
         if (base.entity.isOwner)
         {
             this._contentTypeActual = MultiHolder.ContentTypes.Rock;
             if (this._contentActual < this.RockRender.Length)
             {
                 this._contentActual = Mathf.Min(this._contentActual + 1, this.RockRender.Length);
             }
             else
             {
                 PlayerAddItem playerAddItem2 = PlayerAddItem.Create(source);
                 playerAddItem2.ItemId = this.RockItemId;
                 playerAddItem2.Send();
             }
             this.RefreshMassAndDrag();
         }
         else
         {
             ItemHolderAddItem itemHolderAddItem2 = ItemHolderAddItem.Create(base.entity.source);
             itemHolderAddItem2.ContentType = 3;
             itemHolderAddItem2.Target      = base.entity;
             itemHolderAddItem2.Send();
         }
     }
     if ((this._contentTypeActual == MultiHolder.ContentTypes.Stick || this._contentTypeActual == MultiHolder.ContentTypes.None) && type == MultiHolder.ContentTypes.Stick)
     {
         if (type == MultiHolder.ContentTypes.None)
         {
             this._contentActual = 0;
         }
         if (base.entity.isOwner)
         {
             this._contentTypeActual = MultiHolder.ContentTypes.Stick;
             if (this._contentActual < this.StickRender.Length)
             {
                 this._contentActual = Mathf.Min(this._contentActual + 1, this.StickRender.Length);
             }
             else
             {
                 PlayerAddItem playerAddItem3 = PlayerAddItem.Create(source);
                 playerAddItem3.ItemId = this.StickItemId;
                 playerAddItem3.Send();
             }
             this.RefreshMassAndDrag();
         }
         else
         {
             ItemHolderAddItem itemHolderAddItem3 = ItemHolderAddItem.Create(base.entity.source);
             itemHolderAddItem3.ContentType = 4;
             itemHolderAddItem3.Target      = base.entity;
             itemHolderAddItem3.Send();
         }
     }
 }
Example #8
0
        private void Update()
        {
            if ((BoltNetwork.isRunning && this.MP_CanInterract()) || (!BoltNetwork.isRunning && !LocalPlayer.FpCharacter.PushingSled))
            {
                MultiHolder.ContentTypes contentTypes = MultiHolder.ContentTypes.None;
                if (this._contentTypeActual != MultiHolder.ContentTypes.None)
                {
                    this._addingContentType = this._contentTypeActual;
                }
                if (this._addingContentType == MultiHolder.ContentTypes.Log)
                {
                    this.LogContentUpdate(ref contentTypes);
                }
                else if (this._addingContentType == MultiHolder.ContentTypes.Body)
                {
                    if (!BoltNetwork.isRunning)
                    {
                        this.BodyContentUpdate(ref contentTypes);
                    }
                }
                else if (this._addingContentType == MultiHolder.ContentTypes.Rock)
                {
                    this.RockContentUpdate(ref contentTypes);
                }
                else if (this._addingContentType == MultiHolder.ContentTypes.Stick)
                {
                    this.StickContentUpdate(ref contentTypes);
                }
                if (this._contentTypeActual == MultiHolder.ContentTypes.None)
                {
                    bool flag = this.CanToggleNextAddItem();
                    if (flag && TheForest.Utils.Input.GetButtonDown("Rotate"))
                    {
                        LocalPlayer.Sfx.PlayWhoosh();
                        this.ToggleNextAddContent();
                    }
                    switch (this._addingContentType)
                    {
                    case MultiHolder.ContentTypes.None:
                        Scene.HudGui.MultiSledAddWidget.Shutdown();
                        break;

                    case MultiHolder.ContentTypes.Log:
                        Scene.HudGui.MultiSledAddWidget.ShowList(this.LogItemId, this.TakeIcon.transform, SideIcons.Craft);
                        break;

                    case MultiHolder.ContentTypes.Body:
                        Scene.HudGui.MultiSledAddWidget.ShowList(-1, this.TakeIcon.transform, SideIcons.Craft);
                        break;

                    case MultiHolder.ContentTypes.Rock:
                        Scene.HudGui.MultiSledAddWidget.ShowList(this.RockItemId, this.TakeIcon.transform, SideIcons.Craft);
                        break;

                    case MultiHolder.ContentTypes.Stick:
                        Scene.HudGui.MultiSledAddWidget.ShowList(this.StickItemId, this.TakeIcon.transform, SideIcons.Craft);
                        break;
                    }
                }
                else
                {
                    Scene.HudGui.MultiSledAddWidget.Shutdown();
                }
            }
            else
            {
                Scene.HudGui.HolderWidgets[0].ShutDown();
                Scene.HudGui.HolderWidgets[1].ShutDown();
                Scene.HudGui.HolderWidgets[2].ShutDown();
                Scene.HudGui.HolderWidgets[6].ShutDown();
                Scene.HudGui.MultiSledAddWidget.Shutdown();
            }
        }
Example #9
0
 private void Update()
 {
     if (BoltNetwork.isRunning)
     {
         if (this.MP_CanInterract())
         {
             MultiHolder.ContentTypes contentTypes = MultiHolder.ContentTypes.None;
             if (this._contentTypeActual == MultiHolder.ContentTypes.Log || this._contentTypeActual == MultiHolder.ContentTypes.None)
             {
                 this.LogContentUpdate(ref contentTypes);
             }
             if (this._contentTypeActual == MultiHolder.ContentTypes.Body || this._contentTypeActual == MultiHolder.ContentTypes.None)
             {
             }
             if (this._contentTypeActual == MultiHolder.ContentTypes.Rock || this._contentTypeActual == MultiHolder.ContentTypes.None)
             {
                 this.RockContentUpdate(ref contentTypes);
             }
             this.AddIcon.SetActive(contentTypes == MultiHolder.ContentTypes.Log || contentTypes == MultiHolder.ContentTypes.Body);
             this.AddRockIcon.SetActive(contentTypes == MultiHolder.ContentTypes.Rock);
         }
         else
         {
             if (this.AddIcon.activeSelf)
             {
                 this.AddIcon.SetActive(false);
             }
             if (this.TakeIcon.activeSelf)
             {
                 this.TakeIcon.SetActive(false);
             }
             if (this.AddRockIcon.activeSelf)
             {
                 this.AddRockIcon.SetActive(false);
             }
             if (this.TakeRockIcon.activeSelf)
             {
                 this.TakeRockIcon.SetActive(false);
             }
         }
     }
     else if (!LocalPlayer.FpCharacter.PushingSled)
     {
         MultiHolder.ContentTypes contentTypes2 = MultiHolder.ContentTypes.None;
         if (this._contentTypeActual == MultiHolder.ContentTypes.Log || this._contentTypeActual == MultiHolder.ContentTypes.None)
         {
             this.LogContentUpdate(ref contentTypes2);
         }
         if (this._contentTypeActual == MultiHolder.ContentTypes.Body || this._contentTypeActual == MultiHolder.ContentTypes.None)
         {
             this.BodyContentUpdate(ref contentTypes2);
         }
         if (this._contentTypeActual == MultiHolder.ContentTypes.Rock || this._contentTypeActual == MultiHolder.ContentTypes.None)
         {
             this.RockContentUpdate(ref contentTypes2);
         }
         this.AddIcon.SetActive(contentTypes2 == MultiHolder.ContentTypes.Log || contentTypes2 == MultiHolder.ContentTypes.Body);
         this.AddRockIcon.SetActive(contentTypes2 == MultiHolder.ContentTypes.Rock);
     }
     else
     {
         if (this.AddIcon.activeSelf)
         {
             this.AddIcon.SetActive(false);
         }
         if (this.TakeIcon.activeSelf)
         {
             this.TakeIcon.SetActive(false);
         }
         if (this.AddRockIcon.activeSelf)
         {
             this.AddRockIcon.SetActive(false);
         }
         if (this.TakeRockIcon.activeSelf)
         {
             this.TakeRockIcon.SetActive(false);
         }
     }
 }