生活调味料:胡萝贝版

生活调味料:胡萝贝版

Encourage players to consume food by increasing maximum health, balancing game.通过增加血量上限鼓励玩家食用食物,平衡游戏难度。

游戏机制


切换语言:

English


概述

我chovy,spice of fabric还不更新?(终于更新了)

————咸味闲鱼

mod 食用 指南

该指南的config和GUI说明部分为最新版本(3.2.0)维护,其他版本呢详情请参考游戏内配置页面提示。

关于配置

服务端配置

这些配置存放于 /config/spice-of-life-fabric-flavor.json。 这些配置在服务端生效,本地游戏版本的配置影响本地游戏存档。

生命增益系统

所有配置项以health计算,2health=1heart(红心)

maxHealth | 最大血量
  • 类型: int
  • 默认值: 5000
  • 取值范围: 2~5000
  • 说明: 设置本 Mod 能提供的最大额外生命值(玩家最终血量 = 原版血量 + 其他 Mod 增益 + 本 Mod 增益。此选项仅限制“本 Mod 增益”的上限,防止数值无限膨胀)
healthGain | 生命值增益
  • 类型: int
  • 默认值: 2
  • 取值范围: 0~20
  • 说明: 每发现一个食物的生命值增益(设置此为0则等于禁用)
resetOnDeath | 死亡重置
  • 类型: boolean
  • 默认值: false
  • 说明: 启用后,玩家死亡时血量将重置为默认值,且删除所有已发现记录
healthToMaxOnIncrease | 增益时恢复血量
  • 类型: int
  • 默认值: 0
  • 取值范围: 任意
  • 说明: 每次生命值增益时恢复血量数值,若大于上限则恢复到上限
healthIncreaseOnIncrease | 增益时恢复满血
  • 类型: boolean
  • 默认值: false
  • 说明: 每次生命值增益时恢复血量至上限
Expression | 生命值增益计算函数
  • 类型: string
  • 默认值: 0
  • 说明: 写法详见下文函数编写指南
    可用变量: uniqueFoods食用过的食物数
blacklist | 黑名单
  • 类型: List
  • 默认值:
[
  "minecraft:rotten_flesh",
  "minecraft:spider_eye"
],
  • 说明:列表中的食物不再会被记录(在黑名单修改后,玩家已发现的食物不受影响,未发现的食物不再计入统计) 相关机制和操作说明: 客户端的tooltip会显示所有已发现食物(不管是否存在于黑名单,机制应用于保存黑名单前已发现某一食物),未发现且处于黑名单内的食物不显示.修改后使用 /sol2f sync AllFoodList 同步数据以确保tooltip显示正常
    客户端的GUI在修改配置后需要使用sync命令同步数据.包括: 在修改了血量增益计算相关配置后,血量概述在执行sync后会重新计算并显示在客户端;在重设黑名单后,执行同步以同步客户端GUI的食物概述.
    客户端的食物概述显示的是所有已发现食物/非黑名单食物,而不是所有已发现食物/所有已发现食物+非黑名单食物的并集
whitelist | 白名单
  • 类型: List
  • 默认值:
[],
  • 说明:列表存在大于等于1项时,启用白名单,启用后则只有白名单内食物可提供增益,同时黑名单也会阻止白名单的项目,所以如果希望启用白名单建议同时删除所有黑名单项目(在黑白名单修改后,玩家已发现的食物不受影响,未发现的食物不再计入统计) 相关机制和操作说明: 客户端的tooltip会显示所有已发现食物(不管是否存在于黑名单,机制应用于保存黑名单前已发现某一食物),未发现且处于黑名单内的食物不显示.修改后使用 /sol2f sync AllFoodList 同步数据以确保tooltip显示正常
    客户端的GUI在修改配置后需要使用sync命令同步数据.包括: 在修改了血量增益计算相关配置后,血量概述在执行sync后会重新计算并显示在客户端;在重设黑名单后,执行同步以同步客户端GUI的食物概述.
    客户端的食物概述显示的是所有已发现食物/非黑名单食物,而不是所有已发现食物/所有已发现食物+非黑名单食物的并集

