研究树(Research Tree) mod | 环世界
这是一个更好的研究树模组。该模组具有以下功能:
- 自动生成以最大化可读性为目标的研究树。
- 显示每个研究项目解锁的建筑、植物和配方。
- 研究项目可以排队,当当前研究项目完成时,殖民者会自动开始下一个项目。
- 提供搜索功能,可以快速找到研究项目。
常见问题解答:
- 我可以在现有存档中添加/删除此模组吗?可以在现有存档中添加此模组而不会出现问题。删除此模组将导致加载时出现一些错误,但这些错误不会影响游戏过程,并且在保存后会消失。
- 为什么研究X在位置Y?实际上,我不知道。项目(节点)的位置是自动化的,以最小化依赖关系之间的交叉数量,并减少这些边的总长度。这可能会导致看起来不太理想的放置方式。有时它们确实是非最优的,有时它们只是看起来是非最优的。有关更多信息,请参见下面的技术部分。
- 我可以与X模组一起使用吗?很有可能可以。添加的研究和它们的要求会自动解析,并相应地更新树形布局。ResearchPal实施了与此模组的许多相同功能,如果同时加载这两个模组,研究队列可能无法正确工作。
- 这看起来与ResearchPal非常相似。是的。ResearchPal是基于该模组的旧版本,并由HCSK模组包中的SkyArkAngel进行维护。我已经很久没有继续开发这个模组了,但最近有一些空闲时间,决定再次进行开发。请随意使用您更喜欢的那个(ResearchPal具有完全不同的布局算法)。您可以同时运行两个模组,以查看不同的树形布局,但请注意,如果同时加载这两个模组,研究队列将无法正确工作。
已知问题:
- 布局不完美,如果您对图形布局有经验,请随时查看源代码,并为我实现一个在C中运行的Sugiyama布局算法。
技术说明:
这一切是如何工作的呢?
在“图论”领域中,创建最佳布局是一个已知的问题。有一些严肃的数学家花了几年时间来解决这个问题,并存在许多解决方案。与我们的研究树(一个“有向无环图”或“DAG”)最相关的解决方案是从Sugiyama的工作中得出的。一般来说,这些算法有四个步骤:
- 分层(设置节点的x坐标,强制后续研究的x位置始终高于其任何先决条件,这是一个相当简单的启发式方法)。
- 交叉减少(设置节点的y坐标,使节点之间的连接的交叉数量最小)。
- 边长减少(设置节点的y坐标,使节点之间的连接长度最小)。
- 水平对齐(设置节点的y坐标,使节点之间的连接尽可能直线)。
最后一步是最困难的,但也是创建具有视觉吸引力的树形图最重要的一步。不幸的是,我未能实现两个最著名的用于此目的的算法:
- Brandes,U.和Köpf,B。(2001年9月)。快速简单的水平坐标分配。
- Eiglsperger M.,Siebenhaller M.,Kaufmann M.(2005年)。Sugiyama算法的高效实现用于分层图绘制。
幸运的是,交叉减少和边长减少步骤部分实现了最后一步的目标。最终的图形可能不像可能的那么漂亮,但在大多数情况下仍然相当不错。
贡献者:
- Templarr:俄语翻译
- Suh. Junmin:韩语翻译
- rw-chaos:德语翻译
- 53N4:西班牙语翻译
- Silverside:修复垂直文本的界面缩放错误
- shiuanyue:中文(繁体)翻译
- notfood:实现技术印刷要求
- HanYaodong:添加简体中文翻译
版本和许可证:
此模组的所有原始代码都在MIT许可下授权。您可以随意使用,但请给我信用。此模组中的所有原始内容(例如文本、图像、声音)都在CC-BY-SA 4.0许可下授权。
此模组中的某些代码和一些内容可能由其原始作者授权。如果是这种情况,原始作者和许可证将在源代码中给出,或者在内容旁边的LICENSE文件中给出。请不要反编译我的模组,而是使用在GitHub上提供的原始源代码,以保留源代码中的许可信息。
如果您喜欢我的模组,请成为支持者,通过给我买杯咖啡(或为一杯好的单一麦芽威士忌做出贡献)来表达您的感激之情。
您可以从GitHub下载此模组的所有当前和过去的版本。
注意:以上内容为总结,可能会有遗漏或错误。