生产者框架模型

创作者: Digus
已更新:2025-04-08 05:05:37
67KB

前置 MOD

使用 生产者框架模型 时将自动安装

关于此 MOD

添加用于生成对象的自定义规则的框架。支持代码和内容包接口。
客观的:
创建一种简单的方法将新的生产规则添加到游戏之中。

安装:

更新日志:
1.9.8
  • 修复了当鼠标悬停在由 PFM 生成的项目上时出现的错误,由于内容包被删除而缺少翻译键。

1.9.7
  • 修复当输入不是对象或机器不可见时,它不会让任何其他 mod 补丁工作。
1.9.6
  • 禁用与 SV 1.6.9 不兼容的光源功能
  • 修复加载没有名称的生产者时出现的异常。
1.9.5
  • 修复以前版本的空引用错误。
1.9.4
  • 法语 i18n -(感谢卡拉努德)
  • 修复使用 ShowNextIndexWhileWorking 的 vanilla 机器在加载 PFM 规则时不显示适当框架的问题,即使它们没有 ProducerConfig 覆盖它
  • 如果原始机器具有 NoInputStartMode 配置,则修复 ClearContentOvernightCondition 在夜间无法清除的问题。
1.9.3
  • 修复香草和 PFM 机器的料斗行为。
  • 删除某些会导致意外行为的原始机器的 PFM 默认配置。
  • 修复蘑菇盒和日志在添加某些类型的配置后无法提供应有的经验的问题。
  • 所有具有特定行为的可制作物品均被标记为不受支持。(例如锻造,室内植物......)
  • 修复在游戏中加载名称为空的对象时出现的空引用错误。
1.9.2
  • 修复在机器上使用时不消耗仙尘物品的问题。
  • 修复生产彩色物体和火把时的警告。
  • 可能修复自动化时不正确的声音。
1.9.1
  • 修复了与 vanilla 的 bigcraftable 文件宽度不同的纹理动画无法正确显示的问题。
1.9.0
  • 无需 PFMAutomate 即可自动支持 vanilla 和内容修补程序机器
  • 新的属性可以在机器上启用或禁用仙尘。
  • 料斗支持
  • 修复 SV 1.6 之后仙尘无法应用于 PFM 机器的问题
  • 修复在项目之前加载的规则。
  • 更改一些警告消息,以便用户不会将其报告为错误。
  • 修复库存中剩余 0 堆栈物品的错误。
  • 多项燃油消耗修复。
1.8.0
  • 更新模组以兼容 Stardew Valley 1.6
  • 支持所有标识符上的合格项目 ID。
  • 生产者合格商品 ID 和附加生产者合格商品 ID 的新属性。
  • 为蜂蜜添加保存剂。
  • 添加对新 PreserveTypes 的支持
  • 修复价格增量和乘数属性的组合
剧透:
展示
1.7.4
  • 修复不该发生弹跳的情况。
  • 修复当机器有动画但物品应该被包裹时出现错误的问题。
  • 升级到 hamony 2 和 Stardew Valley 1.5.5
  • 西班牙语国际化。(感谢bpsys)
1.7.3
  • 匈牙利语国际化。(感谢马丁66789)
  • 修复当输出具有保留类型并且输入也具有preservedParentIndex时对象无法正确堆叠的问题。
1.7.2
  • 修复与以前翻译工作方式不兼容的问题。
1.7.1
  • 修复当名称没有 i18n 键时某些输出名称无法正常工作的问题。
1.7.0
  • 动画现在可以根据机器内部的输出而有所不同,通过名称、索引或类别标识。
  • 输出名称的国际化不再限制每个索引只能有一个。仅适用于新生产的商品。
  • 新的规则属性使输出索引被保留的父索引替换,这样您就可以反向生产项目。(例如,从鱼子中生产鱼)
  • 新增属性,用于在输入和输出时增加统计标签。状态标签可以是任意字符串,并可与邮件框架模块一起使用。
  • 新属性AdditionalProducerNames,让规则和配置适用于多个生产者名称。
  • 韩语国际化。(感谢沃利232)
  • 土耳其语 i18n。(感谢科迪利)
