Mod制作教程2 交互栏 - WorldBoxOpenMods/ModLoader GitHub Wiki
游戏中的交互栏是由PowersTab来管理的, 你可以在其中添加你自己的按钮.
ModLoader提供了一系列的方法来帮助你轻松的创建和管理你的PowersTab.
在NeoModLoader.General.UI.Tab中, 有一个TabManager类, 你可以使用它来轻松的创建你的PowersTab.
下面是一个示例:
var iconSprite = SpriteTextureLoader.getSprite("ui/icons/iconKingdomZones");
var tab = TabManager.CreateTab("TabId", "TabDisplayName's Key", "TabDescription's Key", iconSprite);
其中, "TabId"为你的PowersTab的Id(请确保与其他模组添加的不同), "TabDisplayName's Key"为你的PowersTab的显示名称的键, "TabDescription's Key"为你的PowersTab的描述的键, iconSprite为你的PowersTab的图标的Sprite对象.
返回得到的tab为你的PowersTab实例.
别忘了添加对NeoModLoader.General.UI.Tab的using(提醒记事本/无配置的VSCode玩家).
NeoModLoader.General.UI.Tab.PowersTabExtension为PowersTab提供了一系列的拓展方法, 你可以使用它们来控制你的PowersTab的布局.
下面是一个示例:
tab.SetLayout(new List<string>(){
"mod_info", "creatures", "tile_brush"
});
tab.AddPowerButton("mod_info", showModInfoPowerButton);
tab.AddPowerButton("creatures", spawnHumanPowerButton);
tab.AddPowerButton("creatures", spawnElfPowerButton);
tab.UpdateLayout();
其中, "mod_info", "creatures", "tile_brush"是tab的三个不同的子栏目, 它们会像原版的交互栏一样从左到右排列, 中间会有一个分割线. 它们的名字并不重要, 只用作区分.
tab是前面创建的PowersTab实例.
showModInfoPowerButton, spawnHumanPowerButton, spawnElfPowerButton是三个假设的已经创建的PowerButton实例.
最后一行将会更新PowersTab的布局, 使其生效.