TechType ITechTypeHandlerInternal.AddTechType(Assembly modAssembly, string internalName, string displayName, string tooltip, bool unlockAtStart) { string modName = modAssembly.GetName().Name; // Register the TechType. var techType = TechTypePatcher.AddTechType(internalName); // Remember which Assembly added it TechTypesAddedBy[techType] = modAssembly; // register Language Lines. LanguagePatcher.AddCustomLanguageLine(modName, internalName, displayName); LanguagePatcher.AddCustomLanguageLine(modName, "Tooltip_" + internalName, tooltip); Dictionary <TechType, string> valueToString = TooltipFactory.techTypeTooltipStrings.valueToString; valueToString[techType] = "Tooltip_" + internalName; // Unlock the TechType on start if (unlockAtStart) { KnownTechPatcher.UnlockedAtStart.Add(techType); } // Return the new TechType. return(techType); }
internal override void LinkToParent(ModCraftTreeLinkingNode parent) { base.LinkToParent(parent); if (IsExistingTab) { return; } LanguagePatcher.AddCustomLanguageLine(ModName, $"{base.SchemeAsString}Menu_{Name}", DisplayText); string spriteID = $"{SchemeAsString}_{Name}"; #if SUBNAUTICA ModSprite modSprite; if (Asprite != null) { modSprite = new ModSprite(SpriteManager.Group.Category, spriteID, Asprite); } else { modSprite = new ModSprite(SpriteManager.Group.Category, spriteID, Usprite); } ModSprite.Add(modSprite); #elif BELOWZERO ModSprite modSprite; modSprite = new ModSprite(SpriteManager.Group.Category, spriteID, Usprite); ModSprite.Add(modSprite); #endif }
public static void PostPatch() { FishPatcher.Patch(harmony); TechTypePatcher.Patch(); CraftTreeTypePatcher.Patch(); PingTypePatcher.Patch(); EnumPatcher.Patch(harmony); CraftDataPatcher.Patch(harmony); CraftTreePatcher.Patch(harmony); ConsoleCommandsPatcher.Patch(harmony); LanguagePatcher.Patch(harmony); PrefabDatabasePatcher.PostPatch(harmony); SpritePatcher.Patch(); KnownTechPatcher.Patch(harmony); BioReactorPatcher.Patch(); OptionsPanelPatcher.Patch(harmony); ItemsContainerPatcher.Patch(harmony); PDAPatcher.Patch(harmony); PDAEncyclopediaPatcher.Patch(harmony); ItemActionPatcher.Patch(harmony); LootDistributionPatcher.Patch(harmony); WorldEntityDatabasePatcher.Patch(harmony); IngameMenuPatcher.Patch(harmony); TooltipPatcher.Patch(harmony); Logger.Debug("Saving TechType Cache"); TechTypePatcher.cacheManager.SaveCache(); Logger.Debug("Saving CraftTreeType Cache"); CraftTreeTypePatcher.cacheManager.SaveCache(); }
TechType ITechTypeHandlerInternal.AddTechType(string modName, string internalName, string displayName, string tooltip, bool unlockAtStart) { // Register the TechType. TechType techType = TechTypePatcher.AddTechType(internalName); // Remember which Assembly added it Assembly mod = ReflectionHelper.CallingAssemblyByStackTrace(); TechTypesAddedBy[techType] = mod; // Register Language lines. LanguagePatcher.AddCustomLanguageLine(modName, internalName, displayName); LanguagePatcher.AddCustomLanguageLine(modName, "Tooltip_" + internalName, tooltip); Dictionary <TechType, string> valueToString = TooltipFactory.techTypeTooltipStrings.valueToString; valueToString[techType] = "Tooltip_" + internalName; // Unlock the TechType on start if (unlockAtStart) { KnownTechPatcher.UnlockedAtStart.Add(techType); } // Return the new TechType. return(techType); }
internal TabNode(string[] path, CraftTree.Type scheme, UnityEngine.Sprite sprite, string modName, string name, string displayName) : base(path, scheme) { Sprite = sprite; DisplayName = displayName; Name = name; ModSprite.Add(new ModSprite(SpriteManager.Group.Category, $"{Scheme.ToString()}_{Name}", Sprite)); LanguagePatcher.AddCustomLanguageLine(modName, $"{Scheme.ToString()}Menu_{Name}", DisplayName); }
public CustomCraftTab(string path, string name, CraftTree.Type scheme, Atlas.Sprite sprite) { Path = path; Name = name; Scheme = scheme; Sprite = new CustomSprite(SpriteManager.Group.Category, SpriteId, sprite); string modName = ReflectionHelper.CallingAssemblyNameByStackTrace(); LanguagePatcher.AddCustomLanguageLine(modName, LanguageId, name); CustomSpriteHandler.customSprites.Add(Sprite); }
public static void Patch(HarmonyInstance instance) { foreach (var v in customResources) { v.Patch(); } PrefabDatabasePatcher.Patch(instance); EntTechDataPatcher.Patch(instance); LanguagePatcher.Patch(instance); ResourcesLoadPatcher.Patch(instance); }
public static void Patch() { harmony = HarmonyInstance.Create("com.ahk1221.smlhelper"); TechTypePatcher.Patch(harmony); CraftDataPatcher.Patch(harmony); CraftTreePatcher.Patch(harmony); DevConsolePatcher.Patch(harmony); LanguagePatcher.Patch(harmony); ResourcesPatcher.Patch(harmony); PrefabDatabasePatcher.Patch(harmony); SpritePatcher.Patch(harmony); }
public void ExtractOverrideLines_WhenLegacyDelimitersPresent_Overrides( [ValueSource(nameof(CustomValues))] string customValue) { var originalLines = new Dictionary <string, string> { { "Key", "OriginalValue" } }; string text = "Key:{" + customValue + "}"; Console.WriteLine("TestText"); Console.WriteLine(text); int overridesApplied = LanguagePatcher.ExtractOverrideLines("Test1", new[] { text }, originalLines); Assert.AreEqual(1, overridesApplied); Assert.AreEqual(customValue.Replace("\\n", "\n"), LanguagePatcher.GetCustomLine("Key")); }
public static void PostPatch() { FishPatcher.Patch(harmony); TechTypePatcher.Patch(); CraftTreeTypePatcher.Patch(); PingTypePatcher.Patch(); TechCategoryPatcher.Patch(); TechGroupPatcher.Patch(); BackgroundTypePatcher.Patch(); EquipmentTypePatcher.Patch(); EnumPatcher.Patch(harmony); CraftDataPatcher.Patch(harmony); CraftTreePatcher.Patch(harmony); ConsoleCommandsPatcher.Patch(harmony); LanguagePatcher.Patch(harmony); PrefabDatabasePatcher.PostPatch(harmony); SpritePatcher.Patch(harmony); KnownTechPatcher.Patch(harmony); BioReactorPatcher.Patch(); OptionsPanelPatcher.Patch(harmony); ItemsContainerPatcher.Patch(harmony); PDALogPatcher.Patch(harmony); PDAPatcher.Patch(harmony); PDAEncyclopediaPatcher.Patch(harmony); ItemActionPatcher.Patch(harmony); LootDistributionPatcher.Patch(harmony); WorldEntityDatabasePatcher.Patch(harmony); LargeWorldStreamerPatcher.Patch(harmony); IngameMenuPatcher.Patch(harmony); TooltipPatcher.Patch(harmony); SurvivalPatcher.Patch(harmony); CustomSoundPatcher.Patch(harmony); Logger.Debug("Saving TechType Cache"); TechTypePatcher.cacheManager.SaveCache(); Logger.Debug("Saving CraftTreeType Cache"); CraftTreeTypePatcher.cacheManager.SaveCache(); Logger.Debug("Saving PingType Cache"); PingTypePatcher.cacheManager.SaveCache(); }
internal static void Initialize() { CustomFishPatcher.Patch(harmony); TechTypePatcher.Patch(harmony); CraftTreeTypePatcher.Patch(harmony); CraftDataPatcher.Patch(harmony); CraftTreePatcher.Patch(harmony); DevConsolePatcher.Patch(harmony); LanguagePatcher.Patch(harmony); ResourcesPatcher.Patch(harmony); PrefabDatabasePatcher.Patch(harmony); SpritePatcher.Patch(); KnownTechPatcher.Patch(harmony); BioReactorPatcher.Patch(harmony); OptionsPanelPatcher.Patch(harmony); ItemsContainerPatcher.Patch(harmony); PDAPatcher.Patch(harmony); ItemActionPatcher.Patch(harmony); }
public static void Patch() { harmony = HarmonyInstance.Create("com.ahk1221.smlhelper"); try { TechTypePatcher.Patch(harmony); CraftDataPatcher.Patch(harmony); CraftTreePatcher.Patch(harmony); DevConsolePatcher.Patch(harmony); LanguagePatcher.Patch(harmony); ResourcesPatcher.Patch(harmony); PrefabDatabasePatcher.Patch(harmony); SpritePatcher.Patch(harmony); KnownTechPatcher.Patch(harmony); } catch (Exception e) { Console.WriteLine(e.StackTrace); } }
public void ExtractOverrideLines_WhenTextIsValid_MultipleEntries_KeyIsKnown_Overrides( [ValueSource(nameof(CustomValues))] string otherCustomValue, [ValueSource(nameof(Keys))] string secondKey) { var originalLines = new Dictionary <string, string> { { "Key1", "OriginalValue1" }, { secondKey, "OriginalValue2" }, }; string line1 = "Key1:CustomValue1"; string line2 = secondKey + ":" + otherCustomValue; Console.WriteLine("TestText"); Console.WriteLine(line1); Console.WriteLine(line2); int overridesApplied = LanguagePatcher.ExtractOverrideLines("Test1", new[] { line1, line2 }, originalLines); Assert.AreEqual(2, overridesApplied); Assert.AreEqual("CustomValue1", LanguagePatcher.GetCustomLine("Key1")); Assert.AreEqual(otherCustomValue.Replace("\\n", "\n"), LanguagePatcher.GetCustomLine(secondKey)); }
internal TechType AddTechType(string modName, string internalName, string displayName, string tooltip, bool unlockAtStart) { // Register the TechType. TechType techType = TechTypePatcher.AddTechType(internalName); // Register Language lines. LanguagePatcher.AddCustomLanguageLine(modName, internalName, displayName); LanguagePatcher.AddCustomLanguageLine(modName, "Tooltip_" + internalName, tooltip); Dictionary <TechType, string> valueToString = TooltipFactory.techTypeTooltipStrings.valueToString; valueToString[techType] = "Tooltip_" + internalName; // Unlock the TechType on start if (unlockAtStart) { KnownTechPatcher.UnlockedAtStart.Add(techType); } // Return the new TechType. return(techType); }
internal override void LinkToParent(CustomCraftTreeLinkingNode parent) { base.LinkToParent(parent); string tabLanguageID = $"{SchemeAsString}Menu_{Name}"; // Legacy Support LanguagePatcher.AddCustomLanguageLine("SMLHelper", tabLanguageID, DisplayText); string spriteID = $"{SchemeAsString}_{Name}"; CustomSprite custSprite; if (Asprite != null) { custSprite = new CustomSprite(SpriteManager.Group.Category, spriteID, Asprite); } else { custSprite = new CustomSprite(SpriteManager.Group.Category, spriteID, Usprite); } CustomSpriteHandler.customSprites.Add(custSprite); }
private static void Initialize() { var harmony = HarmonyInstance.Create("com.ahk1221.smlhelper"); FishPatcher.Patch(harmony); TechTypePatcher.Patch(); CraftTreeTypePatcher.Patch(); PingTypePatcher.Patch(); EnumPatcher.Patch(harmony); CraftDataPatcher.Patch(harmony); CraftTreePatcher.Patch(harmony); DevConsolePatcher.Patch(harmony); LanguagePatcher.Patch(harmony); PrefabDatabasePatcher.Patch(harmony); SpritePatcher.Patch(); KnownTechPatcher.Patch(harmony); BioReactorPatcher.Patch(harmony); OptionsPanelPatcher.Patch(harmony); ItemsContainerPatcher.Patch(harmony); PDAPatcher.Patch(harmony); PDAEncyclopediaPatcher.Patch(harmony); ItemActionPatcher.Patch(harmony); LootDistributionPatcher.Patch(harmony); WorldEntityDatabasePatcher.Patch(harmony); IngameMenuPatcher.Patch(harmony); TooltipPatcher.Patch(harmony); Logger.Debug("Saving TechType Cache"); TechTypePatcher.cacheManager.SaveCache(); Logger.Debug("Saving CraftTreeType Cache"); CraftTreeTypePatcher.cacheManager.SaveCache(); }
/// <summary> /// Allows you to set the tooltip of a specific <see cref="TechType"/>. /// </summary> /// <param name="techType">The <see cref="TechType"/> whose tooltip that is to be changed.</param> /// <param name="text">The new tooltip for the chosen <see cref="TechType"/>.</param> void ILanguageHandler.SetTechTypeTooltip(TechType techType, string text) { string modName = ReflectionHelper.CallingAssemblyNameByStackTrace(); LanguagePatcher.AddCustomLanguageLine(modName, $"Tooltip_{techType.AsString()}", text); }
/// <summary> /// Allows you to define a language entry into the game. /// </summary> /// <param name="lineId">The ID of the entry, this is what is used to get the actual text.</param> /// <param name="text">The actual text related to the entry.</param> void ILanguageHandler.SetLanguageLine(string lineId, string text) { string modName = ReflectionHelper.CallingAssemblyNameByStackTrace(); LanguagePatcher.AddCustomLanguageLine(modName, lineId, text); }