Galacticraft

[!INFO] Git Commit: fbdc41b | Updated: 2026-10-02

Galacticraft 是 Minecraft 1.7.10 / Forge 10.13.4.1614 的太空探索模组。本仓库一仓 2 个 modid, 但有 4 个资源域、6 个维度配置项——三者互不对应。

属性 值
分类名 galacticraft(取自仓库名)
modid GalacticraftCore、GalacticraftMars
包名 micdoodle8.mods.galacticraft(gradle.properties: modGroup)
资源域 4 个:galacticraftcore / galacticraftmars / galacticraftmoon / galacticraftasteroids
语言 源码 911 个 .java,全部在 micdoodle8/mods/galacticraft/ 下(含 core/asm/GCLoadingPlugin.java,它不是「额外的第 912 个」);0 Scala、0 Kotlin、5 Gradle
源码目录 /Users/evlos/a/mirror/Galacticraft/

一仓 2 个 modid,modid 与类名完全不一致

modid 主类 常量来源 资源域
GalacticraftCore GalacticraftCore Constants.MOD_ID_CORE galacticraftcore
GalacticraftMars GalacticraftPlanets Constants.MOD_ID_PLANETS galacticraftmars

@Mod(modid = Constants.MOD_ID_PLANETS) 挂在名为 GalacticraftPlanets 的类上, 但常量值是 GalacticraftMars(core/Constants.java:7-8):

public static final String MOD_ID_CORE    = "GalacticraftCore";
public static final String MOD_ID_PLANETS = "GalacticraftMars";

⚠️ Constants 里另有 MOD_ID_GALAXYSPACE = "GalaxySpace"(:12)、MOD_ID_GRETTECH、 MOD_ID_NEW_HORIZONS_CORE_MOD = "dreamcraft"——这些只用于版本检查/依赖判断,本仓库不注册, 不要把它们当成 Galacticraft 的 modid。

资源域 ≠ modid:月球在 Core 下

4 个资源域对应 2 个 modid:

资源域 归属 modid 说明
galacticraftcore GalacticraftCore 氧气管、太阳能板、火箭、机器
galacticraftmoon GalacticraftCore ⚠️ 月球内容在 Core,不在 Mars
galacticraftmars GalacticraftMars 火星方块、Desh 装备
galacticraftasteroids GalacticraftMars ⚠️ 小行星带也在 Mars 下

实际注册规模(源码实测,集合去重)

维度 实际数量 本 wiki 覆盖
方块 73(Core 50 + Mars 10 + Asteroids 13) 73
物品 85(Core 49 + Mars 36,其中 Asteroids 20) 85
实体(非生物) 17(Core 8 + Mars 4 + Asteroids 5) 17
生物( mobs ) 9(Core 6 + Mars 3) 9
TileEntity 55(Core 38 + Mars 10 + Asteroids 7) 55(0 漏项)
维度配置项 6 6
配置 3 组 1

注册项合计 239(73 方块 + 85 物品 + 26 实体 + 55 TileEntity)。 磁盘条目 250,两者差 11 篇非「一类一条」页面:

页面 数量 说明
tile/tile-entity-ingot-compressor 1 一页覆盖 TileEntityIngotCompressor + TileEntityElectricIngotCompressor(两个注册名)
tile/tile-entity-landing-pad 1 一页覆盖 TileEntityLandingPad + TileEntityLandingPadSingle(两个注册名)
tile/tile-entity-oxygen-network 1 氧气系 8 个 TE 的总览;这 8 个另有各自的 1:1 条目,本页不新增覆盖
tile/tile-entity-multi 1 TileEntityMulti 兼作 5 种多方块结构(NASA 工作台 / 空间站 / 低温仓 / 燃料装填台 / 登陆台)
tile/tile-entity-treasure-chest 1 TileEntityTreasureChest 的注册名随 CompatibilityManager.isAIILoaded() 二选一
gui/gui-handlers、network/packet-tables、recipe/recipe-managers 3 体系综述(非注册项)
setting/config 1 3 个配置管理器综述(非注册项)

校验:55 个已注册 TileEntity 全部有对应条目,0 个漏项; 53 篇 tile 页面各主 1 个类 + 2 篇各主 2 个类 + 1 篇总览 = 56 篇 tile 页面。 磁盘实测 find data/galacticraft -name '*.md' | wc -l → 250 (73 block + 85 item + 26 entity + 56 tile + 6 dimension + 4 综述/配置)。

⚠️ 「注册类」和「注册所在文件」不是一回事

本分类的方块 / 物品注册分散在 8 个文件里,不只在 GCBlocks / GCItems:

模块 方块注册 物品注册
Core 方块 core/blocks/GCBlocks.java 48 处 + core/GalacticraftCore.java 2(crudeOil、fuel 两种流体块) core/items/GCItems.java 47 处 + core/GalacticraftCore.java 2(bucketOil、bucketFuel)
Mars 方块 planets/mars/blocks/MarsBlocks.java 9 处 + planets/mars/MarsModule.java 1(sludge 污泥块) planets/mars/items/MarsItems.java 15 处 + planets/mars/MarsModule.java 1(bucketSludge)
Asteroids 方块 planets/asteroids/blocks/AsteroidBlocks.java 13 处 planets/asteroids/items/AsteroidsItems.java 20 处

