private static void Prefix() { Strings.Add(NAME.key.String, NAME.text); Strings.Add(DESC.key.String, DESC.text); Strings.Add(EFFECT.key.String, EFFECT.text); ModUtil.AddBuildingToPlanScreen("Rocketry", UltraLightConfig.ID); }
// Token: 0x06000003 RID: 3 RVA: 0x000020DC File Offset: 0x000002DC public static void Prefix() { string str = "NEON_EDEN"; Strings.Add("STRINGS.WORLDS." + str + ".NAME", "Neon Eden"); Strings.Add("STRINGS.WORLDS." + str + ".DESCRIPTION", "A huge target location with an abundance of resources.\n\n<smallcaps>Neon Eden will pose almost no challenges and the abundance of resources and space will enable you to support a large colony. </smallcaps>\n\n"); Strings.Add("STRINGS.CLUSTER_NAMES." + str + ".NAME", "Neon Eden"); Strings.Add("STRINGS.CLUSTER_NAMES." + str + ".DESCRIPTION", "A huge target location with an abundance of resources.\n\n<smallcaps>Neon Eden will pose almost no challenges and the abundance of resources and space will enable you to support a large colony. </smallcaps>\n\n"); Strings.Add("STRINGS.SUBWORLDS.NEONEDEN.NAME", "Neon Eden"); Strings.Add("STRINGS.SUBWORLDS.NEONEDEN.DESC", "A huge target location with an abundance of resources.\n\n<smallcaps>Neon Eden will pose almost no challenges and the abundance of resources and space will enable you to support a large colony. </smallcaps>\n\n"); Strings.Add("STRINGS.SUBWORLDS.NEONEDEN.UTILITY", "Neon Eden UTILITY"); string text = "Asteroid_NeonEden"; ModUtil.RegisterForTranslation(typeof(NeonEdenPatch)); var sprite = Assembly.GetExecutingAssembly().GetManifestResourceStream("NeonEden." + text + ".dds"); Debug.Log(sprite == null ? "sprite is null" : "sprite is not null"); Sprite value = Sprites.CreateSpriteDXT5(sprite, 512, 512); Assets.Sprites.Add(text, value); var textureBiom = Assembly.GetExecutingAssembly().GetManifestResourceStream("NeonEden.NeonEdenBiom.png"); Debug.Log(textureBiom == null ? "textureBiom is null" : "textureBiom is not null"); Sprite spriteBiom = Sprites.CreateSpriteFromPng(textureBiom, 512, 512); Assets.Sprites.Add("biomeIconNeoneden", spriteBiom); }
private static void Prefix() { Strings.Add(NAME.key.String, NAME.text); Strings.Add(DESC.key.String, DESC.text); Strings.Add(EFFECT.key.String, EFFECT.text); ModUtil.AddBuildingToPlanScreen("Refining", HeliumExtractorConfig.ID); }
// Token: 0x0600002C RID: 44 RVA: 0x000024B8 File Offset: 0x000006B8 public static void Prefix() { Debug.Log("HeavyBatteries - Prefix: "); Strings.Add("STRINGS.BUILDINGS.PREFABS.HEAVYBATTERY.NAME", "Heavy Battery"); Strings.Add("STRINGS.BUILDINGS.PREFABS.HEAVYBATTERY.DESC", "Heavy batteries hold lots of power and keep systems running longer before recharging."); Strings.Add("STRINGS.BUILDINGS.PREFABS.HEAVYBATTERY.EFFECT", "Stores most runoff " + UI.FormatAsLink("Power", "POWER") + " from generators, but loses charge over time."); Strings.Add("STRINGS.BUILDINGS.PREFABS.HEAVYSMARTBATTERY.NAME", "Heavy Smart Battery"); Strings.Add("STRINGS.BUILDINGS.PREFABS.HEAVYSMARTBATTERY.DESC", "Heavy smart batteries can send an automation signal while they require charging."); Strings.Add("STRINGS.BUILDINGS.PREFABS.HEAVYSMARTBATTERY.EFFECT", string.Concat("Stores most runoff ", UI.FormatAsLink("Power", "POWER"), " from generators, but loses charge over time.\n\nSends an ", UI.FormatAsLink("Active", "LOGIC"), " or ", UI.FormatAsLink("Standby", "LOGIC"), " signal based on the configuration of the Logic Activation Parameters.")); Strings.Add("STRINGS.BUILDINGS.PREFABS.HEAVYTRANSFORMER.NAME", "Heavy Transformer"); Strings.Add("STRINGS.BUILDINGS.PREFABS.HEAVYTRANSFORMER.DESC", "DO NOT TOUCH! SERIOUSLY!!!"); Strings.Add("STRINGS.BUILDINGS.PREFABS.HEAVYTRANSFORMER.EFFECT", string.Concat("Protects circuits from overloading by increasing or decreasing ", UI.FormatAsLink("Power", "POWER"), " flow.\n\nStores a great deal of ", UI.FormatAsLink("Power", "POWER"), ".")); bool emergencyBatteryEnabled = ConfigFile.config.emergencyBatteryEnabled; if (emergencyBatteryEnabled) { Strings.Add("STRINGS.BUILDINGS.PREFABS.EMERGENCYBATTERY.NAME", "Emergency Battery"); Strings.Add("STRINGS.BUILDINGS.PREFABS.EMERGENCYBATTERY.DESC", "Emergency batteries can send an automation signal while they require charging."); Strings.Add("STRINGS.BUILDINGS.PREFABS.EMERGENCYBATTERY.EFFECT", string.Concat("Stores half of runoff ", UI.FormatAsLink("Power", "POWER"), " from generators, but never loses charge.\n\nSends an ", UI.FormatAsLink("Active", "LOGIC"), " or ", UI.FormatAsLink("Standby", "LOGIC"), " signal based on the configuration of the Logic Activation Parameters.")); ModUtil.AddBuildingToPlanScreen("Power", "EmergencyBattery"); } ModUtil.AddBuildingToPlanScreen("Power", "HeavyBattery"); ModUtil.AddBuildingToPlanScreen("Power", "HeavySmartBattery"); ModUtil.AddBuildingToPlanScreen("Power", "HeavyTransformer"); }
/// <summary> /// Applied before Initialize runs. /// </summary> internal static void Prefix() { #if DEBUG ModUtil.RegisterForTranslation(typeof(SweepByTypeStrings)); #else Localization.RegisterForTranslation(typeof(SweepByTypeStrings)); #endif }
private static void Prefix() { Strings.Add(NAME.key.String, NAME.text); Strings.Add(DESC.key.String, DESC.text); Strings.Add(EFFECT.key.String, EFFECT.text); ModUtil.AddBuildingToPlanScreen("Oxygen", CoalScrubberPipedConfig.ID); }
/// <summary> /// Add strings and icon for a world /// Don't call this method OnLoad ! /// To call at Db.Initialize /// </summary> /// <param name="NAME"> Name of the world </param> /// <param name="DESCRIPTION"> Description of the world </param> /// <param name="iconName"> DDS icon name (incorporated ressources only) </param> /// <param name="className"> Class containing the locstrings </param> public static void AddWorldYaml(string NAME, string DESCRIPTION, string iconName, Type className) { // Add strings used in ****.yaml Strings.Add($"STRINGS.WORLDS." + NAME.ToUpper() + ".NAME", NAME); Strings.Add($"STRINGS.WORLDS." + NAME.ToUpper() + ".DESCRIPTION", DESCRIPTION); // Generate a translation .pot if (!alreadyLoaded.Contains(className)) { ModUtil.RegisterForTranslation(className); alreadyLoaded.Add(className); } if (!iconName.IsNullOrWhiteSpace()) { //Load the sprite from Asteroid_****.dds (converted online from png) and add it to the project and set build action to embedded resource string resourceName = Assembly.GetExecutingAssembly().GetManifestResourceNames().Single(str => str.EndsWith(iconName + ".dds")); Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName); if (stream == null) { throw new ArgumentException($"Could not load the sprite at {resourceName}."); } Sprite sprite = CreateSpriteDXT5(stream, 512, 512); Assets.Sprites.Add(iconName, sprite); } }
static void Prefix() { Strings.Add(NAME.key.String, NAME.text); Strings.Add(DESC.key.String, DESC.text); Strings.Add(EFFECT.key.String, EFFECT.text); ModUtil.AddBuildingToPlanScreen("Refining", BleachStoneRefineryConfig.ID); }
static void Prefix() { Strings.Add(NAME.key.String, NAME.text); Strings.Add(DESC.key.String, DESC.text); Strings.Add(EFFECT.key.String, EFFECT.text); ModUtil.AddBuildingToPlanScreen("Oxygen", PollutedElectrolyserConfig.ID); }
public static void Prefix() { Strings.Add("STRINGS.BUILDINGS.PREFABS.BUFFERSTORAGELOCKER.NAME", "Storage Buffer"); Strings.Add("STRINGS.BUILDINGS.PREFABS.BUFFERSTORAGELOCKER.DESC", "Stores large amounts of materials. Will stop delivering when nearly full"); Strings.Add("STRINGS.BUILDINGS.PREFABS.BUFFERSTORAGELOCKER.EFFECT", "Will stop delivering when nearly full"); ModUtil.AddBuildingToPlanScreen("Base", "BufferStorageLocker"); }
private static void Prefix() { Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteLiquidSinkConfig.Id.ToUpperInvariant()}.NAME", InfiniteLiquidSinkConfig.DisplayName); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteLiquidSinkConfig.Id.ToUpperInvariant()}.DESC", InfiniteLiquidSinkConfig.Description); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteLiquidSinkConfig.Id.ToUpperInvariant()}.EFFECT", InfiniteLiquidSinkConfig.Effect); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteLiquidSourceConfig.Id.ToUpperInvariant()}.NAME", InfiniteLiquidSourceConfig.DisplayName); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteLiquidSourceConfig.Id.ToUpperInvariant()}.DESC", InfiniteLiquidSourceConfig.Description); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteLiquidSourceConfig.Id.ToUpperInvariant()}.EFFECT", InfiniteLiquidSourceConfig.Effect); Strings.Add($"STRINGS.UI.UISIDESCREENS.{InfiniteLiquidSourceConfig.Id.ToUpperInvariant()}.TITLE", InfiniteLiquidSourceConfig.TemperatureSliderTitle); Strings.Add($"STRINGS.UI.UISIDESCREENS.{InfiniteLiquidSourceConfig.Id.ToUpperInvariant()}.TOOLTIP", InfiniteLiquidSourceConfig.TemperatureSliderTooltip); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteGasSinkConfig.Id.ToUpperInvariant()}.NAME", InfiniteGasSinkConfig.DisplayName); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteGasSinkConfig.Id.ToUpperInvariant()}.DESC", InfiniteGasSinkConfig.Description); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteGasSinkConfig.Id.ToUpperInvariant()}.EFFECT", InfiniteGasSinkConfig.Effect); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteGasSourceConfig.Id.ToUpperInvariant()}.NAME", InfiniteGasSourceConfig.DisplayName); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteGasSourceConfig.Id.ToUpperInvariant()}.DESC", InfiniteGasSourceConfig.Description); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{InfiniteGasSourceConfig.Id.ToUpperInvariant()}.EFFECT", InfiniteGasSourceConfig.Effect); Strings.Add($"STRINGS.UI.UISIDESCREENS.{InfiniteGasSourceConfig.Id.ToUpperInvariant()}.TITLE", InfiniteGasSourceConfig.TemperatureSliderTitle); Strings.Add($"STRINGS.UI.UISIDESCREENS.{InfiniteGasSourceConfig.Id.ToUpperInvariant()}.TOOLTIP", InfiniteGasSourceConfig.TemperatureSliderTooltip); Strings.Add($"STRINGS.UI.UISIDESCREENS.INFINITESOURCE.FLOW.TITLE", InfiniteSourceFlowControl.FlowTitle); Strings.Add($"STRINGS.UI.UISIDESCREENS.INFINITESOURCE.FLOW.TOOLTIP", InfiniteSourceFlowControl.FlowTooltip); ModUtil.AddBuildingToPlanScreen("Plumbing", InfiniteLiquidSinkConfig.Id); ModUtil.AddBuildingToPlanScreen("Plumbing", InfiniteLiquidSourceConfig.Id); ModUtil.AddBuildingToPlanScreen("HVAC", InfiniteGasSinkConfig.Id); ModUtil.AddBuildingToPlanScreen("HVAC", InfiniteGasSourceConfig.Id); }
public static void Prefix() { string str = "STRINGS.BUILDINGS.PREFABS."; LogicGateDiodeBuildingPatch.SetString(str + LogicGateDiodeBuildingPatch.ID_UPPER, LogicGateDiodeBuildingPatch.NAME, LogicGateDiodeBuildingPatch.DESC, LogicGateDiodeBuildingPatch.EFFC); ModUtil.AddBuildingToPlanScreen("Automation", "LogicDiodeGate"); }
private static void Prefix() { Debug.Log(" === GeneratedBuildings Prefix === " + InverseElectrolyzerConfig.ID); Strings.Add("STRINGS.BUILDINGS.PREFABS.INVERSEELECTROLYZER.NAME", "Burner 1IN"); Strings.Add("STRINGS.BUILDINGS.PREFABS.INVERSEELECTROLYZER.DESC", "Hydrogen and oxygen goes in, water comes out"); Strings.Add("STRINGS.BUILDINGS.PREFABS.INVERSEELECTROLYZER.EFFECT", "Converts " + STRINGS.UI.FormatAsLink("Oxygen", "OXYGEN") + " and " + STRINGS.UI.FormatAsLink("Hydrogen", "HYDROGEN") + " into " + STRINGS.UI.FormatAsLink("Water", "WATER") + ".\n\nGets oxygen from the environment."); ModUtil.AddBuildingToPlanScreen("Utilities", InverseElectrolyzerConfig.ID); Debug.Log(" === GeneratedBuildings Prefix === " + InverseElectrolyzerAltConfig.ID); Strings.Add("STRINGS.BUILDINGS.PREFABS.INVERSEELECTROLYZERALT.NAME", "Burner 2IN"); Strings.Add("STRINGS.BUILDINGS.PREFABS.INVERSEELECTROLYZERALT.DESC", "Hydrogen and oxygen goes in, water comes out"); Strings.Add("STRINGS.BUILDINGS.PREFABS.INVERSEELECTROLYZERALT.EFFECT", "Converts " + STRINGS.UI.FormatAsLink("Oxygen", "OXYGEN") + " and " + STRINGS.UI.FormatAsLink("Hydrogen", "HYDROGEN") + " into " + STRINGS.UI.FormatAsLink("Water", "WATER") + ".\n\nGets oxygen from an input."); ModUtil.AddBuildingToPlanScreen("Utilities", InverseElectrolyzerAltConfig.ID); /* * List<string> ls = new List<string>((string[])TUNING.BUILDINGS.PLANORDER[10].data); * ls.Add(InverseElectrolyzerConfig.ID); * TUNING.BUILDINGS.PLANORDER[10].data = (string[]) ls.ToArray(); * * TUNING.BUILDINGS.COMPONENT_DESCRIPTION_ORDER.Add(InverseElectrolyzerConfig.ID); */ /* * List<string> category = (List<string>)TUNING.BUILDINGS.PLANORDER.First(po => po.category == (HashedString) "Utilities").data; * category.Add(InverseElectrolyzerConfig.ID); */ }
static void Prefix() { Strings.Add(NAME.key.String, NAME.text); Strings.Add(DESC.key.String, DESC.text); Strings.Add(EFFECT.key.String, EFFECT.text); ModUtil.AddBuildingToPlanScreen("Conveyance", AdvancedSolidConduitElementSensorConfig.ID); }
static void Prefix() { Strings.Add(NAME.key.String, NAME.text); Strings.Add(DESC.key.String, DESC.text); Strings.Add(EFFECT.key.String, EFFECT.text); ModUtil.AddBuildingToPlanScreen("Base", SmartGasReservoirConfig.ID); }
private static void Prefix() { Strings.Add("STRINGS.BUILDINGS.PREFABS.TRELLIS.NAME", "Trellis"); Strings.Add("STRINGS.BUILDINGS.PREFABS.TRELLIS.DESC", "Used to plant trees."); Strings.Add("STRINGS.BUILDINGS.PREFABS.TRELLIS.EFFECT", "For when you want to grow your very own tree."); Strings.Add("STRINGS.CREATURES.SPECIES.SEEDS.PALMERATREEPLANT.NAME", PalmeraTreeConfig.SeedName); Strings.Add("STRINGS.CREATURES.SPECIES.SEEDS.PALMERATREEPLANT.DESC", PalmeraTreeConfig.SeedDesc); Strings.Add("STRINGS.CREATURES.SPECIES.PALMERATREEPLANT.NAME", PalmeraTreeConfig.Name); Strings.Add("STRINGS.CREATURES.SPECIES.PALMERATREEPLANT.DESC", PalmeraTreeConfig.Desc); Strings.Add("STRINGS.CREATURES.SPECIES.PALMERATREEPLANT.DOMESTICATEDDESC", PalmeraTreeConfig.DomesticatedDesc); Strings.Add("STRINGS.ITEMS.FOOD." + SteamedPalmeraBerryConfig.ID.ToUpper() + ".NAME", SteamedPalmeraBerryConfig.NameStr); Strings.Add("STRINGS.ITEMS.FOOD." + SteamedPalmeraBerryConfig.ID.ToUpper() + ".DESC", SteamedPalmeraBerryConfig.Desc); Strings.Add("STRINGS.ITEMS.FOOD." + SteamedPalmeraBerryConfig.ID.ToUpper() + ".RECIPEDESC", SteamedPalmeraBerryConfig.RecipeDesc); Strings.Add("STRINGS.ITEMS.FOOD." + PalmeraBerryConfig.ID.ToUpper() + ".NAME", PalmeraBerryConfig.NameStr); Strings.Add("STRINGS.ITEMS.FOOD." + PalmeraBerryConfig.ID.ToUpper() + ".DESC", PalmeraBerryConfig.Desc); ModUtil.AddBuildingToPlanScreen("Food", TrellisConfig.ID); CROPS.CROP_TYPES.Add(new Crop.CropVal(PalmeraBerryConfig.ID, 12000f, 10)); }
private static void Prefix() { Strings.Add(NAME.key.String, NAME.text); Strings.Add(DESC.key.String, DESC.text); Strings.Add(EFFECT.key.String, EFFECT.text); ModUtil.AddBuildingToPlanScreen("Utilities", UniversalCoolerConfig.ID); }
public static void Prefix() { var tech = "ImprovedCombustion"; var buildingId = GeneticSamplerConfig.ID; var techList = new List <string>(Database.Techs.TECH_GROUPING[tech]) { buildingId }; Database.Techs.TECH_GROUPING[tech] = techList.ToArray(); var category = "Refining"; //string addAfterBuildingId = null; ModUtil.AddBuildingToPlanScreen(category, buildingId); /* var index = TUNING.BUILDINGS.PLANORDER.FindIndex(x => x.category == category); * if (index == -1) * return; * var planOrderList = TUNING.BUILDINGS.PLANORDER[index].data as IList<string>; * if (planOrderList == null) * { * return; * } * var neighborIdx = planOrderList.IndexOf(addAfterBuildingId); * if (neighborIdx != -1) * planOrderList.Insert(neighborIdx + 1, buildingId); * else * planOrderList.Add(buildingId);*/ }
// TODO: use more specialized interface to get files public static async Task <MatchHash> CreateAsync(IRepositoryMod mod, CancellationToken cancellationToken) { byte[]? modCppData = null; try { modCppData = await mod.GetFile("/mod.cpp", cancellationToken); } catch (Exception) { // ignored } string?name = null; if (modCppData != null) { name = ModUtil.ParseModCpp(Encoding.UTF8.GetString(modCppData)).GetValueOrDefault("name"); if (name != null) { name = CleanName(name); } } var pboNames = await mod.GetFileList(cancellationToken); var pboNameSet = pboNames.Where(f => AddonsPboRegex.IsMatch(f)).ToHashSet(); return(new MatchHash(pboNameSet, name)); }
private static void Prefix() { Strings.Add($"STRINGS.BUILDINGS.PREFABS.{GemTileConfig.Id.ToUpperInvariant()}.NAME", GemTileConfig.DisplayName); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{GemTileConfig.Id.ToUpperInvariant()}.DESC", GemTileConfig.Description); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{GemTileConfig.Id.ToUpperInvariant()}.EFFECT", GemTileConfig.Effect); ModUtil.AddBuildingToPlanScreen("Plumbing", GemTileConfig.Id); }
public static void AddSubstance(SubstanceEntry entry, SubstanceTable substanceTable) { Log.Spam($"Adding substance {entry.elementId}"); SimHashes elementHash = SimHashUtil.CreateHash(entry.elementId); if (entry.baseSubstance == null) { Log.Error($"Missing baseSubstance for substance {entry.elementId}"); return; } var baseSubstance = substanceTable.GetSubstance((SimHashes)Hash.SDBMLower(entry.baseSubstance)); if (baseSubstance == null) { Log.Error($"Invalid baseSubstance {entry.baseSubstance} for substance {entry.elementId}"); return; } Color32 color = entry.color ?? baseSubstance.colour; Color32 uiColor = entry.uiColor ?? baseSubstance.uiColour; Color32 conduitColor = entry.conduitColor ?? baseSubstance.conduitColour; var substance = ModUtil.CreateSubstance(entry.elementId, entry.state, baseSubstance.anim, baseSubstance.material, color, uiColor, conduitColor); substanceTable.GetList().Add(substance); }
/// <summary> /// Add strings and icon for a world /// </summary> /// <param name="NAME"> Name of the world </param> /// <param name="DESCRIPTION"> Description of the world </param> /// <param name="iconName"> DDS icon name (incorporated ressources only) </param> /// <param name="className"> Class containing the locstrings </param> public static void addWorldYaml(string NAME, string DESCRIPTION, string iconName, Type className) { // Add strings used in Fuleria.yaml Strings.Add($"STRINGS.WORLDS." + NAME.ToUpper() + ".NAME", NAME); Strings.Add($"STRINGS.WORLDS." + NAME.ToUpper() + ".DESCRIPTION", DESCRIPTION); Logs.LogIfDebugging("Strings added at: " + "STRINGS.WORLDS." + NAME.ToUpper() + ".NAME"); // Generate a translation .pot ModUtil.RegisterForTranslation(className); if (!iconName.IsNullOrWhiteSpace()) { //Load the sprite from Asteroid_Fuleria.dds (converted online from png) and set "generation action" to incorporated ressources try { Sprite sprite = Sprites.CreateSpriteDXT5(Assembly.GetExecutingAssembly().GetManifestResourceStream(className.AssemblyQualifiedName + "." + iconName + ".dds"), 512, 512); Assets.Sprites.Add(iconName, sprite); } catch (Exception e) { Logs.Log(e.ToString()); throw new ArgumentException(); } } }
private static void Prefix() { Strings.Add(NAME.key.String, NAME.text); Strings.Add(DESC.key.String, DESC.text); Strings.Add(EFFECT.key.String, EFFECT.text); ModUtil.AddBuildingToPlanScreen("Food", MyCreatureFeederConfig.ID); }
private static void Prefix() { LocString.CreateLocStringKeys(typeof(PREFABS), "STRINGS.BUILDINGS."); ModUtil.AddBuildingToPlanScreen("Base", HyperbaricLiquidReservoirConfig.ID); ModUtil.AddBuildingToPlanScreen("Base", HyperbaricGasReservoirConfig.ID); }
private bool LoadAnimation() { string path = FileSystem.Normalize(Path.Combine(label.install_path, "anim")); if (!System.IO.Directory.Exists(path)) { return(false); } int num = 0; DirectoryInfo directoryInfo = new DirectoryInfo(path); DirectoryInfo[] directories = directoryInfo.GetDirectories(); foreach (DirectoryInfo directoryInfo2 in directories) { DirectoryInfo[] directories2 = directoryInfo2.GetDirectories(); foreach (DirectoryInfo directoryInfo3 in directories2) { KAnimFile.Mod mod = new KAnimFile.Mod(); FileInfo[] files = directoryInfo3.GetFiles(); foreach (FileInfo fileInfo in files) { if (fileInfo.Extension == ".png") { byte[] data = File.ReadAllBytes(fileInfo.FullName); Texture2D texture2D = new Texture2D(2, 2); texture2D.LoadImage(data); mod.textures.Add(texture2D); } else if (fileInfo.Extension == ".bytes") { string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileInfo.Name); byte[] array = File.ReadAllBytes(fileInfo.FullName); if (fileNameWithoutExtension.EndsWith("_anim")) { mod.anim = array; } else if (fileNameWithoutExtension.EndsWith("_build")) { mod.build = array; } else { DebugUtil.LogWarningArgs($"Unhandled TextAsset ({fileInfo.FullName})...ignoring"); } } else { DebugUtil.LogWarningArgs($"Unhandled asset ({fileInfo.FullName})...ignoring"); } } string name = directoryInfo3.Name + "_kanim"; if (mod.IsValid() && (bool)ModUtil.AddKAnimMod(name, mod)) { num++; } } } return(true); }
private static void Prefix() { Strings.Add($"STRINGS.BUILDINGS.PREFABS.{FusionReactorConfig.ID.ToUpper()}.NAME", string.Concat("Fusion ", UI.FormatAsLink("\"Stellarator\"", FusionReactorConfig.ID), " Reactor")); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{FusionReactorConfig.ID.ToUpper()}.EFFECT", string.Concat("Smashing Atoms together")); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{FusionReactorConfig.ID.ToUpper()}.DESC", string.Concat("This Fusion Reactor is a Highly Powerful Generator that Gets really Hot.\nit's based on the Stellarator fusion reactor and uses Stellar nucleosynthesis to create Metal from Hydrogen")); ModUtil.AddBuildingToPlanScreen("Power", FusionReactorConfig.ID); }
public static void Setup() { Strings.Add($"STRINGS.BUILDINGS.PREFABS.{ID.ToUpperInvariant()}.NAME", "<link=\"" + ID + "\">" + Name + "</link>"); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{ID.ToUpperInvariant()}.DESC", Description); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{ID.ToUpperInvariant()}.EFFECT", Effect); ModUtil.AddBuildingToPlanScreen("Base", ID); }
public static void Prefix() { Strings.Add($"STRINGS.BUILDINGS.PREFABS.{DNAStatueConfig.Id.ToUpperInvariant()}.NAME", DNAStatueConfig.DisplayName); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{DNAStatueConfig.Id.ToUpperInvariant()}.DESC", DNAStatueConfig.Description); Strings.Add($"STRINGS.BUILDINGS.PREFABS.{DNAStatueConfig.Id.ToUpperInvariant()}.EFFECT", DNAStatueConfig.Effect); ModUtil.AddBuildingToPlanScreen("Furniture", DNAStatueConfig.Id); }
private static void Prefix() { Strings.Add("STRINGS.BUILDINGS.PREFABS.COUCH.NAME", "Couch"); Strings.Add("STRINGS.BUILDINGS.PREFABS.COUCH.DESC", "Comfier than it looks!"); Strings.Add("STRINGS.BUILDINGS.PREFABS.COUCH.EFFECT", "Perfect for some relaxation."); ModUtil.AddBuildingToPlanScreen("Furniture", CouchConfig.ID); }
private static void Prefix() { Strings.Add("STRINGS.BUILDINGS.PREFABS.SOLIDCONDUITSHUTOFF.NAME", "Conveyor Rail Shutoff"); Strings.Add("STRINGS.BUILDINGS.PREFABS.SOLIDCONDUITSHUTOFF.DESC", "Your items won't go anywhere unless you let them."); Strings.Add("STRINGS.BUILDINGS.PREFABS.SOLIDCONDUITSHUTOFF.EFFECT", "Automatically turns flow of objects on the Conveyor Rail on or off using Automation technology."); ModUtil.AddBuildingToPlanScreen("Conveyance", SolidConduitShutoffConfig.ID); }