Don't Starve Together

Don't Starve Together

Not enough ratings
饥荒模组制作-关于modicon.xml结构剖析(有点硬核)
By Luckyclover
我们经常在mod文件夹中看到modicon.xml这个文件,却不知道它究竟是干什么用的,本篇指南就来告诉你mod文件夹里的xml文件究竟是什么
   
Award
Favorite
Favorited
Unfavorite
基本工作-modinfo的准备工作和新建xml文件的代码准备
先做个总结modicon.xml是modicon.tex的切割文件,modicon.tex是图片文件,展示这个mod介绍页码的图片,而modicon.xml将这个图片上下左右进行百分比切割展示出来,但需要现在modinfo里面写出基本代码。

以下是Modinfo代码。

name = ""
description = ""
author = ""
version = "1.0.5"
forumthread = ""
api_version = 10
icon_atlas = "modicon.xml"
icon = "modicon.tex"

-- For Don't Starve Together
dst_compatible = true

-- This version is not for single player
dont_starve_compatible = false
reign_of_giants_compatible = false

--This lets clients know if they need to get the mod from the Steam Workshop to join the game
all_clients_require_mod = false

--This determines whether it causes a server to be marked as modded (and shows in the mod list)
client_only_mod = true


configuration_options =
{
{
name = "music_mode",
label = "Music Mode",
options = {
{description = "持续", data = "default", hover = "音乐持续播放."},
{description = "工作", data = "busy", hover = "工作时播放音乐"},
},

default = "default",

},
}

在这样一串modinfo里面的代码几乎是每一个饥荒音乐模组都具备的结构,找到我划粗的地方,这里定义modicon的名字,可以改成你想要的英文小写字母名字,别的不能乱动会报错。

icon_atlas = "modicon.xml"
icon = "modicon.tex"

你可以改成

icon_atlas = "mymod.xml"
icon = "mymod.tex"

然后你再mod文件夹根目录新建一个txt文档,里面写上。

<Atlas><Texture filename="mymod.tex" />
<Elements><Element name="mymod.tex" u1="0" u2="1" v1="0" v2="1" />
</Elements></Atlas>

再把这个文件改成mymod.xml

大功告成。





modicon.tex的准备工作
现在你可以配置和mymod.xml相关联的mymod.tex,这个文件需要TEXTOOLS工具,可以在科雷的饥荒联机版官方论坛上下载,我这里就不追叙了,本篇指南是着重xml就不过多描写tex了。

首先打开下载的textools工具打开TEXCreator.exe,点击Add将一张64x64的Png图片塞入进去,然后下边点击“.“选择桌面,右边暂时不需要管他,最后点击convert在桌面生成一个tex文件,这个tex文件就是64x64的Png图片内容,然后将它拖入到mod文件夹根目录。改名成mymod.tex

modicon.xml代码分析
<Atlas><Texture filename="modicon.tex" />
<Elements><Element name="modicon.tex" u1="0" u2="1" v1="0" v2="1" />
</Elements></Atlas>

这串代码是xml里面的代码,可以重复复制,不过需要一个相应的tex文件和这个对应,名字和代码也必须两两对应。

重点来了。

xml里面的u1,u2,v1,v2对应的是你tex的左右上下的切割百分比,0,1,0,1是全部显示


如果你是128x128,但你只想要显示64x64的中心内容,你可以改成

<Atlas><Texture filename="modicon.tex" />
<Elements><Element name="modicon.tex" u1="0" u2="0.5" v1="0" v2="0.5" />
</Elements></Atlas>

这样左边右边上边下边都切割了50%,就是中心显示50%的内容(跟自己相比)。

一个基本单位

<Element name="modicon.tex" u1="0" u2="1" v1="0" v2="1" />

<Element name="你想要的名字,必须对应更改.tex" u1="0" u2="1" v1="0" v2="1" />

一个半完整的有前后缀的单位,可是无法与modinfo的atlas对应

<Elements><Element name="modicon.tex" u1="0" u2="1" v1="0" v2="1" />
</Elements><

atlas前缀和后缀和modinfo的代码对应,终于搞定!
<Atlas><Texture filename="modicon.tex" />
<Elements><Element name="modicon.tex" u1="0" u2="1" v1="0" v2="1" />
</Elements></Atlas>

现在已经搞定了,你可以正常在你的mod介绍页面看到你的图片。



一些报错问题
如果在主页面一点模组就闪退,可能是你mod贴图没用64x64 像素 ,(游戏里面物品栏贴图是128x128像素 )

texcreator创建时候右边不要勾东西。
拓展-物品栏和地图图片的应用
现在你已经学会了如何制定基本的mod介绍页面图片,如果你是大佬相信上面的对于你太简单,接下来是进阶的,过程极其跳跃。

在mod文件夹根目录创建images里面和上面步骤一样新建一个你想要名字的xml和tex文件。并放上一个png图片。

modmain.lua里面的代码

Assets = {
Asset("ANIM", "anim/物品动画文件名字.zip"),

Asset("ATLAS", "images/你想要物品名字.xml"),
Asset("IMAGE", "images/你想要物品名字.tex"),
}


如果你想要在地图上显示,比如你新做的煤矿,在对应prefab的lua代码中写上。

local minimap = inst.entity:AddMiniMapEntity()
minimap:SetIcon( "rock_coal.png" )

然后将对应矿物的xml改成

<Atlas><Texture filename="rock_coal.tex" /><Elements><Element name="rock_coal.png" u1="0.0078125" u2="0.9921875" v1="0.0078125" v2="0.9921875" /></Elements></Atlas>

需要png图片,别的不需要,就这个需要,如果不是矿物等其他自然生成物的地图图片生成,别的不需要额外改成png格式。
2 Comments
Luckyclover  [author] 7 Nov @ 5:26am 
This comment is awaiting analysis by our automated content check system. It will be temporarily hidden until we verify that it does not contain harmful content (e.g. links to websites that attempt to steal information).
六五 6 Nov @ 6:32pm 
您好,我是在linux下尝试开发饥荒mod,我找了很多tex相关,但是似乎并找不到tex的生成工具,您提供的科雷相关论坛已经下线无法再下载,有其他可用的tex生成工具吗,最好是开源,我可以自己编译,否则我无法确认它是否能在linux运行