只 grep GCBlocks.java 会漏掉 3 个方块(两种油料流体 + 污泥), 只 grep GCItems.java 会漏掉 3 个物品(三个桶)。 这些流体块/桶都带条件门控(BuildCraft Energy / BuildCraft Fluids 存在与否)。

⚠️ 三处「数调用点」陷阱

陷阱 说明
grep registerItem 只看 GCItems.java 漏掉 MarsItems.java(15 + bucketSludge)、AsteroidsItems.java(20)与 GalacticraftCore.java / MarsModule.java 里的 3 个桶,47 ≠ 85
registerItem 辅助方法有三个同名实现 GCItems.java:330-332 写死 Constants.MOD_ID_CORE;MarsItems.java:79-81 与 AsteroidsItems.java:114-116 各自写死 Constants.MOD_ID_PLANETS。Mars/Asteroids 不调用 Core 那个方法——所以「Mars 物品被注册到 Core 名下」是不成立的
单一注册覆盖多个变体 ItemBasicMars(7 变体)、ItemBasicAsteroids(9)、ItemBasic(21)各自只算 1 个物品,但游戏内是数十种物品——按 names[] 数组下标取名

方块(73)

物品(85)

实体(26)

维度(6)

配置(1)

依赖范围

依赖 relation.md 状态 处理
NotEnoughItems 无此行 → 不在收录范围 明确写出,未建分类
gtnhlib 有行,尚未成文 可留前向引用,本页未引用
BuildCraft|Core / |Energy 已登记(buildcraft),✓ 完成 见下
Mantle 已登记,✓ 完成 软依赖
PlayerAPI 无此行 → 不在收录范围 明确写出,未建分类
IC2 / TConstruct 无此行 → 不在收录范围 after: 软依赖,明确写出

GalacticraftCore 的 @Mod(dependencies = ...)(GalacticraftCore.java:166)原文:

required-after:NotEnoughItems;before:GalaxySpace;after:IC2;after:TConstruct;after:Mantle;
after:BuildCraft|Core;after:BuildCraft|Energy;after:PlayerAPI@[1.3,);after:gtnhlib@[0.3.1,);

注意它是 after:BuildCraft|Core / after:BuildCraft|Energy——依赖 BuildCraft 的两个具体 modid, 而 BuildCraft|Core 本身带 | 分隔符。

源码缺陷汇总

# 缺陷 位置
1 modid GalacticraftMars 挂在名为 GalacticraftPlanets 的类上,MOD_ID_PLANETS 常量名与值不一致 core/Constants.java:8、planets/GalacticraftPlanets.java:37
2 registerItem(Item) 有三份同名实现且各自硬编码不同 modid:GCItems → MOD_ID_CORE,MarsItems / AsteroidsItems → MOD_ID_PLANETS。同名不同实现,grep 极易张冠李戴 core/items/GCItems.java:330-332、planets/mars/items/MarsItems.java:79-81、planets/asteroids/items/AsteroidsItems.java:114-116
3 三个火星小怪(Sludgeling / Slimeling / CreeperBoss)传入完全相同的背部/腹部颜色 255,0,50,0 / 255,0,150,0,与各自生物无关(复制粘贴) planets/mars/MarsModule.java:255-272
4 EntitySkeletonBoss 的注册名是 EvolvedSkeletonBoss——类名没有 Evolved,注册名有 GalacticraftCore.java:750
5 变量名 infiniteBatery——Batery 少了 t(注册名本身拼写正确,是 infiniteBattery) core/items/GCItems.java:61、:120、:228、:318
6 资源域 galacticraftmoon / galacticraftasteroids 与 modid 划分不对应,按资源域推断 modid 必错 src/main/resources/assets/
7 存在被注释掉的实体注册(EntityBubble、EntityTerraformBubble),naive grep 会把它们算进去 GalacticraftCore.java:764-765、MarsModule.java:274-276
8 6 个 unlocalizedName 各被两个不同 Item 类共用:boots / chestplate / helmet / leggings(GC 钢装 vs 小行星钛装)、key(ItemKey vs ItemKeyMars)、schematic(ItemSchematic vs ItemSchematicTier2)。因 modid 不同(GalacticraftCore:* vs GalacticraftMars:*)不冲突,但按 unlocalizedName 反查类必然张冠李戴 GCItems.java:295-298、AsteroidsItems.java:97-100;GCItems.java:313 vs MarsItems.java:75;GCItems.java:312 vs MarsItems.java:76
9 idDimensionOverworld 维度注册时传的是原版 net.minecraft.world.WorldProvider,不是任何 GC 的 WorldProviderSpace;该类实际位于 api/prefab/world/gen/,不是 core/dimension/ GalacticraftCore.java:293、api/prefab/world/gen/WorldProviderSpace.java:26
10 两个「注册名藏在方块/物品自己的构造器里」的例子:GCBlocks 写的是无参 new BlockBasicMoon() / new BlockCheese(),注册名 moonBlock / cheeseBlock 来自各自构造器内的 setBlockName(...),在 GCBlocks.java 里 grep 不到 GCBlocks.java:126-127;BlockBasicMoon.java:54、BlockCheese.java:32
11 MarsItems.marsItemBasic 是全分类唯一没有 setUnlocalizedName 的注册物品,注册名由 Item 基类默认实现兜底成 item.itemBasicMars MarsItems.java:34、ItemBasicMars.java:71-77
<!-- AUTO-INDEX:START -->

