首发于Enaium的个人博客
上篇文章我们已经学习到了如何去替换和修改游戏的内容,这篇文章我们将学习如何添加自定义物品。
修改 Objects 数据
游戏中几乎所有的普通物品被称为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,
};