- Canonical breadth-first inventory of registries, IDs, and source locations in the 1.12.2 codebase.
- Use this file as the quick lookup map before touching implementation.
- Also tracks current 1.20.1 scaffold coverage and where each breadth-phase registry now lives.
- Legacy root:
old-1.12.2 - Main code root:
old-1.12.2/src/main/java/openblocks - Main assets root:
old-1.12.2/src/main/resources/assets/openblocks
Current source roots:
- Java root:
src/main/java/art/arcane/openblocks - Assets root:
src/main/resources/assets/open_blocks
Current registry classes:
- Mod bootstrap:
src/main/java/art/arcane/openblocks/OpenBlocks.java - Blocks register:
src/main/java/art/arcane/openblocks/registry/OBBlocks.java - Items register:
src/main/java/art/arcane/openblocks/registry/OBItems.java - Creative tab register:
src/main/java/art/arcane/openblocks/registry/OBCreativeTabs.java - Fluid type register:
src/main/java/art/arcane/openblocks/registry/OBFluidTypes.java - Fluid/block register:
src/main/java/art/arcane/openblocks/registry/OBFluids.java - Block entity register:
src/main/java/art/arcane/openblocks/registry/OBBlockEntities.java - Entity register:
src/main/java/art/arcane/openblocks/registry/OBEntities.java - Sound register:
src/main/java/art/arcane/openblocks/registry/OBSounds.java - Enchantment register:
src/main/java/art/arcane/openblocks/registry/OBEnchantments.java - Menu register:
src/main/java/art/arcane/openblocks/registry/OBMenuTypes.java - Recipe serializer register:
src/main/java/art/arcane/openblocks/registry/OBRecipeSerializers.java - Custom pedometer item behavior:
src/main/java/art/arcane/openblocks/item/OBPedometerItem.java
- Command registration (Forge bus):
src/main/java/art/arcane/openblocks/command/OBCommands.java - Command inventory dump backend:
src/main/java/art/arcane/openblocks/command/OBInventoryStore.java - Command inventory death-dump hook:
src/main/java/art/arcane/openblocks/command/OBInventoryHooks.java - Command inventory subsystem event bridge:
src/main/java/art/arcane/openblocks/api/OBInventoryEvent.java - Grave drop action event API:
src/main/java/art/arcane/openblocks/api/OBGraveDropsEvent.java - Grave block + placement/claim wiring:
src/main/java/art/arcane/openblocks/block/OBGraveBlock.javasrc/main/java/art/arcane/openblocks/block/entity/OBGraveBlockEntity.javasrc/main/java/art/arcane/openblocks/grave/OBGraveHooks.java
- Block functionality sweep classes:
src/main/java/art/arcane/openblocks/block/OBElevatorBlock.javasrc/main/java/art/arcane/openblocks/block/OBElevatorRotatingBlock.javasrc/main/java/art/arcane/openblocks/block/OBHealBlock.javasrc/main/java/art/arcane/openblocks/block/entity/OBHealBlockEntity.javasrc/main/java/art/arcane/openblocks/block/OBLadderBlock.javasrc/main/java/art/arcane/openblocks/block/OBPathBlock.javasrc/main/java/art/arcane/openblocks/block/OBRopeLadderBlock.javasrc/main/java/art/arcane/openblocks/block/OBSpongeBlock.java
- Game rule registration:
src/main/java/art/arcane/openblocks/world/OBGameRules.java - Command flimflam effect registry:
src/main/java/art/arcane/openblocks/command/OBFlimFlamEffects.java - Capability registration/attachment:
src/main/java/art/arcane/openblocks/capability/OBCapabilities.java
- Custom advancement trigger bootstrap:
src/main/java/art/arcane/openblocks/advancement/OBCriterions.javasrc/main/java/art/arcane/openblocks/advancement/OBBrickDroppedTrigger.javasrc/main/java/art/arcane/openblocks/advancement/OBDevNullStackTrigger.javasrc/main/java/art/arcane/openblocks/advancement/OBAdvancementHooks.java
- Non-full shape helper block:
src/main/java/art/arcane/openblocks/block/OBShapeBlock.java - Client render-layer setup:
src/main/java/art/arcane/openblocks/client/OBClientRenderLayers.java - Datagen entrypoint:
src/main/java/art/arcane/openblocks/datagen/OBDataGenerators.java - Datagen loot providers:
src/main/java/art/arcane/openblocks/datagen/OBLootTableProvider.javasrc/main/java/art/arcane/openblocks/datagen/OBBlockLootSubProvider.java
- Datagen tag provider:
src/main/java/art/arcane/openblocks/datagen/OBBlockTagsProvider.java
Current scaffold counts:
- Block IDs registered: 41
- Item IDs registered: 71 (41 block items + 30 standalone)
- Creative tabs registered: 1 (
open_blocks:main) - Fluid types registered: 1 (
xpjuice) - Fluids registered: 2 (
xpjuice,flowing_xpjuice) - Fluid blocks registered: 1 (
xpjuice) - Block entity types registered: 35
- Entity types registered: 11
- Sound events registered: 19
- Enchantments registered: 3
- Menu types registered: 14
- Recipe serializers registered: 8
- Command roots wired: 3 (
flimflam,luck,ob_inventory) - Custom capabilities wired: 3 (
open_blocks:luck,open_blocks:pedometer_state,open_blocks:bowels) - Custom advancement triggers wired: 2 (
open_blocks:brick_dropped,open_blocks:dev_null_stacked)
Current asset coverage:
- Blockstates:
src/main/resources/assets/open_blocks/blockstates(41 files) - Block models:
src/main/resources/assets/open_blocks/models/block(41 files) - Item models:
src/main/resources/assets/open_blocks/models/item(71 files) - Language file:
src/main/resources/assets/open_blocks/lang/en_us.json - Sound definitions:
src/main/resources/assets/open_blocks/sounds.json - Sound assets:
src/main/resources/assets/open_blocks/sounds(legacy OpenBlocks.oggset copied) - Advancement JSON scaffolding:
src/main/resources/data/open_blocks/advancements/oops.jsonsrc/main/resources/data/open_blocks/advancements/tma2.json
- Custom recipe placeholder JSONs:
src/main/resources/data/open_blocks/recipes(7 files) - Generated block loot tables:
src/generated/resources/data/open_blocks/loot_tables/blocks(41 files) - Generated block tags:
src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.jsonsrc/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.jsonsrc/generated/resources/data/minecraft/tags/blocks/climbable.json
- Imported legacy textures:
src/main/resources/assets/open_blocks/textures/blocksrc/main/resources/assets/open_blocks/textures/item
Current validation status:
./gradlew compileJavapasses../gradlew compileJava runDatapasses../gradlew runDatanow executesLoot Tablesprovider and writes 41 block loot tables../gradlew runDatanow also executesTags for minecraft:block mod id open_blocksand writes 3 baseline block tag files.- Custom recipe placeholder JSONs for all 7 legacy custom recipe IDs load with current datagen/compile loop.
- Legacy ore-dict compatibility tags now use broader
forge/minecraftgroups + fallback items across 34 updated files insrc/main/resources/data/open_blocks/tags/items/legacy_ore_dict. - Latest
./gradlew compileJava runDatapass (2026-02-09) still succeeds after addingOBInventoryEventstore/load bridge wiring for/ob_inventory. - Latest
./gradlew compileJava runDatapass (2026-02-09) still succeeds after adding grave gamerule + drop-backup dump wiring (OBGameRules+OBGraveHooks). - Latest
./gradlew compileJava runDatapass (2026-02-09) still succeeds after deepening grave flow to place+claim baseline (OBGraveBlock,OBGraveBlockEntity,OBGraveHooks, andOBInventoryStoregrave helpers). - Latest
./gradlew compileJava runDatapass (2026-02-09) still succeeds after wiring grave drop-action filtering + interaction follow-up (OBGraveDropsEvent, updatedOBGraveHooks, and shovel-gated grave claim/death-message interaction inOBGraveBlock+OBGraveBlockEntity). - Latest
./gradlew compileJava runDatapass (2026-02-09) still succeeds after fixingopen_blocks:xpjuiceclient fluid texture extensions inOBFluidTypesto prevent null-sprite crashes in third-party fluid-item renderers. - Latest
./gradlew compileJava runDatapass (2026-02-09) still succeeds after starting a first non-GUI block depth sweep (OBHealBlock/OBHealBlockEntity,OBPathBlock,OBSpongeBlock, plusOBBlocks/OBBlockEntitieswiring updates). - Latest
./gradlew compileJava runDatapass (2026-02-09) still succeeds after ladder-domain sweep additions (OBLadderBlock,OBRopeLadderBlock, andOBBlockswiring) for support/chain/auto-extension behavior. - Latest
./gradlew compileJava runDatapass (2026-02-09) still succeeds after elevator-domain sweep additions (OBElevatorBlock,OBElevatorRotatingBlock,OBBlockswiring, and rotating-elevator facing blockstate variants) for baseline bidirectional teleport behavior. - Capability scaffold note:
- Legacy player capability IDs are now registered/attached under
open_blocksnamespace and clone-copied on respawn (luck,pedometer_state,bowels).
- Legacy player capability IDs are now registered/attached under
- Build rule note:
build.gradleskips optional jars fromextra-mods-1.20.1when task names includerunData/datagen, so datagen is not blocked by unrelated runtime mods. - Client asset note: model texture paths must use
open_blocks:block/...andopen_blocks:item/...(not pluralblocks/items) for 1.20 atlas resolution. - Fluid client-extension note: third-party renderers that query
IClientFluidTypeExtensionsdirectly require non-null still/flowing texture keys;OBFluidTypesnow explicitly suppliesopen_blocks:block/xp_juice_stillandopen_blocks:block/xp_juice_flowingforopen_blocks:xpjuice. - Run-log note:
run/logs/latest.loghad a concrete missing texture warning foropen_blocks:paint_mixer(open_blocks:model/paint_mixer).- Fixed by switching to atlas-safe
open_blocks:block/paint_mixer_modeland addingtextures/block/paint_mixer_model.png.
- Fixed by switching to atlas-safe
- Legacy remap note:
src/main/java/art/arcane/openblocks/registry/OBMissingMappings.javanow handles compatibility remaps for missing mappings.- Namespace remap coverage:
openblocksandOpenBlocksto canonicalopen_blocks. - Alias coverage includes legacy camelCase/compact IDs and lowercased fallback forms for blocks/items/fluids/block entities/menus.
- Core aliases include:
- blocks:
vacuumhopper,bigbutton,xpbottler,autoanvil,autoenchantmenttable,xpdrain,blockbreaker,blockPlacer,itemDropper,ropeladder,donationStation,paintmixer,paintcan,canvasglass,drawingtable,xpshower,goldenegg - items:
hangglider,sonicglasses,pencilGlasses,crayonGlasses,technicolorGlasses,seriousGlasses,craneControl,craneBackpack,filledbucket,sleepingBag,paintBrush,heightMap,emptyMap,tastyClay,goldenEye,genericUnstackable,infoBook,devnull,spongeonastick,epicEraser - fluid:
liquidxp->xpjuice
- blocks:
- Systems skeleton note:
src/main/java/art/arcane/openblocks/command/OBCommands.javanow registers the three legacy command IDs in Brigadier form (flimflam,luck,ob_inventory).src/main/java/art/arcane/openblocks/command/OBInventoryStore.javanow provides the breadth-stage inventory dump backend used by/ob_inventory.src/main/java/art/arcane/openblocks/command/OBInventoryHooks.javanow stores command-consumable inventory dumps on player death.src/main/java/art/arcane/openblocks/api/OBInventoryEvent.javanow mirrors legacy inventory store/load event semantics for arbitrary subsystem payload IDs.src/main/java/art/arcane/openblocks/api/OBGraveDropsEvent.javanow mirrors legacy grave drop-action event semantics (STORE/DROP/DELETE) for grave filtering hooks.src/main/java/art/arcane/openblocks/world/OBGameRules.javanow registers legacy grave gamerule keyopenblocks:spawn_graves(defaulttrue).src/main/java/art/arcane/openblocks/block/OBGraveBlock.java+src/main/java/art/arcane/openblocks/block/entity/OBGraveBlockEntity.javanow provide placeable grave state with persisted dump metadata, death message display on normal interaction, and shovel-gated loot claim behavior.src/main/java/art/arcane/openblocks/block/OBHealBlock.java+src/main/java/art/arcane/openblocks/block/entity/OBHealBlockEntity.javanow provide periodic server-side healing/saturation aura behavior for nearby non-creative players.src/main/java/art/arcane/openblocks/block/OBElevatorBlock.javanow provides baseline elevator teleport flow (right-click up / sneak-right-click down) with travel/blocker limits and safe destination checks.src/main/java/art/arcane/openblocks/block/OBElevatorRotatingBlock.javanow extends baseline elevator teleport flow with facing-based player yaw alignment on arrival.src/main/java/art/arcane/openblocks/block/OBLadderBlock.javanow enforces north-face support survival foropen_blocks:ladder.src/main/java/art/arcane/openblocks/block/OBPathBlock.javanow enforces support-below survival and drops itself when support is removed.src/main/java/art/arcane/openblocks/block/OBRopeLadderBlock.javanow supports chain survival, survival-mode downward auto-extension on placement, and cascading chain removal.src/main/java/art/arcane/openblocks/block/OBSpongeBlock.javanow performs periodic liquid cleanup, lava burn fallback, and border-fluid wake-up scheduling on removal.src/main/java/art/arcane/openblocks/grave/OBGraveHooks.javanow writes grave backup dumps, posts/consumesOBGraveDropsEventaction filtering, searches for valid placement nearby, places grave blocks on successful death handling, and clears only stored grave drops when grave placement succeeds.src/main/java/art/arcane/openblocks/command/OBFlimFlamEffects.javanow provides executable breadth-stage actions for all legacy/flimflameffect IDs.- Current command parity:
luckreads/writesopen_blocks:luckcapability state.flimflamnow executes a 17-effect action map with legacy ID names preserved; deeper legacy parity (luck/cost/weight/blacklist semantics and exact per-effect behavior) remains pending.ob_inventorynow supports main + built-in sub-inventory dump/restore/spawn:- dumps written to
<world>/data/inventory-*.dat, - restore loads stored main inventory onto target player,
- restore also reapplies serialized ender chest payload when present,
- spawn drops target inventory stacks (or selected slot) at command source for
main,armor,offhand, andender_chest, - store/restore now also round-trip arbitrary sub-inventory payload maps through
OBInventoryEvent.Store/OBInventoryEvent.Load, - dump root now includes player
Locationmetadata (X,Y,Z,Dimension) for future grave/backend integrations. - grave backup dump writes/reads/deletes are now available via
OBInventoryStore.storeDroppedItems(...),OBInventoryStore.readDroppedItems(...), andOBInventoryStore.deleteDump(...)and are consumed by the grave place/claim flow.
- dumps written to
- legacy arbitrary subsystem payload consumers/producers remain pending; grave parity now includes baseline drop-action filtering, but still lacks richer metadata/placement depth and concrete external grave event integrations.
/luckstate storage now reads/writes throughOBCapabilities(open_blocks:luck) rather than ad-hoc player persistent data.src/main/java/art/arcane/openblocks/capability/OBCapabilities.javanow registers and attaches legacy player capability IDs (open_blocks:luck,open_blocks:pedometer_state,open_blocks:bowels) and copies them duringPlayerEvent.Clone(exceptbowelson death clones, to avoid duplicate death-drop state).OBCapabilities.PedometerStatenow includes runtime/report helpers (reset,start,tick,stop,createReport) and report DTO data used by pedometer messaging.src/main/java/art/arcane/openblocks/advancement/OBCriterions.javanow registers custom trigger IDsopen_blocks:brick_droppedandopen_blocks:dev_null_stackedfor advancement compatibility baseline.src/main/java/art/arcane/openblocks/advancement/OBAdvancementHooks.javanow wires initial trigger/capability gameplay hooks:tasty_clayconsume increments bowels count,- brick toss conditionally fires
brick_droppedand decrements bowels for survival players, LivingDropsEventemits up to 16 brick drops from bowels count and clears stored bowels state,PlayerTickEventnow performs baseline pedometer sampling while a pedometer is present in hotbar and tracking is active,- periodic placeholder inventory scan approximates dev-null depth and fires
dev_null_stacked.
src/main/java/art/arcane/openblocks/registry/OBItems.javanow sets parity-critical item properties:tasty_clayis edible,dev_nullandgeneric_unstackableare stack size 1.pedometeris stack size 1.
src/main/java/art/arcane/openblocks/item/OBPedometerItem.javanow provides explicit pedometer interaction flow:- right-click starts tracking,
- sneak-right-click resets tracking,
- right-click while running prints report lines using legacy pedometer lang keys.
- Mod entrypoint and major registration flow:
old-1.12.2/src/main/java/openblocks/OpenBlocks.java
- Config-driven registration + enchantments + meta items:
old-1.12.2/src/main/java/openblocks/Config.java
- Custom recipe registry event:
old-1.12.2/src/main/java/openblocks/CustomRecipesSetup.java
- GUI handler (luggage + dev null):
old-1.12.2/src/main/java/openblocks/OpenBlocksGuiHandler.java
- API provider bootstrap:
old-1.12.2/src/main/java/openblocks/ApiSetup.java
@RegisterBlockentries: 41@RegisterItementries: 30- Primary fluid(s): 1 (
xpjuice) - Enchantments: 3
- Sound events registered in code: 19
- Mod entities registered in code: 11
- Block entities referenced by block registration: 35
- Custom code-registered recipes: 7
- Commands: 3
- Custom advancements/triggers: 2
- Custom capabilities: 3
Source: old-1.12.2/src/main/resources/assets/openblocks/recipes
- Total recipe files: 189
- Top-level recipe types:
forge:ore_shaped: 107forge:ore_shapeless: 78openmods:enchanting: 4
- Existing 1.20 scaffold recipes currently present:
src/main/resources/data/open_blocks/recipes(7 custom serializer placeholders fromCustomRecipesSetup+ 1 custom flim-flam replacement recipe)
- Mechanical conversion output now present:
src/main/resources/data/open_blocks/recipes/legacy(185 converted crafting recipes)src/main/resources/data/open_blocks/tags/items/legacy_ore_dict(35 compatibility item-tag files for former ore-dict names)- Converted types:
forge:ore_shaped->minecraft:crafting_shapedforge:ore_shapeless->minecraft:crafting_shapeless
- Conversion baseline details:
- legacy
openblocks:*IDs remapped toopen_blocks:* - legacy metadata (
data) collapsed to modern single-ID forms for breadth coverage - ore dictionary entries translated to
open_blocks:legacy_ore_dict/*tags (now populated with broaderforge/minecraftgroup tags plus vanilla fallback items)
- legacy
- Legacy
openmods:enchantingreplacements:open_blocks:flim_flam_bookcustom crafting recipe implemented in:src/main/java/art/arcane/openblocks/recipe/OBFlimFlamBookRecipe.javasrc/main/resources/data/open_blocks/recipes/flim_flam_book.json
- Known conversion blockers (breadth-pass):
- Ore dictionary ingredient conversion (
forge:ore_dict-> modern tags). - Metadata-based result variants (
datafield) for color/state/meta-item fidelity. - Metadata/meta-item fidelity for converted legacy recipes still needs a depth pass.
- Ore dictionary ingredient conversion (
Source: old-1.12.2/src/main/java/openblocks/OpenBlocks.java
| ID | Block Class | Field | Tile Entity | ItemBlock / Item Wrapper | Legacy IDs / Notes |
|---|---|---|---|---|---|
| ladder | BlockLadder | Blocks.ladder |
- | default | - |
| guide | BlockGuide | Blocks.guide |
TileEntityGuide | ItemGuide | - |
| builder_guide | BlockBuilderGuide | Blocks.builderGuide |
TileEntityBuilderGuide | ItemGuide | - |
| elevator | BlockElevator | Blocks.elevator |
- | ItemElevator | registerDefaultItemModel = false |
| elevator_rotating | BlockElevatorRotating | Blocks.elevatorRotating |
TileEntityElevatorRotating | ItemElevator | registerDefaultItemModel = false |
| heal | BlockHeal | Blocks.heal |
TileEntityHealBlock | default | - |
| target | BlockTarget | Blocks.target |
TileEntityTarget | default | - |
| grave | BlockGrave | Blocks.grave |
TileEntityGrave | default | - |
| flag | BlockFlag | Blocks.flag |
TileEntityFlag | ItemFlagBlock | - |
| tank | BlockTank | Blocks.tank |
TileEntityTank | ItemTankBlock | - |
| trophy | BlockTrophy | Blocks.trophy |
TileEntityTrophy | ItemTrophyBlock | - |
| beartrap | BlockBearTrap | Blocks.bearTrap |
TileEntityBearTrap | default | - |
| sprinkler | BlockSprinkler | Blocks.sprinkler |
TileEntitySprinkler | default | - |
| cannon | BlockCannon | Blocks.cannon |
TileEntityCannon | default | OpenBlock TESR path |
| vacuum_hopper | BlockVacuumHopper | Blocks.vacuumHopper |
TileEntityVacuumHopper | default | vacuumhopper |
| sponge | BlockSponge | Blocks.sponge |
- | default | - |
| big_button | BlockBigButton | Blocks.bigButton |
TileEntityBigButton | default | bigbutton |
| big_button_wood | BlockBigButtonWood | Blocks.bigButtonWood |
TileEntityBigButtonWood | default | - |
| imaginary | BlockImaginary | Blocks.imaginary |
TileEntityImaginary | ItemImaginary | custom item models; no default model |
| fan | BlockFan | Blocks.fan |
TileEntityFan | default | - |
| xp_bottler | BlockXPBottler | Blocks.xpBottler |
TileEntityXPBottler | default | xpbottler |
| village_highlighter | BlockVillageHighlighter | Blocks.villageHighlighter |
TileEntityVillageHighlighter | default | - |
| path | BlockPath | Blocks.path |
- | default | - |
| auto_anvil | BlockAutoAnvil | Blocks.autoAnvil |
TileEntityAutoAnvil | default | autoanvil |
| auto_enchantment_table | BlockAutoEnchantmentTable | Blocks.autoEnchantmentTable |
TileEntityAutoEnchantmentTable | default | autoenchantmenttable |
| xp_drain | BlockXPDrain | Blocks.xpDrain |
TileEntityXPDrain | default | xpdrain |
| block_breaker | BlockBlockBreaker | Blocks.blockBreaker |
TileEntityBlockBreaker | default | blockbreaker |
| block_placer | BlockBlockPlacer | Blocks.blockPlacer |
TileEntityBlockPlacer | default | blockPlacer |
| item_dropper | BlockItemDropper | Blocks.itemDropper |
TileEntityItemDropper | default | itemDropper |
| rope_ladder | BlockRopeLadder | Blocks.ropeLadder |
- | default | ropeladder |
| donation_station | BlockDonationStation | Blocks.donationStation |
TileEntityDonationStation | default | donationStation |
| paint_mixer | BlockPaintMixer | Blocks.paintMixer |
TileEntityPaintMixer | default | paintmixer |
| canvas | BlockCanvas | Blocks.canvas |
TileEntityCanvas | default | - |
| paint_can | BlockPaintCan | Blocks.paintCan |
TileEntityPaintCan | ItemPaintCan | paintcan |
| canvas_glass | BlockCanvasGlass | Blocks.canvasGlass |
TileEntityCanvasGlass | default | canvasglass |
| projector | BlockProjector | Blocks.projector |
TileEntityProjector | default | - |
| drawing_table | BlockDrawingTable | Blocks.drawingTable |
TileEntityDrawingTable | default | drawingtable |
| sky | BlockSky | Blocks.sky |
TileEntitySky | ItemSkyBlock | unlocalized sky.normal |
| xp_shower | BlockXPShower | Blocks.xpShower |
TileEntityXPShower | default | xpshower |
| golden_egg | BlockGoldenEgg | Blocks.goldenEgg |
TileEntityGoldenEgg | default | goldenegg |
| scaffolding | BlockScaffolding | Blocks.scaffolding |
- | BlockScaffolding.Item | - |
Source: old-1.12.2/src/main/java/openblocks/OpenBlocks.java
| ID | Item Class | Field | Legacy IDs / Notes |
|---|---|---|---|
| hang_glider | ItemHangGlider | Items.hangGlider |
hangglider |
| generic | ItemOBGeneric | Items.generic |
no default model; meta item holder |
| luggage | ItemLuggage | Items.luggage |
- |
| sonic_glasses | ItemSonicGlasses | Items.sonicGlasses |
sonicglasses |
| pencil_glasses | ItemImaginationGlasses | Items.pencilGlasses |
pencilGlasses, unlocalized glasses.pencil |
| crayon_glasses | ItemCrayonGlasses | Items.crayonGlasses |
crayonGlasses, unlocalized glasses.crayon |
| technicolor_glasses | ItemImaginationGlasses | Items.technicolorGlasses |
technicolorGlasses, unlocalized glasses.technicolor |
| serious_glasses | ItemImaginationGlasses | Items.seriousGlasses |
seriousGlasses, unlocalized glasses.admin |
| crane_control | ItemCraneControl | Items.craneControl |
craneControl |
| crane_backpack | ItemCraneBackpack | Items.craneBackpack |
craneBackpack |
| slimalyzer | ItemSlimalyzer | Items.slimalyzer |
- |
| xp_bucket | ItemXpBucket | Items.xpBucket |
filledbucket |
| sleeping_bag | ItemSleepingBag | Items.sleepingBag |
sleepingBag |
| paintbrush | ItemPaintBrush | Items.paintBrush |
paintBrush |
| stencil | ItemStencil | Items.stencil |
no default model |
| squeegee | ItemSqueegee | Items.squeegee |
- |
| height_map | ItemHeightMap | Items.heightMap |
heightMap |
| empty_map | ItemEmptyMap | Items.emptyMap |
emptyMap |
| cartographer | ItemCartographer | Items.cartographer |
- |
| tasty_clay | ItemTastyClay | Items.tastyClay |
tastyClay |
| golden_eye | ItemGoldenEye | Items.goldenEye |
goldenEye |
| generic_unstackable | ItemOBGenericUnstackable | Items.genericUnstackable |
no default model; genericUnstackable |
| cursor | ItemCursor | Items.cursor |
- |
| info_book | ItemInfoBook | Items.infoBook |
infoBook |
| dev_null | ItemDevNull | Items.devNull |
devnull |
| sponge_on_a_stick | ItemSpongeOnAStick | Items.spongeonastick |
spongeonastick |
| pedometer | ItemPedometer | Items.pedometer |
- |
| epic_eraser | ItemEpicEraser | Items.epicEraser |
epicEraser |
| wrench | ItemWrench | Items.wrench |
- |
| glyph | ItemGlyph | Items.glyph |
- |
Source:
-
old-1.12.2/src/main/java/openblocks/common/item/MetasGeneric.java -
old-1.12.2/src/main/java/openblocks/common/item/MetasGenericUnstackable.java -
Items.generic(ItemOBGeneric) variants:glider_wingbeamcrane_enginecrane_magnetmiracle_magnet(conditional: OpenPeripheralCore + config)linemap_controllermap_memorycursor(deprecated placeholder, disabled)assistant_baseunprepared_stencilsketching_pencil
-
Items.genericUnstackable(ItemOBGenericUnstackable) variants:pointer
Primary sources:
old-1.12.2/src/main/java/openblocks/OpenBlocks.java(createTabOpenBlocks,setupConfigPre)- Item/block classes with
getSubItemsoverrides underold-1.12.2/src/main/java/openblocks/common/item
Core behavior:
setupConfigPresets one shared creative tab for registered OpenBlocks content:gameConfig.setCreativeTab(OpenBlocks::createTabOpenBlocks).- Tab icon is
Blocks.flagwith default color, fallbackminecraft:spongeif flag is disabled/unavailable. - Tab appends enchanted books for
explosive,last_stand, andflim_flamwhen those enchantments are registered.
Important item variant behavior in legacy tab:
ItemElevator: exposes 16 color metadata variants.ItemPaintCan: exposes one full can per color.ItemSkyBlock: exposes normal + inverted variants.ItemTrophyBlock: exposes one stack per trophy/entity type.ItemImaginary: exposes pencil + all crayon colors.ItemPaintBrush: exposes blank + colored variants.ItemStencil: exposes all stencil patterns.ItemEmptyMap: exposes scale variants (0..3).ItemGoldenEye: exposes charged and depleted states.ItemGlyph: exposes display character set in OpenBlocks tab; optionally full charset in Search tab (config-controlled).ItemImaginationGlasses.ItemCrayonGlasses: exposes one pair per color.ItemCartographer: exposes all assistant type variants (currently one enum value).ItemXpBucket: only appears whenConfig.showXpBucketInCreativeis true.ItemHeightMap: intentionally hidden from creative tab (getSubItemsis empty).
Port implication:
- Current 1.20.1 breadth scaffold intentionally shows one stack per registry ID in the creative tab.
- Metadata/NBT creative-variant parity is a later depth pass item.
Source: old-1.12.2/src/main/java/openblocks/OpenBlocks.java
- Registered fluid object:
- ID:
xpjuice - Field:
OpenBlocks.Fluids.xpJuice - Texture RLs:
openblocks:blocks/xp_juice_still,openblocks:blocks/xp_juice_flowing
- ID:
- Registration occurs in
OpenBlocks.preInit:FluidRegistry.registerFluid(Fluids.xpJuice)- optional
FluidRegistry.addBucketForFluid(Fluids.xpJuice)when enabled
- XP conversion system:
old-1.12.2/src/main/java/openblocks/common/FluidXpUtils.java- supports additional fluid mappings from config (
Config.additionalXpFluids)
- Note:
assets/openblocks/blockstates/xp_bucket.jsonreferencesliquidxpstring.
Source: old-1.12.2/src/main/java/openblocks/Config.java
- Registered enchantments:
openblocks:explosive(EnchantmentExplosive)openblocks:last_stand(EnchantmentLastStand)openblocks:flim_flam(EnchantmentFlimFlam)
- Object holders:
OpenBlocks.EnchantmentsinOpenBlocks.java
Source:
- Registration code:
old-1.12.2/src/main/java/openblocks/OpenBlocks.java - Definitions:
old-1.12.2/src/main/resources/assets/openblocks/sounds.json
Registered in code (19):
elevator.activategrave.robcrayon.placeluggage.walkluggage.eat.foodluggage.eat.itempedometer.useslimalyzer.signalsqueegee.usebest.feature.ever.fartannoying.mosquitoannoying.alarmclockannoying.vibratebeartrap.openbeartrap.closecannon.activatetarget.opentarget.closebottler.signal
Additional keys present in sounds.json but not registered in code:
radio.activateunused.mortar
Source: old-1.12.2/src/main/java/openblocks/OpenBlocks.java
Registered mod entities:
openblocks:luggage->EntityLuggage(legacy numeric ID constant702)openblocks:xp_orb_no_fly->EntityXPOrbNoFly(709)openblocks:hang_glider->EntityHangGlider(701)openblocks:magnet->EntityMagnet(703)openblocks:mounted_block->EntityMountedBlock(704)openblocks:player_magnet->EntityMagnet.PlayerBound(708)openblocks:cartographer->EntityCartographer(705)openblocks:item_projectile->EntityItemProjectile(706)openblocks:golden_eye->EntityGoldenEye(707)openblocks:mini_me->EntityMiniMe(710)openblocks:glyph->EntityGlyph(711)
Entity package inventory:
old-1.12.2/src/main/java/openblocks/common/entity- Not directly registered as mod entities but present as helpers/base classes:
EntityAssistantEntityMountEntitySmoothMove
Source package:
old-1.12.2/src/main/java/openblocks/common/tileentity
Registered through block annotations (35 references):
- TileEntityGuide
- TileEntityBuilderGuide
- TileEntityElevatorRotating
- TileEntityHealBlock
- TileEntityTarget
- TileEntityGrave
- TileEntityFlag
- TileEntityTank
- TileEntityTrophy
- TileEntityBearTrap
- TileEntitySprinkler
- TileEntityCannon
- TileEntityVacuumHopper
- TileEntityBigButton
- TileEntityBigButtonWood
- TileEntityImaginary
- TileEntityFan
- TileEntityXPBottler
- TileEntityVillageHighlighter
- TileEntityAutoAnvil
- TileEntityAutoEnchantmentTable
- TileEntityXPDrain
- TileEntityBlockBreaker
- TileEntityBlockPlacer
- TileEntityItemDropper
- TileEntityDonationStation
- TileEntityPaintMixer
- TileEntityCanvas
- TileEntityPaintCan
- TileEntityCanvasGlass
- TileEntityProjector
- TileEntityDrawingTable
- TileEntitySky
- TileEntityXPShower
- TileEntityGoldenEgg
Helper/base tile entity class in package (not directly registered from block annotations):
TileEntityBlockManipulator
Primary GUI source files:
old-1.12.2/src/main/java/openblocks/OpenBlocksGuiHandler.javaold-1.12.2/src/main/java/openblocks/common/container/*old-1.12.2/src/main/java/openblocks/client/gui/*
Non-tile GUI IDs via OpenBlocksGuiHandler.GuiId:
luggage->ContainerLuggage/GuiLuggagedevNull->ContainerDevNull/GuiDevNull
Tile-based container/gui providers (via IHasGui in tile entities):
- TileEntityAutoEnchantmentTable -> ContainerAutoEnchantmentTable / GuiAutoEnchantmentTable
- TileEntityDonationStation -> ContainerDonationStation / GuiDonationStation
- TileEntityProjector -> ContainerProjector / GuiProjector
- TileEntityDrawingTable -> ContainerDrawingTable / GuiDrawingTable
- TileEntityBigButton -> ContainerBigButton / GuiBigButton
- TileEntityItemDropper -> ContainerItemDropper / GuiItemDropper
- TileEntitySprinkler -> ContainerSprinkler / GuiSprinkler
- TileEntityVacuumHopper -> ContainerVacuumHopper / GuiVacuumHopper
- TileEntityBlockPlacer -> ContainerBlockPlacer / GuiBlockPlacer
- TileEntityAutoAnvil -> ContainerAutoAnvil / GuiAutoAnvil
- TileEntityXPBottler -> ContainerXPBottler / GuiXPBottler
- TileEntityPaintMixer -> ContainerPaintMixer / GuiPaintMixer
Custom code-registered recipes:
- Source:
old-1.12.2/src/main/java/openblocks/CustomRecipesSetup.java - IDs:
openblocks:crayon_mergeopenblocks:crayon_mixopenblocks:crayon_glassesopenblocks:map_cloneopenblocks:map_resizeopenblocks:golden_eye_rechargeopenblocks:epic_eraser_action
Data recipes:
- Folder:
old-1.12.2/src/main/resources/assets/openblocks/recipes - File count: 189 JSON recipes
Source: old-1.12.2/src/main/java/openblocks/OpenBlocks.java
Custom sync type registry (RegistryEvent.Register<SyncableObjectType>):
EntityCartographer.MapJobsSyncableBlockLayers
RPC method registry (RegistryEvent.Register<MethodEntry>):
IRotatableIStencilCrafterIColorChangerILevelChangerITriggerableIGuideAnimationTriggerIItemDropper
Network event registry (RegistryEvent.Register<NetworkEventEntry>):
MapDataManager.MapDataRequestEventMapDataManager.MapDataResponseEventMapDataManager.MapUpdatesEventElevatorActionEventPlayerActionEventGuideActionEventEntityMiniMe.OwnerChangeEvent
Sources:
old-1.12.2/src/main/java/openblocks/rubbish/BrickManager.javaold-1.12.2/src/main/java/openblocks/common/PedometerHandler.javaold-1.12.2/src/main/java/openblocks/enchantments/FlimFlamEnchantmentsHandler.java
Registered capability sets:
openblocks:bowels->BrickManager.BowelContentsopenblocks:pedometer_state->PedometerHandler.PedometerStateopenblocks:luck->FlimFlamEnchantmentsHandler.Luck
Sources:
- Trigger registration:
old-1.12.2/src/main/java/openblocks/advancements/Criterions.java - Trigger classes:
TriggerDevNullStack-> trigger IDopenblocks:dev_null_stackedTriggerBrickDropped-> trigger IDopenblocks:brick_dropped
- Advancement JSON files:
old-1.12.2/src/main/resources/assets/openblocks/advancements/oops.jsonold-1.12.2/src/main/resources/assets/openblocks/advancements/tma2.json
Source:
- Code:
old-1.12.2/src/main/java/openblocks/common/LootHandler.java - Data:
old-1.12.2/src/main/resources/assets/openblocks/loot_tables/inject/technicolor_glasses.json
Injection behavior:
- Registers loot table
openblocks:inject/technicolor_glasses - Injects into:
minecraft:chests/abandoned_mineshaftminecraft:chests/simple_dungeon
- Villager profession registry:
- Source:
old-1.12.2/src/main/java/openblocks/common/RadioVillagerTrades.java - Registers profession
openblocks:radio, careeraudiophile
- Source:
- Ore dictionary:
- Source:
old-1.12.2/src/main/java/openblocks/OpenBlocks.java craftingTableWoodchestWood
- Source:
- Game rule registration:
- Source:
old-1.12.2/src/main/java/openblocks/common/GameRuleManager.java - Adds
openblocks:spawn_graves
- Source:
- Commands (server start):
flimflam(CommandFlimFlam)luck(CommandLuck)ob_inventory(CommandInventory)
- Main client proxy:
old-1.12.2/src/main/java/openblocks/client/ClientProxy.java
- Block/item color handlers:
old-1.12.2/src/main/java/openblocks/client/BlockColorHandlerRegistration.java
- TESR bindings, entity renderers, custom model loader IDs (
magic-devnull,magic-path,magic-stencil,magic-canvas,magic-glyph) in ClientProxy.
assets/openblocks/blockstates-> 48 JSONassets/openblocks/models/item-> 59 JSONassets/openblocks/recipes-> 189 JSONassets/openblocks/sounds.json+ sound OGG files inassets/openblocks/soundsassets/openblocks/loot_tables/inject-> loot injection dataassets/openblocks/advancements-> advancement JSONs
old-1.12.2/src/main/resources/assets/openblocks/blockstates/temp.jsonexists and appears unused.- Integration modules are present but registration calls are commented out in
OpenBlocks.preInit:ModuleAdaptersModuleTurtles
old-1.12.2/OpenModsLibsubmodule contents are absent in this snapshot (folder is empty).