完整索引(自动生成)

本节由 tools/sync_catpage_index.py 从磁盘实际文件生成,共 250 个条目。 上面各节是人工撰写的概览;任何未在上面出现的条目都在这里。 重新生成:删掉本节两个 <!-- AUTO-INDEX --> 标记之间的内容后重跑脚本。

block/(73)

全部 73 个条目已在上文列出。

dimension/(6)

全部 6 个条目已在上文列出。

entity/(26)

全部 26 个条目已在上文列出。

gui/(1)

条目 条目 条目 条目
Galacticraft GUI 层:2 个 IGuiHandler + 14 个 GUI ID

item/(85)

全部 85 个条目已在上文列出。

network/(1)

条目 条目 条目 条目
Galacticraft 封包层:3 个枚举式包表,共 80 个包类型

recipe/(1)

条目 条目 条目 条目
Galacticraft 配方体系:3 个 RecipeManager + 4 个 API 级配方库

setting/(1)

全部 1 个条目已在上文列出。

tile/(56)

条目 条目 条目 条目
TileEntityAirLock(气闸框架) TileEntityAirLockController(气闸控制器) TileEntityAluminumWire(铝线) TileEntityArclamp(弧光灯)
TileEntityBeamReceiver(激光接收器) TileEntityBeamReflector(激光反射器) TileEntityBuggyFueler(燃料装填台) TileEntityBuggyFuelerSingle(燃料装填台·单格)
TileEntityCargoLoader(货运装载机) TileEntityCargoUnloader(货运卸载机) TileEntityCircuitFabricator(电路制造器) TileEntityCoalGenerator( coal generator)
TileEntityCryogenicChamber(低温仓) TileEntityDish(无线电望远镜) TileEntityDungeonSpawner(月球地下城 Boss 刷怪笼) TileEntityDungeonSpawnerMars(火星地下城 Boss 刷怪笼)
TileEntityElectricFurnace(电力熔炉) TileEntityElectricIngotCompressor(电动压缩机) TileEntityElectrolyzer(水电解器) TileEntityEnergyStorageModule(能量储存模块)
TileEntityFallenMeteor(坠落陨石) TileEntityFuelLoader(燃料装填台) TileEntityGasLiquefier(气体液化机) TileEntityHydrogenPipe(氢气管道)
TileEntityIngotCompressor / TileEntityElectricIngotCompressor TileEntityLandingPad / TileEntityLandingPadSingle TileEntityLandingPadSingle(登陆台·单块) TileEntityLaunchController(发射控制器)
TileEntityMethaneSynthesizer(甲烷合成器) TileEntityMinerBase(采矿机基座) TileEntityMinerBaseSingle(采矿机基座·单块) TileEntityMulti 与 5 个真实多方块结构(NASA 工作台 / 空间站 / 低温仓 / 燃料装填台 / 登陆台)
TileEntityNasaWorkbench(NASA 制造台) TileEntityOxygenCollector(氧气收集器) TileEntityOxygenCompressor(氧气压缩机) TileEntityOxygenDecompressor(氧气解压机)
TileEntityOxygenDetector(氧气检测器) TileEntityOxygenDistributor(氧气分配器) 氧气系 TileEntity 总览(Distributor / Collector / Compressor / Pipe / Sealer / Detector / Decompressor / StorageModule) TileEntityOxygenPipe(氧气管道)
TileEntityOxygenSealer(氧气密封器) TileEntityOxygenStorageModule(氧气存储模块) TileEntityParaChest(降落伞箱) TileEntityRefinery(GC 精炼机)
TileEntityScreen(屏幕方块) TileEntityShortRangeTelepad(短程传送机) TileEntitySlimelingEgg(细流蛋) TileEntitySolar(太阳能板)
TileEntitySpaceStationBase(空间站基座) TileEntityTelemetry(遥测装置) TileEntityTelepadFake(短程传送机假方块) TileEntityTerraformer(行星改造者)
TileEntityThruster(空间站推进器) TileEntityTreasureChest(太空宝箱 / 一级宝箱) TileEntityTreasureChestAsteroids(小行星宝箱) TileEntityTreasureChestMars(二级宝箱)

<!-- AUTO-INDEX:END -->