public static string BeehiveGetHoverText_Patch(string __result, Beehive __instance) { string result = __result; if (!showAlternateText.Value) { return(result); } string statusToReplace = $"\n[<color=yellow><b>$KEY_Use</b></color>] $piece_beehive_check"; string honeyString = LocaliseString(__instance.m_honeyItem.m_itemData.m_shared.m_name); string EMPTY = LocaliseString($"( $piece_container_empty )"); string honeyCount = LocaliseString($"\n{honeyString} ( {__instance.GetHoneyLevel()} / {__instance.m_maxHoney} )"); string hasHoney = LocaliseString($"( {honeyString} x {__instance.GetHoneyLevel()} )"); if (beeStatus.Value) { string status; if (!__instance.CheckBiome()) { status = "<color=red>$piece_beehive_area</color>"; } else if (!__instance.HaveFreeSpace()) { status = "<color=red>$piece_beehive_freespace</color>"; } else if (!EnvMan.instance.IsDaylight() && !nightCheck.Value) { status = "<color=yellow>$piece_beehive_sleep</color>"; } else { status = "<color=lime>$piece_beehive_happy</color>"; } result = result.Replace(LocaliseString(statusToReplace), ""); result = result.Replace(LocaliseString($"{__instance.m_name}"), LocaliseString($"{__instance.m_name}\n{LocaliseString(status)}")); } if (result.Contains(EMPTY)) { if (beeStatus.Value) { return(result.Replace(EMPTY, honeyCount)); } return(result.Replace(EMPTY, honeyCount)); } if (result.Contains(hasHoney)) { if (beeStatus.Value) { return(result.Replace(hasHoney, honeyCount)); } return(result.Replace(hasHoney, honeyCount)); } return(result); }
public static void BeehiveUpdateBees_Patch(Beehive __instance) { if (!nightCheck.Value) { return; } bool flag = __instance.CheckBiome() && __instance.HaveFreeSpace(); __instance.m_beeEffect.SetActive(flag); if (!__instance.m_nview.IsOwner() || !flag) { return; } float timeSinceLastUpdate = __instance.GetTimeSinceLastUpdate(); float num = __instance.m_nview.GetZDO().GetFloat("product") + timeSinceLastUpdate; if (num > __instance.m_secPerUnit) { __instance.IncreseLevel((int)(num / __instance.m_secPerUnit)); num = 0.0f; } __instance.m_nview.GetZDO().Set("product", num); }