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 - 回收附加件会改变弹药消耗/再生概率