新增设置项:Source/WulaFallenEmpire/WulaFallenEmpireSettings.cs 增加 maxContextTokens 并持久化。 设置界面:Source/WulaFallenEmpire/WulaFallenEmpireMod.cs 增加输入框(Widgets.TextFieldNumeric,范围 1000..200000)。 生效点:Source/WulaFallenEmpire/EventSystem/AI/UI/Dialog_AIConversation.cs 压缩历史时不再用常量 MaxHistoryTokens,改为读取 WulaFallenEmpireMod.settings.maxContextTokens。 文本:1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml 添加 Wula_AISettings_MaxContextTokens / Wula_AISettings_MaxContextTokensDesc。 已编译输出:1.6/1.6/Assemblies/WulaFallenEmpire.dll
67 lines
2.3 KiB
C#
67 lines
2.3 KiB
C#
using System;
|
|
using System.Reflection;
|
|
using HarmonyLib;
|
|
using UnityEngine;
|
|
using Verse;
|
|
|
|
namespace WulaFallenEmpire
|
|
{
|
|
[StaticConstructorOnStartup]
|
|
public class WulaFallenEmpireMod : Mod
|
|
{
|
|
public static WulaFallenEmpireSettings settings;
|
|
private string _maxContextTokensBuffer;
|
|
|
|
public WulaFallenEmpireMod(ModContentPack content) : base(content)
|
|
{
|
|
settings = GetSettings<WulaFallenEmpireSettings>();
|
|
|
|
// 初始化Harmony
|
|
var harmony = new Harmony("tourswen.wulafallenempire"); // 替换为您的唯一Mod ID
|
|
harmony.PatchAll(Assembly.GetExecutingAssembly());
|
|
|
|
Log.Message("[WulaFallenEmpire] Harmony patches applied.");
|
|
}
|
|
|
|
public override void DoSettingsWindowContents(Rect inRect)
|
|
{
|
|
Listing_Standard listingStandard = new Listing_Standard();
|
|
listingStandard.Begin(inRect);
|
|
|
|
listingStandard.Label("Wula_AISettings_Title".Translate());
|
|
|
|
listingStandard.Label("Wula_AISettings_ApiKey".Translate());
|
|
settings.apiKey = listingStandard.TextEntry(settings.apiKey);
|
|
|
|
listingStandard.Label("Wula_AISettings_BaseUrl".Translate());
|
|
settings.baseUrl = listingStandard.TextEntry(settings.baseUrl);
|
|
|
|
listingStandard.Label("Wula_AISettings_Model".Translate());
|
|
settings.model = listingStandard.TextEntry(settings.model);
|
|
|
|
listingStandard.GapLine();
|
|
listingStandard.Label("Wula_AISettings_MaxContextTokens".Translate());
|
|
listingStandard.Label("Wula_AISettings_MaxContextTokensDesc".Translate());
|
|
Rect tokensRect = listingStandard.GetRect(Text.LineHeight);
|
|
Widgets.TextFieldNumeric(tokensRect, ref settings.maxContextTokens, ref _maxContextTokensBuffer, 1000, 200000);
|
|
|
|
listingStandard.End();
|
|
base.DoSettingsWindowContents(inRect);
|
|
}
|
|
|
|
public override string SettingsCategory()
|
|
{
|
|
return "Wula Fallen Empire";
|
|
}
|
|
}
|
|
|
|
[StaticConstructorOnStartup]
|
|
public static class StartupLogger
|
|
{
|
|
static StartupLogger()
|
|
{
|
|
Log.Message("WulaFallenEmpire Mod DLL, version 1.0.2, has been loaded.");
|
|
}
|
|
}
|
|
}
|