自定义矿石节点

自定义矿石节点

允许你创建自定义矿产节点,这些节点看起来像任何物体并掉落你想要的任意物品。

物品

这个模组允许你创建自定义矿石节点,这些节点有机会替代普通石头生成(类似于其他矿石节点)。默认情况下,它包含一个新的“煤炭石头”节点,会掉落煤炭,还包含了“披萨石头”(掉落披萨)和“彩虹石头”(掉落五彩碎片)的示例。

用法

要使用这个Mod,您只需将Mod附带的EXAMPLEcustom_ore_nodes.json文件重命名为custom_ore_nodes.json,然后用文本编辑器进行编辑即可。nodes键包含一系列用于描述自定义节点的对象。例如:

{
    "parentSheetIndex": 0,
    "dropItems": [
        {
            "itemIdOrName": "382",
            "dropChance": 100.0,
            "minAmount": 1,
            "maxAmount": 4,
            "luckyAmount": 1,
            "minerAmount": 1
        },
        {
            "itemIdOrName": "390",
            "dropChance": 75.0,
            "minAmount": 1,
            "maxAmount": 2,
            "luckyAmount": 1,
            "minerAmount": 1
        }
    ],
    "oreLevelRanges": [
        {
            "minLevel": 1,
            "maxLevel": 120,
            "spawnChanceMult": 1.0,
            "expMult": 1.0,
            "dropChanceMult": 1.0,
            "dropMult": 1.0,
            "minDifficulty": -1,
            "maxDifficulty": -1
        }
    ],
    "nodeDesc": "这块石头富含煤炭。",
    "spritePath": "assets\\CoalStone.png",
    "spriteType": "mod",
    "spriteX": 0,
    "spriteY": 0,
    "spriteW": 16,
    "spriteH": 16,
    "spawnChance": 5.0,
    "durability": 4,
    "exp": 12,
    "texture": null
}

你也可以使用Content Patcher添加节点对象,目标是字典文件: aedenthorn.CustomOreNodes/dict

{
    "Format": "1.23.0",
    "Changes": [
        {
            "Action": "EditData",
            "Target": "aedenthorn.CustomOreNodes/dict",
            "Entries": {
                "me.myMod/myNode": {
                    // 你的节点数据在此
                }
            }
        }
    ]
}

另外,你可以为此模组创建自己的内容包(查看文件部分获取模板模组),其中包含自定义的custom_ore_nodes.json文件。

实现这一点的模组示例包括:

节点说明

  • parentSheetIndex: 此项自动设置,无需修改
  • dropItems: 掉落物品列表(详见下文)
  • oreLevelRanges: 此矿石节点生成的有效矿层范围列表(详见下文)
  • nodeDesc: 描述你的矿石节点。
  • spritePath: 矿石节点图形文件的相对路径
  • spriteType: modgame,用于改变模组查找图形文件的位置
  • spriteX, spriteY: 图形文件中该节点图像起始的坐标
  • spriteW, spriteH: 该节点的宽度和高度(必须为16x16)
  • spawnChance: 每个普通矿石节点生成为此类矿石的基础百分比概率
  • durability: 破坏该节点的难度值
  • exp: 破坏该节点获得的经验值
  • texture: 此项保持为null

掉落物品列表

掉落物品列表包含JSON对象,其中包含该节点应掉落的物品信息,具体如下:

  • itemIdOrName: 物品的索引或名称(参见此处原始数据中的对象ID和名称)
  • dropChance: 掉落该物品的百分比概率
  • minAmount, maxAmount: 最小掉落数量,最大掉落数量
  • luckyAmount: 如果运气好,额外掉落的数量
  • minerAmount: 如果拥有采矿技能,额外掉落的数量

等级范围列表

等级范围列表包含JSON对象,这些对象指定了此节点可生成的矿井楼层范围,具体如下:

  • minLevel, maxLevel: 将任一设为-1以禁用;121是骷髅洞穴的第一层;0表示矿井外(0,0仅表示矿井外)
  • spawnChanceMult: 针对该范围的节点生成基础几率的倍数
  • expMult: 针对该范围的开采节点基础经验值的倍数
  • dropMult: 针对该范围的节点掉落每种物品基础数量的倍数
  • dropChanceMult: 针对该范围的节点掉落每种物品基础几率的倍数
  • minDifficulty, maxDifficulty: 星露谷物语1.5版本新增内容,矿井难度可能增加。若只想在更高难度的层数生成,可将其中一项设为1。设为-1以禁用。

上述节点会使在矿井(1-120层)中每个石头有5%的几率生成煤炭石头。

其他地下模组

技术说明

如果你尝试丢弃来自你不知道ID的模组中的物品,只需使用对象名称(但如果显示名称不同,则不要使用显示名称)。 SMAPI日志现在会显示更好的消息,告诉你语法何时出现问题。如果遇到困难,请查看日志。

截图是使用自定义地下城楼层创建的,该功能允许生成更多石块以及其他内容。

需要SMAPI,使用Harmony(和谐补丁)。

源代码可在 https://github.com/aedenthorn/StardewValleyMods/ 获取。

如果你想要投诉、寻求帮助,或者帮忙测试我的模组,可以访问我的Discord服务器。

我所有的《星露谷物语》模组列表可在 https://www.nexusmods.com/stardewvalley/articles/895 查看。