在修改血量配置后,食用未发现食物,或重生(未开启死亡重置配置)以重新计算血量增益值
机制: 在每次食用新食物、死亡重生时会按照最新配置计算血量增益值

饱食度衰减系统

所有配置项以FoodLevel(饱食度)计算,2 FoodLevel=1 小鸡腿图标

EnableNaturalHunger | 启用自然饥饿
  • 类型: boolean
  • 默认值: false
  • 说明: 启用后,玩家会随时间损失饥饿值
NaturalHungerPeriod | 自然饥饿周期
NaturalHungerExpression | 自然饥饿衰减计算函数
  • 类型: string
  • 默认值: "1"
  • 说明: 用于计算每次自然衰减值的函数(将玩家的饱食度减少此函数的结果,而非设置为此函数的结果),写法详见下文函数编写指南
    可用变量 (Variables):
    • 动作: isSprinting (疾跑), isSwimming (游泳), isSneaking (潜行), isCrawling (爬行)
    • 环境: isTouchingWater (接触水), isBeingRainedOn (淋雨), isWet (潮湿(接触水或淋雨或接触气泡柱)), BrightnessAtEyes (玩家眼镜坐标的渲染亮度(0.0-1.0) ↗ 渲染亮度|Minecraft Wiki)
    • 状态: FoodLevel (当前饥饿值), Saturation (饱食度), Exhaustion (消耗度) ↗ 饥饿机制详解-Minecraft Wiki
      注:所有布尔变量在公式中为 1.0 (真) 或 0.0 (假)
      配方示例:
    1. 基础固定消耗: 每周期扣 0.5 点。
    "NaturalHungerExpression": "0.5"
    
    1. 环境动态消耗: 疾跑或游泳:扣 4 点,淋雨或站在水中:扣 2 点,其他情况:扣 1 点
    "NaturalHungerExpression": "if(or(isSprinting, isSwimming), 4, if(or(isBeingRainedOn, isTouchingWater), 2, 1))"
    
    1. 黑暗生存挑战: 在黑暗处 (BrightnessAtEyes < 0.1) 消耗加倍。
    "NaturalHungerExpression": "if(lt(BrightnessAtEyes, 0.1), 2, 1)"
    
EnableSleepHunger | 启用睡眠饥饿
  • 类型: boolean
  • 默认值: false
  • 说明: 启用后,玩家睡醒时会根据函数扣除一定饥饿值
SleepHungerExpression | 睡眠饥饿衰减计算函数
MinFoodLevel | 饥饿衰减下限
  • 类型: int
  • 默认值: 1
  • 说明: 本mod的饥饿衰减(包括自然饥饿衰减和睡眠饥饿衰减)所能扣除到的最小值,若小于该值则不再扣除,若扣除后小于该值则扣除至该值,否则按照函数默认扣除

函数使用指南:

函数编写指南
  • 你可以使用e和pi代表e和π

运算

  • 普通四则运算(加+减-乘*除/),用括号表示的优先级(例如 ( 1 + 2 ) * 3)
  • 幂运算 pow(底数, 指数)
  • 约数:
    • 向下取整数:floor(num)
    • 四舍五入数:round(num)
    • 向上取整数:ceil(num)
  • 取大小值
    • 取大值:max(num1, num2)
    • 取小值:min(num1, num2)
  • 对数:log(底数, 真数)

逻辑

  • 判断:if(condition, A, B) ,如果 condition > 0 返回 A ,否则返回 B
  • 逻辑与:and(A, B) ,两者都大于 0 返回 1 ,否则返回 0
  • 逻辑或:or(A, B) ,A或B任意一个超过 0 返回 1 ,否则返回 0
  • 逻辑非:not(A) ,大于 0 返回 0 ,否则返回 1

比较逻辑

  • 大于:gt(A, B) ,如果 A > B ,返回 1 ,否则返回 0
  • 小于:lt(A, B) ,如果 A < B ,返回 1 ,否则返回 0
  • 等于:eq(A, B) ,如果 A = B ,返回 1 ,否则返回 0
  • 不等于:neq(A, B) ,如果A ≠ B ,返回 1 ,否则返回 0

客户端配置

这些配置存放于 /config/spice-of-life-fabric-flavor-client.json。 这些配置仅影响本地客户端显示,服务端的该配置无效。

ShowConsumedTooltips | 显示已发现食物tooltip
  • 类型: boolean
  • 默认值: true
  • 说明: 控制客户端的tooltip显示。
ShowUnconsumedTooltips | 显示未发现食物tooltip
  • 类型: boolean
  • 默认值: true
  • 说明: 控制客户端的tooltip显示。

关于命令

CleanHealth | 重置玩家数据
/sol2f clearhealthy

重置当前玩家的生命值上限与所有食物摄入记录,需管理员权限。(版本:2.0+)

GetPlayerData | 获取玩已发现列表
/sol2f getlist <player>

获取玩家已发现食物列表。

Sync | 同步数据
/sol2f sync

同步所有数据。

  • /sol2f sync PlayerData同步玩家数据。主要用于GUI显示和tooltip显示控制。
  • /sol2f sunc AllFoodList同步食物数据:最新的非黑名单食物数据,玩家最大血量上限数据。主要用于GUI显示和tooltip显示控制。

关于食物簿

在修改配置后请使用命令同步数据以确保GUI显示的数据为最新数据。

食物簿页面

GUI_foodbook

  • 4.0.0之前的版本,使用鼠标滚轮翻页。

使用FluentUI-MC重构了GUI

  • 4.0.0之后的版本,支持动态布局,平滑滚动。
概述页面

GUI_overview

  • 血量概述:当前获得的mod增益 / 最大可获得的mod增益。
按键绑定

打开GUI的快捷键在minecraft的按键绑定中配置 GUI_keybinding

物品

食物簿

通过合成"食物簿"打开食物簿: food book

依赖


切换语言:

中文


注意:本文翻译由 AI 完成,可能不准确。

概述

这个模组鼓励玩家尝试各种食物,每吃一种新食物就会获得永久的生命值上限加成作为奖励。它的设计目的是让整合包有理由扩展食物系统,并提供一种平衡游戏难度的新方式。

模组指南

注意: 以下配置和 GUI 部分针对模组版本 3.2.0 是准确的。对于其他版本,请参考游戏内的提示和配置界面。

配置

重要:生命值单位

所有与生命值相关的数值均以生命值点为单位。2 生命值点 = 1 颗心。

服务端配置(/config/spice-of-life-fabric-flavor.json)

这些设置由服务器控制。在单人世界中,它们会影响你的本地存档。

生命增益系统

maxHealth - 最大加成上限
  • 类型: int
  • 默认值: 5000
  • 范围: 2 ~ 5000
  • 作用: 设置该模组能为玩家生命值增加的最大加成上限。
    • 玩家最终生命值 =(基础生命值 + 其他模组加成)+ 本模组加成。
    • 此设置仅限制**“本模组加成”**以防止数值无限膨胀。
healthGain - 每发现新食物的加成
  • 类型: int
  • 默认值: 2
  • 范围: 0 ~ 20
  • 作用: 每发现一种新食物所给予的生命值(以 HP 计)。设置为 0 以禁用基础加成。
resetOnDeath - 死亡时重置
  • 类型: boolean
  • 默认值: false
  • 作用: 如果为 true,死亡会将你的加成重置为零,并抹去你的整个食物发现历史。这是一个硬核选项。
healthToMaxOnIncrease - 增益时恢复满血
  • 类型: boolean
  • 默认值: false
  • 作用: 如果为 true,每当你获得生命值加成(通过吃新食物)时,你当前的生命值会立即恢复到你新的最大生命值。
  • 注意: 如果此为 true,则下面的 healthIncreaseOnIncrease 设置将被忽略。
healthIncreaseOnIncrease - 增益时恢复血量
  • 类型: int
  • 默认值: 0
  • 范围: 任何正整数
  • 作用: 每当你获得生命值加成时,恢复你特定数量的生命值。如果恢复量会超过你的新上限,则改为恢复至满血。
  • 注意: 这仅在 healthToMaxOnIncrease 设置为 false 时生效。
