BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:物体
← 物品数据
此页面解释了游戏如何存储和解析“物体”类型的物品数据。对于物品数据的概述,请参阅模组:物品数据。
概览
物体是放在背包或世界中的物品的默认类型。根据具体数据,它们能够被放在地上、捡起、食用、售出等。
饰品的物品类型为 (O)
(在 C# 代码中,也写作 ItemRegistry.type_object
),其数据存储在 Data/Objects,其原版贴图存储在 Maps/springobjects 或 TileSheets\Objects_2,其代码存储在 StardewValley.Object。参见物体的贴图和索引列表
数据格式
数据素材 Data/Objects 包含一个“字符串 → 数据模型”查询,其中:
- 键为非限定性物品ID。
- 值为包含如下字段的数据模型。
基本信息
字段 | 含义 |
---|---|
Name | 物品内部名称 |
DisplayName Description |
用于游戏内显示名称和描述的模板字符串。 |
Type | 物品大体上的类型,比如Arch(古物)或 Minerals(矿物)。原版类型为:Basic、Arch(古物)、Litter(杂物等)、 Minerals、Quest、Crafting、Fish、Cooking、Seeds、Ring、interactive 以及像 asdf 这样的占位值。 |
Category | 物品类别。 |
Price | (可选) 玩家售出该物品的价格。注意:这不是玩家从商店购买的价格。默认为0。 |
外观
字段 | 含义 |
---|---|
Texture | 包含此物品贴图的素材名称。默认为Maps/springobjects。 |
SpriteIndex | Texture中的贴图索引,其中0对应左上角的贴图。 |
可食用性
字段 | 含义 | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Edibility | (可选) 一个数值,用于决定食用该物品可以回复多少点能量(可食用性 × 2.5)和生命(可食用性 × 1.125)。可食用性为-300的物品不可食用,而-299至-1之间的值会减少生命值和能量,取值为0的物品也可食用,但不会改变生命值/能量。默认为-300。 | ||||||||||||||||||||||||||||||||||
IsDrink | (可选) 该物品是否为饮品(而非食品)。默认为false。 | ||||||||||||||||||||||||||||||||||
Buffs | (可选) 玩家食用该物品可能获得的诸效果。默认为none。
本字段的值为包含如下字段的一些数据模型所组成的列表:
|
晶球、远古斑点
字段 | 含义 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
GeodeDrops GeodeDropsDefaultItems |
(可选) 将此物品(如晶球)敲开时可能掉落的物品。只需指定二者其一,即可自动启用该物品的晶球行为。
您可以仅指定其中一个字段,也可同时指定两个字段:
若同时指定两个字段,则会以50%的概率给出自定义掉落物或默认掉落物。但若指定了自定义掉落物GeodeDrops字段,却没有任何匹配的掉落物,则强制使用默认掉落物GeodeDropsDefaultItems,无论该字段是否为true。 | ||||||||||
ArtifactSpotChances | (可选) 若为古物(即Type字段为Arch),挖掘远古斑点获得它的概率。
该字段为一个“字符串 → 数据模型”查询,其中:
|
上下文标签 & 排除规则
field | purpose |
---|---|
ContextTags | (可选) 欲为该物品添加的自定义#上下文标签。此处“自定义”是相对于那些自动添加的上下文标签而言的。此字段应为一个列表,例如:
"ContextTags": [ "color_yellow", "fish_ocean", "fish_upright", "season_summer" ]
|
CanBeGivenAsGift | (可选)此物品是否可以赠送给 NPC 。默认为 true。 |
CanBeTrashed | (可选)此物品是否能放进背包的垃圾桶。默认为 true。 |
ExcludeFromRandomSale | (可选) 商店选取随机物品售卖时,是否排除该物品。默认为 false。 |
ExcludeFromFishingCollection ExcludeFromShippingCollection |
(可选) 是否将此物品从“钓鱼”/“售出的物品”收集品菜单中排除,也会影响完美。默认为false,此时会使用通常情况的要求(例如,古物通常情况下不会计入“售出的物品”)。 |
高级
字段 | 含义 |
---|---|
CustomFields | (可选) 此条目的自定义字段。 |
不可获得物品
贴图集和数据素材中存在某些物品正常情况下无法放进玩家背包(例如 twig 和 lumber),且有一些贴图没有对应的物品数据。数据素材中存在多个名为 Weeds 和 Stone 的条目,但是玩家正常情况下只能获取一种 Stone(ID 为 390 的“石头”),不能获取 Weeds。
对于C#模组
StardewValley.Object 类型表示了物体类型的物品。
此类型提供了许多用于简化通用逻辑的方法。如下是一些值得注意的例子:
方法 | 效果 |
---|---|
object.IsBar() | 此物品是否为铜锭、铁锭、金锭、铱锭或放射性矿锭之一。 |
object.IsBreakableStone() | 此物品是否为可以被十字镐敲碎的石头类杂物。 |
object.IsFence() | 此物品是否为fence. |
object.IsFruitTreeSapling() | 此物品是否为果树树苗。此方法检查 Data\fruitTrees 字段,因此也适用于自定义果树。 |
object.IsHeldOverHead() | 玩家在物品栏中选中该物品时,是否显示举着此物品的图像。默认为 true(除了家具)。 |
object.IsIncubator() | 此物品放置在建筑中时是否可以孵化农场动物。 |
object.IsTapper() | 此物品是否为树液采集器或重型树液采集器。 |
object.IsTeaSapling() | 此物品是否为茶苗。 |
object.IsTwig() | 此物品是否为树枝类杂物。 |
object.IsWeeds() | 此物品是否为杂草类杂物。 |
另请参阅
- 模组:物品数据提供了物品数据的概述性参考。