参数详解:从进食时间到蓄力武器的完整指南)
低代码代码生成桌面应用游戏开发【免费下载链接】MCreatorMCreator is an open-source software used to make Minecraft Java Edition mods, Minecraft Bedrock Edition Add-Ons, resource packs, and data packs using an intuitive easy-to-learn interface or with an integrated code editor. It is used worldwide by Minecraft players, aspiring mod developers, for education, online classes, and STEM workshops.项目地址https://gitcode.com/gh_mirrors/mc/MCreator点击查看免费下载导读「物品使用时长」Item Use Duration是 MCreator 物品Item元素中控制物品单次持续使用时间的核心参数。它同时决定了两类看似无关的行为食物类物品的进食耗时以 tick 计以及非食物类物品能否触发按住使用机制例如拉弓蓄力、望远镜观察等。本文基于仓库内的官方帮助文档de_DE 帮助页 与 en_GB 帮助页展开并结合 Item.java 数据模型、ItemGUI.java 界面逻辑以及多个生成器模板完整讲解该参数的取值范围、默认值、底层生成原理与实战搭配技巧。参数定义一次能用多久官方帮助文档对该参数给出了两句精确定义该参数控制物品一次性可以使用多长时间如果物品是食物该值定义了玩家吃下其中一件食物所需的时间以 tick 计。MCreator 将其建模在物品数据模型中。在 Item.java 中可以看到它的字段声明Numeric(init 0, min -100, max 128000, step 1) public int useDuration;这意味着属性值说明初始值init0新建物品默认不使用/不可持续使用最小值min-100数据模型层面允许负值但界面提示明确要求食物使用非负值才可食用最大值max128000约 6400 秒约 1.77 小时的极限值步进step1以 1 tick 为单位调整在界面中该参数位于「物品使用」Item Use设置区通过一个数字微调器JSpinner呈现并挂载了指向item/use_duration帮助页的帮助按钮见 ItemGUI.java。对应的界面文案在 texts.properties 中给出了补充约束Item use duration:Use non-negative value for food items to be edible即要让食物可食用使用时长必须是非负值。这一约束同样出现在各语言本地化文件中如 texts_en_GB.properties、texts_de_DE.properties。时间单位与换算tick 与秒MCreator 与 Minecraft 游戏内的时间体系保持一致使用tick游戏刻作为单位20 tick 1 秒。因此32tick 1.6 秒 —— 恰好是原版食物默认的进食时间72000tick 3600 秒 1 小时 —— 恰好是原版弓、望远镜等长按持续使用物品的时长80tick 4 秒 —— 适合做成缓慢进食的高级食物。这一换算关系在生成器模板中被直接印证NeoForge 26.3 生成器在生成食物组件时会把 tick 值除以 20 转换为秒见 item.java.ftl#if data.useDuration ! 32 .consumeSeconds(${[data.useDuration, 0]?max / 20}F) /#if其中[data.useDuration, 0]?max还做了取非负值的防御处理与界面提示食物须为非负值的要求一一对应。三类典型取值与界面联动行为在 ItemGUI.java 中使用时长与物品类型存在明显的联动逻辑理解了它就能理解该参数在界面上的全部行为1. 默认值0物品不可持续使用新建的非食物物品默认useDuration 0表示该物品没有按住使用行为——右键不会触发持续使用食用也不会生效。2. 勾选食物后自动设为32当在界面中勾选「是食物」isFood选项时MCreator 会自动把使用时长设为 32 tick1.6 秒并将动画切换为eat见 ItemGUI.javaisFood.addActionListener(_ - { updateFoodPanel(); if (!isEditingMode()) { animation.setSelectedItem(eat); useDuration.setValue(32); } });32 tick 正是 Minecraft 原版食物的标准进食耗时因此这可以视为开箱即用的原版手感默认值。用户可以在此基础上自由调整调大数值如 64、80即可做出吃得慢的食物调小如 16则可做出瞬间进食的食物。对应地在 Item.java 的hasCustomFoodConsumable()方法中32被当作标准进食配置的判定基准——只有当useDuration ! 32或动画不是 eat/drink 时生成器才会为食物生成自定义食用组件。3. 启用远程武器Ranged时自动设为72000当勾选「启用远程武器」Enable Ranged时若当前使用时长为 0界面会自动将其设为 72000 tick1 小时反之当取消远程武器时若当前值为 72000 则会自动归零见 ItemGUI.javaif ((int) useDuration.getValue() 0) useDuration.setValue(72000); // ... if ((int) useDuration.getValue() 72000) useDuration.setValue(0);72000 tick 与原版弓的getUseDuration返回值一致语义是只要玩家按住右键不放就可以一直使用从而支撑拉弓蓄力、持续充能等玩法。这也是新手最容易困惑的地方远程武器的蓄力时间其实是由使用时长 充能相关逻辑共同决定的而使用时长本身在远程武器语境下通常保持 72000。底层原理非食物物品的持续使用生成逻辑对于非食物物品只要useDuration 0生成器就会输出getUseDuration覆写并在右键使用逻辑中显式调用startUsingItem从而让物品进入持续使用状态。以 NeoForge 1.21.1 生成器 item.java.ftl 为例#if (!data.isFood data.useDuration ! 0) || (data.isFood data.useDuration ! 32) Override public int getUseDuration(ItemStack itemstack, LivingEntity livingEntity) { return ${data.useDuration}; } /#if注意这里的条件分支非常关键非食物物品只要useDuration ! 0就输出getUseDuration食物物品只有useDuration ! 32才输出getUseDuration因为默认的 32 tick 已由食物食用组件Consumables统一处理无需重复输出。继续往下看生成器通过shouldExplicitlyCallStartUsing判断是否需要显式调用startUsingItem(hand)来启动持续使用item.java.ftl 与 26.3 版本模板#assign shouldExplicitlyCallStartUsing !data.isFood (data.useDuration 0) ... #elseif shouldExplicitlyCallStartUsing entity.startUsingItem(hand); /#if这就形成了完整的调用链右键 →startUsingItem启动使用 →getUseDuration返回时长 → 持续使用期间触发使用中类 Procedure → 时长耗尽或松手时触发onFinishUsingItem/onStoppedUsing回调。因此凡是需要按住使用的机制蓄力、充能、持续观察都必须保证useDuration 0。食物物品的食用时间生成对于食物NeoForge 26.3 生成器在 item.java.ftl 中通过FoodProperties与Consumables组件定义进食行为#if data.isFood .food((new FoodProperties.Builder()) .nutrition(${data.nutritionalValue}) .saturationModifier(${data.saturation}f) ... .build() #if data.hasCustomFoodConsumable(), #if data.animation.getUnmappedValue() eat Consumables.defaultFood() #elseif data.animation.getUnmappedValue() drink Consumables.defaultDrink() #else Consumables.defaultFood().animation(${data.animation}) /#if #if data.useDuration ! 32 .consumeSeconds(${[data.useDuration, 0]?max / 20}F) /#if .build() ... /#if可以清晰看到食用时长的两条生成路径useDuration 32且动画为 eat/drink直接使用Consumables.defaultFood()/Consumables.defaultDrink()即原版默认 32 tick 进食/饮用时间自定义时长非 32 或其他动画通过.consumeSeconds(useDuration / 20)显式指定以秒计的食用耗时并叠加自定义动画。这解释了为什么文档强调食物食用时间以 tick 计界面里设置的是 tick 数而生成到代码时被转换为秒最终呈现在游戏内的进食进度条上。Bedrock 附加包Add-On侧的映射useDuration不仅作用于 Java 版NeoForge/Forge也同步映射到 Bedrock 版附加包。在 item.json.ftl 中生成器会把该值写入 JSON 组件的use_modifiers#if data.useDuration gt 0 || data.isFood minecraft:use_modifiers: { use_duration: ${data.useDuration}, movement_modifier: ${data.movementModifier} }, /#if与use_duration同组的movement_modifier移动速度修正系数一并生成共同控制物品使用期间玩家的移动行为。条件data.useDuration gt 0 || data.isFood再次印证了规则只要可食用或使用时长大于 0就必须携带该组件。实战建议目标效果useDuration 取值附加配置普通不可持续使用的物品0默认无原版手感的标准食物32勾选食物自动设置动画选 eat缓慢进食的高级食物48 ~ 80动画选 eat可配 onFinishUsingItem 做进食后效果快速进食的零食8 ~ 16动画选 eat蓄力/充能型远程武器72000启用远程自动设置动画选 bow配置充能 Procedure需要按住使用的非食物道具 0如 40、100动画可选 drink/eat 等配 onItemInUseTick使用中还有两点值得注意负值陷阱虽然数据模型允许 -100但界面提示明确要求食物使用非负值。负值或 0 都会导致食物不可食用生成代码时 26.3 生成器还会通过[data.useDuration, 0]?max强制钳制为非负因此这类配置不应在生产工作区中使用与动画的搭配useDuration 0只是触发持续使用的开关实际视觉反馈还依赖「使用动画」Item Use Animation参数两者需配合设置才能呈现完整的拉弓、进食或饮用效果。小结「物品使用时长」是理解 MCreator 物品行为体系的关键参数它既是食物的进食计时器以 tick 为单位又是非食物物品按住使用机制的开关同时还贯穿 Java 版NeoForge与 Bedrock 附加包两大生成链路。掌握0禁用、32标准食物、72000无限持续使用这三个关键取值及其界面联动规则即可精准控制物品的交互手感做出符合预期的自定义食物与蓄力武器。赞分享低代码代码生成桌面应用游戏开发【免费下载链接】MCreatorMCreator is an open-source software used to make Minecraft Java Edition mods, Minecraft Bedrock Edition Add-Ons, resource packs, and data packs using an intuitive easy-to-learn interface or with an integrated code editor. It is used worldwide by Minecraft players, aspiring mod developers, for education, online classes, and STEM workshops.项目地址https://gitcode.com/gh_mirrors/mc/MCreator点击查看免费下载相关推荐MCreator 物品使用时长use_duration参数详解食物进食时间与物品使用持续时间的配置指南MCreator 物品使用时长use_duration参数详解食物进食时间与物品使用持续时间的配置指南 本篇文章围绕 MCreator 中“物品使用时长低代码代码生成桌面应用游戏开发MCreator 食物物品参数深度解析Always Edible饱食度已满时仍可食用MCreator 食物物品参数深度解析Always Edible饱食度已满时仍可食用 本文围绕 MCreator 中食物物品Item的 Always低代码代码生成桌面应用游戏开发Baldurs Gate 3 Script ExtenderBG3SE配置与构建实战指南Baldurs Gate 3 Script ExtenderBG3SE配置与构建实战指南 本文以 BG3SENorbytes Baldurs Gat低代码代码生成桌面应用游戏开发上一篇raylib FAQ 深度解析定位、平台支持、依赖体系与授权协议的完整技术指南下一篇iCloud照片下载器终极指南5步解决网络连接故障创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考