Gravitation Suite Neo
[!INFO] Git Commit:
569cabf| Updated: 2026-10-01
Gravitation Suite Neo(内部 modid gravisuiteneo)是 Gravitation Suite 的增强附属模组,由 Namikon 与 glowredman 编写。它的 mcmod.info description 直说了定位:“Adds Epic Lappack and Plasma Cannon. Also tweaks some other things in Gravitation Suite.”
mcmod.info 的 modid / name / version 均为 ${modId} 占位符,真实 modid 只能从 Java 源码读出:src/main/java/com/gtnewhorizons/gravisuiteneo/GraviSuiteNeo.java:32 的 public static final String MODID = "gravisuiteneo";。与分类名 gravitation-suite-neo 不一致——注册名一律用 gravisuiteneo: 前缀。
定位
- 本质:3 个新物品 + 24 个 Mixin 对父模组既有物品/机制打补丁
- 不含:方块、多方块结构、TileEntity、GUI 方块、实体注册、自定义流体
- 加载:
preInit注册 3 物品与渲染器/按键 →init注册事件与GraviSuiteTweaker.tweak()→postInit注册成就页与配方 - Mixin 机制:GTNHLib late-mixin(
GraviSuiteNeoMixins,@LateMixin),注入清单硬编码在 Java(GraviSuiteNeoMixins.getMixins())。mixins.gravisuiteneo.json与mixins.gravisuiteneo.late.json的mixins/client/server三个数组全为空,只用于声明配置文件与版本下限
物品列表
- 史诗镐之背包(Epic Lappack) - 继承父模组 Ultimate Lappack 的终极镐之背包,自动为玩家背包内物品充能
- 等离子炮(Plasma Cannon) - 内嵌 1 格弹药槽的等离子发射器
- 等离子电池(Plasma Cell) - 容量 64000 mB 的流体容器,同时是 IC2 电力物品
实体列表
- 等离子球 -
EntityPlasmaBallMKII,伤害charge × 100,AABB 半径6 × charge(钳制 1–15),父模组基础伤害常量 100.0F
机制补丁
- Mixin 列表 - 24 个 Mixin(15 无条件 + 1 条件 + 8 仅客户端),本 mod 的主要价值所在
- 配置文件 - 64 个有效选项 + 21 个仅注释项,写进 GraviSuite 的配置文件(本 mod 无自己的 cfg)
- 医疗包按键 - 1 个按键,默认无绑定,穿量子护盾胸甲时发包
成就
common/Achievements.java 注册 1 个成就页,共 9 个成就,分 4 棵前置树:
| 成就 | 前置 | 坐标 (x, y) | 类型 |
|---|---|---|---|
gravisuite.craft_plasma |
无 | (-4, -2) | 普通 |
gravisuite.itsover9000 |
craft_plasma | (-4, -4) | special |
gravisuite.ultrakill |
craft_plasma | (-6, -2) | special |
gravisuite.vaporizeself |
craft_plasma | (-4, 0) | 普通 |
gravisuite.powerdrill_craft |
无 | (-2, -2) | 普通 |
gravisuite.powerdrill_markIII |
powerdrill_craft | (-2, 0) | special |
gravisuite.qshield_enable |
无 | (0, -2) | 普通 |
gravisuite.qshield_plasmaimpact |
qshield_enable | (0, 0) | special |
gravisuite.epic_lappack |
无 | (2, -2) | special |
成就图标部分使用父模组物品(GraviSuite.advDDrill、GraviSuite.graviChestPlate)或原版头颅(Items.skull meta 1 / 2)。
数值总表
全部平衡数值集中在 common/Properties.java 的两个枚举里,均可配置。
电力预设 ElectricPresets
枚举构造签名是 (maxCharge, tier, transferLimit, energyPerOperation)(Properties.java:129)。默认值:
| 预设 | maxCharge | tier | transferLimit | energyPerOperation |
|---|---|---|---|---|
| AdvJetPack | 3000000 | 3 | 3000 | 12 |
| AdvLapPack | 3000000 | 3 | 30000 | 0 |
| GraviChestPlate | 30000000 | 4 | 300000 | 278 |
| AdvChainsaw | 1000000 | 2 | 500 | 100 |
| AdvDrill | 10000000 | 4 | 100000 | 3333 |
| GraviTool | 300000 | 2 | 3000 | 500 |
| Relocator | 10000000 | 4 | 100000 | 0 |
| UltimateLappack | 30000000 | 4 | 300000 | 0 |
| EpicLappack | 300000000 | 5 | 3000000 | 0 |
| Vajra | 10000000 | 4 | 100000 | 3333 |
| PlasmaLauncher | 10000000 | 5 | 375000 | 1000000 |
| PlasmaCell | 100000000 | 5 | 375000 | 0 |
⚠️ ArmorPresets(Properties.java:82-107)没有 AdvChainsaw / AdvDrill 等项,它只含 4 个护甲:AdvJetPack(0.0)、AdvLapPack(0.0)、AdvNanoChestPlate(0.36)、GraviChestPlate(0.44),字段是 absorptionRatio(范围 0.0–1.0)。
tier 的合法范围被 config.getInt 限制在 0–14(Properties.java:155)。
配方
common/RecipeHandler.registerRecipes() 只注册 2 条配方,都走 IC2 高级配方机(ic2.api.recipe.Recipes.advRecipes):
| 产物 | 配方 | 开关 |
|---|---|---|
纳米机器人 ×4(GraviSuite.itemSimpleItem meta 7) |
C / CMC / C,C = 高级电路,M = 奶桶 |
disableNanobotRecipe |
| 史诗镐之背包 | RBR / RDR / RAR,R 与 D 均为终极镐之背包,B = 铱板,A = itemSuperconductor(OreDict) |
disableEpicLappackRecipe |
⚠️ 等离子炮 与 等离子电池 在本仓库没有任何合成配方,只能靠父模组 GraviSuite 的机制、战利品或手动给予获得。源码中 en_US.lang 仍把两者标为 [WIP]。
disableBasicRecipes(Properties.java:17)不由本 mod 使用,而是被 mixins/MixinGraviSuite_Recipes.java:68,81 读取,用来摘掉父模组 GraviSuite 的基础配方。
依赖
GraviSuiteNeo.java:26 声明:
| 依赖 | 约束 | 状态 |
|---|---|---|
| GraviSuite | required-after:GraviSuite@[1.7.10-2.0.3] |
不在本 wiki 收录范围(relation.md 无对应行) |
| IC2 | required-after:IC2 |
不在本 wiki 收录范围 |
| GregTech | after:gregtech(软依赖) |
见 gregtech——用于取 GT 的等离子流体效率值 |
代码还探测以下模组(不写进 dependencies,缺失只是少功能):
| 模组 | 用途 | 源码 |
|---|---|---|
dreamcraft |
存在时跳过 MixinGraviSuite_Recipes |
GraviSuiteNeoMixins.java:39-41 |
gregtech 且非 gregapi |
把 GT 等离子流体并入等离子效率表 | GraviSuiteNeoRegistry.java:93-95 |
gregapi + gregapi_post |
GT6 支持(本仓库不适用) | 同上条件取反 |
| Tinkers / Iguana | MaxToolLevelAvailable 仅在装了它们时影响工具提示 |
Properties.java:216-222 |
| Advanced Solar Panel、Electro Morphitics Technology | 量子护盾的替代头盔/护腿/靴子白名单 | Properties.java:261-285 |
| CoFH Core | cofh.api.energy.IEnergyContainerItem(史诗镐之背包给 RF 物品充能) |
items/ItemEpicLappack.java:67-69 |
CoFHAPI 属于 required-after 之外的隐式依赖:ItemEpicLappack 直接 import cofh.api.energy.IEnergyContainerItem,CoFHAPI 缺失会在类加载期报错。
已知源码缺陷
- 等离子流体配置永远读不进来(严重):
GraviSuiteNeoRegistry.java:77写的是entry.split(":", 1)。按 JDKString.split(String, int limit)契约,limit 为正数时模式最多应用limit - 1 = 0次,返回数组长度不超过 1。因此splitEntry.length恒为 1,:78-80的if (splitEntry.length != 2) continue;永远命中,配置文件additional tweaks / PlasmaLauncherFluids里配的流体一个都进不了fuelMap。唯一能进表的是:93-95从 GregTech API 取的等离子流体 - 无中文语言文件:
src/main/resources/assets/gravisuiteneo/lang/只有en_US.lang与ru_RU.lang,完全没有zh_CN.lang mixins.gravisuiteneo.json是空壳:该文件存在且"required": true,但mixins/client/server三个数组全为[]。实际注入全部由 GTNHLib late-mixin 的mixins.gravisuiteneo.late.json+GraviSuiteNeoMixins.getMixins()驱动,两份配置的minVersion还不同(0.8.5-GTNHvs0.8.3-GTNH)- 配置注释拼写错误:
Properties.java:102的注释把 armor piece 写成 “armor pieve”;:69的配置键relocatorEnergyPerDimesionTp把 Dimension 写成 “Dimesion”