Expression - 自定义加成公式
  • 类型: string
  • 默认值: "0"
  • 作用: 用于计算生命值加成的自定义公式。计算结果会加到 healthGain 值上。
  • 变量: uniqueFoods(你已食用的独特食物总数)。
  • 语法: 参见下方的函数指南。
blacklist - 食物黑名单
  • 类型: List
  • 默认值:
["minecraft:rotten_flesh", "minecraft:spider_eye"]
  • 作用: 此列表中的食物将不计入你的发现进度。
  • 运作方式:
    • 已有数据: 你在它们被加入黑名单之前已经吃过的食物会保留在你的历史记录中(模组不会抹去你过去的进食记录)。
    • 新数据: 黑名单上你尚未吃过的食物将永远不会被计入。
    • 更改列表后: 你必须运行 /sol2f sync AllFoodList 来更新客户端 GUI 和 tooltip。这能确保显示与新黑名单一致。
  • GUI 显示: 概览界面显示 已发现食物 / 非黑名单食物总数。
whitelist - 食物白名单
  • 类型: List
  • 默认值:
[]
  • 作用: 当列表包含 1 个或更多项目时,白名单将被启用。只有白名单中的食物才能提供生命值加成。请注意,黑名单仍然可以阻止白名单上的项目,因此如果你想使用白名单,建议清空黑名单中的所有项目。(在更改黑/白名单后,玩家已发现的食物不受影响;未发现的食物将不再被计入。)
  • 运作方式:
    • Tooltip: 客户端 tooltip 会显示所有已发现的食物(即使它们现在已在黑名单上——这仅适用于你在它们被列入黑名单之前发现它们的情况)。黑名单上未发现的食物将不会显示。做出更改后,运行 /sol2f sync AllFoodList 以确保 tooltip 正确显示。
    • GUI 同步: 更改配置后,你必须使用同步命令来更新客户端 GUI。例如,如果你修改了生命值增益计算的设置,则运行同步命令后,生命值概览将在客户端重新计算并更新。如果你重置了黑名单/白名单,请同步以更新客户端 GUI 中的食物概览。
    • 食物概览显示: 客户端的食物概览显示 所有已发现食物 / 非黑名单食物。它不会显示所有已发现食物与所有非黑名单食物的并集。

应用配置更改: 更改与生命值相关的设置后,新值将在你下次食用新食物或重生(如果 resetOnDeath 为 false)时生效。每当你的 uniqueFoods 计数发生变化或死亡/重生时,模组都会重新计算你的加成。

饥饿衰减系统

注意: 此处的数值使用原版饥饿等级,其中 2 饥饿等级 = 1 个鸡腿图标。

EnableNaturalHunger - 基于时间的饥饿
  • 类型: boolean
  • 默认值: false
  • 作用: 如果为 true,玩家将随时间被动地损失饥饿值。
NaturalHungerPeriod - 衰减间隔
  • 类型: int
  • 默认值: 1200
  • 作用: “自然饥饿”衰减触发的频率(以游戏刻为单位,20 游戏刻 = 1 秒)。每次触发时,它都会减去由 NaturalHungerExpression 计算出的数值。
NaturalHungerExpression - 衰减公式(基于时间)
  • 类型: string
  • 默认值: "1"
  • 作用: 决定每个衰减间隔会减去多少饥饿值(Food Level)的自定义公式。
  • 变量:
    • 动作: isSprinting, isSwimming, isSneaking, isCrawling
    • 环境: isTouchingWater, isBeingRainedOn, isWet, BrightnessAtEyes(眼睛所在位置的渲染亮度,0.0 - 1.0)
    • 状态: FoodLevel(当前饥饿值), Saturation(饱和值), Exhaustion(消耗度)
    • 注意:布尔变量返回 1.0(真)或 0.0(假)。
  • 语法: 参见下方的函数指南。
  • 示例:
    • 基础固定消耗: 每周期损失 0.5 点饥饿值。
      "NaturalHungerExpression": "0.5"
      
    • 动态消耗: 疾跑/游泳时损失 4 点,处于雨/水中损失 2 点,否则损失 1 点。
      "NaturalHungerExpression": "if(or(isSprinting, isSwimming), 4, if(or(isBeingRainedOn, isTouchingWater), 2, 1))"
      
