上篇文章我们已经学习到了如何去替换和修改游戏的内容,这篇文章我们将学习如何添加自定义物品。
游戏中几乎所有的普通物品被称为Object
,我们也会看到Data\Objects.json
文件中有着许多数据。
if (e.Name.IsEquivalentTo("Data/Objects"))
{
e.Edit(assets =>
{
var dict = assets.AsDictionary<string, ObjectData>();
var diamond = new ObjectData
{
Name = "Awesome_Diamond",
DisplayName = "Diamond",
Description = "This is a diamond from Minecraft.",
Type = "Minerals",
Category = StardewValley.Object.GemCategory,
Price = 10000,
Texture = "Awesome_Diamond"
};
dict.Data["Awesome_Diamond"] = diamond;
});
}
首先我们先判断是否为Data/Objects
,接着我们使用ObjectData
去创建一个ObjectData
对象,然后我们设置Name
,DisplayName
,Description
,Type
,Category
,Price
,SpriteIndex
,Texture
,最后我们将这个对象添加到Data
中。
这里做一张16x16
格式为png
的图。
我们需要在assets
文件夹下创建一个Awesome_Diamond.png
文件,然后将我们的图片放入其中。
if (e.Name.IsEquivalentTo("Awesome_Diamond"))
{
e.LoadFromModFile<Texture2D>("assets/Diamond.png", AssetLoadPriority.Medium);
}
我们使用物品生成器搜索diamond
就会看到我们添加的自定义物品。
到目前为止我们已经学会了如何添加自定义物品,现在来添加一个食物。
只需用添加一个Edibility
就可以了,之后能量会是它乘2.5
,健康会是它乘1.125
,也就是100*2.5=250
,100*1.125=112
var apple = new ObjectData
{
Edibility = 100,
};