不仅仅是宠坏了

不仅仅是宠坏了

一个现代化的食物腐败模组,增强食物管理,带来更沉浸式的生存体验

食物

Not Just Spoiled 标题(Minecraft 标志风格)

描述

Not Just Spoiled 是一个现代模组,添加了一个简单但沉浸且逼真的食物腐坏系统。它通过鼓励玩家细心管理食物补给来让生存模式更具动态性,同时不会变得过于困难。凭借广泛的配置选项、基于 JSON 的自定义和高性能,该模组旨在完美适配个人世界和大型整合包。


特性

食物状态

食物状态系统是 Not Just Spoiled 的核心。与其他模组简单地将食物转化为腐肉或另一物品不同,此模组添加了 4 种不同的腐坏状态:新鲜、不新鲜、半腐坏和腐坏。食物不会瞬间变得不可用——它会随着时间逐渐降低品质,每种状态都有其自身的饥饿值和饱和度数值。这使得食物在完全腐坏之前效果会减弱,为生存玩法增加了更多深度,同时不会让食物管理变得过于苛刻。腐坏的食物还可能施加负面效果。

食物类别

每个食物物品都属于34个逻辑划分的食物类别之一,每个类别都有其自身的腐坏时间。这允许不同类型的食物以不同的速率腐坏,使食物管理成为游戏玩法中更重要的一部分。目前,类别仅影响腐坏持续时长,但基于食物类别的额外机制已计划在未来的更新中推出。

食物环境

此模组中的食物不会在固定时间后腐坏。相反,腐坏速度取决于食物当前所处的环境。共有 3 种环境:物品栏、储物容器和露天。环境越差,食物腐坏得越快!

战利品表中的食物腐坏

战利品表中的食物(如箱子、考古等)会根据其被发现的位置呈现不同的腐坏状态。战利品表并非总是生成新鲜食物,而是可以通过内置的战利品修改器定义其生成食物的预期状态。例如,埋藏的宝藏、沉船、废弃矿井或其他废弃结构中的食物会以腐坏状态生成,而村庄、豪宅、堡垒等地的食物则会以新鲜或不新鲜状态生成。这一机制让战利品感觉更具动态性和逻辑性,因为所发现食物的腐坏状态取决于其被发现的地点。

目前有 4 种战利品修改器:

  • 新鲜。食物总是以新鲜状态生成。
  • 新鲜或不新鲜。食物以新鲜或不新鲜状态生成。
  • 腐坏。食物总是以腐坏状态生成。
  • 随机。食物以随机腐坏状态生成。

食物合成

食物腐坏影响合成的方式完全可配置。共有五种食物合成模式,每种模式都有其自身的规则和逻辑,让你决定食物腐坏对生存体验的影响程度。

  • 平均。食物总是可以合成。结果的腐坏时间计算为所有配料的加权平均值。
  • 最差状态。食物总是可以合成。结果继承最差配料的状态。例如,如果所有配料都是新鲜的,但有一个是半腐坏的,则合成出的食物也将是半腐坏的。
  • 相同状态。只有当所有配料具有相同的食物状态时,你才能合成食物。
  • 仅限新鲜。食物只能使用新鲜配料合成。
  • 新鲜或不新鲜。食物只能使用新鲜或不新鲜的配料合成。

食物堆叠

与许多类似模组不同,Not Just Spoiled 保持原版的物品堆叠行为,无需任何变通方法或人为限制。只要所有物品具有相同的腐坏状态,食物就可以正常堆叠。当食物堆叠合并时,最终腐坏时间会使用加权算术平均值正确计算,确保不会丢失任何腐坏数据。


配置

食物腐坏系统的几乎所有方面都可以通过配置文件或 JSON 文件自定义:

  • 每种食物状态的饥饿值和饱和度数值(JSON);
  • 每种状态的效果、持续时间、放大倍数和施加几率(JSON);
  • 每个食物类别的腐坏时间(JSON);
  • 食物合成模式(配置);
  • 不同环境下的腐坏速度(配置);
  • 各种悬浮提示信息(配置);
  • 食物栏位浮层(配置);
  • 不同战利品表中的初始食物腐坏状态(JSON);
  • 战利品生成的腐坏状态几率(配置);

性能

该模组围绕一个智能的懒更新系统构建,而不是对玩家、物品和方块实体进行冗余的 ticking,这意味着食物仅在 3 种场景下更新:

  • 当其环境改变时;
  • 当玩家食用它时;
  • 当它与其他食物堆叠合并时。

这种方法避免了不必要的计算,并保持性能影响最小化,即使世界中存在大量食物物品也是如此。


兼容性

Not Just Spoiled 不会自动与其他模组兼容。但是,可以通过 JSON 文件轻松添加兼容性,而某些模组可能需要额外的代码级支持。

以下情况需要额外的兼容性:

  • 添加食物物品或食物配料的模组(JSON);
  • 添加战利品表(例如箱子、考古等)的模组(JSON);
  • 添加具有自定义物品栏的高级方块,例如来自“精致背包”的背包或来自“农夫乐事”的烹饪锅的模组(需要代码级支持)。

兼容以下模组:

特殊集成:

  • AppleSkin(根据食物当前状态动态更新悬浮提示中的饥饿值和饱和度数值)
  • Tough As Nails(食物腐坏也适用于 TAN 的口渴系统)

您可以在模组的问题追踪器上提交兼容性请求。