1.6.0
  • 输出现在可以对输入堆栈进行限制。所需的堆栈将是消耗的值。
  • 与 Lookup Anything 兼容的新属性。
  • 修复无法找到“保留项目”父索引的错误。
  • 修复了在“查找任何内容”中输入堆栈无法正确显示的问题。
  • 日语国际化。(感谢十二岁)
  • 中文国际化。(感谢爱尔兰人)

1.5.0
  • 输出现在可以对邮件和事件进行限制。
  • 新的 API 方法允许 SMAPI 模组直接加载内容包。(感谢艾米·纳格尔)
  • 俄语国际化。(感谢德米特里·库普科夫)
  • 生产者规则的新属性让创建者定义用于警告玩家规则冲突的日志级别。
  • 新的 config.json 文件可让您更改所有生产者规则的冲突警告的默认日志级别。
  • 季节条件和要求现在使用机器所在位置的季节。
  • 在某些情况下,悬停在机器上时的性能会得到改善。
1.4.2
  • 修复 Stardew Valley 1.5 上动画无法正常工作的问题。
  • 修复了 SubtractTimeOfDay 属性无法按预期工作的问题。
  • 修复加载第一个保存时光源不启动的问题。
  • 修复由于季节、天气或时间条件导致制作暂停时动画不会停止的问题。
1.4.1
  • 即使配置好了,蜂房也可以在室内工作。
  • Deutsch i18n。(谢谢zirolive69)
1.4.0
  • 生产商现在可以生产彩色产品,例如 Aged Roes。
  • 可以根据输入颜色、输入染料颜色或输出配置中定义的颜色来选择颜色。
  • 生产者现在可以将输入保留为输出的“父级”。例如,鲑鱼籽变成了陈年鲑鱼籽。
  • 输出现在可以根据输入父级进行限制。例如,鲟鱼籽会变成鱼子酱,而不是陈年鲟鱼籽。
  • 生产者现在可以寻找附近的对象来影响其名称、价格和母公司。就像蜂蜜会受到蜂房中花朵的影响一样。
  • 寻找的物体可以是田地或花园盆中的作物收获物、树上的果实或机器内的物体。
  • 生产光源不能基于输出颜色或染料颜色。
  • 光源颜色定义现已反转,以反映实际的光颜色。
  • 石头名称现已固定到正确的索引。
  • 加载规则和配置时更好地记录消息。
  • 制作者现在可以在制作过程中或准备就绪时添加动画。(需要 1.6.2 版 Json Asset 或内容修补程序来在 Sprite Sheet 中加载纹理)
  • 修复生产者配置覆盖属性。
  • 修复原始机器上的条件验证。
  • 修复光源配置上的 AlwaysOn 属性。
1.3.2
  • 修复多人游戏价格未应用于输出的问题。
  • 更好的随机多样性。
1.3.1
  • 修复生产者灯始终亮着的问题。
  • 新的属性使生产者的灯始终亮着。
1.3.0
  • 制作人现在可以设置为无输入启动。(在投放时或当天启动时)
  • 生产者现在可以设置多种生产条件。(时间、地点、天气和季节)
  • 生产者现在可以在生产时配置光源。
  • 制作人现在可以在制作时禁用弹跳动画。
  • 制作人现在可以增加每个输出的产品移除游戏统计数据。
  • 产出现在可以有生产限制。(燃料、地点、天气和季节)
  • 现在每个输出可以有不同的生产时间,覆盖规则的默认值。
  • 可以从一天的时间中减去生产时间。
  • 规则现在需要声明它们可以覆盖特定的模式。
  • 无论机箱和系统操作系统如何,Mod 文件现在都可以加载。
1.2.0
1.1.0
  • 木炭窑烟的新动画
  • 新的偏移属性可以更好地定位动画。
  • 属性以延迟方式添加声音。
  • 用于在输入时增加游戏统计数据的属性。
  • 支持创建火炬作为输出。
  • 修复最大堆栈工作量比应有的少一个的问题。
1.0.0
  • 初始版本。
  • 支持内容包配置。
  • 支持方法调用配置。
  • 从输入开始实施生产的所有基本原始规则。

对于使用内容包的模组制作者:
  • mod 文件夹内有一个模板,其中有关于每个属性功能的注释说明。
  • 内容包中使用的对象与框架中的方法相同。使用方法和创建内容包之间应该没有区别。
  • 有两个配置文件。一个用于配置规则,另一个用于配置新添加的生产者。规则文件涵盖了大多数内容,但像机器正在生产或准备就绪时应显示的精灵帧之类的内容应该根据机器进行配置,而不是根据生产规则进行配置。原版机器的配置是默认的,但可以更改。
  • 以下是在 mod 文件(ProducerRules.json)中添加的自定义规则的模板:
剧透:
展示
[
{ // 可以删除所有具有默认值的行并使用该值。
"ProducerName": "ProducerName", //要查找的生产者的名称。它将匹配找到的第一个大型可制作物品。如果定义了 ProducerQualifiedItemId,则会被忽略。这是一个遗留属性,您应该使用 ProducerQualifiedItemId 代替。
"ProducerQualifiedItemId": "(BC)12", //生产者的QualifiedItemId。如果未定义ProducerName,则此字段为必填项。
"AdditionalProducerNames": [ "ProducerName2", "ProducerName3" ], //生产者的附加名称。该规则将被完整复制到列表中的生产者名称。
"AdditionalProducerQualifiedItemId": [ "(BC)15", "(BC)16" ], //生产者的附加合格项目 ID。该规则将被完整复制到列表中的生产者合格项目 ID。
"InputIdentifier": "fruit_tree_item", //输入的标识符。可以是合格商品 ID、对象索引、对象类别(如果为负值)。可以是对象名称或对象的 context_tag。仅当生产者处于 NoInputStartMode 模式时才可以为 null。默认值为 null。
"InputStack": 2, //输入所需的堆栈。默认值为 1。
"ExcludeIdentifiers": [ "Peach" ], //要从规则中排除的标识符列表。与 InputIdentifier 遵循相同的规则。默认值为 null。
"FuelIdentifier": "Coal", //燃料的标识符。燃料是生产时使用的额外物品。可以是限定物品 ID、索引、名称或物品类别。默认为 null。
"FuelStack": 4, //燃料所需的堆叠数量。仅当燃料不为空时使用。默认值为 1。
“额外燃料”:{
"-6": 2,
“煤炭”:1,
"246": 5
}, //如有需要,添加额外的燃料。无需设置 Fuel 即可使用 ExtraFuel。其格式为一对标识符和堆叠数量,遵循与其他燃料属性相同的规则。默认值为 null。
"MinutesUntilReady": 120, //生产所需的分钟数。星露谷物语每日有 1600 分钟。上午 6 点到凌晨 2 点为 1200 分钟,凌晨 2 点到早上 6 点为 400 分钟。必须能被 10 整除。必填。
"SubtractTimeOfDay": true, //是否应将 MinutesUntilReady 减去当前时间。由于一天从早上 6 点开始,因此公式始终会加 360。因此,如果您将 MinutesUntilReady 设置为 1600,则始终会在第二天早上 6 点生成。如果 MinutesUntilReady 小于 1600,则切勿将其设置为 true。
"OutputIdentifier": "Beer", //输出标识符。可以是限定项目 ID、索引或对象名称。必填。
"OutputName": "{farmerName} 的 {inputName} {outputName} 来自 {farmName}", //对象的名称。这将替换基本输出名称。它接受 4 个动态替换的标签。默认值为 null。
"OutputTranslationKey": "MyMod.MyOutput", //翻译键。模组会在 i18n 文件中查找其他语言的 OutputName 格式。此键的值遵循上述 OutputName 属性的相同规则。默认值为 null。
"OutputGenericParentName": "Wild", //当对象需要父级但又没有父级名称时,会使用通用父级名称,例如 Honey 的“Wild”。默认为空。
"OutputGenericParentNameTranslationKey": "MyMod.MyOutput", //翻译键。模组会在 i18n 文件中查找其他语言的 OutputGenericParentName,此键即为该键。默认值为 null。
"PreserveType": "Wine", //[Wine|Jelly|Pickle|Juice|Roe|AgedRoe|Honey|Bait|DriedFruit|DriedMushroom|SmokedFish] - 如果输出是原版游戏中的“Preserves Type”之一。默认值为 null。使用此设置将覆盖 OutputName 属性。
"KeepInputParentIndex": true, // 当为 true 时,保留的父索引的输入将用作输出的父索引。
"ReplaceWithInputParentIndex": true, // 为 true 时,保留的父索引的输入将用作输出索引。
"InputPriceBased": true, //是否应将输出的基准价格替换为输入的基准价格。默认值为 false。
"OutputPriceIncrement": 200, //将基准价格增加此金额。默认值为 0。
"OutputPriceMultiplier": 2.5, //将基准价格乘以该金额。默认值为 1。
"KeepInputQuality": false, //输出是否应与输入具有相同的质量。默认为 false。
"OutputQuality": 2, //设置输出质量。默认为 0。
"OutputStack": 2, //设置输出堆栈。默认为 1。
"OutputMaxStack": 2, //如果您想要随机输出堆栈,请设置最大输出堆栈。如果小于 OutputStack,则会被忽略。默认值为 1。
"SilverQualityInput": { //如果输入的是银品质,则定义一个替代堆栈。移除将忽略此操作,因为概率为 0。
"Probability": 0.2, //使用替代堆栈的概率。默认值为 0。
"OutputStack": 2, //与其他相同。
"OutputMaxStack": 4 //与其他相同。
},
"GoldQualityInput": { //如果输入的是黄金品质,则定义一个替代堆栈。移除将忽略此操作,因为概率为 0。
"Probability": 0.4, //与其他相同。
"OutputStack": 3, //与其他相同。
"OutputMaxStack": 4 //与其他相同。
},
"IridiumQualityInput": { //如果输入的是铱质量,则定义一个替代堆栈。移除将忽略此输入,因为概率为 0。
"Probability": 1, //与其他相同。
"OutputStack": 4, //与其他相同。
"OutputMaxStack": 4 //与其他相同。
},
"OutputColorConfig": { // 如果设置,输出将为彩色对象。请记住,彩色对象需要工作表中的下一个精灵作为该颜色的调色板。默认值为 null。
"Type": "DefinedColor", // [ObjectColor|ObjectDyeColor|DefinedColor] 如果 ObjectColor 且输入为彩色对象,则使用输入的颜色。如果 ObjectDyeColor 且输入为染料颜色,则使用染料颜色。如果 DefinedColor 或其他选项中找到了颜色,则根据红色、绿色和蓝色值创建颜色。默认为 DefinedColor。
"Red": 255, // 颜色的红色值。默认值为 255。
"Green": 255, // 颜色的绿色值。默认值为 255。
"Blue": 255 // 颜色的蓝色值。默认值为 255。
},
"AdditionalOutputs": [ // 定义附加输出列表。无需设置默认输出即可使用附加输出,在这种情况下,第一个附加输出将成为默认输出。仅提供一个输出,在选项中随机选择。默认值为空列表。
            {
"OutputProbability": 0.2, //获得该输出的绝对概率,取值范围为 0 到 1。默认值为 0。如果为 0,则剩余未定义的百分比将以 0 的概率在所有输出之间平均分配。概率检查会从第一个输出到最后一个输出进行,因此如果总数大于 1,则剩余的输出将被忽略。
"OutputIdentifier": "Apple", //此项为必填项。作用与规则中描述的 OutputIdentifier 相同。
"MinutesUntilReady": 100, //生成此输出所需的分钟数。这将覆盖规则中设置的默认 MinutesUntilReady。该值应能被 10 整除。
"RequiredInputQuality": [ 0, 1 ], // 输出所需的输入质量。默认为无质量要求。
"RequiredInputStack": 8, // 为使输出成为可能,必需的输入堆栈必须等于或大于此值。此数量将代替输入堆栈值被消耗。它可以小于输入堆栈值,但玩家仍然需要至少拥有输入堆栈上设置的值才能触发规则。默认为无必需堆栈。
"RequiredFuel": { "Coal": 1 }, //输出所需的燃料。这些燃料将在规则定义的燃料之外额外消耗。格式为一对标识符和堆叠数量,遵循与其他燃料属性相同的规则。默认为无必需燃料。
"RequiredSeason": [ "spring", "summer" ], // 输出所需的季节。默认无要求。
"RequiredWeather": [ "Sunny", "Windy" ], // [Sunny|Rainy|Stormy|Snowy|Windy] 输出所需的天气条件。默认为无条件。
"RequiredLocation": [ "Cellar", "FarmCave" ], // 输出所需的位置。默认为无要求位置。
"RequiredMail": [ "BackpackTip" ], // 玩家必须已收到其中一封邮件,才能进行输出。默认为无邮件。
"RequiredEvent": [ 611439 ], // 必需事件之一已被玩家看到,才能进行输出。默认为无必需事件。
"RequiredOutdoors": true, // [true|false|null] 如果为 true,则输出只能在室外生成。如果为 false,则输出只能在室内生成。如果移除该线或值为 null,则没有限制。
"RequiredInputParentIdentifier": [ "22", "-80" ] // 输出所需的输入父项。父项是指发起输入的项目。(例如,鲑鱼籽的父项是鲑鱼。)标识符将按以下顺序与输入父项进行比较:索引、名称、类别、上下文标签。
// 所有其他引用输出的属性都可以在附加输出中使用。请记住使用逗号分隔属性。
            }
],
"Sounds": [ "furnace" ], //放置输入时发出的声音列表。默认为空列表。
"DelayedSounds": [ { "bubbles": 50 } ], //延迟后发出的声音列表。默认为空列表。
"PlacingAnimation": "Fire", //[Bubbles|Fire|CharcoalKilnSmoke] //放置输入时制作的动画。默认值为空。
"PlacingAnimationColorName": "White", //动画的颜色。[http://www.foszor.com/blog/xna-color-chart/] 默认白色。
"PlacingAnimationOffsetX": 0, //X 轴偏移量。该偏移量是相对于动画默认位置的,而不是机器本身的位置。默认为 0。
"PlacingAnimationOffsetY": -32, //Y 轴偏移量。该偏移量是相对于动画默认位置,而非机器位置。默认值为 0。
"IncrementStatsOnInput": [ "PiecesOfTrashRecycled" ], // 放置输入时游戏统计数据的增量。统计数据将根据堆叠数量递增。原版机器已在物品从机器中移除时递增统计数据。只有回收机在输入时递增统计数据。默认值为空列表。
"IncrementStatsLabelOnInput": [ "ModId.MyCustomProduct" ], // 放置输入时递增的游戏统计标签。统计信息将根据堆叠数量递增。可以是任何您想要的标签文本。MFM 也支持根据条件添加统计标签。请查看文件末尾的原始统计标签。默认值为空列表。
"OverrideMod": [ "IdOfTheMod.ToOverride" ], //如果已定义,此规则可以覆盖列表中具有相同生产者/输入组合的规则。否则,将使用第一个加载的规则。
"LookForInputWhenReady": { // 如果您想在准备就绪时查找特定对象,请设置此配置。如果规则包含输入,它将在放置时使用该输入,并检查限制以选择输出,但不会根据该输入应用名称、价格、质量和类似的修改。找到的已准备就绪对象将用于这些修改。
"Range": 5, //输入的最大查找范围。负数将被视为无限制(为避免崩溃,将停止在 150)。默认值为 -1。
"InputIdentifier": [ "Orange", "-80" ], //输入的标识符。可以是合格商品 ID、索引、名称或类别。
"Crop": true, //是否查找作物。该标识符将与收获对象进行比较。默认值为 false。
"ExcludeForageCrops": true, //是否忽略饲料作物。默认为 false。
"GardenPot": true, //是否在花盆内寻找作物。默认值为 false。
"FruitTree": true, //是否查找果树。该标识符将与水果进行比较。默认值为 false。
"BigCraftable": false //是否应该查找 BigCraftables。该标识符将与所持有的对象进行比较。默认值为 false。
},
"WarningsLogLevel": "Warn" //[Warn|Info|Debug|Trace] 警告玩家加载规则时缺少某些内容的日志级别信息。默认值为内容包配置中设置的值。
    }
]
/* 附加说明
* 可能的统计数据:[播种的种子|运送的物品|烹饪的物品|制作的物品|产出的鸡蛋|产出的鸭蛋|产出的牛奶|产出的羊奶|产出的兔毛|产出的羊毛|制成的奶酪|制成的山羊奶酪|发现的松露|收集的石头|压碎的岩石|锄过的泥土|赠送的礼物|昏迷次数|平均就寝时间|钓鱼次数|捕鱼次数|破碎的巨石|砍过的树桩|走的步数|杀死的怪物|发现的钻石|棱柱形rdsFound|其他珍贵宝石|洞穴胡萝卜|铜|铁|煤炭|硬币|铱|熔炼的锭|饮料|果酱|回收的垃圾|粉碎的神秘石|游戏天数|杂草清除|木棍切碎|笔记发现|任务完成|星级作物运送|作物运送|物品搜寻|史莱姆消灭|晶洞破裂|好友|个人金钱
* 原版统计标签:[exMemoriesWiped|childrenTurnedToDoves|trashCansChecked|boatRidesToIsland|beachFarmSpawns|hardModeMonstersKilled|timesEnchanted]
* 请注意,游戏并未正确计算所有统计数据。
*/

  • 以下是在 mod 文件 (ProducersConfig.json) 中添加的生产者的模板:
剧透:
展示
[
    {
"ProducerName": "ProducerName", //生产者名称
"AdditionalProducerNames": [ "ProducerName2", "ProducerName3" ], //生产者的附加名称。配置将完整复制到列表中的生产者名称。
"AlternateFrameProducing": true, //生产者在生产时是否应该使用替代帧。
"AlternateFrameWhenReady": true, //生产者是否应该使用备用帧并准备收获。
"DisableBouncingAnimationWhileWorking": false, // 是否应禁用制作者工作时的弹跳动画。
"NoInputStartMode": "Placement", // [Placement|DayUpdate] //如果机器有此属性的值,则它只能有一个不带 InputIdentifier 的 ProducerRule。如果是 Placement,机器将在放置时启动,并在每次取出生产对象时重新启动。如果是 DayUpdate,机器将在一天开始时启动。默认值为 null。
"IncrementStatsOnOutput": { //成对的“stats:object”标识应增加的内容。
"GoatCheeseMade": "山羊奶酪", //第一个值是要递增的统计数据,第二个值是要递增统计数据时应生成的输出。标识符可以是输出的索引、名称、类别或上下文标签。将按堆栈数量递增统计数据。
"CheeseMade": null //如果标识符为空,则任何输出都会匹配。
},
"IncrementStatsLabelOnOutput": { //“statsLabel:object”对,用于标识应递增的内容。您可以添加自己的自定义统计标签。MFM 也支持条件统计标签。默认值为 null。
"timesEnchanted": "魔法诱饵", //第一个值是要递增的属性标签,第二个值是要递增该属性时应生成的输出。标识符可以是输出的索引、名称、类别或上下文标签。将按堆栈数量递增属性标签。
"modId.myItemProduced": null //如果标识符为空,则任何输出都会匹配。
},
"MultipleStatsIncrement": true, //是否所有匹配的统计数据都应递增。如果为 false,则仅增加第一个匹配的统计数据。默认值为 false。
"LightSource": { // 定义生产者工作时应使用的光源。默认值为 null。
"TextureIndex": 4, // 光源的形状。所有原版机器都使用“壁灯”。1=灯笼,2=窗户灯,4=壁灯,5=锅炉灯,6=室内窗户灯,7=投影仪灯。默认值为 4。
"Radius": 1.5, // 光源的实际大小取决于使用的纹理。默认为 1.5(使用 sconceLight 纹理的炉子光源的大小)
"OffsetX": 0, // 生产者图块中心的水平偏移量。默认值为 0。
"OffsetY": 0, // 生产者图块顶部的垂直偏移量。默认值为 0。
"ColorType": "DefinedColor", // [ObjectColor|ObjectDyeColor|DefinedColor] 如果 ObjectColor 且输出为彩色对象,则将使用输出的颜色。如果 ObjectDyeColor 且输出为染料颜色,则将使用此颜色。如果 DefinedColor 或其他选项中未找到颜色,则将根据红色、绿色和蓝色值创建颜色。
"ColorRed": 255, // 灯光颜色的红色值。默认为 255。
"ColorGreen": 255, // 灯光颜色的绿色值。默认为 255。
"ColorBlue": 255, // 灯光颜色的蓝色值。默认为 255。
"ColorAlpha": 255, // 光源颜色的透明度值。0 表示完全透明,255 表示完全不透明。默认值为 255。
"ColorFactor": 0.75, // 与所有其他颜色参数相乘的系数。默认值为 1。
"AlwaysOn": true // 如果为 true,即使不生产,光源也会亮起。默认值为 false。
},
"WorkingTime": { // 如果定义了值,机器将仅在此时间段内生产。在此时间段之外,生产将暂停。默认为随时工作。
"Begin": 600, //格式 [HHmm]。机器可以开始生产的时间。默认值为 0
"End": 1800 //格式:[HHmm],机器停止生产的时间。默认为 0
},
"WorkingWeather": [ "Rainy", "Stormy" ], // [Sunny|Rainy|Stormy|Snowy|Windy] 机器工作的天气。默认为任何天气均可工作。
"WorkingLocation": [ "Barn", "Big Barn", "Deluxe Barn" ], // 机器将要工作的位置。可以是任何建筑地图。默认为在任何位置工作。
"WorkingOutdoors": true, // [true|false|null] 如果为 true,机器仅在室外工作。如果为 false,机器仅在室内工作。如果线路被移除或值为 null,则机器在两种位置均可工作。
"WorkingSeason": [ "spring", "summer", "fall" ], // 机器工作的季节。与其他条件不同,如果机器处于非工作季节,则在一天开始时进行季节清洁。默认为任何季节均可工作。
"OverrideMod": [ "IdOfTheMod.ToOverride" ], //如果已定义,此配置可以覆盖列表中同一生产者的配置。否则,将使用第一个加载的配置。
"ProducingAnimation": { // 设置机器生产状态的动画配置。默认值为 null。
"RelativeFrameIndex": [ 2, 3, 4, 5, 6, 7 ], //动画所用帧的索引和顺序。索引从零开始,依次为基准帧和非生产状态的索引。额外帧是该帧的内容。可以使用 Json Assets 或 Content Patcher 添加额外帧。
"FrameInterval": 10, // 帧之间的游戏间隔。默认值为 10
"AdditionalAnimations": { //根据机器内部的对象播放的动画。一对输出标识符和帧列表。标识符可以是名称、索引或类别。默认值为 null。
"鲑鱼": [ 8, 9, 10 ],
"131": [ 8, 11, 12 ],
"-4": [ 8, 13, 14 ]
            }
},
"ReadyAnimation": null //设置用于动画呈现机器就绪状态的配置。配置格式与 WorkingAnimation 相同。默认值为 null。
    }
]
/* 附加说明
* 可能的统计数据:[播种的种子|运送的物品|烹饪的物品|制作的物品|产出的鸡蛋|产出的鸭蛋|产出的牛奶|产出的羊奶|产出的兔毛|产出的羊毛|制成的奶酪|制成的山羊奶酪|发现的松露|收集的石头|压碎的岩石|锄过的泥土|赠送的礼物|昏迷次数|平均就寝时间|钓鱼次数|捕鱼次数|破碎的巨石|砍过的树桩|走的步数|杀死的怪物|发现的钻石|棱柱形rdsFound|其他珍贵宝石|洞穴胡萝卜|铜|铁|煤炭|硬币|铱|熔炼的锭|饮料|果酱|回收的垃圾|粉碎的神秘石|游戏天数|杂草清除|木棍切碎|笔记发现|任务完成|星级作物运送|作物运送|物品搜寻|史莱姆消灭|晶洞破裂|好友|个人金钱
* 原版统计标签:[exMemoriesWiped|childrenTurnedToDoves|trashCansChecked|boatRidesToIsland|beachFarmSpawns|hardModeMonstersKilled|timesEnchanted]
* 请注意,游戏并未正确计算所有统计数据。
*/

  • 以下是在 mod 文件(Config.json)中添加的配置属性的模板:
剧透:
展示

{
"DefaultWarningsLogLevel": "Warn" //[Warn|Info|Debug|Trace] 默认日志级别,用于警告播放器在加载规则时缺少某些内容。默认为“Warn”。
}


对于 Modder 编码:

  • 在您的 SMAPI 项目上引用 ProducerFrameworkMod.dll。
  • 使用ProducerController类添加规则和配置。
  • 这些参数具有与内容包中的模板相同的属性。
  • 您还可以使用内容包文件所在的目录调用 API 方法“AddContentPack”,它们将由 mod 加载。
特别感谢:
  • minervamaga、SpringsSong、ParadigmNomad、Trent、spacechase0 -他们直接参与了这个框架的制定。
  • Stardew Valley Discord #modding 频道的所有人 -他们都非常支持并且为这个项目提供了灵感。

我的其他模组:

使用 Xmod 解锁 星露谷物语 的全部潜力 — 今天就探索这些顶级 MOD!