Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }