mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2026-08-05 17:10:15 +08:00
refactor: centralize localization keys and remove runtime Chinese literals
This commit is contained in:
@@ -143,7 +143,7 @@ The sync is implemented as an inline PowerShell `Exec` step inside the `ZipMod`
|
|||||||
|
|
||||||
- **Shared library:** `UXAssist` acts as a common library. `CheatEnabler` and `UniverseGenTweaks` reference `UXAssist.csproj` directly to reuse `Common/`, `UI/`, and config panel infrastructure.
|
- **Shared library:** `UXAssist` acts as a common library. `CheatEnabler` and `UniverseGenTweaks` reference `UXAssist.csproj` directly to reuse `Common/`, `UI/`, and config panel infrastructure.
|
||||||
- **Preloader pattern:** `DustbinPreloader` and `LabOptPreloader` use Mono.Cecil to inject new fields into game assemblies at BepInEx preload time, enabling their corresponding main mods to read/write those fields via normal C# without reflection.
|
- **Preloader pattern:** `DustbinPreloader` and `LabOptPreloader` use Mono.Cecil to inject new fields into game assemblies at BepInEx preload time, enabling their corresponding main mods to read/write those fields via normal C# without reflection.
|
||||||
- **Internationalization:** `UXAssist/Common/I18N.cs` provides bilingual (EN + ZH) string lookup used across UXAssist and CheatEnabler.
|
- **Internationalization:** `UXAssist/Common/I18N.cs` provides bilingual (EN + ZH) string lookup used across UXAssist and CheatEnabler. Localization keys are declared as `public const string` in per-project registration classes (`UXAssist/Common/I18NKeys.cs`, `CheatEnabler/Localization.cs`, `UniverseGenTweaks/Localization.cs`) and registered through a single `Register()` call from each mod's `Awake()`. Do not pass Chinese string literals to `.Translate()` at call sites.
|
||||||
- **Centralized game constants:** Hard-coded item IDs, tech IDs, logistics capacities, and Dyson sphere geometry defaults live in `UXAssist/Common/GameConstants` (`ItemIds`, `TechIds`, `LogisticsConstants`, `DysonSphereConstants`). Prefer these constants over inline literals in UXAssist patches.
|
- **Centralized game constants:** Hard-coded item IDs, tech IDs, logistics capacities, and Dyson sphere geometry defaults live in `UXAssist/Common/GameConstants` (`ItemIds`, `TechIds`, `LogisticsConstants`, `DysonSphereConstants`). Prefer these constants over inline literals in UXAssist patches.
|
||||||
- **Transpiler patches:** Performance-critical mods (LabOpt, MechaDronesTweaks) use `[HarmonyTranspiler]` to rewrite IL instructions directly for maximum efficiency.
|
- **Transpiler patches:** Performance-critical mods (LabOpt, MechaDronesTweaks) use `[HarmonyTranspiler]` to rewrite IL instructions directly for maximum efficiency.
|
||||||
- **Save persistence:** Mods that need to persist data use the `IModCanSave` interface from DSPModSave.
|
- **Save persistence:** Mods that need to persist data use the `IModCanSave` interface from DSPModSave.
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ public class CheatEnabler : BaseUnityPlugin
|
|||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
|
I18N.Init();
|
||||||
|
|
||||||
GamePatch.DevShortcutsEnabled = Config.Bind("General", "DevShortcuts", false, "Enable DevMode shortcuts");
|
GamePatch.DevShortcutsEnabled = Config.Bind("General", "DevShortcuts", false, "Enable DevMode shortcuts");
|
||||||
GamePatch.AbnormalDisablerEnabled = Config.Bind("General", "DisableAbnormalChecks", false,
|
GamePatch.AbnormalDisablerEnabled = Config.Bind("General", "DisableAbnormalChecks", false,
|
||||||
"disable all abnormal checks");
|
"disable all abnormal checks");
|
||||||
@@ -97,9 +99,12 @@ public class CheatEnabler : BaseUnityPlugin
|
|||||||
"Mecha and Drones/Fleets invincible");
|
"Mecha and Drones/Fleets invincible");
|
||||||
CombatPatch.BuildingsInvincibleEnabled = Config.Bind("Battle", "BuildingsInvincible", false,
|
CombatPatch.BuildingsInvincibleEnabled = Config.Bind("Battle", "BuildingsInvincible", false,
|
||||||
"Buildings invincible");
|
"Buildings invincible");
|
||||||
|
Localization.Register();
|
||||||
UIConfigWindow.Init();
|
UIConfigWindow.Init();
|
||||||
ModFeatureRegistry.Discover(Assembly.GetExecutingAssembly());
|
ModFeatureRegistry.Discover(Assembly.GetExecutingAssembly());
|
||||||
ModFeatureRegistry.InitAll();
|
ModFeatureRegistry.InitAll();
|
||||||
|
|
||||||
|
I18N.Apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UXAssist.Common;
|
using UXAssist.Common;
|
||||||
using UXAssist.Common.ModFeatures;
|
using UXAssist.Common.ModFeatures;
|
||||||
|
using CheatEnabler;
|
||||||
|
|
||||||
namespace CheatEnabler.Functions.DysonSphere;
|
namespace CheatEnabler.Functions.DysonSphere;
|
||||||
|
|
||||||
@@ -27,7 +28,7 @@ public static class DysonSphereResolver
|
|||||||
var star = GameMain.localStar;
|
var star = GameMain.localStar;
|
||||||
if (star == null)
|
if (star == null)
|
||||||
{
|
{
|
||||||
UIMessageBox.Show("CheatEnabler".Translate(), "You are not in any system.".Translate(), "确定".Translate(), UIMessageBox.ERROR, null);
|
UIMessageBox.Show("CheatEnabler".Translate(), "You are not in any system.".Translate(), Localization.Ok.Translate(), UIMessageBox.ERROR, null);
|
||||||
}
|
}
|
||||||
return star;
|
return star;
|
||||||
}
|
}
|
||||||
@@ -39,12 +40,12 @@ public static class DysonSphereResolver
|
|||||||
var sphere = GameMain.data?.dysonSpheres[star.index];
|
var sphere = GameMain.data?.dysonSpheres[star.index];
|
||||||
if (sphere == null)
|
if (sphere == null)
|
||||||
{
|
{
|
||||||
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("There is no Dyson Sphere data on \"{0}\".".Translate(), star.displayName), "确定".Translate(), UIMessageBox.ERROR, null);
|
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("There is no Dyson Sphere data on \"{0}\".".Translate(), star.displayName), Localization.Ok.Translate(), UIMessageBox.ERROR, null);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (requireLayer && sphere.layerCount == 0)
|
if (requireLayer && sphere.layerCount == 0)
|
||||||
{
|
{
|
||||||
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("There is no Dyson Sphere shell on \"{0}\".".Translate(), star.displayName), "确定".Translate(), UIMessageBox.ERROR, null);
|
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("There is no Dyson Sphere shell on \"{0}\".".Translate(), star.displayName), Localization.Ok.Translate(), UIMessageBox.ERROR, null);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return (sphere, star);
|
return (sphere, star);
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
using System;
|
using System;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UXAssist.Common;
|
using UXAssist.Common;
|
||||||
using UXAssist.Common.GameConstants;
|
using UXAssist.Common.GameConstants;
|
||||||
using UXAssist.Common.ModFeatures;
|
using UXAssist.Common.ModFeatures;
|
||||||
|
using CheatEnabler;
|
||||||
|
|
||||||
namespace CheatEnabler.Functions.DysonSphere;
|
namespace CheatEnabler.Functions.DysonSphere;
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ public static class FrameRemovalFunctions
|
|||||||
if (resolved == null) return;
|
if (resolved == null) return;
|
||||||
var (dysonSphere, star) = resolved.Value;
|
var (dysonSphere, star) = resolved.Value;
|
||||||
|
|
||||||
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("This will remove all frames on \"{0}\". Are you sure?".Translate(), star.displayName), "取消".Translate(), "确定".Translate(), UIMessageBox.QUESTION, null, () =>
|
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("This will remove all frames on \"{0}\". Are you sure?".Translate(), star.displayName), Localization.Cancel.Translate(), Localization.Ok.Translate(), UIMessageBox.QUESTION, null, () =>
|
||||||
{
|
{
|
||||||
var totalFrameSpInfo = AccessTools.Field(typeof(DysonSphereLayer), "totalFrameSP");
|
var totalFrameSpInfo = AccessTools.Field(typeof(DysonSphereLayer), "totalFrameSP");
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -8,6 +8,7 @@ using UnityEngine;
|
|||||||
using UXAssist.Common;
|
using UXAssist.Common;
|
||||||
using UXAssist.Common.GameConstants;
|
using UXAssist.Common.GameConstants;
|
||||||
using UXAssist.Common.ModFeatures;
|
using UXAssist.Common.ModFeatures;
|
||||||
|
using CheatEnabler;
|
||||||
|
|
||||||
namespace CheatEnabler.Functions.DysonSphere;
|
namespace CheatEnabler.Functions.DysonSphere;
|
||||||
|
|
||||||
@@ -87,7 +88,7 @@ public static class IllegalShellFunctions
|
|||||||
}
|
}
|
||||||
if (nodePos.Count == 0)
|
if (nodePos.Count == 0)
|
||||||
{
|
{
|
||||||
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("There is no Dyson Sphere shell on \"{0}\".".Translate(), star.displayName), "确定".Translate(), UIMessageBox.ERROR, null);
|
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("There is no Dyson Sphere shell on \"{0}\".".Translate(), star.displayName), Localization.Ok.Translate(), UIMessageBox.ERROR, null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var currentShellCount = layer.shellCount;
|
var currentShellCount = layer.shellCount;
|
||||||
@@ -277,7 +278,7 @@ public static class IllegalShellFunctions
|
|||||||
}
|
}
|
||||||
catch (InvalidOperationException)
|
catch (InvalidOperationException)
|
||||||
{
|
{
|
||||||
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("No precalculated triangle found for radius {0}.".Translate(), radius), "确定".Translate(), UIMessageBox.ERROR, null);
|
UIMessageBox.Show("CheatEnabler".Translate(), string.Format(Localization.NoPrecalculatedShellFoundForRadius0.Translate(), radius), Localization.Ok.Translate(), UIMessageBox.ERROR, null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
layer = dysonSphere.AddLayerOnId(i, radius, Quaternion.Euler(0f, 0f, 0f), Mathf.Sqrt(dysonSphere.gravity / radius) / radius * DysonSphereConstants.RadiansToDegrees);
|
layer = dysonSphere.AddLayerOnId(i, radius, Quaternion.Euler(0f, 0f, 0f), Mathf.Sqrt(dysonSphere.gravity / radius) / radius * DysonSphereConstants.RadiansToDegrees);
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UXAssist.Common;
|
using UXAssist.Common;
|
||||||
using UXAssist.Common.ModFeatures;
|
using UXAssist.Common.ModFeatures;
|
||||||
|
using CheatEnabler;
|
||||||
|
|
||||||
namespace CheatEnabler.Functions.DysonSphere;
|
namespace CheatEnabler.Functions.DysonSphere;
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ public static class ShellCompletionFunctions
|
|||||||
if (resolved == null) return;
|
if (resolved == null) return;
|
||||||
var (dysonSphere, star) = resolved.Value;
|
var (dysonSphere, star) = resolved.Value;
|
||||||
|
|
||||||
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("This will complete all Dyson Sphere shells on \"{0}\". Are you sure?".Translate(), star.displayName), "取消".Translate(), "确定".Translate(), UIMessageBox.QUESTION, null, () =>
|
UIMessageBox.Show("CheatEnabler".Translate(), string.Format("This will complete all Dyson Sphere shells on \"{0}\". Are you sure?".Translate(), star.displayName), Localization.Cancel.Translate(), Localization.Ok.Translate(), UIMessageBox.QUESTION, null, () =>
|
||||||
{
|
{
|
||||||
var totalNodeSpInfo = AccessTools.Field(typeof(DysonSphereLayer), "totalNodeSP");
|
var totalNodeSpInfo = AccessTools.Field(typeof(DysonSphereLayer), "totalNodeSP");
|
||||||
var totalFrameSpInfo = AccessTools.Field(typeof(DysonSphereLayer), "totalFrameSP");
|
var totalFrameSpInfo = AccessTools.Field(typeof(DysonSphereLayer), "totalFrameSP");
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using BepInEx.Configuration;
|
using BepInEx.Configuration;
|
||||||
using CheatEnabler.Functions.DysonSphere;
|
using CheatEnabler.Functions.DysonSphere;
|
||||||
using UXAssist.Common;
|
using UXAssist.Common;
|
||||||
using UXAssist.Common.ModFeatures;
|
using UXAssist.Common.ModFeatures;
|
||||||
@@ -13,13 +13,7 @@ public static class DysonSphereFunctions
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("You are not in any system.", "You are not in any system.", "你不在任何星系中");
|
}
|
||||||
I18N.Add("There is no Dyson Sphere shell on \"{0}\".", "There is no Dyson Sphere shell on \"{0}\".", "“{0}”上没有可建造的戴森壳");
|
|
||||||
I18N.Add("There is no Dyson Sphere data on \"{0}\".", "There is no Dyson Sphere data on \"{0}\".", "“{0}”上没有戴森球数据");
|
|
||||||
I18N.Add("This will complete all Dyson Sphere shells on \"{0}\" instantly. Are you sure?", "This will complete all Dyson Sphere shells on \"{0}\" instantly. Are you sure?", "这将立即完成“{0}”上的所有戴森壳。你确定吗?");
|
|
||||||
I18N.Add("This will remove all frames on \"{0}\". Are you sure?", "This will remove all frames on \"{0}\". Are you sure?", "这将移除“{0}”上的所有框架。你确定吗?");
|
|
||||||
I18N.Add("No precalculated shell found for radius {0}.", "No precalculated shell found for radius {0}.", "没有找到适合半径 {0} 的预计算壳面");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void CompleteShellsInstantly() => ShellCompletionFunctions.CompleteShellsInstantly();
|
public static void CompleteShellsInstantly() => ShellCompletionFunctions.CompleteShellsInstantly();
|
||||||
public static void RemoveAllFrames() => FrameRemovalFunctions.RemoveAllFrames();
|
public static void RemoveAllFrames() => FrameRemovalFunctions.RemoveAllFrames();
|
||||||
|
|||||||
@@ -11,28 +11,7 @@ public static class PlayerFunctions
|
|||||||
{
|
{
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("ClearAllMetadataConsumptionDetails",
|
}
|
||||||
"""
|
|
||||||
Metadata consumption records of all gamesaves are about to be cleared.
|
|
||||||
You will gain following metadata back:
|
|
||||||
""",
|
|
||||||
"""
|
|
||||||
所有存档的元数据消耗记录即将被清除,
|
|
||||||
此操作将返还以下元数据:
|
|
||||||
""");
|
|
||||||
I18N.Add("ClearCurrentMetadataConsumptionDetails",
|
|
||||||
"""
|
|
||||||
Metadata consumption records of current gamesave are about to be cleared.
|
|
||||||
You will gain following metadata back:
|
|
||||||
""",
|
|
||||||
"""
|
|
||||||
当前存档的元数据消耗记录即将被清除,
|
|
||||||
此操作将返还以下元数据:
|
|
||||||
""");
|
|
||||||
I18N.Add("NoMetadataConsumptionRecord",
|
|
||||||
"No metadata consumption records found.",
|
|
||||||
"未找到元数据消耗记录。");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void TeleportToOuterSpace()
|
public static void TeleportToOuterSpace()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,279 @@
|
|||||||
|
using UXAssist.Common;
|
||||||
|
|
||||||
|
namespace CheatEnabler;
|
||||||
|
|
||||||
|
public static class Localization
|
||||||
|
{
|
||||||
|
public const string YouAreNotInAnySystem = "You are not in any system.";
|
||||||
|
public const string ThereIsNoDysonSphereShellOn0 = "There is no Dyson Sphere shell on \"{0}\".";
|
||||||
|
public const string ThereIsNoDysonSphereDataOn0 = "There is no Dyson Sphere data on \"{0}\".";
|
||||||
|
public const string ThisWillCompleteAllDysonSphereShellsOn0InstantlyAreYouSure = "This will complete all Dyson Sphere shells on \"{0}\" instantly. Are you sure?";
|
||||||
|
public const string ThisWillRemoveAllFramesOn0AreYouSure = "This will remove all frames on \"{0}\". Are you sure?";
|
||||||
|
public const string NoPrecalculatedShellFoundForRadius0 = "No precalculated shell found for radius {0}.";
|
||||||
|
public const string ClearAllMetadataConsumptionDetails = "ClearAllMetadataConsumptionDetails";
|
||||||
|
public const string ClearCurrentMetadataConsumptionDetails = "ClearCurrentMetadataConsumptionDetails";
|
||||||
|
public const string NoMetadataConsumptionRecord = "NoMetadataConsumptionRecord";
|
||||||
|
public const string KEYToggleNoCondition = "KEYToggleNoCondition";
|
||||||
|
public const string KEYToggleNoCollision = "KEYToggleNoCollision";
|
||||||
|
public const string NoConditionOn = "NoConditionOn";
|
||||||
|
public const string NoConditionOff = "NoConditionOff";
|
||||||
|
public const string NoCollisionOn = "NoCollisionOn";
|
||||||
|
public const string NoCollisionOff = "NoCollisionOff";
|
||||||
|
public const string BuildWithoutConditionIsEnabled = "Build without condition is enabled!";
|
||||||
|
public const string NoCollisionIsEnabled = "No collision is enabled!";
|
||||||
|
public const string Factory = "Factory";
|
||||||
|
public const string Planet = "Planet";
|
||||||
|
public const string MechaCombat = "Mecha/Combat";
|
||||||
|
public const string Cancel = "Cancel";
|
||||||
|
public const string OK = "OK";
|
||||||
|
public const string BuryAllVeins = "Bury all veins";
|
||||||
|
public const string RestoreBuriedVeins = "Restore buried veins";
|
||||||
|
public const string ReformEntirePlanet = "Reform entire planet";
|
||||||
|
public const string RevertPlanetTerrain = "Revert planet terrain";
|
||||||
|
public const string EnableDevShortcuts = "Enable Dev Shortcuts";
|
||||||
|
public const string DisableAbnormalChecks = "Disable Abnormal Checks";
|
||||||
|
public const string Hotkey = "Hotkey";
|
||||||
|
public const string UnlockTechWithKeyModifiers = "Unlock Tech with Key-Modifiers";
|
||||||
|
public const string DevShortcuts = "Dev Shortcuts";
|
||||||
|
public const string DevShortcutsTips = "Dev Shortcuts Tips";
|
||||||
|
public const string UnlockTechWithKeyModifiersTips = "Unlock Tech with Key-Modifiers Tips";
|
||||||
|
public const string RemoveAllMetadataConsumptionRecords = "Remove all metadata consumption records";
|
||||||
|
public const string RemoveMetadataConsumptionRecordInCurrentGame = "Remove metadata consumption record in current game";
|
||||||
|
public const string ClearMetadataFlagWhichBansAchievements = "Clear metadata flag which bans achievements";
|
||||||
|
public const string AssignGamesaveToCurrentAccount = "Assign gamesave to current account";
|
||||||
|
public const string FinishBuildImmediately = "Finish build immediately";
|
||||||
|
public const string ArchitectMode = "Architect mode";
|
||||||
|
public const string BuildWithoutCondition = "Build without condition";
|
||||||
|
public const string NoCollision = "No collision";
|
||||||
|
public const string BeltSignalGenerator = "Belt signal generator";
|
||||||
|
public const string CountProliferatorsUsedForRawsIntermediatesAndFinishedProducts = "Count proliferators used for raws/intermediates and finished products";
|
||||||
|
public const string CountProliferatorsUsedForRawsIntermediatesAndFinishedProductsTips = "Count proliferators used for raws/intermediates and finished products tips";
|
||||||
|
public const string BeltSignalAltFormat = "Belt signal alt format";
|
||||||
|
public const string BeltSignalAltFormatTips = "Belt signal alt format tips";
|
||||||
|
public const string CountGenerationsAsProductionInStatistics = "Count generations as production in statistics";
|
||||||
|
public const string CountRemovalsAsConsumptionInStatistics = "Count removals as consumption in statistics";
|
||||||
|
public const string CountAllRawsAndIntermediatesInStatistics = "Count all raws and intermediates in statistics";
|
||||||
|
public const string RemovePowerSpaceLimit = "Remove power space limit";
|
||||||
|
public const string BoostWindPower = "Boost wind power";
|
||||||
|
public const string BoostSolarPower = "Boost solar power";
|
||||||
|
public const string BoostFuelPower = "Boost fuel power";
|
||||||
|
public const string BoostFuelPower2 = "Boost fuel power 2";
|
||||||
|
public const string WindTurbinesDoGlobalPowerCoverage = "Wind Turbines do global power coverage";
|
||||||
|
public const string BoostGeothermalPower = "Boost geothermal power";
|
||||||
|
public const string RetrievePlaceItemsFromToRemotePlanetsOnLogisticsControlPanel = "Retrieve/Place items from/to remote planets on logistics control panel";
|
||||||
|
public const string InfiniteNaturalResources = "Infinite Natural Resources";
|
||||||
|
public const string FastMining = "Fast Mining";
|
||||||
|
public const string PumpAnywhere = "Pump Anywhere";
|
||||||
|
public const string SkipBulletPeriod = "Skip bullet period";
|
||||||
|
public const string FireAllBulletsAtOnce = "Fire all bullets at once";
|
||||||
|
public const string SkipAbsorptionPeriod = "Skip absorption period";
|
||||||
|
public const string QuickAbsorb = "Quick absorb";
|
||||||
|
public const string EjectAnyway = "Eject anyway";
|
||||||
|
public const string OverclockEjectors = "Overclock Ejectors";
|
||||||
|
public const string OverclockSilos = "Overclock Silos";
|
||||||
|
public const string UnlockDysonSphereMaxOrbitRadius = "Unlock Dyson Sphere max orbit radius";
|
||||||
|
public const string CompleteDysonSphereShellsInstantly = "Complete Dyson Sphere shells instantly";
|
||||||
|
public const string RemoveAllFramesOnDysonSphere = "Remove all frames on Dyson Sphere";
|
||||||
|
public const string GenerateIllegalDysonShell = "Generate illegal dyson shell";
|
||||||
|
public const string GenerateIllegalDysonShell2 = "Generate illegal dyson shell 2";
|
||||||
|
public const string KeepMaxProductionShellsAndRemoveOthers = "Keep max production shells and remove others";
|
||||||
|
public const string DuplicateShellsFromThatWithHighestProduction = "Duplicate shells from that with highest production";
|
||||||
|
public const string GenerateIllegalDysonShellQuickly = "Generate illegal dyson shell quickly";
|
||||||
|
public const string ShellsCount = "Shells count";
|
||||||
|
public const string WARNINGThisOperationCanBeVerySlowContinue = "WARNING: This operation can be very slow, continue?";
|
||||||
|
public const string WARNINGThisOperationIsDANGEROUSContinue = "WARNING: This operation is DANGEROUS, continue?";
|
||||||
|
public const string TerraformWithoutEnoughSoilPiles = "Terraform without enough soil piles";
|
||||||
|
public const string InstantHandCraft = "Instant hand-craft";
|
||||||
|
public const string InstantTeleportLikeThatInSandboxMode = "Instant teleport (like that in Sandbox mode)";
|
||||||
|
public const string MechaAndDronesFleetsInvicible = "Mecha and Drones/Fleets invicible";
|
||||||
|
public const string BuildingsInvicible = "Buildings invicible";
|
||||||
|
public const string EnableWarpWithoutSpaceWarpers = "Enable warp without space warpers";
|
||||||
|
public const string TeleportToOuterSpace = "Teleport to outer space";
|
||||||
|
public const string TeleportToSelectedAstronomical = "Teleport to selected astronomical";
|
||||||
|
public const string Ok = "OK";
|
||||||
|
|
||||||
|
public static void Register()
|
||||||
|
{
|
||||||
|
I18N.Add(YouAreNotInAnySystem, "You are not in any system.", "你不在任何星系中");
|
||||||
|
I18N.Add(ThereIsNoDysonSphereShellOn0, "There is no Dyson Sphere shell on \"{0}\".", "“{0}”上没有可建造的戴森壳");
|
||||||
|
I18N.Add(ThereIsNoDysonSphereDataOn0, "There is no Dyson Sphere data on \"{0}\".", "“{0}”上没有戴森球数据");
|
||||||
|
I18N.Add(ThisWillCompleteAllDysonSphereShellsOn0InstantlyAreYouSure, "This will complete all Dyson Sphere shells on \"{0}\" instantly. Are you sure?", "这将立即完成“{0}”上的所有戴森壳。你确定吗?");
|
||||||
|
I18N.Add(ThisWillRemoveAllFramesOn0AreYouSure, "This will remove all frames on \"{0}\". Are you sure?", "这将移除“{0}”上的所有框架。你确定吗?");
|
||||||
|
I18N.Add(NoPrecalculatedShellFoundForRadius0, "No precalculated shell found for radius {0}.", "没有找到适合半径 {0} 的预计算壳面");
|
||||||
|
I18N.Add(ClearAllMetadataConsumptionDetails, """
|
||||||
|
|
||||||
|
Metadata consumption records of all gamesaves are about to be cleared.
|
||||||
|
You will gain following metadata back:
|
||||||
|
|
||||||
|
""", """
|
||||||
|
|
||||||
|
所有存档的元数据消耗记录即将被清除,
|
||||||
|
此操作将返还以下元数据:
|
||||||
|
|
||||||
|
""");
|
||||||
|
I18N.Add(ClearCurrentMetadataConsumptionDetails, """
|
||||||
|
|
||||||
|
Metadata consumption records of current gamesave are about to be cleared.
|
||||||
|
You will gain following metadata back:
|
||||||
|
|
||||||
|
""", """
|
||||||
|
|
||||||
|
当前存档的元数据消耗记录即将被清除,
|
||||||
|
此操作将返还以下元数据:
|
||||||
|
|
||||||
|
""");
|
||||||
|
I18N.Add(NoMetadataConsumptionRecord, "No metadata consumption records found.", "未找到元数据消耗记录。");
|
||||||
|
I18N.Add(KEYToggleNoCondition, "[CE] Toggle No Condition Build", "[CE] 切换无条件建造");
|
||||||
|
I18N.Add(KEYToggleNoCollision, "[CE] Toggle No Collision", "[CE] 切换无碰撞");
|
||||||
|
I18N.Add(NoConditionOn, "No condition build is enabled!", "无条件建造已开启");
|
||||||
|
I18N.Add(NoConditionOff, "No condition build is disabled!", "无条件建造已关闭");
|
||||||
|
I18N.Add(NoCollisionOn, "No collision is enabled!", "无碰撞已开启");
|
||||||
|
I18N.Add(NoCollisionOff, "No collision is disabled!", "无碰撞已关闭");
|
||||||
|
I18N.Add(BuildWithoutConditionIsEnabled, "!!Build without condition is enabled!!", "!!无条件建造已开启!!");
|
||||||
|
I18N.Add(NoCollisionIsEnabled, "!!No collision is enabled!!", "!!无碰撞已开启!!");
|
||||||
|
I18N.Add(Factory, "Factory", "工厂");
|
||||||
|
I18N.Add(Planet, "Planet", "行星");
|
||||||
|
I18N.Add(MechaCombat, "Mecha/Combat", "机甲/战斗");
|
||||||
|
I18N.Add(Cancel, "Cancel", "取消");
|
||||||
|
I18N.Add(OK, "OK", "确定");
|
||||||
|
I18N.Add(BuryAllVeins, "Bury all veins", "掩埋所有矿脉");
|
||||||
|
I18N.Add(RestoreBuriedVeins, "Restore buried veins", "还原所有矿脉");
|
||||||
|
I18N.Add(ReformEntirePlanet, "Reform entire planet", "铺满星球地基");
|
||||||
|
I18N.Add(RevertPlanetTerrain, "Revert planet terrain", "还原星球地形");
|
||||||
|
I18N.Add(EnableDevShortcuts, "Enable Dev Shortcuts", "开发模式快捷键");
|
||||||
|
I18N.Add(DisableAbnormalChecks, "Disable Abnormal Checks", "关闭数据异常检查");
|
||||||
|
I18N.Add(Hotkey, "Hotkey", "快捷键");
|
||||||
|
I18N.Add(UnlockTechWithKeyModifiers, "Unlock Tech with Key-Modifiers", "使用组合键点击解锁科技");
|
||||||
|
I18N.Add(DevShortcuts, "Dev Shortcuts", "开发模式快捷键");
|
||||||
|
I18N.Add(DevShortcutsTips, """
|
||||||
|
Caution: Some function may trigger abnormal check!
|
||||||
|
Numpad 1: Gets all items and extends bag.
|
||||||
|
Numpad 2: Boosts walk speed, gathering speed and mecha energy restoration.
|
||||||
|
Numpad 3: Fills planet with foundations and bury all veins.
|
||||||
|
Numpad 4: +1 construction drone.
|
||||||
|
Numpad 5: Upgrades drone engine tech to full.
|
||||||
|
Numpad 6: Unlocks researching tech.
|
||||||
|
Numpad 7: Unlocks Drive Engine 1.
|
||||||
|
Numpad 8: Unlocks Drive Engine 2 and maximize energy.
|
||||||
|
Numpad 9: Unlocks ability to warp.
|
||||||
|
Numpad 0: No costs for Logistic Storages' output.
|
||||||
|
LCtrl + T: Unlocks all techs (not upgrades).
|
||||||
|
LCtrl + Q: Adds 10000 to every metadata.
|
||||||
|
LCtrl + W: Enters Sandbox Mode.
|
||||||
|
LCtrl + Shift + W: Leaves Sandbox Mode.
|
||||||
|
Numpad *: Proliferates items on hand.
|
||||||
|
Numpad /: Removes proliferations from items on hand.
|
||||||
|
PageDown: Remembers Pose of game camera.
|
||||||
|
PageUp: Locks game camera using remembered Pose.
|
||||||
|
""", """
|
||||||
|
警告:某些功能可能触发异常检查!
|
||||||
|
小键盘1:获得所有物品并扩展背包
|
||||||
|
小键盘2:加快行走速度及采集速度,加快能量恢复速度
|
||||||
|
小键盘3:将地基铺设整个星球并掩埋所有矿物
|
||||||
|
小键盘4:建设机器人 +1
|
||||||
|
小键盘5:建设机器人满级
|
||||||
|
小键盘6:解锁当前科技
|
||||||
|
小键盘7:解锁驱动技术I
|
||||||
|
小键盘8:解锁驱动技术II 最大化能量
|
||||||
|
小键盘9:机甲曲速解锁
|
||||||
|
小键盘0:物流站通过传送带出物品无消耗
|
||||||
|
左Ctrl + T:解锁所有非升级科技
|
||||||
|
左Ctrl + Q:增加各项元数据10000点
|
||||||
|
左Ctrl + W:进入沙盒模式
|
||||||
|
左Ctrl + Shift + W:离开沙盒模式
|
||||||
|
小键盘乘号 *:给手上物品喷涂增产剂
|
||||||
|
小键盘除号 /:清除手上物品的增产剂
|
||||||
|
PageDown:记录摄像机当前的Pose
|
||||||
|
PageUp:用记录的Pose锁定摄像机
|
||||||
|
""");
|
||||||
|
I18N.Add(UnlockTechWithKeyModifiersTips, """
|
||||||
|
Click tech on tree while holding:
|
||||||
|
Shift: Tech level + 1
|
||||||
|
Ctrl: Tech level + 10
|
||||||
|
Ctrl + Shift: Tech level + 100
|
||||||
|
Alt: Tech level to MAX
|
||||||
|
|
||||||
|
Note: all direct prerequisites will be unlocked as well.
|
||||||
|
""", """
|
||||||
|
按住以下组合键点击科技树:
|
||||||
|
Shift:科技等级+1
|
||||||
|
Ctrl:科技等级+10
|
||||||
|
Ctrl+Shift:科技等级+100
|
||||||
|
Alt:科技等级升到最大
|
||||||
|
|
||||||
|
注意:所有直接前置科技也会被解锁
|
||||||
|
""");
|
||||||
|
I18N.Add(RemoveAllMetadataConsumptionRecords, "Remove all metadata consumption records", "移除所有元数据消耗记录");
|
||||||
|
I18N.Add(RemoveMetadataConsumptionRecordInCurrentGame, "Remove metadata consumption record in current game", "移除当前存档的元数据消耗记录");
|
||||||
|
I18N.Add(ClearMetadataFlagWhichBansAchievements, "Clear metadata flag which bans achievements in current game", "解除当前存档因使用元数据导致的成就限制");
|
||||||
|
I18N.Add(AssignGamesaveToCurrentAccount, "Assign gamesave to current account", "将游戏存档绑定给当前账号");
|
||||||
|
I18N.Add(FinishBuildImmediately, "Finish build immediately", "建造秒完成");
|
||||||
|
I18N.Add(ArchitectMode, "Architect mode", "建筑师模式");
|
||||||
|
I18N.Add(BuildWithoutCondition, "Build without condition check", "无条件建造");
|
||||||
|
I18N.Add(NoCollision, "No collision", "无碰撞");
|
||||||
|
I18N.Add(BeltSignalGenerator, "Belt signal generator", "传送带信号物品生成");
|
||||||
|
I18N.Add(CountProliferatorsUsedForRawsIntermediatesAndFinishedProducts, "Use proliferators for raws/intermediates and finished products", "原料、中间产物以及成品使用增产剂");
|
||||||
|
I18N.Add(CountProliferatorsUsedForRawsIntermediatesAndFinishedProductsTips, """
|
||||||
|
Following items use extra products: Titanium Alloy, Prism, Frame Material, Proliferator Mk.II, Proliferator Mk.III, Magnetic Coil, Electric Motor, Electromagnetic Turbine, Super-magnetic Ring, Circuit Board, Thruster, Reinforced Thruster, Plasma Exciter, Particle Broadband, Graviton Lens, Quantum Chip, Annihilation Constraint Sphere, Deuteron Fuel Rod, Space Warper, Dyson Sphere Component, Small Carrier Rocket, Electromagnetic Matrix, Structure Matrix, Information Matrix, Gravity Matrix, Universe Matrix
|
||||||
|
Following items does not use proliferators: Casimir Crystal, Energy Matrix
|
||||||
|
Other items use speed up production.
|
||||||
|
""", """
|
||||||
|
以下物品使用额外产出: 钛合金, 棱镜, 框架材料, 增产剂 Mk.II, 增产剂 Mk.III, 磁线圈, 电动机, 电磁涡轮, 超级磁场环, 电路板, 推进器, 加力推进器, 电浆激发器, 粒子宽带, 引力透镜, 量子芯片, 湮灭约束球, 氘核燃料棒, 空间翘曲器, 戴森球组件, 小型运载火箭, 电磁矩阵, 结构矩阵, 信息矩阵, 引力矩阵, 宇宙矩阵
|
||||||
|
以下物品不使用增产剂: 卡西米尔晶体, 能量矩阵
|
||||||
|
其他物品使用加速生产
|
||||||
|
""");
|
||||||
|
I18N.Add(BeltSignalAltFormat, "Belt signal alt format", "传送带信号替换格式");
|
||||||
|
I18N.Add(BeltSignalAltFormatTips, """
|
||||||
|
Belt signal number format alternative format:
|
||||||
|
AAAABC by default
|
||||||
|
BCAAAA as alternative
|
||||||
|
AAAA=generation speed in minutes, B=proliferate points, C=stack count
|
||||||
|
""", """
|
||||||
|
传送带信号物品生成数量格式:
|
||||||
|
默认为AAAABC
|
||||||
|
勾选替换为BCAAAA
|
||||||
|
AAAA=生成速度,B=增产点数,C=堆叠数量
|
||||||
|
""");
|
||||||
|
I18N.Add(CountGenerationsAsProductionInStatistics, "Count generations as production in statistics", "统计信息里将生成计算为产物");
|
||||||
|
I18N.Add(CountRemovalsAsConsumptionInStatistics, "Count removals as consumption in statistics", "统计信息里将移除计算为消耗");
|
||||||
|
I18N.Add(CountAllRawsAndIntermediatesInStatistics, "Count all raw materials in statistics", "统计信息里计算所有原料和中间产物");
|
||||||
|
I18N.Add(RemovePowerSpaceLimit, "Remove space limit for winds and geothermals", "移除风力发电和地热发电的间距限制");
|
||||||
|
I18N.Add(BoostWindPower, "Boost wind power(x100,000)", "提升风力发电(x100,000)");
|
||||||
|
I18N.Add(BoostSolarPower, "Boost solar power(x100,000)", "提升太阳能发电(x100,000)");
|
||||||
|
I18N.Add(BoostFuelPower, "Boost fuel power(x50,000)", "提升燃料发电(x50,000)");
|
||||||
|
I18N.Add(BoostFuelPower2, "(x20,000 for deuteron, x10,000 for antimatter)", "(氘核燃料棒x20,000,反物质燃料棒x10,000)");
|
||||||
|
I18N.Add(WindTurbinesDoGlobalPowerCoverage, "Wind Turbines do global power coverage", "风力涡轮机供电覆盖全球");
|
||||||
|
I18N.Add(BoostGeothermalPower, "Boost geothermal power(x50,000)", "提升地热发电(x50,000)");
|
||||||
|
I18N.Add(RetrievePlaceItemsFromToRemotePlanetsOnLogisticsControlPanel, "Retrieve/Place items from/to remote planets on logistics control panel", "在物流总控面板上可以从非本地行星取放物品");
|
||||||
|
I18N.Add(InfiniteNaturalResources, "Infinite natural resources", "自然资源采集不消耗");
|
||||||
|
I18N.Add(FastMining, "Fast mining", "高速采集");
|
||||||
|
I18N.Add(PumpAnywhere, "Pump anywhere", "平地抽水");
|
||||||
|
I18N.Add(SkipBulletPeriod, "Skip bullet period", "跳过子弹阶段");
|
||||||
|
I18N.Add(FireAllBulletsAtOnce, "Fire all bullets at once", "一次弹射所有太阳帆");
|
||||||
|
I18N.Add(SkipAbsorptionPeriod, "Skip absorption period", "跳过吸收阶段");
|
||||||
|
I18N.Add(QuickAbsorb, "Quick absorb", "快速吸收");
|
||||||
|
I18N.Add(EjectAnyway, "Eject anyway", "全球弹射");
|
||||||
|
I18N.Add(OverclockEjectors, "Overclock Ejectors (10x)", "高速弹射器(10倍射速)");
|
||||||
|
I18N.Add(OverclockSilos, "Overclock Silos (10x)", "高速发射井(10倍射速)");
|
||||||
|
I18N.Add(UnlockDysonSphereMaxOrbitRadius, "Unlock Dyson Sphere max orbit radius", "解锁戴森球最大轨道半径");
|
||||||
|
I18N.Add(CompleteDysonSphereShellsInstantly, "Complete Dyson Sphere shells instantly", "立即完成戴森壳建造");
|
||||||
|
I18N.Add(RemoveAllFramesOnDysonSphere, "Remove all frames on Dyson Sphere", "移除戴森球上的所有框架");
|
||||||
|
I18N.Add(GenerateIllegalDysonShell, "Generate an illegal dyson shell (!!1st shell layer will be replaced!!)", "生成单层仙术戴森壳(!!会先删除第一层戴森壳!!)");
|
||||||
|
I18N.Add(GenerateIllegalDysonShell2, "Generate illegal dyson shells for all layers without nodes and shells", "为所有没有节点和壳的层级生成仙术戴森壳");
|
||||||
|
I18N.Add(KeepMaxProductionShellsAndRemoveOthers, "Keep max production shells and remove others", "保留发电量最高的戴森壳并移除其他戴森壳");
|
||||||
|
I18N.Add(DuplicateShellsFromThatWithHighestProduction, "Duplicate shells from that with highest production", "从发电量最高的壳复制戴森壳");
|
||||||
|
I18N.Add(GenerateIllegalDysonShellQuickly, "Generate illegal dyson shell quickly", "快速生成仙术戴森壳");
|
||||||
|
I18N.Add(ShellsCount, "Shells count", "壳面数量");
|
||||||
|
I18N.Add(WARNINGThisOperationCanBeVerySlowContinue, "WARNING: This operation can be very slow, continue?", "警告:此操作可能非常慢,继续吗?");
|
||||||
|
I18N.Add(WARNINGThisOperationIsDANGEROUSContinue, "WARNING: This operation is DANGEROUS, continue?", "警告:此操作非常危险,继续吗?");
|
||||||
|
I18N.Add(TerraformWithoutEnoughSoilPiles, "Terraform without enough soil piles", "沙土不够时依然可以整改地形");
|
||||||
|
I18N.Add(InstantHandCraft, "Instant hand-craft", "快速手动制造");
|
||||||
|
I18N.Add(InstantTeleportLikeThatInSandboxMode, "Instant teleport (like that in Sandbox mode)", "快速传送(和沙盒模式一样)");
|
||||||
|
I18N.Add(MechaAndDronesFleetsInvicible, "Mecha and Drones/Fleets invicible", "机甲和战斗无人机无敌");
|
||||||
|
I18N.Add(BuildingsInvicible, "Buildings invincible", "建筑无敌");
|
||||||
|
I18N.Add(EnableWarpWithoutSpaceWarpers, "Enable warp without space warpers", "无需空间翘曲器即可曲速飞行");
|
||||||
|
I18N.Add(TeleportToOuterSpace, "Teleport to outer space", "传送到外太空");
|
||||||
|
I18N.Add(TeleportToSelectedAstronomical, "Teleport to selected astronomical", "传送到选中的天体");
|
||||||
|
I18N.Add(Ok, "OK", "确定");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection.Emit;
|
using System.Reflection.Emit;
|
||||||
@@ -55,16 +55,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
|||||||
canOverride = true
|
canOverride = true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
I18N.Add("KEYToggleNoCondition", "[CE] Toggle No Condition Build", "[CE] 切换无条件建造");
|
ImmediateEnabled.SettingChanged += (_, _) => ImmediateBuild.Enable(ImmediateEnabled.Value);
|
||||||
I18N.Add("KEYToggleNoCollision", "[CE] Toggle No Collision", "[CE] 切换无碰撞");
|
|
||||||
I18N.Add("NoConditionOn", "No condition build is enabled!", "无条件建造已开启");
|
|
||||||
I18N.Add("NoConditionOff", "No condition build is disabled!", "无条件建造已关闭");
|
|
||||||
I18N.Add("NoCollisionOn", "No collision is enabled!", "无碰撞已开启");
|
|
||||||
I18N.Add("NoCollisionOff", "No collision is disabled!", "无碰撞已关闭");
|
|
||||||
I18N.Add("Build without condition is enabled!", "!!Build without condition is enabled!!", "!!无条件建造已开启!!");
|
|
||||||
I18N.Add("No collision is enabled!", "!!No collision is enabled!!", "!!无碰撞已开启!!");
|
|
||||||
|
|
||||||
ImmediateEnabled.SettingChanged += (_, _) => ImmediateBuild.Enable(ImmediateEnabled.Value);
|
|
||||||
ArchitectModeEnabled.SettingChanged += (_, _) => ArchitectMode.Enable(ArchitectModeEnabled.Value);
|
ArchitectModeEnabled.SettingChanged += (_, _) => ArchitectMode.Enable(ArchitectModeEnabled.Value);
|
||||||
NoConditionEnabled.SettingChanged += (_, _) => NoConditionBuild.Enable(NoConditionEnabled.Value);
|
NoConditionEnabled.SettingChanged += (_, _) => NoConditionBuild.Enable(NoConditionEnabled.Value);
|
||||||
NoCollisionEnabled.SettingChanged += (_, _) => NoCollisionValueChanged();
|
NoCollisionEnabled.SettingChanged += (_, _) => NoCollisionValueChanged();
|
||||||
|
|||||||
@@ -17,84 +17,6 @@ public static class UIConfigWindow
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("Factory", "Factory", "工厂");
|
|
||||||
I18N.Add("Planet", "Planet", "行星");
|
|
||||||
I18N.Add("Mecha/Combat", "Mecha/Combat", "机甲/战斗");
|
|
||||||
I18N.Add("Cancel", "Cancel", "取消");
|
|
||||||
I18N.Add("OK", "OK", "确定");
|
|
||||||
I18N.Add("Bury all veins", "Bury all veins", "掩埋所有矿脉");
|
|
||||||
I18N.Add("Restore buried veins", "Restore buried veins", "还原所有矿脉");
|
|
||||||
I18N.Add("Reform entire planet", "Reform entire planet", "铺满星球地基");
|
|
||||||
I18N.Add("Revert planet terrain", "Revert planet terrain", "还原星球地形");
|
|
||||||
I18N.Add("Enable Dev Shortcuts", "Enable Dev Shortcuts", "开发模式快捷键");
|
|
||||||
I18N.Add("Disable Abnormal Checks", "Disable Abnormal Checks", "关闭数据异常检查");
|
|
||||||
I18N.Add("Hotkey", "Hotkey", "快捷键");
|
|
||||||
I18N.Add("Unlock Tech with Key-Modifiers", "Unlock Tech with Key-Modifiers", "使用组合键点击解锁科技");
|
|
||||||
I18N.Add("Dev Shortcuts", "Dev Shortcuts", "开发模式快捷键");
|
|
||||||
I18N.Add("Dev Shortcuts Tips",
|
|
||||||
"Caution: Some function may trigger abnormal check!\nNumpad 1: Gets all items and extends bag.\nNumpad 2: Boosts walk speed, gathering speed and mecha energy restoration.\nNumpad 3: Fills planet with foundations and bury all veins.\nNumpad 4: +1 construction drone.\nNumpad 5: Upgrades drone engine tech to full.\nNumpad 6: Unlocks researching tech.\nNumpad 7: Unlocks Drive Engine 1.\nNumpad 8: Unlocks Drive Engine 2 and maximize energy.\nNumpad 9: Unlocks ability to warp.\nNumpad 0: No costs for Logistic Storages' output.\nLCtrl + T: Unlocks all techs (not upgrades).\nLCtrl + Q: Adds 10000 to every metadata.\nLCtrl + W: Enters Sandbox Mode.\nLCtrl + Shift + W: Leaves Sandbox Mode.\nNumpad *: Proliferates items on hand.\nNumpad /: Removes proliferations from items on hand.\nPageDown: Remembers Pose of game camera.\nPageUp: Locks game camera using remembered Pose.",
|
|
||||||
"警告:某些功能可能触发异常检查!\n小键盘1:获得所有物品并扩展背包\n小键盘2:加快行走速度及采集速度,加快能量恢复速度\n小键盘3:将地基铺设整个星球并掩埋所有矿物\n小键盘4:建设机器人 +1\n小键盘5:建设机器人满级\n小键盘6:解锁当前科技\n小键盘7:解锁驱动技术I\n小键盘8:解锁驱动技术II 最大化能量\n小键盘9:机甲曲速解锁\n小键盘0:物流站通过传送带出物品无消耗\n左Ctrl + T:解锁所有非升级科技\n左Ctrl + Q:增加各项元数据10000点\n左Ctrl + W:进入沙盒模式\n左Ctrl + Shift + W:离开沙盒模式\n小键盘乘号 *:给手上物品喷涂增产剂\n小键盘除号 /:清除手上物品的增产剂\nPageDown:记录摄像机当前的Pose\nPageUp:用记录的Pose锁定摄像机");
|
|
||||||
I18N.Add("Unlock Tech with Key-Modifiers Tips",
|
|
||||||
"Click tech on tree while holding:\n Shift: Tech level + 1\n Ctrl: Tech level + 10\n Ctrl + Shift: Tech level + 100\n Alt: Tech level to MAX\n\nNote: all direct prerequisites will be unlocked as well.",
|
|
||||||
"按住以下组合键点击科技树:\n Shift:科技等级+1\n Ctrl:科技等级+10\n Ctrl+Shift:科技等级+100\n Alt:科技等级升到最大\n\n注意:所有直接前置科技也会被解锁");
|
|
||||||
I18N.Add("Remove all metadata consumption records", "Remove all metadata consumption records", "移除所有元数据消耗记录");
|
|
||||||
I18N.Add("Remove metadata consumption record in current game", "Remove metadata consumption record in current game", "移除当前存档的元数据消耗记录");
|
|
||||||
I18N.Add("Clear metadata flag which bans achievements", "Clear metadata flag which bans achievements in current game", "解除当前存档因使用元数据导致的成就限制");
|
|
||||||
I18N.Add("Assign gamesave to current account", "Assign gamesave to current account", "将游戏存档绑定给当前账号");
|
|
||||||
I18N.Add("Finish build immediately", "Finish build immediately", "建造秒完成");
|
|
||||||
I18N.Add("Architect mode", "Architect mode", "建筑师模式");
|
|
||||||
I18N.Add("Build without condition", "Build without condition check", "无条件建造");
|
|
||||||
I18N.Add("No collision", "No collision", "无碰撞");
|
|
||||||
I18N.Add("Belt signal generator", "Belt signal generator", "传送带信号物品生成");
|
|
||||||
I18N.Add("Count proliferators used for raws/intermediates and finished products", "Use proliferators for raws/intermediates and finished products", "原料、中间产物以及成品使用增产剂");
|
|
||||||
I18N.Add("Count proliferators used for raws/intermediates and finished products tips",
|
|
||||||
"Following items use extra products: Titanium Alloy, Prism, Frame Material, Proliferator Mk.II, Proliferator Mk.III, Magnetic Coil, Electric Motor, Electromagnetic Turbine, Super-magnetic Ring, Circuit Board, Thruster, Reinforced Thruster, Plasma Exciter, Particle Broadband, Graviton Lens, Quantum Chip, Annihilation Constraint Sphere, Deuteron Fuel Rod, Space Warper, Dyson Sphere Component, Small Carrier Rocket, Electromagnetic Matrix, Structure Matrix, Information Matrix, Gravity Matrix, Universe Matrix\nFollowing items does not use proliferators: Casimir Crystal, Energy Matrix\nOther items use speed up production.",
|
|
||||||
"以下物品使用额外产出: 钛合金, 棱镜, 框架材料, 增产剂 Mk.II, 增产剂 Mk.III, 磁线圈, 电动机, 电磁涡轮, 超级磁场环, 电路板, 推进器, 加力推进器, 电浆激发器, 粒子宽带, 引力透镜, 量子芯片, 湮灭约束球, 氘核燃料棒, 空间翘曲器, 戴森球组件, 小型运载火箭, 电磁矩阵, 结构矩阵, 信息矩阵, 引力矩阵, 宇宙矩阵\n以下物品不使用增产剂: 卡西米尔晶体, 能量矩阵\n其他物品使用加速生产");
|
|
||||||
I18N.Add("Belt signal alt format", "Belt signal alt format", "传送带信号替换格式");
|
|
||||||
I18N.Add("Belt signal alt format tips",
|
|
||||||
"Belt signal number format alternative format:\n AAAABC by default\n BCAAAA as alternative\nAAAA=generation speed in minutes, B=proliferate points, C=stack count",
|
|
||||||
"传送带信号物品生成数量格式:\n 默认为AAAABC\n 勾选替换为BCAAAA\nAAAA=生成速度,B=增产点数,C=堆叠数量");
|
|
||||||
I18N.Add("Count generations as production in statistics", "Count generations as production in statistics", "统计信息里将生成计算为产物");
|
|
||||||
I18N.Add("Count removals as consumption in statistics", "Count removals as consumption in statistics", "统计信息里将移除计算为消耗");
|
|
||||||
I18N.Add("Count all raws and intermediates in statistics", "Count all raw materials in statistics", "统计信息里计算所有原料和中间产物");
|
|
||||||
I18N.Add("Remove power space limit", "Remove space limit for winds and geothermals", "移除风力发电和地热发电的间距限制");
|
|
||||||
I18N.Add("Boost wind power", "Boost wind power(x100,000)", "提升风力发电(x100,000)");
|
|
||||||
I18N.Add("Boost solar power", "Boost solar power(x100,000)", "提升太阳能发电(x100,000)");
|
|
||||||
I18N.Add("Boost fuel power", "Boost fuel power(x50,000)", "提升燃料发电(x50,000)");
|
|
||||||
I18N.Add("Boost fuel power 2", "(x20,000 for deuteron, x10,000 for antimatter)", "(氘核燃料棒x20,000,反物质燃料棒x10,000)");
|
|
||||||
I18N.Add("Wind Turbines do global power coverage", "Wind Turbines do global power coverage", "风力涡轮机供电覆盖全球");
|
|
||||||
I18N.Add("Boost geothermal power", "Boost geothermal power(x50,000)", "提升地热发电(x50,000)");
|
|
||||||
I18N.Add("Retrieve/Place items from/to remote planets on logistics control panel", "Retrieve/Place items from/to remote planets on logistics control panel", "在物流总控面板上可以从非本地行星取放物品");
|
|
||||||
I18N.Add("Infinite Natural Resources", "Infinite natural resources", "自然资源采集不消耗");
|
|
||||||
I18N.Add("Fast Mining", "Fast mining", "高速采集");
|
|
||||||
I18N.Add("Pump Anywhere", "Pump anywhere", "平地抽水");
|
|
||||||
I18N.Add("Skip bullet period", "Skip bullet period", "跳过子弹阶段");
|
|
||||||
I18N.Add("Fire all bullets at once", "Fire all bullets at once", "一次弹射所有太阳帆");
|
|
||||||
I18N.Add("Skip absorption period", "Skip absorption period", "跳过吸收阶段");
|
|
||||||
I18N.Add("Quick absorb", "Quick absorb", "快速吸收");
|
|
||||||
I18N.Add("Eject anyway", "Eject anyway", "全球弹射");
|
|
||||||
I18N.Add("Overclock Ejectors", "Overclock Ejectors (10x)", "高速弹射器(10倍射速)");
|
|
||||||
I18N.Add("Overclock Silos", "Overclock Silos (10x)", "高速发射井(10倍射速)");
|
|
||||||
I18N.Add("Unlock Dyson Sphere max orbit radius", "Unlock Dyson Sphere max orbit radius", "解锁戴森球最大轨道半径");
|
|
||||||
I18N.Add("Complete Dyson Sphere shells instantly", "Complete Dyson Sphere shells instantly", "立即完成戴森壳建造");
|
|
||||||
I18N.Add("Remove all frames on Dyson Sphere", "Remove all frames on Dyson Sphere", "移除戴森球上的所有框架");
|
|
||||||
I18N.Add("Generate illegal dyson shell", "Generate an illegal dyson shell (!!1st shell layer will be replaced!!)", "生成单层仙术戴森壳(!!会先删除第一层戴森壳!!)");
|
|
||||||
I18N.Add("Generate illegal dyson shell 2", "Generate illegal dyson shells for all layers without nodes and shells", "为所有没有节点和壳的层级生成仙术戴森壳");
|
|
||||||
I18N.Add("Keep max production shells and remove others", "Keep max production shells and remove others", "保留发电量最高的戴森壳并移除其他戴森壳");
|
|
||||||
I18N.Add("Duplicate shells from that with highest production", "Duplicate shells from that with highest production", "从发电量最高的壳复制戴森壳");
|
|
||||||
I18N.Add("Generate illegal dyson shell quickly", "Generate illegal dyson shell quickly", "快速生成仙术戴森壳");
|
|
||||||
I18N.Add("Shells count", "Shells count", "壳面数量");
|
|
||||||
I18N.Add("WARNING: This operation can be very slow, continue?", "WARNING: This operation can be very slow, continue?", "警告:此操作可能非常慢,继续吗?");
|
|
||||||
I18N.Add("WARNING: This operation is DANGEROUS, continue?", "WARNING: This operation is DANGEROUS, continue?", "警告:此操作非常危险,继续吗?");
|
|
||||||
I18N.Add("Terraform without enough soil piles", "Terraform without enough soil piles", "沙土不够时依然可以整改地形");
|
|
||||||
I18N.Add("Instant hand-craft", "Instant hand-craft", "快速手动制造");
|
|
||||||
I18N.Add("Instant teleport (like that in Sandbox mode)", "Instant teleport (like that in Sandbox mode)", "快速传送(和沙盒模式一样)");
|
|
||||||
I18N.Add("Mecha and Drones/Fleets invicible", "Mecha and Drones/Fleets invicible", "机甲和战斗无人机无敌");
|
|
||||||
I18N.Add("Buildings invicible", "Buildings invincible", "建筑无敌");
|
|
||||||
I18N.Add("Enable warp without space warpers", "Enable warp without space warpers", "无需空间翘曲器即可曲速飞行");
|
|
||||||
I18N.Add("Teleport to outer space", "Teleport to outer space", "传送到外太空");
|
|
||||||
I18N.Add("Teleport to selected astronomical", "Teleport to selected astronomical", "传送到选中的天体");
|
|
||||||
I18N.Apply();
|
|
||||||
MyConfigWindow.OnUICreated += CreateUI;
|
MyConfigWindow.OnUICreated += CreateUI;
|
||||||
MyConfigWindow.OnUpdateUI += UpdateUI;
|
MyConfigWindow.OnUpdateUI += UpdateUI;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,11 +17,15 @@ public static class I18N
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static Action OnInitialized;
|
public static Action OnInitialized;
|
||||||
|
|
||||||
|
private static bool _initCalled;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Registers the localization hooks with Harmony.
|
/// Registers the localization hooks with Harmony.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
|
if (_initCalled) return;
|
||||||
|
_initCalled = true;
|
||||||
Harmony.CreateAndPatchAll(typeof(I18N));
|
Harmony.CreateAndPatchAll(typeof(I18N));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,422 @@
|
|||||||
|
using UXAssist.Common;
|
||||||
|
|
||||||
|
namespace UXAssist.Common;
|
||||||
|
|
||||||
|
public static class I18NKeys
|
||||||
|
{
|
||||||
|
public const string DoYouWantToUseMetadataToBuyoutTheFollowingTech = "Do you want to use metadata to buyout the following tech?";
|
||||||
|
public const string TheFollowingIsTheRequiredMetadataForBuyout = "The following is the required metadata for buyout:";
|
||||||
|
public const string BatchBuyoutTech = "Batch buyout tech";
|
||||||
|
public const string EnableAutoConstruct = "Enable auto-construct";
|
||||||
|
public const string DisableAutoConstruct = "Disable auto-construct";
|
||||||
|
public const string BuildingsToConstruct0 = "Buildings to construct: {0}";
|
||||||
|
public const string EnableAutoCruise = "Enable auto-cruise";
|
||||||
|
public const string DisableAutoCruise = "Disable auto-cruise";
|
||||||
|
public const string KEYOpenUXAssistConfigWindow = "KEYOpenUXAssistConfigWindow";
|
||||||
|
public const string UXAssistConfig = "UXAssist Config";
|
||||||
|
public const string NoRecentMilkywayUploadResults = "No recent milkyway upload results";
|
||||||
|
public const string Success = "Success";
|
||||||
|
public const string Failure = "Failure: ";
|
||||||
|
public const string ShowTopPlayers = "Show top players";
|
||||||
|
public const string HideTopPlayers = "Hide top players";
|
||||||
|
public const string HighYield = "High yield";
|
||||||
|
public const string Perfect = "Perfect";
|
||||||
|
public const string UnionResults = "Union results";
|
||||||
|
public const string All6BasicOres = "All 6 Basic Ores";
|
||||||
|
public const string ShowOriginalName = "Show original name";
|
||||||
|
public const string ShowDistance = "Show distance";
|
||||||
|
public const string ShowPlanetCount = "Show planet count";
|
||||||
|
public const string ShowAllInformation = "Show all information";
|
||||||
|
public const string UXAssistNoNodeToFill = "[UXAssist] No node to fill";
|
||||||
|
public const string KEYToggleDoNotRenderEntities = "KEYToggleDoNotRenderEntities";
|
||||||
|
public const string KEYOffgridForPaths = "KEYOffgridForPaths";
|
||||||
|
public const string KEYCutConveyorBelt = "KEYCutConveyorBelt";
|
||||||
|
public const string KEYDismantleBlueprintSelection = "KEYDismantleBlueprintSelection";
|
||||||
|
public const string KEYSelectAllBuildingsInBlueprintCopy = "KEYSelectAllBuildingsInBlueprintCopy";
|
||||||
|
public const string KEYUPSSpeedDown = "KEYUPSSpeedDown";
|
||||||
|
public const string KEYUPSSpeedUp = "KEYUPSSpeedUp";
|
||||||
|
public const string LogicalFrameRate0X = "Logical frame rate: {0}x";
|
||||||
|
public const string KEYShowAllStarsName = "KEYShowAllStarsName";
|
||||||
|
public const string KEYToggleAllStarsName = "KEYToggleAllStarsName";
|
||||||
|
public const string KEYToggleAutoCruise = "KEYToggleAutoCruise";
|
||||||
|
public const string AutoCruiseOn = "AutoCruiseOn";
|
||||||
|
public const string AutoCruiseOff = "AutoCruiseOff";
|
||||||
|
public const string SorterCargoStackingPrefix = "Sorter cargo stacking prefix";
|
||||||
|
public const string UXAssist = "UXAssist";
|
||||||
|
public const string General = "General";
|
||||||
|
public const string Factory = "Factory";
|
||||||
|
public const string Logistics = "Logistics";
|
||||||
|
public const string PlayerMecha = "Player/Mecha";
|
||||||
|
public const string DysonSphere = "Dyson Sphere";
|
||||||
|
public const string TechCombatUI = "Tech/Combat/UI";
|
||||||
|
public const string EnableGameWindowResize = "Enable game window resize";
|
||||||
|
public const string RemeberWindowPositionAndSizeOnLastExit = "Remeber window position and size on last exit";
|
||||||
|
public const string BetterAutoSaveMechanism = "Better auto-save mechanism";
|
||||||
|
public const string BetterAutoSaveMechanismTips = "Better auto-save mechanism tips";
|
||||||
|
public const string ConvertOldSavesToCombatModeOnLoading = "Convert old saves to Combat Mode on loading";
|
||||||
|
public const string ProfileBasedSaveFolder = "Profile-based save folder";
|
||||||
|
public const string ProfileBasedSaveFolderTips = "Profile-based save folder tips";
|
||||||
|
public const string ProfileBasedOption = "Profile-based option";
|
||||||
|
public const string ProfileBasedOptionTips = "Profile-based option tips";
|
||||||
|
public const string DefaultProfileName = "Default profile name";
|
||||||
|
public const string LogicalFrameRate = "Logical Frame Rate";
|
||||||
|
public const string Reset = "Reset";
|
||||||
|
public const string ProcessPriority = "Process priority";
|
||||||
|
public const string High = "High";
|
||||||
|
public const string AboveNormal = "Above Normal";
|
||||||
|
public const string Normal = "Normal";
|
||||||
|
public const string BelowNormal = "Below Normal";
|
||||||
|
public const string Idle = "Idle";
|
||||||
|
public const string ShowRecentMilkywayUploadResults = "Show recent milkyway upload results";
|
||||||
|
public const string UnlimitedInteractiveRange = "Unlimited interactive range";
|
||||||
|
public const string NightLight = "Night Light";
|
||||||
|
public const string AngleX = "Angle X:";
|
||||||
|
public const string RemoveSomeBuildConditions = "Remove some build conditions";
|
||||||
|
public const string RemoveBuildRangeLimit = "Remove build range limit";
|
||||||
|
public const string LargerAreaForUpgradeAndDismantle = "Larger area for upgrade and dismantle";
|
||||||
|
public const string LargerAreaForTerraform = "Larger area for terraform";
|
||||||
|
public const string OffGridBuildingAndSteppedRotation = "Off-grid building and stepped rotation";
|
||||||
|
public const string EnablePlayerActionsInGlobeView = "Enable player actions in globe view";
|
||||||
|
public const string HideTipsForSoilPilesChanges = "Hide tips for soil piles changes";
|
||||||
|
public const string EnhancedCountControlForHandMake = "Enhanced count control for hand-make";
|
||||||
|
public const string EnhancedCountControlForHandMakeTips = "Enhanced count control for hand-make tips";
|
||||||
|
public const string QuickBuildAndDismantleStackingLabs = "Quick build and dismantle stacking labs";
|
||||||
|
public const string FastFillInToAndTakeOutFromTanks = "Fast fill in to and take out from tanks";
|
||||||
|
public const string SpeedRatio = "Speed Ratio";
|
||||||
|
public const string CutConveyorBeltWithShortcutKey = "Cut conveyor belt (with shortcut key)";
|
||||||
|
public const string ProtectVeinsFromExhaustion = "Protect veins from exhaustion";
|
||||||
|
public const string ProtectVeinsFromExhaustionTips = "Protect veins from exhaustion tips";
|
||||||
|
public const string DoNotRenderFactoryEntities = "Do not render factory entities";
|
||||||
|
public const string DragBuildingPowerPolesInMaximumConnectionRange = "Drag building power poles in maximum connection range";
|
||||||
|
public const string BuildTeslaTowerAndWirelessPowerTowerAlternately = "Build Tesla Tower and Wireless Power Tower alternately";
|
||||||
|
public const string AutoConstructButton = "Auto-construct button";
|
||||||
|
public const string BeltSignalsForBuyOutDarkFogItemsAutomatically = "Belt signals for buy out dark fog items automatically";
|
||||||
|
public const string MemoryUnit = "Memory Unit";
|
||||||
|
public const string EnergyFragment = "Energy Fragment";
|
||||||
|
public const string SiliconNeuron = "Silicon Neuron";
|
||||||
|
public const string NegentropySingularity = "Negentropy Singularity";
|
||||||
|
public const string MatterReassembler = "Matter Reassembler";
|
||||||
|
public const string VirtualParticle = "Virtual Particle";
|
||||||
|
public const string CtrlShiftClickToPickItemsFromWholeBelts = "Ctrl+Shift+Click to pick items from whole belts";
|
||||||
|
public const string IncludeBranchesOfBelts = "Include branches of belts";
|
||||||
|
public const string IncludeConnectedInserters = "Include connected inserters";
|
||||||
|
public const string AutoConfigLogisticStations = "Auto-config logistic stations";
|
||||||
|
public const string LimitAutoReplenishCountToValuesBelow = "Limit auto-replenish count to values below";
|
||||||
|
public const string Dispenser = "Dispenser";
|
||||||
|
public const string BattlefieldAnalysisBase = "Battlefield Analysis Base";
|
||||||
|
public const string PLS = "PLS";
|
||||||
|
public const string ILS = "ILS";
|
||||||
|
public const string AdvancedMiningMachine = "Advanced Mining Machine";
|
||||||
|
public const string SetDefaultRemoteLogicToStorage = "Set default remote logic to storage";
|
||||||
|
public const string MaxChargingPower = "Max. Charging Power";
|
||||||
|
public const string CountOfBotsFilled = "Count of Bots filled";
|
||||||
|
public const string DroneTransportRange = "Drone transport range";
|
||||||
|
public const string MinLoadOfDrones = "Min. Load of Drones";
|
||||||
|
public const string OutgoingIntegrationCount = "Outgoing integration count";
|
||||||
|
public const string CountOfDronesFilled = "Count of Drones filled";
|
||||||
|
public const string VesselTransportRange = "Vessel transport range";
|
||||||
|
public const string WarpDistance = "Warp distance";
|
||||||
|
public const string MinLoadOfVessels = "Min. Load of Vessels";
|
||||||
|
public const string IncludeOrbitalCollector = "Include Orbital Collector";
|
||||||
|
public const string WarpersRequired = "Warpers required";
|
||||||
|
public const string CountOfVesselsFilled = "Count of Vessels filled";
|
||||||
|
public const string CollectingSpeed = "Collecting Speed";
|
||||||
|
public const string MinPilerValue = "Min. Piler Value";
|
||||||
|
public const string UseTechMaxForPiler = "Use tech max for piler";
|
||||||
|
public const string Cancel = "Cancel";
|
||||||
|
public const string OK = "OK";
|
||||||
|
public const string ApplyConfigToPlanet = "Apply config to planet";
|
||||||
|
public const string ApplyAllConfigToPlanet = "Apply all config to planet";
|
||||||
|
public const string ApplyConfigToPlanetTips = "Apply config to planet tips";
|
||||||
|
public const string ApplyAllConfigToPlanetTips = "Apply all config to planet tips";
|
||||||
|
public const string AllowOverflowForLogisticStationsAndAdvancedMiningMachines = "Allow overflow for Logistic Stations and Advanced Mining Machines";
|
||||||
|
public const string IncreaseMaximumPowerUsageInLogisticStationsAndAdvancedMiningMachines = "Increase maximum power usage in Logistic Stations and Advanced Mining Machines";
|
||||||
|
public const string EnhanceControlForLogisticStorageCapacities = "Enhance control for logistic storage capacities";
|
||||||
|
public const string EnhanceControlForLogisticStorageCapacitiesTips = "Enhance control for logistic storage capacities tips";
|
||||||
|
public const string LogisticsControlPanelImprovement = "Logistics Control Panel Improvement";
|
||||||
|
public const string LogisticsControlPanelImprovementTips = "Logistics Control Panel Improvement tips";
|
||||||
|
public const string RealTimeLogisticStationsInfoPanel = "Real-time logistic stations info panel";
|
||||||
|
public const string ShowStatusBarsForStorageItems = "Show status bars for storage items";
|
||||||
|
public const string TweakBuildingBuffers = "Tweak building buffers";
|
||||||
|
public const string AssemblerBufferTimeMultiplierInSeconds = "Assembler buffer time multiplier(in seconds)";
|
||||||
|
public const string AssemblerBufferMinimumMultiplier = "Assembler buffer minimum multiplier";
|
||||||
|
public const string BufferCountForAssemblingInLabs = "Buffer count for assembling in labs";
|
||||||
|
public const string ExtraBufferCountForSelfEvolutionLabs = "Extra buffer count for Self-evolution Labs";
|
||||||
|
public const string BufferCountForResearchingInLabs = "Buffer count for researching in labs";
|
||||||
|
public const string RayReceiverGravitonLensBufferCount = "Ray Receiver Graviton Lens buffer count";
|
||||||
|
public const string EjectorSolarSailsBufferCount = "Ejector Solar Sails buffer count";
|
||||||
|
public const string SiloRocketsBufferCount = "Silo Rockets buffer count";
|
||||||
|
public const string ShortcutKeysForBlueprintCopyMode = "Shortcut keys for Blueprint Copy mode";
|
||||||
|
public const string ShortcutKeysForBlueprintCopyModeTips = "Shortcut keys for Blueprint Copy mode tips";
|
||||||
|
public const string ShortcutKeysForShowingStarsName = "Shortcut keys for showing stars' name";
|
||||||
|
public const string AutoNavigationOnSailings = "Auto navigation on sailings";
|
||||||
|
public const string AutoBoost = "Auto boost";
|
||||||
|
public const string DistanceToUseWarp = "Distance to use warp";
|
||||||
|
public const string TreatStackItemsAsSingleInMonitorComponents = "Treat stack items as single in monitor components";
|
||||||
|
public const string InitializeThisPlanet = "Initialize This Planet";
|
||||||
|
public const string InitializeThisPlanetConfirm = "Initialize This Planet Confirm";
|
||||||
|
public const string ReturnBuildingsToPlayerWhenInitializingPlanet = "Return buildings to player when initializing planet";
|
||||||
|
public const string ReturnLogisticStorageItemsToPlayerWhenInitializingPlanet = "Return logistic storage items to player when initializing planet";
|
||||||
|
public const string ReturnBeltAndFactoryItemsToPlayerWhenInitializingPlanet = "Return belt and factory items to player when initializing planet";
|
||||||
|
public const string DismantleAllBuildings = "Dismantle All Buildings";
|
||||||
|
public const string DismantleAllBuildingsConfirm = "Dismantle All Buildings Confirm";
|
||||||
|
public const string QuickBuildOrbitalCollectors = "Quick build Orbital Collectors";
|
||||||
|
public const string MaximumCountToBuild = "Maximum count to build";
|
||||||
|
public const string Max = "max";
|
||||||
|
public const string StopEjectorsWhenAvailableNodesAreAllFilledUp = "Stop ejectors when available nodes are all filled up";
|
||||||
|
public const string ConstructOnlyStructurePointsButFrames = "Construct only structure points but frames";
|
||||||
|
public const string InitializeDysonSphere = "Initialize Dyson Sphere";
|
||||||
|
public const string InitializeDysonSphereConfirm = "Initialize Dyson Sphere Confirm";
|
||||||
|
public const string ClickToDismantleSelectedLayer = "Click to dismantle selected layer";
|
||||||
|
public const string DismantleSelectedLayer = "Dismantle selected layer";
|
||||||
|
public const string DismantleSelectedLayerConfirm = "Dismantle selected layer Confirm";
|
||||||
|
public const string AutoFastBuildSpeedMultiplier = "Auto Fast Build Speed Multiplier";
|
||||||
|
public const string RestoreUpgradesOfSorterCargoStackingOnPanel = "Restore upgrades of \"Sorter Cargo Stacking\" on panel";
|
||||||
|
public const string DisableBattleRelatedTechsInPeaceMode = "Disable battle-related techs in Peace mode";
|
||||||
|
public const string BuyOutTechsWithTheirPrerequisites = "Buy out techs with their prerequisites";
|
||||||
|
public const string SetSorterCargoStackingToUnresearchedState = "Set \"Sorter Cargo Stacking\" to unresearched state";
|
||||||
|
public const string UnlockAllTechsWithMetadata = "Unlock all techs with metadata";
|
||||||
|
public const string OpenDarkFogCommunicator = "Open Dark Fog Communicator";
|
||||||
|
public const string PlanetVeinUtilization = "Planet vein utilization";
|
||||||
|
public const string Metadata = "Metadata";
|
||||||
|
public const string InsufficientMetadata = "Insufficient metadata";
|
||||||
|
public const string FirstTimeUsingMetadataDescription = "First time using metadata description";
|
||||||
|
public const string FirstTimeUsingMetadataTitle = "First time using metadata";
|
||||||
|
public const string TechLevelPrefix = "Tech level prefix";
|
||||||
|
public const string Ok = "OK";
|
||||||
|
public const string AutoSaveEntry = "Auto-save entry";
|
||||||
|
|
||||||
|
public static void Register()
|
||||||
|
{
|
||||||
|
I18N.Add(DoYouWantToUseMetadataToBuyoutTheFollowingTech, "Do you want to use metadata to buyout the following tech?", "要使用元数据买断以下科技吗?");
|
||||||
|
I18N.Add(TheFollowingIsTheRequiredMetadataForBuyout, "The following is the required metadata for buyout:", "以下是买断所需元数据:");
|
||||||
|
I18N.Add(BatchBuyoutTech, "Batch buyout tech", "批量买断科技");
|
||||||
|
I18N.Add(EnableAutoConstruct, "Enable auto-construct", "启用自动建造");
|
||||||
|
I18N.Add(DisableAutoConstruct, "Disable auto-construct", "禁用自动建造");
|
||||||
|
I18N.Add(BuildingsToConstruct0, "Buildings to construct: {0}", "待建造数量: {0}");
|
||||||
|
I18N.Add(EnableAutoCruise, "Enable auto-cruise", "启用自动巡航");
|
||||||
|
I18N.Add(DisableAutoCruise, "Disable auto-cruise", "禁用自动巡航");
|
||||||
|
I18N.Add(KEYOpenUXAssistConfigWindow, "[UXA] Open UXAssist Config Window", "[UXA] 打开UX助手设置面板");
|
||||||
|
I18N.Add(UXAssistConfig, "UXAssist Config", "UX助手设置");
|
||||||
|
I18N.Add(NoRecentMilkywayUploadResults, "No recent milkyway upload results", "没有最近的银河系发电数据上传结果");
|
||||||
|
I18N.Add(Success, "Success", "成功");
|
||||||
|
I18N.Add(Failure, "Failure: ", "失败: ");
|
||||||
|
I18N.Add(ShowTopPlayers, "Show top players", "显示玩家排行榜");
|
||||||
|
I18N.Add(HideTopPlayers, "Hide top players", "隐藏玩家排行榜");
|
||||||
|
I18N.Add(HighYield, "High yield", "高产");
|
||||||
|
I18N.Add(Perfect, "Perfect", "完美");
|
||||||
|
I18N.Add(UnionResults, "Union results", "结果取并集");
|
||||||
|
I18N.Add(All6BasicOres, "All 6 Basic Ores", "六种基础矿物齐全");
|
||||||
|
I18N.Add(ShowOriginalName, "Show original name", "显示原始名称");
|
||||||
|
I18N.Add(ShowDistance, "Show distance", "显示距离");
|
||||||
|
I18N.Add(ShowPlanetCount, "Show planet count", "显示行星数");
|
||||||
|
I18N.Add(ShowAllInformation, "Show all information", "显示全部信息");
|
||||||
|
I18N.Add(UXAssistNoNodeToFill, "[UXAssist] No node to fill", "[UXAssist] 无可建造节点");
|
||||||
|
I18N.Add(KEYToggleDoNotRenderEntities, "[UXA] Toggle Do Not Render Factory Entities", "[UXA] 切换不渲染工厂建筑实体");
|
||||||
|
I18N.Add(KEYOffgridForPaths, "[UXA] Build belts offgrid", "[UXA] 脱离网格建造传送带");
|
||||||
|
I18N.Add(KEYCutConveyorBelt, "[UXA] Cut conveyor belt", "[UXA] 切割传送带");
|
||||||
|
I18N.Add(KEYDismantleBlueprintSelection, "[UXA] Dismantle blueprint selected buildings", "[UXA] 拆除蓝图选中的建筑");
|
||||||
|
I18N.Add(KEYSelectAllBuildingsInBlueprintCopy, "[UXA] Select all buildings in Blueprint Copy Mode", "[UXA] 蓝图复制时选择所有建筑");
|
||||||
|
I18N.Add(KEYUPSSpeedDown, "[UXA] Decrease logical frame rate", "[UXA] 降低逻辑帧率");
|
||||||
|
I18N.Add(KEYUPSSpeedUp, "[UXA] Increase logical frame rate", "[UXA] 提升逻辑帧率");
|
||||||
|
I18N.Add(LogicalFrameRate0X, "[UXA] Logical frame rate: {0}x", "[UXA] 逻辑帧速率: {0}x");
|
||||||
|
I18N.Add(KEYShowAllStarsName, "[UXA] Keep pressing to show all Stars' name", "[UXA] 按住显示所有星系名称");
|
||||||
|
I18N.Add(KEYToggleAllStarsName, "[UXA] Toggle display of all Stars' name", "[UXA] 切换所有星系名称显示状态");
|
||||||
|
I18N.Add(KEYToggleAutoCruise, "[UXA] Toggle auto-cruise", "[UXA] 切换自动巡航");
|
||||||
|
I18N.Add(AutoCruiseOn, "Auto-cruise enabled", "已启用自动巡航");
|
||||||
|
I18N.Add(AutoCruiseOff, "Auto-cruise disabled", "已禁用自动巡航");
|
||||||
|
I18N.Add(SorterCargoStackingPrefix, "Sorter Mk.III cargo stacking : ", "极速分拣器每次可运送 ");
|
||||||
|
I18N.Add(UXAssist, "UXAssist", "UX助手");
|
||||||
|
I18N.Add(General, "General", "常规");
|
||||||
|
I18N.Add(Factory, "Factory", "工厂");
|
||||||
|
I18N.Add(Logistics, "Logistics", "物流");
|
||||||
|
I18N.Add(PlayerMecha, "Player/Mecha", "玩家/机甲");
|
||||||
|
I18N.Add(DysonSphere, "Dyson Sphere", "戴森球");
|
||||||
|
I18N.Add(TechCombatUI, "Tech/Combat/UI", "科研/战斗/UI");
|
||||||
|
I18N.Add(EnableGameWindowResize, "Enable game window resize (maximum box and thick frame)", "可调整游戏窗口大小(可最大化和拖动边框)");
|
||||||
|
I18N.Add(RemeberWindowPositionAndSizeOnLastExit, "Remeber window position and size on last exit", "记住上次退出时的窗口位置和大小");
|
||||||
|
I18N.Add(BetterAutoSaveMechanism, "Better auto-save mechanism", "更好的自动存档机制");
|
||||||
|
I18N.Add(BetterAutoSaveMechanismTips, "Auto saves are stored in 'Save\\AutoSaves' folder, filenames are combined with cluster address and date-time", "自动存档会以星区地址和日期时间组合为文件名存储在'Save\\AutoSaves'文件夹中");
|
||||||
|
I18N.Add(ConvertOldSavesToCombatModeOnLoading, "Convert old saves to Combat Mode on loading (Use settings in new game panel)", "读取旧档时转为战斗模式(使用新游戏面板的战斗难度设置)");
|
||||||
|
I18N.Add(ProfileBasedSaveFolder, "Mod manager profile based save folder", "基于mod管理器配置档案名的存档文件夹");
|
||||||
|
I18N.Add(ProfileBasedSaveFolderTips, """
|
||||||
|
Save files are stored in 'Save\<ProfileName>' folder.
|
||||||
|
Will use original save location if matching default profile name
|
||||||
|
""", """
|
||||||
|
存档文件会存储在'Save\<ProfileName>'文件夹中
|
||||||
|
如果匹配默认配置档案名则使用原始存档位置
|
||||||
|
""");
|
||||||
|
I18N.Add(ProfileBasedOption, "Mod manager profile based option", "基于mod管理器配置档案名的选项设置");
|
||||||
|
I18N.Add(ProfileBasedOptionTips, """
|
||||||
|
Options are stored in 'Option\<ProfileName>.xml'.
|
||||||
|
Will use original location if matching default profile name
|
||||||
|
""", """
|
||||||
|
配置选项会存储在'Option\<ProfileName>.xml'里
|
||||||
|
如果匹配默认配置档案名则使用原始位置
|
||||||
|
""");
|
||||||
|
I18N.Add(DefaultProfileName, "Default profile name", "默认配置档案名");
|
||||||
|
I18N.Add(LogicalFrameRate, "Logical Frame Rate", "逻辑帧倍率");
|
||||||
|
I18N.Add(Reset, "Reset", "重置");
|
||||||
|
I18N.Add(ProcessPriority, "Process priority", "进程优先级");
|
||||||
|
I18N.Add(High, "High", "高");
|
||||||
|
I18N.Add(AboveNormal, "Above Normal", "高于正常");
|
||||||
|
I18N.Add(Normal, "Normal", "正常");
|
||||||
|
I18N.Add(BelowNormal, "Below Normal", "低于正常");
|
||||||
|
I18N.Add(Idle, "Idle", "空闲");
|
||||||
|
I18N.Add(ShowRecentMilkywayUploadResults, "Show recent milkyway upload results", "显示最近的银河系发电数据上传结果");
|
||||||
|
I18N.Add(UnlimitedInteractiveRange, "Unlimited interactive range", "无限交互距离");
|
||||||
|
I18N.Add(NightLight, "Sunlight at night", "夜间日光灯");
|
||||||
|
I18N.Add(AngleX, "Angle X:", "入射角度X:");
|
||||||
|
I18N.Add(RemoveSomeBuildConditions, "Remove some build conditions", "移除部分不影响游戏逻辑的建造条件");
|
||||||
|
I18N.Add(RemoveBuildRangeLimit, "Remove build count and range limit", "移除建造数量和距离限制");
|
||||||
|
I18N.Add(LargerAreaForUpgradeAndDismantle, "Larger area for upgrade and dismantle", "范围升级和拆除的最大区域扩大");
|
||||||
|
I18N.Add(LargerAreaForTerraform, "Larger area for terraform", "范围铺设地基的最大区域扩大");
|
||||||
|
I18N.Add(OffGridBuildingAndSteppedRotation, "Off-grid building and stepped rotation (Hold Shift)", "脱离网格建造以及小角度旋转(按住Shift)");
|
||||||
|
I18N.Add(EnablePlayerActionsInGlobeView, "Enable player actions in globe view", "在行星视图中允许玩家操作");
|
||||||
|
I18N.Add(HideTipsForSoilPilesChanges, "Hide tips for soil piles changes", "隐藏沙土数量变动的提示");
|
||||||
|
I18N.Add(EnhancedCountControlForHandMake, "Enhanced count control for hand-make", "手动制造物品的数量控制改进");
|
||||||
|
I18N.Add(EnhancedCountControlForHandMakeTips, """
|
||||||
|
Maximum count is increased to 1000.
|
||||||
|
Hold Ctrl/Shift/Alt to change the count rapidly.
|
||||||
|
""", """
|
||||||
|
最大数量提升至1000
|
||||||
|
按住Ctrl/Shift/Alt可快速改变数量
|
||||||
|
""");
|
||||||
|
I18N.Add(QuickBuildAndDismantleStackingLabs, "Quick build and dismantle stacking labs/storages/tanks(hold shift)", "快速建造和拆除堆叠研究站/储物仓/储液罐(按住shift)");
|
||||||
|
I18N.Add(FastFillInToAndTakeOutFromTanks, "Fast fill in to and take out from tanks", "储液罐快速注入和抽取液体");
|
||||||
|
I18N.Add(SpeedRatio, "Speed Ratio", "速度倍率");
|
||||||
|
I18N.Add(CutConveyorBeltWithShortcutKey, "Cut conveyor belt (with shortcut key)", "切割传送带(使用快捷键)");
|
||||||
|
I18N.Add(ProtectVeinsFromExhaustion, "Protect veins from exhaustion", "保护矿脉不会耗尽");
|
||||||
|
I18N.Add(ProtectVeinsFromExhaustionTips, """
|
||||||
|
By default, the vein amount is protected at 100, and oil speed is protected at 1.0/s, you can set them yourself in config file.
|
||||||
|
When reach the protection value, veins/oils steeps will not be mined/extracted any longer.
|
||||||
|
Close this function to resume mining and pumping, usually when you have enough level on `Veins Utilization`
|
||||||
|
""", """
|
||||||
|
默认矿脉数量保护于剩余100,采油速保护于速度1.0/s,你可以在配置文件中自行设置。
|
||||||
|
当达到保护值时,矿脉和油井将不再被开采。
|
||||||
|
关闭此功能以恢复开采,一般是当你在`矿物利用`上有足够的等级时。
|
||||||
|
|
||||||
|
""");
|
||||||
|
I18N.Add(DoNotRenderFactoryEntities, "Do not render factory entities (except belts and sorters)", "不渲染工厂建筑实体(除了传送带和分拣器)");
|
||||||
|
I18N.Add(DragBuildingPowerPolesInMaximumConnectionRange, "Drag building power poles in maximum connection range", "拖动建造电线杆时自动使用最大连接距离间隔");
|
||||||
|
I18N.Add(BuildTeslaTowerAndWirelessPowerTowerAlternately, "Build Tesla Tower and Wireless Power Tower alternately", "交替建造电力感应塔和无线输电塔");
|
||||||
|
I18N.Add(AutoConstructButton, "Auto-construct button", "自动建造按钮");
|
||||||
|
I18N.Add(BeltSignalsForBuyOutDarkFogItemsAutomatically, "Belt signals for buy out dark fog items automatically", "用于自动购买黑雾物品的传送带信号");
|
||||||
|
I18N.Add(MemoryUnit, "Memory Unit", "存储单元");
|
||||||
|
I18N.Add(EnergyFragment, "Energy Fragment", "能量碎片");
|
||||||
|
I18N.Add(SiliconNeuron, "Silicon Neuron", "硅基神经元");
|
||||||
|
I18N.Add(NegentropySingularity, "Negentropy Singularity", "负熵奇点");
|
||||||
|
I18N.Add(MatterReassembler, "Matter Reassembler", "物质重组器");
|
||||||
|
I18N.Add(VirtualParticle, "Virtual Particle", "虚粒子");
|
||||||
|
I18N.Add(CtrlShiftClickToPickItemsFromWholeBelts, "Ctrl+Shift+Click to pick items from whole belts", "按住Ctrl+Shift点击从整条传送带抓取物品");
|
||||||
|
I18N.Add(IncludeBranchesOfBelts, "Include branches of belts", "包含传送带分支");
|
||||||
|
I18N.Add(IncludeConnectedInserters, "Include connected inserters (and their connected belts if above is checked)", "包含连接的分拣器(若勾选上面的选项则包含分拣器连接的传送带)");
|
||||||
|
I18N.Add(AutoConfigLogisticStations, "Auto-config logistic stations", "自动配置物流设施");
|
||||||
|
I18N.Add(LimitAutoReplenishCountToValuesBelow, "Limit auto-replenish count to values below", "限制自动补充数量为下面配置的值");
|
||||||
|
I18N.Add(Dispenser, "Logistics Distributor", "物流配送器");
|
||||||
|
I18N.Add(BattlefieldAnalysisBase, "Battlefield Analysis Base", "战场分析基站");
|
||||||
|
I18N.Add(PLS, "PLS", "行星物流站");
|
||||||
|
I18N.Add(ILS, "ILS", "星际物流站");
|
||||||
|
I18N.Add(AdvancedMiningMachine, "Advanced Mining Machine", "大型采矿机");
|
||||||
|
I18N.Add(SetDefaultRemoteLogicToStorage, "Set default remote logic to storage", "设置默认远程逻辑为仓储");
|
||||||
|
I18N.Add(MaxChargingPower, "Max. Charging Power", "最大充能功率");
|
||||||
|
I18N.Add(CountOfBotsFilled, "Count of Bots filled", "填充的配送机数量");
|
||||||
|
I18N.Add(DroneTransportRange, "Drone transport range", "运输机最远路程");
|
||||||
|
I18N.Add(MinLoadOfDrones, "Min. Load of Drones", "运输机起送量");
|
||||||
|
I18N.Add(OutgoingIntegrationCount, "Outgoing integration count", "输出货物集装数量");
|
||||||
|
I18N.Add(CountOfDronesFilled, "Count of Drones filled", "填充的运输机数量");
|
||||||
|
I18N.Add(VesselTransportRange, "Vessel transport range", "运输船最远路程");
|
||||||
|
I18N.Add(WarpDistance, "Warp distance", "曲速启用路程");
|
||||||
|
I18N.Add(MinLoadOfVessels, "Min. Load of Vessels", "运输船起送量");
|
||||||
|
I18N.Add(IncludeOrbitalCollector, "Include Orbital Collector", "包含轨道采集器");
|
||||||
|
I18N.Add(WarpersRequired, "Warpers required", "翘曲器必备");
|
||||||
|
I18N.Add(CountOfVesselsFilled, "Count of Vessels filled", "填充的运输船数量");
|
||||||
|
I18N.Add(CollectingSpeed, "Collecting Speed", "开采速度");
|
||||||
|
I18N.Add(MinPilerValue, "Outgoing integration count", "输出货物集装数量");
|
||||||
|
I18N.Add(UseTechMaxForPiler, "Use tech max for piler", "集装使用科技上限");
|
||||||
|
I18N.Add(Cancel, "Cancel", "取消");
|
||||||
|
I18N.Add(OK, "OK", "确定");
|
||||||
|
I18N.Add(ApplyConfigToPlanet, "Apply", "应用");
|
||||||
|
I18N.Add(ApplyAllConfigToPlanet, "Apply All", "应用全部");
|
||||||
|
I18N.Add(ApplyConfigToPlanetTips, "Apply this value to all facilities of this type on the current planet", "将此项数值应用到当前行星上所有该类型物流设施");
|
||||||
|
I18N.Add(ApplyAllConfigToPlanetTips, "Apply all settings of this category to all facilities of this type on the current planet", "将本分类的所有设置数值应用到当前行星上所有该类型物流设施");
|
||||||
|
I18N.Add(AllowOverflowForLogisticStationsAndAdvancedMiningMachines, "Allow overflow for Logistic Stations and Advanced Mining Machines", "允许物流站和大型采矿机物品溢出");
|
||||||
|
I18N.Add(IncreaseMaximumPowerUsageInLogisticStationsAndAdvancedMiningMachines, "Increase maximum power usage in Logistic Stations and Advanced Mining Machines", "提升物流塔和大型采矿机的最大功耗");
|
||||||
|
I18N.Add(EnhanceControlForLogisticStorageCapacities, "Enhance control for logistic storage capacities", "物流塔存储容量控制改进");
|
||||||
|
I18N.Add(EnhanceControlForLogisticStorageCapacitiesTips, """
|
||||||
|
Logistic storage capacity limits are not scaled on upgrading 'Logistics Carrier Capacity', if they are not set to maximum capacity or already greater than upgraded maximum capacity.
|
||||||
|
Use arrow keys to adjust logistic storage capacities:
|
||||||
|
←/→: -/+10 ↓↑: -/+100
|
||||||
|
""", """
|
||||||
|
当升级'运输机舱扩容'时,不会对各种物流塔的存储容量按比例提升,除非设置为最大允许容量或者已经超过升级后的最大容量。
|
||||||
|
你可以使用方向键微调物流塔存储容量:
|
||||||
|
←→: -/+10 ↓↑: -/+100
|
||||||
|
""");
|
||||||
|
I18N.Add(LogisticsControlPanelImprovement, "Logistics Control Panel Improvement", "物流控制面板改进");
|
||||||
|
I18N.Add(LogisticsControlPanelImprovementTips, """
|
||||||
|
Auto apply filter with item under mouse cursor while opening the panel
|
||||||
|
Quick-set item filter while right-clicking item icons in storage list on the panel
|
||||||
|
""", """
|
||||||
|
打开面板时自动将鼠标指向物品设为筛选条件
|
||||||
|
在控制面板物流塔列表中右键点击物品图标快速设置为筛选条件
|
||||||
|
""");
|
||||||
|
I18N.Add(RealTimeLogisticStationsInfoPanel, "Real-time logistic stations info panel", "物流运输站实时信息面板");
|
||||||
|
I18N.Add(ShowStatusBarsForStorageItems, "Show status bars for storage items", "显示存储物品状态条");
|
||||||
|
I18N.Add(TweakBuildingBuffers, "Tweak building buffers", "调整建筑输入缓冲");
|
||||||
|
I18N.Add(AssemblerBufferTimeMultiplierInSeconds, "Assembler buffer time multiplier(in seconds)", "工厂配方缓冲时间倍率(秒)");
|
||||||
|
I18N.Add(AssemblerBufferMinimumMultiplier, "Assembler buffer minimum multiplier", "工厂配方缓冲最小倍率");
|
||||||
|
I18N.Add(BufferCountForAssemblingInLabs, "Buffer count for assembling in labs", "研究站矩阵合成模式缓存数量");
|
||||||
|
I18N.Add(ExtraBufferCountForSelfEvolutionLabs, "Extra buffer count for Self-evolution Labs", "自演化研究站矩阵额外缓冲数量");
|
||||||
|
I18N.Add(BufferCountForResearchingInLabs, "Buffer count for researching in labs", "研究站科研模式缓存数量");
|
||||||
|
I18N.Add(RayReceiverGravitonLensBufferCount, "Ray Receiver Graviton Lens buffer count", "射线接收器透镜缓冲数量");
|
||||||
|
I18N.Add(EjectorSolarSailsBufferCount, "Ejector Solar Sails buffer count", "弹射器太阳能帆缓冲数量");
|
||||||
|
I18N.Add(SiloRocketsBufferCount, "Silo Rockets buffer count", "发射井火箭缓冲数量");
|
||||||
|
I18N.Add(ShortcutKeysForBlueprintCopyMode, "Shortcut keys for Blueprint Copy mode", "蓝图复制模式快捷键");
|
||||||
|
I18N.Add(ShortcutKeysForBlueprintCopyModeTips, """
|
||||||
|
You can set 2 shortcut keys in Settings panel:
|
||||||
|
1. Select all buildings
|
||||||
|
2. Dismantle selected buildings
|
||||||
|
""", """
|
||||||
|
你可以在设置面板中设置2个快捷键:
|
||||||
|
1. 选择所有建筑
|
||||||
|
2. 拆除选中的建筑
|
||||||
|
""");
|
||||||
|
I18N.Add(ShortcutKeysForShowingStarsName, "Shortcut keys for showing stars' name", "启用显示所有星系名称的快捷键");
|
||||||
|
I18N.Add(AutoNavigationOnSailings, "Auto navigation on sailings", "宇宙航行时自动导航");
|
||||||
|
I18N.Add(AutoBoost, "Auto boost", "自动加速");
|
||||||
|
I18N.Add(DistanceToUseWarp, "Distance to use warp (AU)", "使用曲速的距离(AU)");
|
||||||
|
I18N.Add(TreatStackItemsAsSingleInMonitorComponents, "Treat stack items as single in monitor components", "在流速计中将堆叠物品视为单个物品");
|
||||||
|
I18N.Add(InitializeThisPlanet, "Initialize this planet", "初始化本行星");
|
||||||
|
I18N.Add(InitializeThisPlanetConfirm, "This operation will destroy all buildings and revert terrains on this planet, are you sure?", "此操作将会摧毁本行星上的所有建筑并恢复地形,确定吗?");
|
||||||
|
I18N.Add(ReturnBuildingsToPlayerWhenInitializingPlanet, "Return buildings to player when initializing planet", "初始化行星时将建筑归还给玩家");
|
||||||
|
I18N.Add(ReturnLogisticStorageItemsToPlayerWhenInitializingPlanet, "Return logistic storage items to player when initializing planet", "初始化行星时将物流塔存储的物品归还给玩家");
|
||||||
|
I18N.Add(ReturnBeltAndFactoryItemsToPlayerWhenInitializingPlanet, "Return belt and factory items to player when initializing planet", "初始化行星时将传送带和工厂里的物品归还给玩家");
|
||||||
|
I18N.Add(DismantleAllBuildings, "Dismantle all buildings", "拆除所有建筑");
|
||||||
|
I18N.Add(DismantleAllBuildingsConfirm, "This operation will dismantle all buildings on this planet, are you sure?", "此操作将会拆除本行星上的所有建筑,确定吗?");
|
||||||
|
I18N.Add(QuickBuildOrbitalCollectors, "Quick build Orbital Collectors", "快速建造轨道采集器");
|
||||||
|
I18N.Add(MaximumCountToBuild, "Maximum count to build", "最大建造数量");
|
||||||
|
I18N.Add(Max, "max", "最大");
|
||||||
|
I18N.Add(StopEjectorsWhenAvailableNodesAreAllFilledUp, "Stop ejectors when available nodes are all filled up", "可用节点全部造完时停止弹射");
|
||||||
|
I18N.Add(ConstructOnlyStructurePointsButFrames, "Construct only structure points but frames", "只造节点不造框架");
|
||||||
|
I18N.Add(InitializeDysonSphere, "Initialize Dyson Sphere", "初始化戴森球");
|
||||||
|
I18N.Add(InitializeDysonSphereConfirm, "This operation will destroy all layers on this dyson sphere, are you sure?", "此操作将会摧毁戴森球上的所有层级,确定吗?");
|
||||||
|
I18N.Add(ClickToDismantleSelectedLayer, "Click to dismantle selected layer", "点击拆除对应的戴森壳");
|
||||||
|
I18N.Add(DismantleSelectedLayer, "Dismantle selected layer", "拆除选中的戴森壳");
|
||||||
|
I18N.Add(DismantleSelectedLayerConfirm, "This operation will dismantle selected layer, are you sure?", "此操作将会拆除选中的戴森壳,确定吗?");
|
||||||
|
I18N.Add(AutoFastBuildSpeedMultiplier, "Auto Fast Build Speed Multiplier", "自动快速建造速度倍率");
|
||||||
|
I18N.Add(RestoreUpgradesOfSorterCargoStackingOnPanel, "Restore upgrades of \"Sorter Cargo Stacking\" on panel", "在升级面板上恢复\"分拣器货物叠加\"的升级");
|
||||||
|
I18N.Add(DisableBattleRelatedTechsInPeaceMode, "Disable battle-related techs in Peace mode", "在和平模式下隐藏战斗相关科技");
|
||||||
|
I18N.Add(BuyOutTechsWithTheirPrerequisites, "Buy out techs with their prerequisites", "购买科技也同时购买所有前置科技");
|
||||||
|
I18N.Add(SetSorterCargoStackingToUnresearchedState, "Set \"Sorter Cargo Stacking\" to unresearched state", "将\"分拣器货物叠加\"设为未研究状态");
|
||||||
|
I18N.Add(UnlockAllTechsWithMetadata, "Unlock all techs with metadata", "使用元数据解锁所有科技");
|
||||||
|
I18N.Add(OpenDarkFogCommunicator, "Open Dark Fog Communicator", "打开黑雾通讯器");
|
||||||
|
I18N.Add(PlanetVeinUtilization, "Planet vein utilization in star map", "宇宙视图行星/星系矿脉数量显示");
|
||||||
|
I18N.Add(Metadata, "Metadata", "元数据");
|
||||||
|
I18N.Add(InsufficientMetadata, "Insufficient metadata", "元数据不足");
|
||||||
|
I18N.Add(FirstTimeUsingMetadataDescription, "Using metadata will disable achievements in this save. Are you sure?", "使用元数据会禁用本存档成就,确定吗?");
|
||||||
|
I18N.Add(FirstTimeUsingMetadataTitle, "First time using metadata", "初次使用元数据");
|
||||||
|
I18N.Add(TechLevelPrefix, " Lv.", "杠等级");
|
||||||
|
I18N.Add(Ok, "OK", "确定");
|
||||||
|
I18N.Add(AutoSaveEntry, "Auto-save entry", "自动存档条目");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
namespace UXAssist.Functions;
|
namespace UXAssist.Functions;
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -9,10 +9,7 @@ public static class TechFunctions
|
|||||||
{
|
{
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("Do you want to use metadata to buyout the following tech?", "Do you want to use metadata to buyout the following tech?", "要使用元数据买断以下科技吗?");
|
}
|
||||||
I18N.Add("The following is the required metadata for buyout:", "The following is the required metadata for buyout:", "以下是买断所需元数据:");
|
|
||||||
I18N.Add("Batch buyout tech", "Batch buyout tech", "批量买断科技");
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void CheckTechUnlockProperties(GameHistoryData history, TechProto techProto, SortedList<int, int> properties, List<Tuple<TechProto, int, int>> techList, int maxLevel = 10000, bool withPrerequisites = true, HashSet<int> seenTechs = null)
|
private static void CheckTechUnlockProperties(GameHistoryData history, TechProto techProto, SortedList<int, int> properties, List<Tuple<TechProto, int, int>> techList, int maxLevel = 10000, bool withPrerequisites = true, HashSet<int> seenTechs = null)
|
||||||
{
|
{
|
||||||
@@ -187,13 +184,13 @@ public static class TechFunctions
|
|||||||
}
|
}
|
||||||
if (!enough)
|
if (!enough)
|
||||||
{
|
{
|
||||||
UIMessageBox.Show("元数据".Translate(), "元数据不足".Translate(), "确定".Translate(), UIMessageBox.ERROR);
|
UIMessageBox.Show(I18NKeys.Metadata.Translate(), I18NKeys.InsufficientMetadata.Translate(), I18NKeys.Ok.Translate(), UIMessageBox.ERROR);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!history.hasUsedPropertyBanAchievement)
|
if (!history.hasUsedPropertyBanAchievement)
|
||||||
{
|
{
|
||||||
UIMessageBox.Show("初次使用元数据标题".Translate(), "初次使用元数据描述".Translate(), "取消".Translate(), "确定".Translate(), UIMessageBox.QUESTION, null, DoUnlockCalculatedTechs);
|
UIMessageBox.Show(I18NKeys.FirstTimeUsingMetadataTitle.Translate(), I18NKeys.FirstTimeUsingMetadataDescription.Translate(), I18NKeys.Cancel.Translate(), I18NKeys.Ok.Translate(), UIMessageBox.QUESTION, null, DoUnlockCalculatedTechs);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -236,7 +233,7 @@ public static class TechFunctions
|
|||||||
if (consumption.Value <= 0) continue;
|
if (consumption.Value <= 0) continue;
|
||||||
msg += $"\n {LDB.items.Select(consumption.Key).propertyName}x{consumption.Value}";
|
msg += $"\n {LDB.items.Select(consumption.Key).propertyName}x{consumption.Value}";
|
||||||
}
|
}
|
||||||
UIMessageBox.Show("Batch buyout tech".Translate(), msg, "取消".Translate(), "确定".Translate(), UIMessageBox.QUESTION, null, UnlockWithPropertiesImmediately);
|
UIMessageBox.Show("Batch buyout tech".Translate(), msg, I18NKeys.Cancel.Translate(), I18NKeys.Ok.Translate(), UIMessageBox.QUESTION, null, UnlockWithPropertiesImmediately);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
void AddToMsg(ref string str, Tuple<TechProto, int, int> tuple)
|
void AddToMsg(ref string str, Tuple<TechProto, int, int> tuple)
|
||||||
@@ -246,10 +243,10 @@ public static class TechFunctions
|
|||||||
if (tuple.Item2 <= 0)
|
if (tuple.Item2 <= 0)
|
||||||
str += $"\n {tuple.Item1.name}";
|
str += $"\n {tuple.Item1.name}";
|
||||||
else
|
else
|
||||||
str += $"\n {tuple.Item1.name}{"杠等级".Translate()}{tuple.Item2}";
|
str += $"\n {tuple.Item1.name}{I18NKeys.TechLevelPrefix.Translate()}{tuple.Item2}";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
str += $"\n {tuple.Item1.name}{"杠等级".Translate()}{tuple.Item2}->{tuple.Item3}";
|
str += $"\n {tuple.Item1.name}{I18NKeys.TechLevelPrefix.Translate()}{tuple.Item2}->{tuple.Item3}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using UXAssist.Common;
|
using UXAssist.Common;
|
||||||
@@ -14,10 +14,7 @@ internal static class AutoConstructUI
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("Enable auto-construct", "Enable auto-construct", "启用自动建造");
|
}
|
||||||
I18N.Add("Disable auto-construct", "Disable auto-construct", "禁用自动建造");
|
|
||||||
I18N.Add("Buildings to construct: {0}", "Buildings to construct: {0}", "待建造数量: {0}");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Start()
|
public static void Start()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UXAssist.Common;
|
using UXAssist.Common;
|
||||||
using UXAssist.UI;
|
using UXAssist.UI;
|
||||||
|
|
||||||
@@ -10,9 +10,7 @@ internal static class AutoCruiseUI
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("Enable auto-cruise", "Enable auto-cruise", "启用自动巡航");
|
}
|
||||||
I18N.Add("Disable auto-cruise", "Disable auto-cruise", "禁用自动巡航");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Start()
|
public static void Start()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using CommonAPI.Systems;
|
using CommonAPI.Systems;
|
||||||
using UXAssist.Common;
|
using UXAssist.Common;
|
||||||
@@ -24,9 +24,7 @@ internal static class MenuButtonUI
|
|||||||
name = "OpenUXAssistConfigWindow",
|
name = "OpenUXAssistConfigWindow",
|
||||||
canOverride = true
|
canOverride = true
|
||||||
});
|
});
|
||||||
I18N.Add("KEYOpenUXAssistConfigWindow", "[UXA] Open UXAssist Config Window", "[UXA] 打开UX助手设置面板");
|
I18N.OnInitialized += RecreateConfigWindow;
|
||||||
I18N.Add("UXAssist Config", "UXAssist Config", "UX助手设置");
|
|
||||||
I18N.OnInitialized += RecreateConfigWindow;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Start()
|
public static void Start()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@@ -31,12 +31,7 @@ internal static class MilkyWayUI
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("No recent milkyway upload results", "No recent milkyway upload results", "没有最近的银河系发电数据上传结果");
|
}
|
||||||
I18N.Add("Success", "Success", "成功");
|
|
||||||
I18N.Add("Failure: ", "Failure: ", "失败: ");
|
|
||||||
I18N.Add("Show top players", "Show top players", "显示玩家排行榜");
|
|
||||||
I18N.Add("Hide top players", "Hide top players", "隐藏玩家排行榜");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Start()
|
public static void Start()
|
||||||
{
|
{
|
||||||
@@ -118,7 +113,7 @@ internal static class MilkyWayUI
|
|||||||
{
|
{
|
||||||
if (_clusterUploadResultsCount == 0)
|
if (_clusterUploadResultsCount == 0)
|
||||||
{
|
{
|
||||||
UIMessageBox.Show("UXAssist".Translate(), "No recent milkyway upload results".Translate(), "确定".Translate(), UIMessageBox.INFO, null);
|
UIMessageBox.Show("UXAssist".Translate(), "No recent milkyway upload results".Translate(), I18NKeys.Ok.Translate(), UIMessageBox.INFO, null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
StringBuilder sb = new();
|
StringBuilder sb = new();
|
||||||
@@ -129,7 +124,7 @@ internal static class MilkyWayUI
|
|||||||
var res = _clusterUploadResults[(i + _clusterUploadResultsHead) % ClusterUploadResultKeepCount];
|
var res = _clusterUploadResults[(i + _clusterUploadResultsHead) % ClusterUploadResultKeepCount];
|
||||||
sb.AppendLine($"{res.UploadTime.ToString("yyyy-MM-dd HH:mm:ss")} - {((res.Result is 0 or 20) ? "Success".Translate() : ("Failure: ".Translate() + res.Result.ToString()))} - {res.RequestTime:F2}s");
|
sb.AppendLine($"{res.UploadTime.ToString("yyyy-MM-dd HH:mm:ss")} - {((res.Result is 0 or 20) ? "Success".Translate() : ("Failure: ".Translate() + res.Result.ToString()))} - {res.RequestTime:F2}s");
|
||||||
}
|
}
|
||||||
UIMessageBox.Show("UXAssist".Translate(), sb.ToString(), "确定".Translate(), UIMessageBox.INFO, null);
|
UIMessageBox.Show("UXAssist".Translate(), sb.ToString(), I18NKeys.Ok.Translate(), UIMessageBox.INFO, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@@ -60,15 +60,7 @@ internal static class StarmapFilterUI
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("High yield", "High yield", "高产");
|
}
|
||||||
I18N.Add("Perfect", "Perfect", "完美");
|
|
||||||
I18N.Add("Union results", "Union results", "结果取并集");
|
|
||||||
I18N.Add("All 6 Basic Ores", "All 6 Basic Ores", "六种基础矿物齐全");
|
|
||||||
I18N.Add("Show original name", "Show original name", "显示原始名称");
|
|
||||||
I18N.Add("Show distance", "Show distance", "显示距离");
|
|
||||||
I18N.Add("Show planet count", "Show planet count", "显示行星数");
|
|
||||||
I18N.Add("Show all information", "Show all information", "显示全部信息");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Start()
|
public static void Start()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -19,8 +19,7 @@ public class DysonSpherePatch : PatchImpl<DysonSpherePatch>
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("[UXAssist] No node to fill", "[UXAssist] No node to fill", "[UXAssist] 无可建造节点");
|
Enable(true);
|
||||||
Enable(true);
|
|
||||||
StopEjectOnNodeCompleteEnabled.SettingChanged += (_, _) => StopEjectOnNodeComplete.Enable(StopEjectOnNodeCompleteEnabled.Value);
|
StopEjectOnNodeCompleteEnabled.SettingChanged += (_, _) => StopEjectOnNodeComplete.Enable(StopEjectOnNodeCompleteEnabled.Value);
|
||||||
OnlyConstructNodesEnabled.SettingChanged += (_, _) => OnlyConstructNodes.Enable(OnlyConstructNodesEnabled.Value);
|
OnlyConstructNodesEnabled.SettingChanged += (_, _) => OnlyConstructNodes.Enable(OnlyConstructNodesEnabled.Value);
|
||||||
_totalNodeSpInfo = AccessTools.Field(typeof(DysonSphereLayer), "totalNodeSP");
|
_totalNodeSpInfo = AccessTools.Field(typeof(DysonSphereLayer), "totalNodeSP");
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using BepInEx.Configuration;
|
using BepInEx.Configuration;
|
||||||
using CommonAPI.Systems;
|
using CommonAPI.Systems;
|
||||||
@@ -65,8 +65,7 @@ public static class FactoryPatch
|
|||||||
canOverride = true
|
canOverride = true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
I18N.Add("KEYToggleDoNotRenderEntities", "[UXA] Toggle Do Not Render Factory Entities", "[UXA] 切换不渲染工厂建筑实体");
|
_offgridfForPathsKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
||||||
_offgridfForPathsKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
|
||||||
{
|
{
|
||||||
key = new CombineKey(0, 0, ECombineKeyAction.OnceClick, true),
|
key = new CombineKey(0, 0, ECombineKeyAction.OnceClick, true),
|
||||||
conflictGroup = KeyBindConflict.MOVEMENT | KeyBindConflict.UI | KeyBindConflict.FLYING | KeyBindConflict.BUILD_MODE_1 | KeyBindConflict.KEYBOARD_KEYBIND,
|
conflictGroup = KeyBindConflict.MOVEMENT | KeyBindConflict.UI | KeyBindConflict.FLYING | KeyBindConflict.BUILD_MODE_1 | KeyBindConflict.KEYBOARD_KEYBIND,
|
||||||
@@ -74,8 +73,7 @@ public static class FactoryPatch
|
|||||||
canOverride = true
|
canOverride = true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
I18N.Add("KEYOffgridForPaths", "[UXA] Build belts offgrid", "[UXA] 脱离网格建造传送带");
|
_cutConveyorBeltKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
||||||
_cutConveyorBeltKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
|
||||||
{
|
{
|
||||||
key = new CombineKey((int)KeyCode.X, CombineKey.ALT_COMB, ECombineKeyAction.OnceClick, false),
|
key = new CombineKey((int)KeyCode.X, CombineKey.ALT_COMB, ECombineKeyAction.OnceClick, false),
|
||||||
conflictGroup = KeyBindConflict.MOVEMENT | KeyBindConflict.FLYING | KeyBindConflict.SAILING | KeyBindConflict.BUILD_MODE_1 | KeyBindConflict.KEYBOARD_KEYBIND,
|
conflictGroup = KeyBindConflict.MOVEMENT | KeyBindConflict.FLYING | KeyBindConflict.SAILING | KeyBindConflict.BUILD_MODE_1 | KeyBindConflict.KEYBOARD_KEYBIND,
|
||||||
@@ -83,8 +81,7 @@ public static class FactoryPatch
|
|||||||
canOverride = true
|
canOverride = true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
I18N.Add("KEYCutConveyorBelt", "[UXA] Cut conveyor belt", "[UXA] 切割传送带");
|
_dismantleBlueprintSelectionKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
||||||
_dismantleBlueprintSelectionKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
|
||||||
{
|
{
|
||||||
key = new CombineKey((int)KeyCode.X, CombineKey.CTRL_COMB, ECombineKeyAction.OnceClick, false),
|
key = new CombineKey((int)KeyCode.X, CombineKey.CTRL_COMB, ECombineKeyAction.OnceClick, false),
|
||||||
conflictGroup = KeyBindConflict.KEYBOARD_KEYBIND,
|
conflictGroup = KeyBindConflict.KEYBOARD_KEYBIND,
|
||||||
@@ -92,8 +89,7 @@ public static class FactoryPatch
|
|||||||
canOverride = true
|
canOverride = true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
I18N.Add("KEYDismantleBlueprintSelection", "[UXA] Dismantle blueprint selected buildings", "[UXA] 拆除蓝图选中的建筑");
|
_selectAllBuildingsInBlueprintCopyKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
||||||
_selectAllBuildingsInBlueprintCopyKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
|
||||||
{
|
{
|
||||||
key = new CombineKey((int)KeyCode.A, CombineKey.CTRL_COMB, ECombineKeyAction.OnceClick, false),
|
key = new CombineKey((int)KeyCode.A, CombineKey.CTRL_COMB, ECombineKeyAction.OnceClick, false),
|
||||||
conflictGroup = KeyBindConflict.KEYBOARD_KEYBIND,
|
conflictGroup = KeyBindConflict.KEYBOARD_KEYBIND,
|
||||||
@@ -101,9 +97,7 @@ public static class FactoryPatch
|
|||||||
canOverride = true
|
canOverride = true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
I18N.Add("KEYSelectAllBuildingsInBlueprintCopy", "[UXA] Select all buildings in Blueprint Copy Mode", "[UXA] 蓝图复制时选择所有建筑");
|
BeltSignalPatch.InitPersist();
|
||||||
|
|
||||||
BeltSignalPatch.InitPersist();
|
|
||||||
VeinProtectionPatch.InitConfig();
|
VeinProtectionPatch.InitConfig();
|
||||||
UnlimitInteractiveEnabled.SettingChanged += (_, _) => ArchitectModePatch.UnlimitInteractive.Enable(UnlimitInteractiveEnabled.Value);
|
UnlimitInteractiveEnabled.SettingChanged += (_, _) => ArchitectModePatch.UnlimitInteractive.Enable(UnlimitInteractiveEnabled.Value);
|
||||||
RemoveSomeConditionEnabled.SettingChanged += (_, _) => ArchitectModePatch.RemoveSomeConditionBuild.Enable(RemoveSomeConditionEnabled.Value);
|
RemoveSomeConditionEnabled.SettingChanged += (_, _) => ArchitectModePatch.RemoveSomeConditionBuild.Enable(RemoveSomeConditionEnabled.Value);
|
||||||
|
|||||||
@@ -65,8 +65,7 @@ public class GamePatch : PatchImpl<GamePatch>
|
|||||||
canOverride = true
|
canOverride = true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
I18N.Add("KEYUPSSpeedDown", "[UXA] Decrease logical frame rate", "[UXA] 降低逻辑帧率");
|
_speedUpKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
||||||
_speedUpKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
|
||||||
{
|
{
|
||||||
key = new CombineKey((int)KeyCode.Equals, CombineKey.CTRL_COMB, ECombineKeyAction.OnceClick, false),
|
key = new CombineKey((int)KeyCode.Equals, CombineKey.CTRL_COMB, ECombineKeyAction.OnceClick, false),
|
||||||
conflictGroup = KeyBindConflict.MOVEMENT | KeyBindConflict.UI | KeyBindConflict.FLYING | KeyBindConflict.SAILING | KeyBindConflict.BUILD_MODE_1 | KeyBindConflict.KEYBOARD_KEYBIND,
|
conflictGroup = KeyBindConflict.MOVEMENT | KeyBindConflict.UI | KeyBindConflict.FLYING | KeyBindConflict.SAILING | KeyBindConflict.BUILD_MODE_1 | KeyBindConflict.KEYBOARD_KEYBIND,
|
||||||
@@ -74,10 +73,7 @@ public class GamePatch : PatchImpl<GamePatch>
|
|||||||
canOverride = true
|
canOverride = true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
I18N.Add("KEYUPSSpeedUp", "[UXA] Increase logical frame rate", "[UXA] 提升逻辑帧率");
|
EnableWindowResizeEnabled.SettingChanged += (_, _) => EnableWindowResize.Enable(EnableWindowResizeEnabled.Value);
|
||||||
I18N.Add("Logical frame rate: {0}x", "[UXA] Logical frame rate: {0}x", "[UXA] 逻辑帧速率: {0}x");
|
|
||||||
|
|
||||||
EnableWindowResizeEnabled.SettingChanged += (_, _) => EnableWindowResize.Enable(EnableWindowResizeEnabled.Value);
|
|
||||||
LoadLastWindowRectEnabled.SettingChanged += (_, _) =>
|
LoadLastWindowRectEnabled.SettingChanged += (_, _) =>
|
||||||
{
|
{
|
||||||
if (LoadLastWindowRectEnabled.Value)
|
if (LoadLastWindowRectEnabled.Value)
|
||||||
@@ -361,7 +357,7 @@ public class GamePatch : PatchImpl<GamePatch>
|
|||||||
entries2.Sort((x, y) => -x.fileDate.CompareTo(y.fileDate));
|
entries2.Sort((x, y) => -x.fileDate.CompareTo(y.fileDate));
|
||||||
if (entries2.Count > 10)
|
if (entries2.Count > 10)
|
||||||
entries2.RemoveRange(10, entries2.Count - 10);
|
entries2.RemoveRange(10, entries2.Count - 10);
|
||||||
var autoSaveText = ">> " + "自动存档条目".Translate();
|
var autoSaveText = ">> " + I18NKeys.AutoSaveEntry.Translate();
|
||||||
foreach (var entry in entries2)
|
foreach (var entry in entries2)
|
||||||
{
|
{
|
||||||
entry.indexText.text = "";
|
entry.indexText.text = "";
|
||||||
|
|||||||
@@ -31,9 +31,7 @@ public class PlayerPatch : PatchImpl<PlayerPatch>
|
|||||||
canOverride = true
|
canOverride = true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
I18N.Add("KEYShowAllStarsName", "[UXA] Keep pressing to show all Stars' name", "[UXA] 按住显示所有星系名称");
|
_toggleAllStarsNameKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
||||||
|
|
||||||
_toggleAllStarsNameKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
|
||||||
{
|
{
|
||||||
key = new CombineKey((int)KeyCode.Tab, 0, ECombineKeyAction.OnceClick, false),
|
key = new CombineKey((int)KeyCode.Tab, 0, ECombineKeyAction.OnceClick, false),
|
||||||
conflictGroup = KeyBindConflict.UI | KeyBindConflict.KEYBOARD_KEYBIND,
|
conflictGroup = KeyBindConflict.UI | KeyBindConflict.KEYBOARD_KEYBIND,
|
||||||
@@ -41,20 +39,14 @@ public class PlayerPatch : PatchImpl<PlayerPatch>
|
|||||||
canOverride = true
|
canOverride = true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
I18N.Add("KEYToggleAllStarsName", "[UXA] Toggle display of all Stars' name", "[UXA] 切换所有星系名称显示状态");
|
_autoDriveKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
||||||
|
|
||||||
_autoDriveKey = KeyBindings.RegisterKeyBinding(new BuiltinKey
|
|
||||||
{
|
{
|
||||||
key = new CombineKey(0, 0, ECombineKeyAction.OnceClick, true),
|
key = new CombineKey(0, 0, ECombineKeyAction.OnceClick, true),
|
||||||
conflictGroup = KeyBindConflict.MOVEMENT | KeyBindConflict.FLYING | KeyBindConflict.SAILING | KeyBindConflict.BUILD_MODE_1 | KeyBindConflict.KEYBOARD_KEYBIND,
|
conflictGroup = KeyBindConflict.MOVEMENT | KeyBindConflict.FLYING | KeyBindConflict.SAILING | KeyBindConflict.BUILD_MODE_1 | KeyBindConflict.KEYBOARD_KEYBIND,
|
||||||
name = "ToggleAutoCruise",
|
name = "ToggleAutoCruise",
|
||||||
canOverride = true
|
canOverride = true
|
||||||
});
|
});
|
||||||
I18N.Add("KEYToggleAutoCruise", "[UXA] Toggle auto-cruise", "[UXA] 切换自动巡航");
|
EnhancedMechaForgeCountControlEnabled.SettingChanged += (_, _) => EnhancedMechaForgeCountControl.Enable(EnhancedMechaForgeCountControlEnabled.Value);
|
||||||
I18N.Add("AutoCruiseOn", "Auto-cruise enabled", "已启用自动巡航");
|
|
||||||
I18N.Add("AutoCruiseOff", "Auto-cruise disabled", "已禁用自动巡航");
|
|
||||||
|
|
||||||
EnhancedMechaForgeCountControlEnabled.SettingChanged += (_, _) => EnhancedMechaForgeCountControl.Enable(EnhancedMechaForgeCountControlEnabled.Value);
|
|
||||||
HideTipsForSandsChangesEnabled.SettingChanged += (_, _) => HideTipsForSandsChanges.Enable(HideTipsForSandsChangesEnabled.Value);
|
HideTipsForSandsChangesEnabled.SettingChanged += (_, _) => HideTipsForSandsChanges.Enable(HideTipsForSandsChangesEnabled.Value);
|
||||||
ShortcutKeysForStarsNameEnabled.SettingChanged += (_, _) => ShortcutKeysForStarsName.Enable(ShortcutKeysForStarsNameEnabled.Value);
|
ShortcutKeysForStarsNameEnabled.SettingChanged += (_, _) => ShortcutKeysForStarsName.Enable(ShortcutKeysForStarsNameEnabled.Value);
|
||||||
AutoNavigationEnabled.SettingChanged += (_, _) => AutoNavigation.Enable(AutoNavigationEnabled.Value);
|
AutoNavigationEnabled.SettingChanged += (_, _) => AutoNavigation.Enable(AutoNavigationEnabled.Value);
|
||||||
|
|||||||
@@ -19,8 +19,7 @@ public static class TechPatch
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("分拣器运货量", "Sorter Mk.III cargo stacking : ", "极速分拣器每次可运送 ");
|
SorterCargoStackingEnabled.SettingChanged += (_, _) => SorterCargoStacking.Enable(SorterCargoStackingEnabled.Value);
|
||||||
SorterCargoStackingEnabled.SettingChanged += (_, _) => SorterCargoStacking.Enable(SorterCargoStackingEnabled.Value);
|
|
||||||
DisableBattleRelatedTechsInPeaceModeEnabled.SettingChanged += (_, _) => DisableBattleRelatedTechsInPeaceMode.Enable(DisableBattleRelatedTechsInPeaceModeEnabled.Value);
|
DisableBattleRelatedTechsInPeaceModeEnabled.SettingChanged += (_, _) => DisableBattleRelatedTechsInPeaceMode.Enable(DisableBattleRelatedTechsInPeaceModeEnabled.Value);
|
||||||
BatchBuyoutTechEnabled.SettingChanged += (_, _) => BatchBuyoutTech.Enable(BatchBuyoutTechEnabled.Value);
|
BatchBuyoutTechEnabled.SettingChanged += (_, _) => BatchBuyoutTech.Enable(BatchBuyoutTechEnabled.Value);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-150
@@ -21,156 +21,8 @@ public static class UIConfigWindow
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("UXAssist", "UXAssist", "UX助手");
|
/*
|
||||||
I18N.Add("General", "General", "常规");
|
*/
|
||||||
I18N.Add("Factory", "Factory", "工厂");
|
|
||||||
I18N.Add("Logistics", "Logistics", "物流");
|
|
||||||
I18N.Add("Player/Mecha", "Player/Mecha", "玩家/机甲");
|
|
||||||
I18N.Add("Dyson Sphere", "Dyson Sphere", "戴森球");
|
|
||||||
I18N.Add("Tech/Combat/UI", "Tech/Combat/UI", "科研/战斗/UI");
|
|
||||||
I18N.Add("Enable game window resize", "Enable game window resize (maximum box and thick frame)", "可调整游戏窗口大小(可最大化和拖动边框)");
|
|
||||||
I18N.Add("Remeber window position and size on last exit", "Remeber window position and size on last exit", "记住上次退出时的窗口位置和大小");
|
|
||||||
/*
|
|
||||||
I18N.Add("Better auto-save mechanism", "Better auto-save mechanism", "更好的自动存档机制");
|
|
||||||
I18N.Add("Better auto-save mechanism tips", "Auto saves are stored in 'Save\\AutoSaves' folder, filenames are combined with cluster address and date-time", "自动存档会以星区地址和日期时间组合为文件名存储在'Save\\AutoSaves'文件夹中");
|
|
||||||
*/
|
|
||||||
I18N.Add("Convert old saves to Combat Mode on loading", "Convert old saves to Combat Mode on loading (Use settings in new game panel)", "读取旧档时转为战斗模式(使用新游戏面板的战斗难度设置)");
|
|
||||||
I18N.Add("Profile-based save folder", "Mod manager profile based save folder", "基于mod管理器配置档案名的存档文件夹");
|
|
||||||
I18N.Add("Profile-based save folder tips", "Save files are stored in 'Save\\<ProfileName>' folder.\nWill use original save location if matching default profile name",
|
|
||||||
"存档文件会存储在'Save\\<ProfileName>'文件夹中\n如果匹配默认配置档案名则使用原始存档位置");
|
|
||||||
I18N.Add("Profile-based option", "Mod manager profile based option", "基于mod管理器配置档案名的选项设置");
|
|
||||||
I18N.Add("Profile-based option tips", "Options are stored in 'Option\\<ProfileName>.xml'.\nWill use original location if matching default profile name",
|
|
||||||
"配置选项会存储在'Option\\<ProfileName>.xml'里\n如果匹配默认配置档案名则使用原始位置");
|
|
||||||
I18N.Add("Default profile name", "Default profile name", "默认配置档案名");
|
|
||||||
I18N.Add("Logical Frame Rate", "Logical Frame Rate", "逻辑帧倍率");
|
|
||||||
I18N.Add("Reset", "Reset", "重置");
|
|
||||||
I18N.Add("Process priority", "Process priority", "进程优先级");
|
|
||||||
I18N.Add("High", "High", "高");
|
|
||||||
I18N.Add("Above Normal", "Above Normal", "高于正常");
|
|
||||||
I18N.Add("Normal", "Normal", "正常");
|
|
||||||
I18N.Add("Below Normal", "Below Normal", "低于正常");
|
|
||||||
I18N.Add("Idle", "Idle", "空闲");
|
|
||||||
I18N.Add("Show recent milkyway upload results", "Show recent milkyway upload results", "显示最近的银河系发电数据上传结果");
|
|
||||||
I18N.Add("Unlimited interactive range", "Unlimited interactive range", "无限交互距离");
|
|
||||||
I18N.Add("Night Light", "Sunlight at night", "夜间日光灯");
|
|
||||||
I18N.Add("Angle X:", "Angle X:", "入射角度X:");
|
|
||||||
I18N.Add("Remove some build conditions", "Remove some build conditions", "移除部分不影响游戏逻辑的建造条件");
|
|
||||||
I18N.Add("Remove build range limit", "Remove build count and range limit", "移除建造数量和距离限制");
|
|
||||||
I18N.Add("Larger area for upgrade and dismantle", "Larger area for upgrade and dismantle", "范围升级和拆除的最大区域扩大");
|
|
||||||
I18N.Add("Larger area for terraform", "Larger area for terraform", "范围铺设地基的最大区域扩大");
|
|
||||||
I18N.Add("Off-grid building and stepped rotation", "Off-grid building and stepped rotation (Hold Shift)", "脱离网格建造以及小角度旋转(按住Shift)");
|
|
||||||
I18N.Add("Enable player actions in globe view", "Enable player actions in globe view", "在行星视图中允许玩家操作");
|
|
||||||
I18N.Add("Hide tips for soil piles changes", "Hide tips for soil piles changes", "隐藏沙土数量变动的提示");
|
|
||||||
I18N.Add("Enhanced count control for hand-make", "Enhanced count control for hand-make", "手动制造物品的数量控制改进");
|
|
||||||
I18N.Add("Enhanced count control for hand-make tips", "Maximum count is increased to 1000.\nHold Ctrl/Shift/Alt to change the count rapidly.", "最大数量提升至1000\n按住Ctrl/Shift/Alt可快速改变数量");
|
|
||||||
I18N.Add("Quick build and dismantle stacking labs", "Quick build and dismantle stacking labs/storages/tanks(hold shift)", "快速建造和拆除堆叠研究站/储物仓/储液罐(按住shift)");
|
|
||||||
I18N.Add("Fast fill in to and take out from tanks", "Fast fill in to and take out from tanks", "储液罐快速注入和抽取液体");
|
|
||||||
I18N.Add("Speed Ratio", "Speed Ratio", "速度倍率");
|
|
||||||
I18N.Add("Cut conveyor belt (with shortcut key)", "Cut conveyor belt (with shortcut key)", "切割传送带(使用快捷键)");
|
|
||||||
I18N.Add("Protect veins from exhaustion", "Protect veins from exhaustion", "保护矿脉不会耗尽");
|
|
||||||
I18N.Add("Protect veins from exhaustion tips",
|
|
||||||
"By default, the vein amount is protected at 100, and oil speed is protected at 1.0/s, you can set them yourself in config file.\nWhen reach the protection value, veins/oils steeps will not be mined/extracted any longer.\nClose this function to resume mining and pumping, usually when you have enough level on `Veins Utilization`",
|
|
||||||
"默认矿脉数量保护于剩余100,采油速保护于速度1.0/s,你可以在配置文件中自行设置。\n当达到保护值时,矿脉和油井将不再被开采。\n关闭此功能以恢复开采,一般是当你在`矿物利用`上有足够的等级时。\n");
|
|
||||||
I18N.Add("Do not render factory entities", "Do not render factory entities (except belts and sorters)", "不渲染工厂建筑实体(除了传送带和分拣器)");
|
|
||||||
I18N.Add("Drag building power poles in maximum connection range", "Drag building power poles in maximum connection range", "拖动建造电线杆时自动使用最大连接距离间隔");
|
|
||||||
I18N.Add("Build Tesla Tower and Wireless Power Tower alternately", "Build Tesla Tower and Wireless Power Tower alternately", "交替建造电力感应塔和无线输电塔");
|
|
||||||
I18N.Add("Auto-construct button", "Auto-construct button", "自动建造按钮");
|
|
||||||
I18N.Add("Belt signals for buy out dark fog items automatically", "Belt signals for buy out dark fog items automatically", "用于自动购买黑雾物品的传送带信号");
|
|
||||||
I18N.Add("Memory Unit", "Memory Unit", "存储单元");
|
|
||||||
I18N.Add("Energy Fragment", "Energy Fragment", "能量碎片");
|
|
||||||
I18N.Add("Silicon Neuron", "Silicon Neuron", "硅基神经元");
|
|
||||||
I18N.Add("Negentropy Singularity", "Negentropy Singularity", "负熵奇点");
|
|
||||||
I18N.Add("Matter Reassembler", "Matter Reassembler", "物质重组器");
|
|
||||||
I18N.Add("Virtual Particle", "Virtual Particle", "虚粒子");
|
|
||||||
I18N.Add("Ctrl+Shift+Click to pick items from whole belts", "Ctrl+Shift+Click to pick items from whole belts", "按住Ctrl+Shift点击从整条传送带抓取物品");
|
|
||||||
I18N.Add("Include branches of belts", "Include branches of belts", "包含传送带分支");
|
|
||||||
I18N.Add("Include connected inserters", "Include connected inserters (and their connected belts if above is checked)", "包含连接的分拣器(若勾选上面的选项则包含分拣器连接的传送带)");
|
|
||||||
I18N.Add("Auto-config logistic stations", "Auto-config logistic stations", "自动配置物流设施");
|
|
||||||
I18N.Add("Limit auto-replenish count to values below", "Limit auto-replenish count to values below", "限制自动补充数量为下面配置的值");
|
|
||||||
I18N.Add("Dispenser", "Logistics Distributor", "物流配送器");
|
|
||||||
I18N.Add("Battlefield Analysis Base", "Battlefield Analysis Base", "战场分析基站");
|
|
||||||
I18N.Add("PLS", "PLS", "行星物流站");
|
|
||||||
I18N.Add("ILS", "ILS", "星际物流站");
|
|
||||||
I18N.Add("Advanced Mining Machine", "Advanced Mining Machine", "大型采矿机");
|
|
||||||
I18N.Add("Set default remote logic to storage", "Set default remote logic to storage", "设置默认远程逻辑为仓储");
|
|
||||||
I18N.Add("Max. Charging Power", "Max. Charging Power", "最大充能功率");
|
|
||||||
I18N.Add("Count of Bots filled", "Count of Bots filled", "填充的配送机数量");
|
|
||||||
I18N.Add("Drone transport range", "Drone transport range", "运输机最远路程");
|
|
||||||
I18N.Add("Min. Load of Drones", "Min. Load of Drones", "运输机起送量");
|
|
||||||
I18N.Add("Outgoing integration count", "Outgoing integration count", "输出货物集装数量");
|
|
||||||
I18N.Add("Count of Drones filled", "Count of Drones filled", "填充的运输机数量");
|
|
||||||
I18N.Add("Vessel transport range", "Vessel transport range", "运输船最远路程");
|
|
||||||
I18N.Add("Warp distance", "Warp distance", "曲速启用路程");
|
|
||||||
I18N.Add("Min. Load of Vessels", "Min. Load of Vessels", "运输船起送量");
|
|
||||||
I18N.Add("Include Orbital Collector", "Include Orbital Collector", "包含轨道采集器");
|
|
||||||
I18N.Add("Warpers required", "Warpers required", "翘曲器必备");
|
|
||||||
I18N.Add("Count of Vessels filled", "Count of Vessels filled", "填充的运输船数量");
|
|
||||||
I18N.Add("Collecting Speed", "Collecting Speed", "开采速度");
|
|
||||||
I18N.Add("Min. Piler Value", "Outgoing integration count", "输出货物集装数量");
|
|
||||||
I18N.Add("Use tech max for piler", "Use tech max for piler", "集装使用科技上限");
|
|
||||||
I18N.Add("Cancel", "Cancel", "取消");
|
|
||||||
I18N.Add("OK", "OK", "确定");
|
|
||||||
I18N.Add("Apply config to planet", "Apply", "应用");
|
|
||||||
I18N.Add("Apply all config to planet", "Apply All", "应用全部");
|
|
||||||
I18N.Add("Apply config to planet tips", "Apply this value to all facilities of this type on the current planet", "将此项数值应用到当前行星上所有该类型物流设施");
|
|
||||||
I18N.Add("Apply all config to planet tips", "Apply all settings of this category to all facilities of this type on the current planet", "将本分类的所有设置数值应用到当前行星上所有该类型物流设施");
|
|
||||||
|
|
||||||
I18N.Add("Allow overflow for Logistic Stations and Advanced Mining Machines", "Allow overflow for Logistic Stations and Advanced Mining Machines", "允许物流站和大型采矿机物品溢出");
|
|
||||||
I18N.Add("Increase maximum power usage in Logistic Stations and Advanced Mining Machines", "Increase maximum power usage in Logistic Stations and Advanced Mining Machines",
|
|
||||||
"提升物流塔和大型采矿机的最大功耗");
|
|
||||||
I18N.Add("Enhance control for logistic storage capacities", "Enhance control for logistic storage capacities", "物流塔存储容量控制改进");
|
|
||||||
I18N.Add("Enhance control for logistic storage capacities tips",
|
|
||||||
"Logistic storage capacity limits are not scaled on upgrading 'Logistics Carrier Capacity', if they are not set to maximum capacity or already greater than upgraded maximum capacity.\nUse arrow keys to adjust logistic storage capacities:\n \u2190/\u2192: -/+10 \u2193\u2191: -/+100",
|
|
||||||
"当升级'运输机舱扩容'时,不会对各种物流塔的存储容量按比例提升,除非设置为最大允许容量或者已经超过升级后的最大容量。\n你可以使用方向键微调物流塔存储容量:\n \u2190\u2192: -/+10 \u2193\u2191: -/+100");
|
|
||||||
I18N.Add("Logistics Control Panel Improvement", "Logistics Control Panel Improvement", "物流控制面板改进");
|
|
||||||
I18N.Add("Logistics Control Panel Improvement tips",
|
|
||||||
"Auto apply filter with item under mouse cursor while opening the panel\nQuick-set item filter while right-clicking item icons in storage list on the panel",
|
|
||||||
"打开面板时自动将鼠标指向物品设为筛选条件\n在控制面板物流塔列表中右键点击物品图标快速设置为筛选条件");
|
|
||||||
I18N.Add("Real-time logistic stations info panel", "Real-time logistic stations info panel", "物流运输站实时信息面板");
|
|
||||||
I18N.Add("Show status bars for storage items", "Show status bars for storage items", "显示存储物品状态条");
|
|
||||||
I18N.Add("Tweak building buffers", "Tweak building buffers", "调整建筑输入缓冲");
|
|
||||||
I18N.Add("Assembler buffer time multiplier(in seconds)", "Assembler buffer time multiplier(in seconds)", "工厂配方缓冲时间倍率(秒)");
|
|
||||||
I18N.Add("Assembler buffer minimum multiplier", "Assembler buffer minimum multiplier", "工厂配方缓冲最小倍率");
|
|
||||||
I18N.Add("Buffer count for assembling in labs", "Buffer count for assembling in labs", "研究站矩阵合成模式缓存数量");
|
|
||||||
I18N.Add("Extra buffer count for Self-evolution Labs", "Extra buffer count for Self-evolution Labs", "自演化研究站矩阵额外缓冲数量");
|
|
||||||
I18N.Add("Buffer count for researching in labs", "Buffer count for researching in labs", "研究站科研模式缓存数量");
|
|
||||||
I18N.Add("Ray Receiver Graviton Lens buffer count", "Ray Receiver Graviton Lens buffer count", "射线接收器透镜缓冲数量");
|
|
||||||
I18N.Add("Ejector Solar Sails buffer count", "Ejector Solar Sails buffer count", "弹射器太阳能帆缓冲数量");
|
|
||||||
I18N.Add("Silo Rockets buffer count", "Silo Rockets buffer count", "发射井火箭缓冲数量");
|
|
||||||
I18N.Add("Shortcut keys for Blueprint Copy mode", "Shortcut keys for Blueprint Copy mode", "蓝图复制模式快捷键");
|
|
||||||
I18N.Add("Shortcut keys for Blueprint Copy mode tips", "You can set 2 shortcut keys in Settings panel:\n 1. Select all buildings\n 2. Dismantle selected buildings", "你可以在设置面板中设置2个快捷键:\n 1. 选择所有建筑\n 2. 拆除选中的建筑");
|
|
||||||
I18N.Add("Shortcut keys for showing stars' name", "Shortcut keys for showing stars' name", "启用显示所有星系名称的快捷键");
|
|
||||||
I18N.Add("Auto navigation on sailings", "Auto navigation on sailings", "宇宙航行时自动导航");
|
|
||||||
I18N.Add("Enable auto-cruise", "Enable auto-cruise", "启用自动巡航");
|
|
||||||
I18N.Add("Auto boost", "Auto boost", "自动加速");
|
|
||||||
I18N.Add("Distance to use warp", "Distance to use warp (AU)", "使用曲速的距离(AU)");
|
|
||||||
I18N.Add("Treat stack items as single in monitor components", "Treat stack items as single in monitor components", "在流速计中将堆叠物品视为单个物品");
|
|
||||||
I18N.Add("Initialize This Planet", "Initialize this planet", "初始化本行星");
|
|
||||||
I18N.Add("Initialize This Planet Confirm", "This operation will destroy all buildings and revert terrains on this planet, are you sure?", "此操作将会摧毁本行星上的所有建筑并恢复地形,确定吗?");
|
|
||||||
I18N.Add("Return buildings to player when initializing planet", "Return buildings to player when initializing planet", "初始化行星时将建筑归还给玩家");
|
|
||||||
I18N.Add("Return logistic storage items to player when initializing planet", "Return logistic storage items to player when initializing planet", "初始化行星时将物流塔存储的物品归还给玩家");
|
|
||||||
I18N.Add("Return belt and factory items to player when initializing planet", "Return belt and factory items to player when initializing planet", "初始化行星时将传送带和工厂里的物品归还给玩家");
|
|
||||||
I18N.Add("Dismantle All Buildings", "Dismantle all buildings", "拆除所有建筑");
|
|
||||||
I18N.Add("Dismantle All Buildings Confirm", "This operation will dismantle all buildings on this planet, are you sure?", "此操作将会拆除本行星上的所有建筑,确定吗?");
|
|
||||||
I18N.Add("Quick build Orbital Collectors", "Quick build Orbital Collectors", "快速建造轨道采集器");
|
|
||||||
I18N.Add("Maximum count to build", "Maximum count to build", "最大建造数量");
|
|
||||||
I18N.Add("max", "max", "最大");
|
|
||||||
I18N.Add("Stop ejectors when available nodes are all filled up", "Stop ejectors when available nodes are all filled up", "可用节点全部造完时停止弹射");
|
|
||||||
I18N.Add("Construct only structure points but frames", "Construct only structure points but frames", "只造节点不造框架");
|
|
||||||
I18N.Add("Initialize Dyson Sphere", "Initialize Dyson Sphere", "初始化戴森球");
|
|
||||||
I18N.Add("Initialize Dyson Sphere Confirm", "This operation will destroy all layers on this dyson sphere, are you sure?", "此操作将会摧毁戴森球上的所有层级,确定吗?");
|
|
||||||
I18N.Add("Click to dismantle selected layer", "Click to dismantle selected layer", "点击拆除对应的戴森壳");
|
|
||||||
I18N.Add("Dismantle selected layer", "Dismantle selected layer", "拆除选中的戴森壳");
|
|
||||||
I18N.Add("Dismantle selected layer Confirm", "This operation will dismantle selected layer, are you sure?", "此操作将会拆除选中的戴森壳,确定吗?");
|
|
||||||
I18N.Add("Auto Fast Build Speed Multiplier", "Auto Fast Build Speed Multiplier", "自动快速建造速度倍率");
|
|
||||||
I18N.Add("Restore upgrades of \"Sorter Cargo Stacking\" on panel", "Restore upgrades of \"Sorter Cargo Stacking\" on panel", "在升级面板上恢复\"分拣器货物叠加\"的升级");
|
|
||||||
I18N.Add("Disable battle-related techs in Peace mode", "Disable battle-related techs in Peace mode", "在和平模式下隐藏战斗相关科技");
|
|
||||||
I18N.Add("Buy out techs with their prerequisites", "Buy out techs with their prerequisites", "购买科技也同时购买所有前置科技");
|
|
||||||
I18N.Add("Set \"Sorter Cargo Stacking\" to unresearched state", "Set \"Sorter Cargo Stacking\" to unresearched state", "将\"分拣器货物叠加\"设为未研究状态");
|
|
||||||
I18N.Add("Unlock all techs with metadata", "Unlock all techs with metadata", "使用元数据解锁所有科技");
|
|
||||||
I18N.Add("Open Dark Fog Communicator", "Open Dark Fog Communicator", "打开黑雾通讯器");
|
|
||||||
I18N.Add("Planet vein utilization", "Planet vein utilization in star map", "宇宙视图行星/星系矿脉数量显示");
|
|
||||||
I18N.Apply();
|
|
||||||
MyConfigWindow.OnUICreated += CreateUI;
|
MyConfigWindow.OnUICreated += CreateUI;
|
||||||
MyConfigWindow.OnUpdateUI += UpdateUI;
|
MyConfigWindow.OnUpdateUI += UpdateUI;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,6 +236,7 @@ public class UXAssist : BaseUnityPlugin, IModCanSave
|
|||||||
"Planet vein utilization");
|
"Planet vein utilization");
|
||||||
|
|
||||||
I18N.Init();
|
I18N.Init();
|
||||||
|
I18NKeys.Register();
|
||||||
|
|
||||||
// UI Patches
|
// UI Patches
|
||||||
GameLogicProc.Enable(true);
|
GameLogicProc.Enable(true);
|
||||||
|
|||||||
@@ -23,9 +23,6 @@ public static class EpicDifficulty
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("究极少", "Micro", "究极少");
|
|
||||||
I18N.Add("史诗难度", "Epic Difficulty !!", "史诗难度 !!");
|
|
||||||
I18N.Apply();
|
|
||||||
Enabled.SettingChanged += (_, _) => Enable(Enabled.Value);
|
Enabled.SettingChanged += (_, _) => Enable(Enabled.Value);
|
||||||
Enable(Enabled.Value);
|
Enable(Enabled.Value);
|
||||||
}
|
}
|
||||||
@@ -139,18 +136,18 @@ public static class EpicDifficulty
|
|||||||
text = resourceMultiplier switch
|
text = resourceMultiplier switch
|
||||||
{
|
{
|
||||||
< 100f and > 0.1f => resourceMultiplier + "x",
|
< 100f and > 0.1f => resourceMultiplier + "x",
|
||||||
>= 100f => "无限".Translate(),
|
>= 100f => Localization.Unlimited.Translate(),
|
||||||
< 0.09f => "究极少".Translate(),
|
< 0.09f => Localization.Micro.Translate(),
|
||||||
< 0.11f => "极少".Translate(),
|
< 0.11f => Localization.Scarce.Translate(),
|
||||||
_ => text
|
_ => text
|
||||||
};
|
};
|
||||||
__instance.resourceMultiplierText.text = text;
|
__instance.resourceMultiplierText.text = text;
|
||||||
__instance.propertyMultiplierText.text = "元数据生成倍率".Translate() + " " + __instance.gameDesc.propertyMultiplier.ToString("P0");
|
__instance.propertyMultiplierText.text = Localization.PropertyMultiplier.Translate() + " " + __instance.gameDesc.propertyMultiplier.ToString("P0");
|
||||||
__instance.addrText.text = __instance.gameDesc.clusterString;
|
__instance.addrText.text = __instance.gameDesc.clusterString;
|
||||||
var showDifficultTip = resourceMultiplier < 0.11f && !__instance.gameDesc.isSandboxMode;
|
var showDifficultTip = resourceMultiplier < 0.11f && !__instance.gameDesc.isSandboxMode;
|
||||||
__instance.difficultTipGroup.SetActive(showDifficultTip);
|
__instance.difficultTipGroup.SetActive(showDifficultTip);
|
||||||
if (!showDifficultTip) return false;
|
if (!showDifficultTip) return false;
|
||||||
__instance.difficultTipGroup.transform.Find("difficult-tip-text").GetComponent<Text>().text = (resourceMultiplier < 0.09f ? "史诗难度" : "非常困难").Translate();
|
__instance.difficultTipGroup.transform.Find("difficult-tip-text").GetComponent<Text>().text = (resourceMultiplier < 0.09f ? Localization.EpicDifficultyLabel : Localization.VeryHard).Translate();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
using UXAssist.Common;
|
||||||
|
|
||||||
|
namespace UniverseGenTweaks;
|
||||||
|
|
||||||
|
public static class Localization
|
||||||
|
{
|
||||||
|
public const string Micro = "Micro";
|
||||||
|
public const string EpicDifficultyLabel = "Epic Difficulty !!";
|
||||||
|
public const string VeryHard = "Very Hard";
|
||||||
|
public const string StarDistanceMin = "Star Distance Min";
|
||||||
|
public const string StepDistanceMin = "Step Distance Min";
|
||||||
|
public const string StepDistanceMax = "Step Distance Max";
|
||||||
|
public const string Flatness = "Flatness";
|
||||||
|
public const string UniverseGen = "UniverseGen";
|
||||||
|
public const string BirthStar = "Birth Star";
|
||||||
|
public const string EnableMoreSettingsOnUniverseGen = "Enable more settings on UniverseGen";
|
||||||
|
public const string RequiresGameRestartToTakeEffect = "* Requires game restart to take effect";
|
||||||
|
public const string MaximumStarCount = "Maximum star count";
|
||||||
|
public const string EnableEpicDifficulty = "Enable Epic difficulty";
|
||||||
|
public const string ResourceMultiplier = "Resource multiplier";
|
||||||
|
public const string OilMultiplierRelativeToVeryHard = "Oil multiplier (relative to Very Hard)";
|
||||||
|
public const string SiliconTitaniumOnBirthPlanet = "Silicon/Titanium on birth planet";
|
||||||
|
public const string FireIceOnBirthPlanet = "Fire ice on birth planet";
|
||||||
|
public const string KimberliteOnBirthPlanet = "Kimberlite on birth planet";
|
||||||
|
public const string FractalSiliconOnBirthPlanet = "Fractal silicon on birth planet";
|
||||||
|
public const string OrganicCrystalOnBirthPlanet = "Organic crystal on birth planet";
|
||||||
|
public const string OpticalGratingCrystalOnBirthPlanet = "Optical grating crystal on birth planet";
|
||||||
|
public const string SpiniformStalagmiteCrystalOnBirthPlanet = "Spiniform stalagmite crystal on birth planet";
|
||||||
|
public const string UnipolarMagnetOnBirthPlanet = "Unipolar magnet on birth planet";
|
||||||
|
public const string BirthPlanetIsSolidFlatNoWaterAtAll = "Birth planet is solid flat (no water at all)";
|
||||||
|
public const string BirthStarHasHighLuminosity = "Birth star has high luminosity";
|
||||||
|
public const string PropertyMultiplier = "Property multiplier";
|
||||||
|
public const string Unlimited = "Unlimited";
|
||||||
|
public const string Scarce = "Scarce";
|
||||||
|
public const string AggressivenessNormal = "Normal";
|
||||||
|
public const string AggressivenessSittingDuck = "Sitting Duck";
|
||||||
|
public const string AggressivenessNegative = "Negative";
|
||||||
|
public const string AggressivenessRampage = "Rampage";
|
||||||
|
public const string AggressivenessAggressive = "Aggressive";
|
||||||
|
public const string AggressivenessPassive = "Passive";
|
||||||
|
public const string DifficultyValueFormat = "Difficulty value: {0}";
|
||||||
|
|
||||||
|
public static void Register()
|
||||||
|
{
|
||||||
|
I18N.Add(Micro, "Micro", "究极少");
|
||||||
|
I18N.Add(EpicDifficultyLabel, "Epic Difficulty !!", "史诗难度 !!");
|
||||||
|
I18N.Add(VeryHard, "Very Hard", "非常困难");
|
||||||
|
I18N.Add(StarDistanceMin, "Star Distance Min", "恒星最小距离");
|
||||||
|
I18N.Add(StepDistanceMin, "Step Distance Min", "步进最小距离");
|
||||||
|
I18N.Add(StepDistanceMax, "Step Distance Max", "步进最大距离");
|
||||||
|
I18N.Add(Flatness, "Flatness", "扁平度");
|
||||||
|
I18N.Add(UniverseGen, "UniverseGen", "宇宙生成");
|
||||||
|
I18N.Add(BirthStar, "Birth Star", "母星系");
|
||||||
|
I18N.Add(EnableMoreSettingsOnUniverseGen, "Enable more settings on UniverseGen", "启用更多宇宙生成设置");
|
||||||
|
I18N.Add(RequiresGameRestartToTakeEffect, "* Requires game restart to take effect", "* 需要重启游戏才能生效");
|
||||||
|
I18N.Add(MaximumStarCount, "Maximum star count", "最大恒星数");
|
||||||
|
I18N.Add(EnableEpicDifficulty, "Enable Epic difficulty", "启用史诗难度");
|
||||||
|
I18N.Add(ResourceMultiplier, "Resource multiplier", "资源倍率");
|
||||||
|
I18N.Add(OilMultiplierRelativeToVeryHard, "Oil multiplier (relative to Very Hard)", "石油倍率(相对于非常困难)");
|
||||||
|
I18N.Add(SiliconTitaniumOnBirthPlanet, "Silicon/Titanium on birth planet", "母星有硅和钛");
|
||||||
|
I18N.Add(FireIceOnBirthPlanet, "Fire ice on birth planet", "母星有可燃冰");
|
||||||
|
I18N.Add(KimberliteOnBirthPlanet, "Kimberlite on birth planet", "母星有金伯利矿");
|
||||||
|
I18N.Add(FractalSiliconOnBirthPlanet, "Fractal silicon on birth planet", "母星有分形硅");
|
||||||
|
I18N.Add(OrganicCrystalOnBirthPlanet, "Organic crystal on birth planet", "母星有有机晶体");
|
||||||
|
I18N.Add(OpticalGratingCrystalOnBirthPlanet, "Optical grating crystal on birth planet", "母星有光栅石");
|
||||||
|
I18N.Add(SpiniformStalagmiteCrystalOnBirthPlanet, "Spiniform stalagmite crystal on birth planet", "母星有刺笋结晶");
|
||||||
|
I18N.Add(UnipolarMagnetOnBirthPlanet, "Unipolar magnet on birth planet", "母星有单极磁石");
|
||||||
|
I18N.Add(BirthPlanetIsSolidFlatNoWaterAtAll, "Birth planet is solid flat (no water at all)", "母星是纯平的(没有水)");
|
||||||
|
I18N.Add(BirthStarHasHighLuminosity, "Birth star has high luminosity", "母星系恒星高亮");
|
||||||
|
I18N.Add(PropertyMultiplier, "Property multiplier", "元数据生成倍率");
|
||||||
|
I18N.Add(Unlimited, "Unlimited", "无限");
|
||||||
|
I18N.Add(Scarce, "Scarce", "极少");
|
||||||
|
I18N.Add(AggressivenessNormal, "Normal", "正常");
|
||||||
|
I18N.Add(AggressivenessSittingDuck, "Sitting Duck", "活靶子");
|
||||||
|
I18N.Add(AggressivenessNegative, "Negative", "消极");
|
||||||
|
I18N.Add(AggressivenessRampage, "Rampage", "狂暴");
|
||||||
|
I18N.Add(AggressivenessAggressive, "Aggressive", "积极");
|
||||||
|
I18N.Add(AggressivenessPassive, "Passive", "被动");
|
||||||
|
I18N.Add(DifficultyValueFormat, "Difficulty value: {0}", "难度系数值:{0}");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@@ -147,12 +147,12 @@ public static class CombatSettingsPatch
|
|||||||
};
|
};
|
||||||
text = (int)(__instance.aggresiveSlider.value + 0.5f) switch
|
text = (int)(__instance.aggresiveSlider.value + 0.5f) switch
|
||||||
{
|
{
|
||||||
0 => "活靶子".Translate(),
|
0 => Localization.AggressivenessSittingDuck.Translate(),
|
||||||
1 => "被动".Translate(),
|
1 => Localization.AggressivenessPassive.Translate(),
|
||||||
2 => "消极".Translate(),
|
2 => Localization.AggressivenessNegative.Translate(),
|
||||||
3 => "正常".Translate(),
|
3 => Localization.AggressivenessNormal.Translate(),
|
||||||
4 => "积极".Translate(),
|
4 => Localization.AggressivenessAggressive.Translate(),
|
||||||
5 => "狂暴".Translate(),
|
5 => Localization.AggressivenessRampage.Translate(),
|
||||||
_ => text
|
_ => text
|
||||||
};
|
};
|
||||||
__instance.aggresiveText.text = text;
|
__instance.aggresiveText.text = text;
|
||||||
@@ -305,11 +305,11 @@ public static class CombatSettingsPatch
|
|||||||
var gameDesc = new GameDesc();
|
var gameDesc = new GameDesc();
|
||||||
var difficulty = __instance.combatSettings.difficulty;
|
var difficulty = __instance.combatSettings.difficulty;
|
||||||
var text2 = difficulty >= 9.9999f ? difficulty.ToString("0.00") : difficulty.ToString("0.000");
|
var text2 = difficulty >= 9.9999f ? difficulty.ToString("0.00") : difficulty.ToString("0.000");
|
||||||
__instance.difficultyText.text = string.Format("难度系数值".Translate(), text2);
|
__instance.difficultyText.text = string.Format(Localization.DifficultyValueFormat.Translate(), text2);
|
||||||
__instance.difficultTipGroupDF.SetActive((__instance.combatSettings.aggressiveLevel == EAggressiveLevel.Rampage && difficulty > 4.5f) || difficulty > 6f);
|
__instance.difficultTipGroupDF.SetActive((__instance.combatSettings.aggressiveLevel == EAggressiveLevel.Rampage && difficulty > 4.5f) || difficulty > 6f);
|
||||||
__instance.gameDesc.CopyTo(gameDesc);
|
__instance.gameDesc.CopyTo(gameDesc);
|
||||||
gameDesc.combatSettings = __instance.combatSettings;
|
gameDesc.combatSettings = __instance.combatSettings;
|
||||||
__instance.propertyMultiplierText.text = "元数据生成倍率".Translate() + " " + gameDesc.propertyMultiplier.ToString("0%");
|
__instance.propertyMultiplierText.text = Localization.PropertyMultiplier.Translate() + " " + gameDesc.propertyMultiplier.ToString("0%");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using UXAssist.Common;
|
using UXAssist.Common;
|
||||||
@@ -27,11 +27,6 @@ public static class GalaxySelectUIPatch
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("恒星最小距离", "Star Distance Min", "恒星最小距离");
|
|
||||||
I18N.Add("步进最小距离", "Step Distance Min", "步进最小距离");
|
|
||||||
I18N.Add("步进最大距离", "Step Distance Max", "步进最大距离");
|
|
||||||
I18N.Add("扁平度", "Flatness", "扁平度");
|
|
||||||
I18N.Apply();
|
|
||||||
MoreSettings.Enabled.SettingChanged += OnEnabledChanged;
|
MoreSettings.Enabled.SettingChanged += OnEnabledChanged;
|
||||||
Enable(MoreSettings.Enabled.Value);
|
Enable(MoreSettings.Enabled.Value);
|
||||||
}
|
}
|
||||||
@@ -70,10 +65,10 @@ public static class GalaxySelectUIPatch
|
|||||||
CreateSliderWithText(__instance.starCountSlider, out _minStepTitle, out _minStepSlider, out _minStepText, out var minStepLocalizer);
|
CreateSliderWithText(__instance.starCountSlider, out _minStepTitle, out _minStepSlider, out _minStepText, out var minStepLocalizer);
|
||||||
CreateSliderWithText(__instance.starCountSlider, out _maxStepTitle, out _maxStepSlider, out _maxStepText, out var maxStepLocalizer);
|
CreateSliderWithText(__instance.starCountSlider, out _maxStepTitle, out _maxStepSlider, out _maxStepText, out var maxStepLocalizer);
|
||||||
CreateSliderWithText(__instance.starCountSlider, out _flattenTitle, out _flattenSlider, out _flattenText, out var flattenLocalizer);
|
CreateSliderWithText(__instance.starCountSlider, out _flattenTitle, out _flattenSlider, out _flattenText, out var flattenLocalizer);
|
||||||
minDistLocalizer.stringKey = "恒星最小距离";
|
minDistLocalizer.stringKey = Localization.StarDistanceMin;
|
||||||
minStepLocalizer.stringKey = "步进最小距离";
|
minStepLocalizer.stringKey = Localization.StepDistanceMin;
|
||||||
maxStepLocalizer.stringKey = "步进最大距离";
|
maxStepLocalizer.stringKey = Localization.StepDistanceMax;
|
||||||
flattenLocalizer.stringKey = "扁平度";
|
flattenLocalizer.stringKey = Localization.Flatness;
|
||||||
|
|
||||||
_minDistTitle.name = "min-dist";
|
_minDistTitle.name = "min-dist";
|
||||||
_minStepTitle.name = "min-step";
|
_minStepTitle.name = "min-step";
|
||||||
|
|||||||
@@ -11,25 +11,6 @@ public static class UIConfigWindow
|
|||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
I18N.Add("UniverseGen", "UniverseGen", "宇宙生成");
|
|
||||||
I18N.Add("Birth Star", "Birth Star", "母星系");
|
|
||||||
I18N.Add("Enable more settings on UniverseGen", "Enable more settings on UniverseGen", "启用更多宇宙生成设置");
|
|
||||||
I18N.Add("* Requires game restart to take effect", "* Requires game restart to take effect", "* 需要重启游戏才能生效");
|
|
||||||
I18N.Add("Maximum star count", "Maximum star count", "最大恒星数");
|
|
||||||
I18N.Add("Enable Epic difficulty", "Enable Epic difficulty", "启用史诗难度");
|
|
||||||
I18N.Add("Resource multiplier", "Resource multiplier", "资源倍率");
|
|
||||||
I18N.Add("Oil multiplier (relative to Very Hard)", "Oil multiplier (relative to Very Hard)", "石油倍率(相对于非常困难)");
|
|
||||||
I18N.Add("Silicon/Titanium on birth planet", "Silicon/Titanium on birth planet", "母星有硅和钛");
|
|
||||||
I18N.Add("Fire ice on birth planet", "Fire ice on birth planet", "母星有可燃冰");
|
|
||||||
I18N.Add("Kimberlite on birth planet", "Kimberlite on birth planet", "母星有金伯利矿");
|
|
||||||
I18N.Add("Fractal silicon on birth planet", "Fractal silicon on birth planet", "母星有分形硅");
|
|
||||||
I18N.Add("Organic crystal on birth planet", "Organic crystal on birth planet", "母星有有机晶体");
|
|
||||||
I18N.Add("Optical grating crystal on birth planet", "Optical grating crystal on birth planet", "母星有光栅石");
|
|
||||||
I18N.Add("Spiniform stalagmite crystal on birth planet", "Spiniform stalagmite crystal on birth planet", "母星有刺笋结晶");
|
|
||||||
I18N.Add("Unipolar magnet on birth planet", "Unipolar magnet on birth planet", "母星有单极磁石");
|
|
||||||
I18N.Add("Birth planet is solid flat (no water at all)", "Birth planet is solid flat (no water at all)", "母星是纯平的(没有水)");
|
|
||||||
I18N.Add("Birth star has high luminosity", "Birth star has high luminosity", "母星系恒星高亮");
|
|
||||||
I18N.Apply();
|
|
||||||
MyConfigWindow.OnUICreated += CreateUI;
|
MyConfigWindow.OnUICreated += CreateUI;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System.Reflection;
|
|||||||
using BepInEx;
|
using BepInEx;
|
||||||
using BepInEx.Configuration;
|
using BepInEx.Configuration;
|
||||||
using crecheng.DSPModSave;
|
using crecheng.DSPModSave;
|
||||||
|
using UXAssist.Common;
|
||||||
using UXAssist.Common.GameConstants;
|
using UXAssist.Common.GameConstants;
|
||||||
using UXAssist.Common.ModFeatures;
|
using UXAssist.Common.ModFeatures;
|
||||||
|
|
||||||
@@ -19,6 +20,8 @@ public class UniverseGenTweaks : BaseUnityPlugin, IModCanSave
|
|||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
|
I18N.Init();
|
||||||
|
|
||||||
MoreSettings.Enabled = Config.Bind("MoreSettings", "Enabled", true, "Enable more settings on Universe Generation");
|
MoreSettings.Enabled = Config.Bind("MoreSettings", "Enabled", true, "Enable more settings on Universe Generation");
|
||||||
MoreSettings.MaxStarCount = Config.Bind("MoreSettings", "MaxStarCount", UniverseGenConstants.DefaultMaxStarCount,
|
MoreSettings.MaxStarCount = Config.Bind("MoreSettings", "MaxStarCount", UniverseGenConstants.DefaultMaxStarCount,
|
||||||
new ConfigDescription($"({UniverseGenConstants.MinStarCount} ~ {UniverseGenConstants.MaxStarCount})\nMaximum star count for Universe Generation, enable MoreSettings.Enabled to take effect",
|
new ConfigDescription($"({UniverseGenConstants.MinStarCount} ~ {UniverseGenConstants.MaxStarCount})\nMaximum star count for Universe Generation, enable MoreSettings.Enabled to take effect",
|
||||||
@@ -53,9 +56,12 @@ public class UniverseGenTweaks : BaseUnityPlugin, IModCanSave
|
|||||||
BirthPlanetPatch.HighLuminosityBirthStar = Config.Bind("Birth", "HighLuminosityBirthStar", false,
|
BirthPlanetPatch.HighLuminosityBirthStar = Config.Bind("Birth", "HighLuminosityBirthStar", false,
|
||||||
"Birth star has high luminosity");
|
"Birth star has high luminosity");
|
||||||
|
|
||||||
|
Localization.Register();
|
||||||
UIConfigWindow.Init();
|
UIConfigWindow.Init();
|
||||||
ModFeatureRegistry.Discover(Assembly.GetExecutingAssembly());
|
ModFeatureRegistry.Discover(Assembly.GetExecutingAssembly());
|
||||||
ModFeatureRegistry.InitAll();
|
ModFeatureRegistry.InitAll();
|
||||||
|
|
||||||
|
I18N.Apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
|
|||||||
Reference in New Issue
Block a user