Ammo

基本信息

属性 值
注册名 openmodularturrets:bulletCraftable / :grenadeCraftable / :rocketCraftable / :ferroSlug / :blazingClayCraftable
数量 5 种可合成弹药
额外渲染物品 openmodularturrets:bulletThrowable / :grenadeThrowable(见下方「渲染专用物品」)
物品类 openmodularturrets.items.ammo.BulletAmmoItem / GrenadeAmmoItem / RocketAmmoItem / FerroSlugItem / BlazingClayAmmoItem
创造标签 ModularTurrets.modularTurretsTab

功能

弹药装在 Turret Base 的 3×3 供弹区(槽位 0–8)里。TurretHeadUtil 的供弹扫描遍历这 9 格并连带扫描相邻 Base Inventory Expander 的物品栏(TurretHeadUtil.java:596-623 共 3 处 for (int i = 0; i <= 8; i++) 循环,以及 :382,472,483,494,505,516,527 的 expander 遍历)。

散射升级 会改变单发射出数量。模组自带 lang 描述(turret.upgrade.scatter.a/b):“Adds 2 projectiles to each shot, at the cost of +2 ammo usage, decreased accuracy, and increased RF usage.”

回收附加件 会影响弹药消耗与再生(见 Addons)。

弹药 ↔ 炮塔对应

弹药 供应炮塔
任意方块/物品 Disposable Item Turret
土豆 Potato Cannon Turret
子弹 Gun Turret
燃烧黏土 Incendiary Turret
手雷 Grenade Launcher Turret
火箭 Rocket Launcher Turret
铁磁弹 Rail Gun Turret
不需要弹药 Relativistic / Teleporter / Laser Turret

渲染专用物品(已注册但不可获取)

Items.init() 注册了两个额外物品,但它们不是玩家可用弹药:

注册名 实际用途
openmodularturrets:bulletThrowable 仅作为 BulletProjectile 的客户端渲染贴图(ProjectileRenderers.java:21:registerEntityRenderingHandler(BulletProjectile.class, new RenderSnowball(Items.bulletThrowable)))
openmodularturrets:grenadeThrowable 仅作为 GrenadeProjectile 的客户端渲染贴图(ProjectileRenderers.java:23)

证据:全仓 grep -rn 'bulletThrowable\|grenadeThrowable' --include=*.java src/ 只有 6 处命中 —— 2 处字段声明、2 处 registerItem、2 处渲染器注册,0 处配方注册。BulletThrowableItem / GrenadeThrowableItem 也不设置创造标签。它们在创造模式物品栏中无法通过该标签找到。

数值

弹药本身不携带数值属性 —— 射程、伤害、耗能等全部由 炮塔配置 决定,投射物实体只负责命中结算。散射升级 ScattershotUpgradeItem 的 setMaxStackSize(2) 覆盖了父类 UpgradeItem 的 setMaxStackSize(4)(UpgradeItem.java:12 vs ScattershotUpgradeItem.java:21)。

交互

触发 行为
放入底座 3×3 区 炮塔自动索敌开火并消耗
放入库存扩展器 同样被供弹扫描读取
放入附加件/升级槽 被 AddonSlot / UpgradeSlot 拒绝
玩家手持 无特殊行为(items/ammo/*.java 无 onItemUse 覆写)

合成配方

弹药配方由 6 套配方处理器之一提供(auto 模式下按 EnderIO → ThermalExpansion → Mekanism → Vanilla 的优先级择一),详见 配方系统。

唯一例外:blazingClayCraftable 有一个与已加载模组无关的固定配方(RecipeHandler.java:435-445),每次产出 32 个:

BCB
CAC
BCB
字符 物品
A 烈焰粉
B 黏土球
C 红石粉

其余 4 种弹药(bulletCraftable / grenadeCraftable / rocketCraftable / ferroSlug)在 VanillaRecipeHandler / ThermalExpansionRecipeHandler / EnderIORecipeHandler / MekanismRecipeHandler 中各有 4 处引用(grep -c 均为 4),必须走处理器才能获得。

相关条目

  • Turret Heads - 消耗这些弹药的炮塔
  • Projectiles - 弹药发射后生成的实体
  • Addons - 回收附加件会改变弹药消耗/再生概率