示例#1
0
            public static bool GetHoverText(Bed __instance, ref string __result)
            {
                // No special logic, so defer to normal execution
                if (!modEnabled.Value && !enableMultipleBedfellows.Value && !sleepWithoutSpawnpoint.Value)
                {
                    return(true);
                }

                // @todo Better hook and not replace entire method
                string ownerName = __instance.GetOwnerName();

                if (ownerName == "")
                {
                    string claimText = "$piece_bed_unclaimed\n[<color=yellow><b>$KEY_Use</b></color>] $piece_bed_claim";

                    if (sleepWithoutClaiming.Value)
                    {
                        claimText += "\n[<color=yellow><b>left shift + $KEY_Use</b></color>] $piece_bed_sleep";
                    }

                    __result = Localization.instance.Localize(claimText);

                    return(false);
                }

                string ownerText = ownerName + "'s $piece_bed";

                if (!__instance.IsMine())
                {
                    if (enableMultipleBedfellows.Value)
                    {
                        __result = Localization.instance.Localize(ownerText + "\n[<color=yellow><b>$KEY_Use</b></color>] $piece_bed_sleep");
                    }
                    else
                    {
                        __result = Localization.instance.Localize(ownerText);
                    }

                    return(false);
                }

                if (sleepWithoutSpawnpoint.Value)
                {
                    __result = Localization.instance.Localize(ownerText + "\n[<color=yellow><b>$KEY_Use</b></color>] $piece_bed_sleep");
                    return(false);
                }

                if (!__instance.IsCurrent())
                {
                    __result = Localization.instance.Localize(ownerText + "\n[<color=yellow><b>$KEY_Use</b></color>] $piece_bed_setspawn");
                }

                return(false);
            }