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(); } } } }
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(); } } } }
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); }
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(); } } }
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; } }
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); }
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(); } } }
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(); } }
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); } } }