瑞典人的代码课堂开课了,这部分我没啥好说的,以下都是日志原文:
定义一个新的内嵌窗口时,需要实现三个主要组件:内嵌窗口的定义、GUI定义、以及将其添加到需要显示的国策树中。我们从全新的构建块——内嵌窗口定义开始。
和HoI4中的大多数组件一样,不同的数据库位于不同的文件夹中。内嵌窗口位于`game/common/focus_inlay_windows/`文件夹中,我们可以如下定义第一个内嵌窗口:
这其实是一个可以正常工作的最小化示例,定义了一个ID为`nordic_alliance_inlay_window`的内嵌窗口,并指向名为`nordic_alliance_ui_window`的容器窗口。接下来我们继续添加更多内容,并定义GUI本身。
GUI组件本身不算新内容,但我引入了一些新的本地化功能作为示例。由于所有的国策内嵌窗口都以国策树所属国家为语境进行本地化,因此在编写本地化时可以自由使用这些新特性。我们有一个使用语境的`context_aware_text`来获取阵营名称。另一个使用绑定本地化将`NORDIC_COUNCIL_MEMBER`与参数`IN_FACTION`和`COUNTRY`本地化,分别得到`[SWE.NordicCouncilMemberInFaction]`和`[SWE.GetNameWithFlag]`的结果。同时,我还添加了一个`context_aware_tooltip`,悬停在领导人肖像上时会显示领导人名字。
接下来可以通过添加以下脚本本地化完成本地化(在`game/common/scripted_localisation`中):