仓库:MuZiCul/DoubleQoLMod-zh(原创汉化)· 语言:C#(基于 Mafi 游戏引擎 API)· 定位:《工业队长》游戏 QoL(生活质量)增强模组
《Captain of Industry》(工业队长)游戏的 DoubleQoL 模组中文版,主要提供游戏倍速、自由相机、状态栏增强等"生活质量"改进。
本仓库只提供中文翻译,与原作者无任何关系。原作者:DoubleMa/DoubleQoLMod
DoubleQoL.cs)public sealed class DoubleQoL : IMod {
public static Version ModVersion = new Version(1, 4, 1);
public string Name => "DoubleQoL";
public int Version => 1;
public bool IsUiOnly => false; // 非纯 UI 模组,涉及游戏逻辑注入
public void Initialize(DependencyResolver resolver, bool gameWasLoaded) {
Logging.Log.Info($"Current {Name} version v{ModVersion.ToString(3)}");
InitializePatchers(resolver); // 初始化所有 Patch
}
public void RegisterPrototypes(ProtoRegistrator registrator) {
PrototypeHelper.Instance.Init(registrator);
}
private void InitializePatchers(DependencyResolver resolver) {
MineTowerPatcher.Instance?.Init(resolver);
VehiclePatcher.Instance?.Init(resolver);
EdgeSizeLimitPatcher.Instance?.Init(resolver);
LogisticsStatusBarPatcher.Instance?.Init(resolver);
PopulationStatusBarPatcher.Instance?.Init(resolver);
ResearchPopupControllerPatcher.Instance?.Init(resolver);
BlueprintsControllerPatcher.Instance?.Init(resolver);
}
}
技术要点:
- 实现 IMod 接口接入 Mafi 引擎的模组生命周期
- 采用 Patcher(补丁器)模式:每个功能一个独立 Patcher 类,通过 Instance?.Init(resolver) 统一初始化
- 用游戏引擎的 依赖注入容器(DependencyResolver)解析所需服务,而非硬编码耦合
- ?. 空条件运算符——某个 Patcher 单例未创建时静默跳过,避免一个功能失败导致整个模组崩溃
src/
├── DoubleQoL.cs # 模组入口(IMod 实现)
├── Config/ # 配置读取(DoubleQoL.dll.config)
├── Extensions/ # 扩展方法
├── Game/
│ ├── Patcher/ # 各功能的注入补丁(MineTower/Vehicle/EdgeSizeLimit/StatusBar...)
│ └── Prototypes/ # 游戏原型辅助
├── Global/ # 全局状态
├── Logging/ # 日志
└── QoL/
├── Controllers/ # 功能控制器
├── Shortcuts/ # 快捷键绑定
├── Tools/ # 工具类
└── UI/(19 个 .cs) # 界面组件
| 功能 | 快捷键 | 说明 |
|---|---|---|
| 游戏倍速控制 | 数字键 8-9 | 最高 10 倍速 |
| 自由相机模式 | F9 | 最大旋转距离 6000 |
| 开关雾效 | F10 | 启用/禁用雾 |
| 状态栏增强 | 右键健康/凝聚力/卡车图标 | 显示更多信息 |
| 控制塔资源优先级 | — | 为所有挖掘机指定资源优先级 |
| 车辆作业管理 | — | 一键取消所有作业 |
| 面积调整 | — | 地形指定/选择工具/塔的作用面积 |
| 车辆移动工具 | — | 选择并移动所有/指定车辆 |
| 蓝图商店 | — | 游戏内共享与下载蓝图 |
DoubleQoL.dll.config)<!-- 四个配置节 -->
<QoLs> <!-- 启用/禁用任意 QoL 功能 -->
<KeyCodes> <!-- 修改每项功能的热键 -->
<DefaultState><!-- 设置进入游戏时各功能的默认状态 -->
<BlueprintServers><!-- 为 BlueprintQoL 添加私有/公共服务器 -->
配置驱动 + 热键可改,玩家可完全定制自己的体验。
%USERPROFILE%\AppData\Roaming\Captain of Industry\Mods原作者的模组工程比较规范,几个设计值得一提:
DependencyResolver 获取游戏内部服务,与引擎解耦Instance?.Init() 保证单点失败不影响整体我汉化时保留了原作者出处,并照原文翻译了免责声明(与原作者无关、仅供个人使用、按原样提供)。