SciCraft/server_pack/kubejs/startup_scripts/registry_blocks.js
MiTHRAL 2fdd487786
All checks were successful
Build & Release Pack / build (push) Successful in 1m40s
fix: singleplayer join crash (mekanismcovers sodium mixin) + KubeJS/LootJS API migration
FATAL fix — mekanismcovers Sodium mixin crash:
- mekanismcovers 1.3-BETA targets an old Sodium BlockRenderer API that
  doesn't exist in Sodium 0.8.13 → 'No refMap loaded' InjectionError.
- Add config/mekanismcovers.json with disableAdvancedCoverRendering=true
  (the mod's documented workaround for Sodium/Iris/Embeddium crashes).
  Also set enableShaderCompatibleRendering=true.

KubeJS 2101.x API migration (global assignment no longer allowed):
- Remove 00_lore.js (it only set global.SCICRAFT, which is now forbidden)
- Inline the config object into 01_corruption_tide/02_events/03_recipes
  (global.SCICRAFT → local const SC per script)
- Remove unused 'const SC = global.SCICRAFT' from registry_blocks.js

LootJS 3.x API migration:
- addEntityLootModifier → addEntityModifier (04_loot.js, 7 call sites)

Pack validates: client 140 / server 118 mods, 57 story keys.
2026-08-19 21:32:35 -04:00

54 lines
No EOL
1.7 KiB
JavaScript

// SCICRAFT — The Dark Photon Protocol
// Custom items & blocks for the Protocol.
// Names + tooltips come from the lang file (STORY/*.md → en_us.json).
// Startup scripts: requires a full restart to apply.
StartupEvents.registry('item', event => {
// Photon Core — the raw fifth-force crystal. Lattice fuel.
event.create('scicraft:photon_core')
.texture('scicraft:item/photon_core')
.maxStackSize(64)
.tag('scicraft:photon')
.tag('c:gems')
.glow(true)
// Photon Fragment — shattered cores recovered from the Darker.
event.create('scicraft:photon_fragment')
.texture('scicraft:item/photon_fragment')
.maxStackSize(64)
.tag('scicraft:photon')
.tag('c:gems')
.glow(true)
// Void Stabilizer — the tool that re-seals Doors at the Lattice.
event.create('scicraft:void_stabilizer')
.texture('scicraft:item/void_stabilizer')
.maxStackSize(1)
.tag('scicraft:stabilizer')
})
StartupEvents.registry('block', event => {
// Quantum Lattice — the Protocol's emitter. Must stay powered.
event.create('scicraft:quantum_lattice')
.texture('scicraft:block/quantum_lattice')
.hardness(5.0)
.resistance(1200.0)
.soundType('metal')
.mapColor('color_gray')
.lightLevel(0.9)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('minecraft:needs_diamond_tool')
// Renegade Glass — the TARDIS-blue glass of the Flight. Purely decorative.
event.create('scicraft:renegade_glass')
.texture('scicraft:block/renegade_glass')
.hardness(0.3)
.resistance(0.3)
.soundType('glass')
.renderType('translucent')
.opaque(false)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('c:glass_blocks')
.tagBlock('c:glass')
.tagBlock('minecraft:impermeable')
})