EnableSleepHunger - 醒来后饥饿
  • 类型: boolean
  • 默认值: false
  • 作用: 如果为 true,玩家在睡觉醒来后将会损失饥饿值。
SleepHungerExpression - 衰减公式(醒来时)
  • 类型: string
  • 默认值: "SleepDuration / 3000"
  • 作用: 决定你醒来时会减去多少饥饿值(Food Level)的自定义公式。
  • 变量:
    • 睡眠: SleepDuration(跳过的游戏刻数)
    • 状态: FoodLevel, Saturation, Exhaustion
  • 语法: 参见下方的函数指南。
MinFoodLevel - 最小饥饿下限
  • 类型: int
  • 默认值: 1
  • 作用: 本模组的饥饿系统(基于时间的和醒来时的)能将你的食物等级降低到的最低值。当达到此值时,衰减将停止。

函数语法指南

点击展开
  • 常量: 你可以使用 e 和 pi。

  • 算术:

    • 基本运算: + , - , * , / ,以及括号 () 。
    • 幂运算: pow(底数, 指数)
    • 取整: floor(num), round(num), ceil(num)
    • 取最小/最大值: min(a, b), max(a, b)
    • 对数: log(底数, 真数)
  • 逻辑:

    • 条件判断: if(condition, value_if_true, value_if_false) (condition > 0 为真)
    • 逻辑与: and(a, b) (如果两者都 > 0 则返回 1,否则返回 0)
    • 逻辑或: or(a, b) (如果任一 > 0 则返回 1,否则返回 0)
    • 逻辑非: not(a) (如果 a <= 0 则返回 1,否则返回 0)
  • 比较:

    • 大于: gt(a, b) (如果 a > b 则为 1,否则为 0)
    • 小于: lt(a, b) (如果 a < b 则为 1,否则为 0)
    • 等于: eq(a, b) (如果 a == b 则为 1,否则为 0)
    • 不等于: neq(a, b) (如果 a != b 则为 1,否则为 0)

客户端配置(/config/spice-of-life-fabric-flavor-client.json)

这些设置只影响你的本地显示。服务器不关心它们。

ShowConsumedTooltips - 显示“已食用” Tooltip
  • 类型: boolean
  • 默认值: true
  • 作用: 在你已经发现的食物上显示一个 tooltip。
ShowUnconsumedTooltips - 显示“新” Tooltip
  • 类型: boolean
  • 默认值: true
  • 作用: 在你尚未发现的食物上显示一个 tooltip。

命令

/sol2f clearhealthy - 重置玩家
  • 用法: /sol2f clearhealthy
  • 作用: 重置你的生命值加成和食物发现列表。需要管理员权限。(在 v2.0+ 中添加)
/sol2f getlist - 查看已发现食物
  • 用法: /sol2f getlist <player>
  • 作用: 显示特定玩家已发现的食物列表。
/sol2f sync - 同步数据
  • 用法:
    • /sol2f sync PlayerData - 同步玩家发现列表。如果 GUI tooltip 看起来不正确,请使用此命令。
    • /sol2f sync AllFoodList - 同步全局食物列表。更改黑名单后,你必须运行此命令以更新 GUI 和客户端显示。

食物簿

更改任何配置后,请运行相应的 /sol2f sync 命令以确保 GUI 显示正确的信息。

食物簿页面

GUI_foodbook

  • 浏览你的发现记录。使用滚轮翻页。
概览页面

GUI_overview

  • 生命值摘要: 显示 当前模组加成 / 最大可能加成。
按键绑定

你可以在 Minecraft 的控制菜单中设置打开食物簿的快捷键。 GUI_keybinding

食物簿物品

合成配方

合成“食物簿”以在不使用快捷键的情况下访问该界面。 food book

依赖