| using System; |
| using System; |
| using System.Collections.Generic; |
| using System.Collections.Generic; |
| using System.Runtime.CompilerServices; |
| using System.Runtime.CompilerServices; |
| using UnityEngine; |
| using UnityEngine; |
| |
| |
| public class Fermenter : MonoBehaviour, Hoverable, Interactable |
| public class Fermenter : MonoBehaviour, Hoverable, Interactable |
| { |
| { |
| private void Awake() |
| private void Awake() |
| { |
| { |
| this.m_nview = base.GetComponent<ZNetView>(); |
| this.m_nview = base.GetComponent<ZNetView>(); |
| this.m_fermentingObject.SetActive(false); |
| this.m_fermentingObject.SetActive(false); |
| this.m_readyObject.SetActive(false); |
| this.m_readyObject.SetActive(false); |
| this.m_topObject.SetActive(true); |
| this.m_topObject.SetActive(true); |
| if (this.m_nview == null || this.m_nview.GetZDO() == null) |
| if (this.m_nview == null || this.m_nview.GetZDO() == null) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| . | this.m_nview.Register<string>("AddItem", new Action<long, string>(this.RPC_AddItem)); |
| this.m_nview.Register<string>("RPC_AddItem", new Action<long, string>(this.RPC_AddItem)); |
| this.m_nview.Register("Tap", new Action<long>(this.RPC_Tap)); |
| this.m_nview.Register("RPC_Tap", new Action<long>(this.RPC_Tap)); |
| if (this.GetStatus() == Fermenter.Status.Fermenting) |
| if (this.GetStatus() == Fermenter.Status.Fermenting) |
| { |
| { |
| base.InvokeRepeating("SlowUpdate", 2f, 2f); |
| base.InvokeRepeating("SlowUpdate", 2f, 2f); |
| } |
| } |
| else |
| else |
| { |
| { |
| base.InvokeRepeating("SlowUpdate", 0f, 2f); |
| base.InvokeRepeating("SlowUpdate", 0f, 2f); |
| } |
| } |
| WearNTear component = base.GetComponent<WearNTear>(); |
| WearNTear component = base.GetComponent<WearNTear>(); |
| if (component) |
| if (component) |
| { |
| { |
| WearNTear wearNTear = component; |
| WearNTear wearNTear = component; |
| wearNTear.m_onDestroyed = (Action)Delegate.Combine(wearNTear.m_onDestroyed, new Action(this.OnDestroyed)); |
| wearNTear.m_onDestroyed = (Action)Delegate.Combine(wearNTear.m_onDestroyed, new Action(this.OnDestroyed)); |
| } |
| } |
| } |
| } |
| |
| |
| private void DropAllItems() |
| private void DropAllItems() |
| { |
| { |
| Fermenter.Status status = this.GetStatus(); |
| Fermenter.Status status = this.GetStatus(); |
| string content = this.GetContent(); |
| string content = this.GetContent(); |
| if (!string.IsNullOrEmpty(content)) |
| if (!string.IsNullOrEmpty(content)) |
| { |
| { |
| if (status == Fermenter.Status.Ready) |
| if (status == Fermenter.Status.Ready) |
| { |
| { |
| Fermenter.ItemConversion itemConversion = this.GetItemConversion(content); |
| Fermenter.ItemConversion itemConversion = this.GetItemConversion(content); |
| if (itemConversion != null) |
| if (itemConversion != null) |
| { |
| { |
| for (int i = 0; i < itemConversion.m_producedItems; i++) |
| for (int i = 0; i < itemConversion.m_producedItems; i++) |
| { |
| { |
| this.<DropAllItems>g__drop|2_0(itemConversion.m_to); |
| this.<DropAllItems>g__drop|2_0(itemConversion.m_to); |
| } |
| } |
| } |
| } |
| } |
| } |
| else |
| else |
| { |
| { |
| GameObject prefab = ZNetScene.instance.GetPrefab(content); |
| GameObject prefab = ZNetScene.instance.GetPrefab(content); |
| if (prefab != null) |
| if (prefab != null) |
| { |
| { |
| ItemDrop component = prefab.GetComponent<ItemDrop>(); |
| ItemDrop component = prefab.GetComponent<ItemDrop>(); |
| if (component) |
| if (component) |
| { |
| { |
| this.<DropAllItems>g__drop|2_0(component); |
| this.<DropAllItems>g__drop|2_0(component); |
| } |
| } |
| } |
| } |
| } |
| } |
| this.m_nview.GetZDO().Set(ZDOVars.s_content, ""); |
| this.m_nview.GetZDO().Set(ZDOVars.s_content, ""); |
| this.m_nview.GetZDO().Set(ZDOVars.s_startTime, 0, false); |
| this.m_nview.GetZDO().Set(ZDOVars.s_startTime, 0, false); |
| } |
| } |
| } |
| } |
| |
| |
| private void OnDestroyed() |
| private void OnDestroyed() |
| { |
| { |
| this.m_nview.IsOwner(); |
| this.m_nview.IsOwner(); |
| } |
| } |
| |
| |
| public string GetHoverName() |
| public string GetHoverName() |
| { |
| { |
| return this.m_name; |
| return this.m_name; |
| } |
| } |
| |
| |
| public string GetHoverText() |
| public string GetHoverText() |
| { |
| { |
| if (!PrivateArea.CheckAccess(base.transform.position, 0f, false, false)) |
| if (!PrivateArea.CheckAccess(base.transform.position, 0f, false, false)) |
| { |
| { |
| return Localization.instance.Localize(this.m_name + "\n$piece_noaccess"); |
| return Localization.instance.Localize(this.m_name + "\n$piece_noaccess"); |
| } |
| } |
| switch (this.GetStatus()) |
| switch (this.GetStatus()) |
| { |
| { |
| case Fermenter.Status.Empty: |
| case Fermenter.Status.Empty: |
| { |
| { |
| string text = "$piece_container_empty"; |
| string text = "$piece_container_empty"; |
| if (!this.m_hasRoof) |
| if (!this.m_hasRoof) |
| { |
| { |
| text += ", $piece_fermenter_needroof"; |
| text += ", $piece_fermenter_needroof"; |
| } |
| } |
| else if (this.m_exposed) |
| else if (this.m_exposed) |
| { |
| { |
| text += ", $piece_fermenter_exposed"; |
| text += ", $piece_fermenter_exposed"; |
| } |
| } |
| return Localization.instance.Localize(this.m_name + " ( " + text + " )\n[<color=yellow><b>$KEY_Use</b></color>] $piece_fermenter_add"); |
| return Localization.instance.Localize(this.m_name + " ( " + text + " )\n[<color=yellow><b>$KEY_Use</b></color>] $piece_fermenter_add"); |
| } |
| } |
| case Fermenter.Status.Fermenting: |
| case Fermenter.Status.Fermenting: |
| { |
| { |
| string contentName = this.GetContentName(); |
| string contentName = this.GetContentName(); |
| if (!this.m_hasRoof) |
| if (!this.m_hasRoof) |
| { |
| { |
| return Localization.instance.Localize(this.m_name + " ( " + contentName + ", $piece_fermenter_needroof )"); |
| return Localization.instance.Localize(this.m_name + " ( " + contentName + ", $piece_fermenter_needroof )"); |
| } |
| } |
| if (this.m_exposed) |
| if (this.m_exposed) |
| { |
| { |
| return Localization.instance.Localize(this.m_name + " ( " + contentName + ", $piece_fermenter_exposed )"); |
| return Localization.instance.Localize(this.m_name + " ( " + contentName + ", $piece_fermenter_exposed )"); |
| } |
| } |
| return Localization.instance.Localize(this.m_name + " ( " + contentName + ", $piece_fermenter_fermenting )"); |
| return Localization.instance.Localize(this.m_name + " ( " + contentName + ", $piece_fermenter_fermenting )"); |
| } |
| } |
| case Fermenter.Status.Ready: |
| case Fermenter.Status.Ready: |
| { |
| { |
| string contentName2 = this.GetContentName(); |
| string contentName2 = this.GetContentName(); |
| return Localization.instance.Localize(this.m_name + " ( " + contentName2 + ", $piece_fermenter_ready )\n[<color=yellow><b>$KEY_Use</b></color>] $piece_fermenter_tap"); |
| return Localization.instance.Localize(this.m_name + " ( " + contentName2 + ", $piece_fermenter_ready )\n[<color=yellow><b>$KEY_Use</b></color>] $piece_fermenter_tap"); |
| } |
| } |
| } |
| } |
| return this.m_name; |
| return this.m_name; |
| } |
| } |
| |
| |
| public bool Interact(Humanoid user, bool hold, bool alt) |
| public bool Interact(Humanoid user, bool hold, bool alt) |
| { |
| { |
| if (hold) |
| if (hold) |
| { |
| { |
| return false; |
| return false; |
| } |
| } |
| this.UpdateCover(0f, true); |
| this.UpdateCover(0f, true); |
| if (!PrivateArea.CheckAccess(base.transform.position, 0f, true, false)) |
| if (!PrivateArea.CheckAccess(base.transform.position, 0f, true, false)) |
| { |
| { |
| return true; |
| return true; |
| } |
| } |
| Fermenter.Status status = this.GetStatus(); |
| Fermenter.Status status = this.GetStatus(); |
| if (status == Fermenter.Status.Empty) |
| if (status == Fermenter.Status.Empty) |
| { |
| { |
| if (!this.m_hasRoof) |
| if (!this.m_hasRoof) |
| { |
| { |
| user.Message(MessageHud.MessageType.Center, "$piece_fermenter_needroof", 0, null); |
| user.Message(MessageHud.MessageType.Center, "$piece_fermenter_needroof", 0, null); |
| return false; |
| return false; |
| } |
| } |
| if (this.m_exposed) |
| if (this.m_exposed) |
| { |
| { |
| user.Message(MessageHud.MessageType.Center, "$piece_fermenter_exposed", 0, null); |
| user.Message(MessageHud.MessageType.Center, "$piece_fermenter_exposed", 0, null); |
| return false; |
| return false; |
| } |
| } |
| ItemDrop.ItemData itemData = this.FindCookableItem(user.GetInventory()); |
| ItemDrop.ItemData itemData = this.FindCookableItem(user.GetInventory()); |
| if (itemData == null) |
| if (itemData == null) |
| { |
| { |
| user.Message(MessageHud.MessageType.Center, "$msg_noprocessableitems", 0, null); |
| user.Message(MessageHud.MessageType.Center, "$msg_noprocessableitems", 0, null); |
| return false; |
| return false; |
| } |
| } |
| this.AddItem(user, itemData); |
| this.AddItem(user, itemData); |
| return true; |
| return true; |
| } |
| } |
| else |
| else |
| { |
| { |
| if (status == Fermenter.Status.Ready) |
| if (status == Fermenter.Status.Ready) |
| { |
| { |
| . | this.m_nview.InvokeRPC("Tap", Array.Empty<object>()); |
| this.m_nview.InvokeRPC("RPC_Tap", Array.Empty<object>()); |
| return true; |
| return true; |
| } |
| } |
| return false; |
| return false; |
| } |
| } |
| } |
| } |
| |
| |
| public bool UseItem(Humanoid user, ItemDrop.ItemData item) |
| public bool UseItem(Humanoid user, ItemDrop.ItemData item) |
| { |
| { |
| return PrivateArea.CheckAccess(base.transform.position, 0f, true, false) && this.AddItem(user, item); |
| return PrivateArea.CheckAccess(base.transform.position, 0f, true, false) && this.AddItem(user, item); |
| } |
| } |
| |
| |
| private void SlowUpdate() |
| private void SlowUpdate() |
| { |
| { |
| this.UpdateCover(2f, false); |
| this.UpdateCover(2f, false); |
| switch (this.GetStatus()) |
| switch (this.GetStatus()) |
| { |
| { |
| case Fermenter.Status.Empty: |
| case Fermenter.Status.Empty: |
| this.m_fermentingObject.SetActive(false); |
| this.m_fermentingObject.SetActive(false); |
| this.m_readyObject.SetActive(false); |
| this.m_readyObject.SetActive(false); |
| this.m_topObject.SetActive(false); |
| this.m_topObject.SetActive(false); |
| return; |
| return; |
| case Fermenter.Status.Fermenting: |
| case Fermenter.Status.Fermenting: |
| this.m_readyObject.SetActive(false); |
| this.m_readyObject.SetActive(false); |
| this.m_topObject.SetActive(true); |
| this.m_topObject.SetActive(true); |
| this.m_fermentingObject.SetActive(!this.m_exposed && this.m_hasRoof); |
| this.m_fermentingObject.SetActive(!this.m_exposed && this.m_hasRoof); |
| return; |
| return; |
| case Fermenter.Status.Exposed: |
| case Fermenter.Status.Exposed: |
| break; |
| break; |
| case Fermenter.Status.Ready: |
| case Fermenter.Status.Ready: |
| this.m_fermentingObject.SetActive(false); |
| this.m_fermentingObject.SetActive(false); |
| this.m_readyObject.SetActive(true); |
| this.m_readyObject.SetActive(true); |
| this.m_topObject.SetActive(true); |
| this.m_topObject.SetActive(true); |
| break; |
| break; |
| default: |
| default: |
| return; |
| return; |
| } |
| } |
| } |
| } |
| |
| |
| private Fermenter.Status GetStatus() |
| private Fermenter.Status GetStatus() |
| { |
| { |
| if (string.IsNullOrEmpty(this.GetContent())) |
| if (string.IsNullOrEmpty(this.GetContent())) |
| { |
| { |
| return Fermenter.Status.Empty; |
| return Fermenter.Status.Empty; |
| } |
| } |
| if (this.GetFermentationTime() > (double)this.m_fermentationDuration) |
| if (this.GetFermentationTime() > (double)this.m_fermentationDuration) |
| { |
| { |
| return Fermenter.Status.Ready; |
| return Fermenter.Status.Ready; |
| } |
| } |
| return Fermenter.Status.Fermenting; |
| return Fermenter.Status.Fermenting; |
| } |
| } |
| |
| |
| private bool AddItem(Humanoid user, ItemDrop.ItemData item) |
| private bool AddItem(Humanoid user, ItemDrop.ItemData item) |
| { |
| { |
| if (this.GetStatus() != Fermenter.Status.Empty) |
| if (this.GetStatus() != Fermenter.Status.Empty) |
| { |
| { |
| return false; |
| return false; |
| } |
| } |
| if (!this.IsItemAllowed(item)) |
| if (!this.IsItemAllowed(item)) |
| { |
| { |
| return false; |
| return false; |
| } |
| } |
| if (!user.GetInventory().RemoveOneItem(item)) |
| if (!user.GetInventory().RemoveOneItem(item)) |
| { |
| { |
| return false; |
| return false; |
| } |
| } |
| . | this.m_nview.InvokeRPC("AddItem", new object[] { item.m_dropPrefab.name }); |
| this.m_nview.InvokeRPC("RPC_AddItem", new object[] { item.m_dropPrefab.name }); |
| return true; |
| return true; |
| } |
| } |
| |
| |
| private void RPC_AddItem(long sender, string name) |
| private void RPC_AddItem(long sender, string name) |
| { |
| { |
| if (!this.m_nview.IsOwner()) |
| if (!this.m_nview.IsOwner()) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| if (this.GetStatus() != Fermenter.Status.Empty) |
| if (this.GetStatus() != Fermenter.Status.Empty) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| if (!this.IsItemAllowed(name)) |
| if (!this.IsItemAllowed(name)) |
| { |
| { |
| ZLog.DevLog("Item not allowed"); |
| ZLog.DevLog("Item not allowed"); |
| return; |
| return; |
| } |
| } |
| this.m_addedEffects.Create(base.transform.position, base.transform.rotation, null, 1f, -1); |
| this.m_addedEffects.Create(base.transform.position, base.transform.rotation, null, 1f, -1); |
| this.m_nview.GetZDO().Set(ZDOVars.s_content, name); |
| this.m_nview.GetZDO().Set(ZDOVars.s_content, name); |
| this.m_nview.GetZDO().Set(ZDOVars.s_startTime, ZNet.instance.GetTime().Ticks); |
| this.m_nview.GetZDO().Set(ZDOVars.s_startTime, ZNet.instance.GetTime().Ticks); |
| } |
| } |
| |
| |
| private void RPC_Tap(long sender) |
| private void RPC_Tap(long sender) |
| { |
| { |
| if (!this.m_nview.IsOwner()) |
| if (!this.m_nview.IsOwner()) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| if (this.GetStatus() != Fermenter.Status.Ready) |
| if (this.GetStatus() != Fermenter.Status.Ready) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| this.m_delayedTapItem = this.GetContent(); |
| this.m_delayedTapItem = this.GetContent(); |
| base.Invoke("DelayedTap", this.m_tapDelay); |
| base.Invoke("DelayedTap", this.m_tapDelay); |
| this.m_tapEffects.Create(base.transform.position, base.transform.rotation, null, 1f, -1); |
| this.m_tapEffects.Create(base.transform.position, base.transform.rotation, null, 1f, -1); |
| this.m_nview.GetZDO().Set(ZDOVars.s_content, ""); |
| this.m_nview.GetZDO().Set(ZDOVars.s_content, ""); |
| this.m_nview.GetZDO().Set(ZDOVars.s_startTime, 0, false); |
| this.m_nview.GetZDO().Set(ZDOVars.s_startTime, 0, false); |
| } |
| } |
| |
| |
| private void DelayedTap() |
| private void DelayedTap() |
| { |
| { |
| this.m_spawnEffects.Create(this.m_outputPoint.transform.position, Quaternion.identity, null, 1f, -1); |
| this.m_spawnEffects.Create(this.m_outputPoint.transform.position, Quaternion.identity, null, 1f, -1); |
| Fermenter.ItemConversion itemConversion = this.GetItemConversion(this.m_delayedTapItem); |
| Fermenter.ItemConversion itemConversion = this.GetItemConversion(this.m_delayedTapItem); |
| if (itemConversion != null) |
| if (itemConversion != null) |
| { |
| { |
| float num = 0.3f; |
| float num = 0.3f; |
| for (int i = 0; i < itemConversion.m_producedItems; i++) |
| for (int i = 0; i < itemConversion.m_producedItems; i++) |
| { |
| { |
| Vector3 vector = this.m_outputPoint.position + Vector3.up * num; |
| Vector3 vector = this.m_outputPoint.position + Vector3.up * num; |
| ItemDrop.OnCreateNew(UnityEngine.Object.Instantiate<ItemDrop>(itemConversion.m_to, vector, Quaternion.identity)); |
| ItemDrop.OnCreateNew(UnityEngine.Object.Instantiate<ItemDrop>(itemConversion.m_to, vector, Quaternion.identity)); |
| } |
| } |
| } |
| } |
| } |
| } |
| |
| |
| private void ResetFermentationTimer() |
| private void ResetFermentationTimer() |
| { |
| { |
| if (this.GetStatus() == Fermenter.Status.Fermenting) |
| if (this.GetStatus() == Fermenter.Status.Fermenting) |
| { |
| { |
| this.m_nview.GetZDO().Set(ZDOVars.s_startTime, ZNet.instance.GetTime().Ticks); |
| this.m_nview.GetZDO().Set(ZDOVars.s_startTime, ZNet.instance.GetTime().Ticks); |
| } |
| } |
| } |
| } |
| |
| |
| private double GetFermentationTime() |
| private double GetFermentationTime() |
| { |
| { |
| DateTime dateTime = new DateTime(this.m_nview.GetZDO().GetLong(ZDOVars.s_startTime, 0L)); |
| DateTime dateTime = new DateTime(this.m_nview.GetZDO().GetLong(ZDOVars.s_startTime, 0L)); |
| if (dateTime.Ticks == 0L) |
| if (dateTime.Ticks == 0L) |
| { |
| { |
| return -1.0; |
| return -1.0; |
| } |
| } |
| return (ZNet.instance.GetTime() - dateTime).TotalSeconds; |
| return (ZNet.instance.GetTime() - dateTime).TotalSeconds; |
| } |
| } |
| |
| |
| private string GetContentName() |
| private string GetContentName() |
| { |
| { |
| string content = this.GetContent(); |
| string content = this.GetContent(); |
| if (string.IsNullOrEmpty(content)) |
| if (string.IsNullOrEmpty(content)) |
| { |
| { |
| return ""; |
| return ""; |
| } |
| } |
| Fermenter.ItemConversion itemConversion = this.GetItemConversion(content); |
| Fermenter.ItemConversion itemConversion = this.GetItemConversion(content); |
| if (itemConversion == null) |
| if (itemConversion == null) |
| { |
| { |
| return "Invalid"; |
| return "Invalid"; |
| } |
| } |
| return itemConversion.m_from.m_itemData.m_shared.m_name; |
| return itemConversion.m_from.m_itemData.m_shared.m_name; |
| } |
| } |
| |
| |
| private string GetContent() |
| private string GetContent() |
| { |
| { |
| if (this.m_nview.GetZDO() == null) |
| if (this.m_nview.GetZDO() == null) |
| { |
| { |
| return ""; |
| return ""; |
| } |
| } |
| return this.m_nview.GetZDO().GetString(ZDOVars.s_content, ""); |
| return this.m_nview.GetZDO().GetString(ZDOVars.s_content, ""); |
| } |
| } |
| |
| |
| private void UpdateCover(float dt, bool forceUpdate = false) |
| private void UpdateCover(float dt, bool forceUpdate = false) |
| { |
| { |
| this.m_updateCoverTimer -= dt; |
| this.m_updateCoverTimer -= dt; |
| if (this.m_updateCoverTimer <= 0f || forceUpdate) |
| if (this.m_updateCoverTimer <= 0f || forceUpdate) |
| { |
| { |
| this.m_updateCoverTimer = 10f; |
| this.m_updateCoverTimer = 10f; |
| float num; |
| float num; |
| bool flag; |
| bool flag; |
| Cover.GetCoverForPoint(this.m_roofCheckPoint.position, out num, out flag, 0.5f); |
| Cover.GetCoverForPoint(this.m_roofCheckPoint.position, out num, out flag, 0.5f); |
| this.m_exposed = num < 0.7f; |
| this.m_exposed = num < 0.7f; |
| this.m_hasRoof = flag; |
| this.m_hasRoof = flag; |
| if ((this.m_exposed || !this.m_hasRoof) && this.m_nview.IsOwner()) |
| if ((this.m_exposed || !this.m_hasRoof) && this.m_nview.IsOwner()) |
| { |
| { |
| this.ResetFermentationTimer(); |
| this.ResetFermentationTimer(); |
| } |
| } |
| } |
| } |
| } |
| } |
| |
| |
| private bool IsItemAllowed(ItemDrop.ItemData item) |
| private bool IsItemAllowed(ItemDrop.ItemData item) |
| { |
| { |
| return this.IsItemAllowed(item.m_dropPrefab.name); |
| return this.IsItemAllowed(item.m_dropPrefab.name); |
| } |
| } |
| |
| |
| private bool IsItemAllowed(string itemName) |
| private bool IsItemAllowed(string itemName) |
| { |
| { |
| using (List<Fermenter.ItemConversion>.Enumerator enumerator = this.m_conversion.GetEnumerator()) |
| using (List<Fermenter.ItemConversion>.Enumerator enumerator = this.m_conversion.GetEnumerator()) |
| { |
| { |
| while (enumerator.MoveNext()) |
| while (enumerator.MoveNext()) |
| { |
| { |
| if (enumerator.Current.m_from.gameObject.name == itemName) |
| if (enumerator.Current.m_from.gameObject.name == itemName) |
| { |
| { |
| return true; |
| return true; |
| } |
| } |
| } |
| } |
| } |
| } |
| return false; |
| return false; |
| } |
| } |
| |
| |
| private ItemDrop.ItemData FindCookableItem(Inventory inventory) |
| private ItemDrop.ItemData FindCookableItem(Inventory inventory) |
| { |
| { |
| foreach (Fermenter.ItemConversion itemConversion in this.m_conversion) |
| foreach (Fermenter.ItemConversion itemConversion in this.m_conversion) |
| { |
| { |
| ItemDrop.ItemData item = inventory.GetItem(itemConversion.m_from.m_itemData.m_shared.m_name, -1, false); |
| ItemDrop.ItemData item = inventory.GetItem(itemConversion.m_from.m_itemData.m_shared.m_name, -1, false); |
| if (item != null) |
| if (item != null) |
| { |
| { |
| return item; |
| return item; |
| } |
| } |
| } |
| } |
| return null; |
| return null; |
| } |
| } |
| |
| |
| private Fermenter.ItemConversion GetItemConversion(string itemName) |
| private Fermenter.ItemConversion GetItemConversion(string itemName) |
| { |
| { |
| foreach (Fermenter.ItemConversion itemConversion in this.m_conversion) |
| foreach (Fermenter.ItemConversion itemConversion in this.m_conversion) |
| { |
| { |
| if (itemConversion.m_from.gameObject.name == itemName) |
| if (itemConversion.m_from.gameObject.name == itemName) |
| { |
| { |
| return itemConversion; |
| return itemConversion; |
| } |
| } |
| } |
| } |
| return null; |
| return null; |
| } |
| } |
| |
| |
| [CompilerGenerated] |
| [CompilerGenerated] |
| private void <DropAllItems>g__drop|2_0(ItemDrop item) |
| private void <DropAllItems>g__drop|2_0(ItemDrop item) |
| { |
| { |
| Vector3 vector = base.transform.position + Vector3.up + UnityEngine.Random.insideUnitSphere * 0.3f; |
| Vector3 vector = base.transform.position + Vector3.up + UnityEngine.Random.insideUnitSphere * 0.3f; |
| Quaternion quaternion = Quaternion.Euler(0f, (float)UnityEngine.Random.Range(0, 360), 0f); |
| Quaternion quaternion = Quaternion.Euler(0f, (float)UnityEngine.Random.Range(0, 360), 0f); |
| ItemDrop.OnCreateNew(UnityEngine.Object.Instantiate<GameObject>(item.gameObject, vector, quaternion)); |
| ItemDrop.OnCreateNew(UnityEngine.Object.Instantiate<GameObject>(item.gameObject, vector, quaternion)); |
| } |
| } |
| |
| |
| private const float updateDT = 2f; |
| private const float updateDT = 2f; |
| |
| |
| public string m_name = "Fermentation barrel"; |
| public string m_name = "Fermentation barrel"; |
| |
| |
| public float m_fermentationDuration = 2400f; |
| public float m_fermentationDuration = 2400f; |
| |
| |
| public GameObject m_fermentingObject; |
| public GameObject m_fermentingObject; |
| |
| |
| public GameObject m_readyObject; |
| public GameObject m_readyObject; |
| |
| |
| public GameObject m_topObject; |
| public GameObject m_topObject; |
| |
| |
| public EffectList m_addedEffects = new EffectList(); |
| public EffectList m_addedEffects = new EffectList(); |
| |
| |
| public EffectList m_tapEffects = new EffectList(); |
| public EffectList m_tapEffects = new EffectList(); |
| |
| |
| public EffectList m_spawnEffects = new EffectList(); |
| public EffectList m_spawnEffects = new EffectList(); |
| |
| |
| public Switch m_addSwitch; |
| public Switch m_addSwitch; |
| |
| |
| public Switch m_tapSwitch; |
| public Switch m_tapSwitch; |
| |
| |
| public float m_tapDelay = 1.5f; |
| public float m_tapDelay = 1.5f; |
| |
| |
| public Transform m_outputPoint; |
| public Transform m_outputPoint; |
| |
| |
| public Transform m_roofCheckPoint; |
| public Transform m_roofCheckPoint; |
| |
| |
| public List<Fermenter.ItemConversion> m_conversion = new List<Fermenter.ItemConversion>(); |
| public List<Fermenter.ItemConversion> m_conversion = new List<Fermenter.ItemConversion>(); |
| |
| |
| private ZNetView m_nview; |
| private ZNetView m_nview; |
| |
| |
| private float m_updateCoverTimer; |
| private float m_updateCoverTimer; |
| |
| |
| private bool m_exposed; |
| private bool m_exposed; |
| |
| |
| private bool m_hasRoof; |
| private bool m_hasRoof; |
| |
| |
| private string m_delayedTapItem = ""; |
| private string m_delayedTapItem = ""; |
| |
| |
| [Serializable] |
| [Serializable] |
| public class ItemConversion |
| public class ItemConversion |
| { |
| { |
| public ItemDrop m_from; |
| public ItemDrop m_from; |
| |
| |
| public ItemDrop m_to; |
| public ItemDrop m_to; |
| |
| |
| public int m_producedItems = 4; |
| public int m_producedItems = 4; |
| } |
| } |
| |
| |
| private enum Status |
| private enum Status |
| { |
| { |
| Empty, |
| Empty, |
| Fermenting, |
| Fermenting, |
| Exposed, |
| Exposed, |
| Ready |
| Ready |
| } |
| } |
| } |
| } |
| |
| |