All versions
0.1.17
Release
Forgeborne Odyssey 0.1.172 weeks ago 39
Compatibility
Minecraft: Java Edition
1.20.1
Platform
Forge
Supported environments
Client and server
Changes
Forgeborne Odyssey v0.1.17 — Changelog / 更新日志
English
1. Geology & World Generation
- 28 rock types added (sedimentary, metamorphic, igneous — including hornfels and spotted slate), each with stairs/slab/wall variants plus models, loot tables, lang keys and pickaxe tags.
- Stratigraphic columns & tectonic domains: 8 columns (North/South China platform, orogens A/B, continental rift, passive-margin carbonate, Archean greenstone, oceanic crust) selected by 7 tectonic domains.
- Structural geology: multi-wavelength folds, angular unconformities, faults (normal/reverse/strike-slip) with damage zones producing fault breccia, cataclasite and mylonite.
- Phase 8-0 true dip: realistic dip per domain (platform 0.8–3°, orogen 22–42°…); bedding surfaces tilt accordingly, and fault planes dip with depth instead of being vertical walls.
- Intrusions & metamorphism: batholiths, dykes, sills; contact aureoles (hornfels → spotted slate); regional metamorphism graded by depth and tectonic core (slate → phyllite → schist → gneiss / quartzite / marble / amphibolite / granulite).
- Weathering profiles: 8 soil types from biome temperature/rainfall × slope × rock hardness → regolith → shattered bedrock → fresh bedrock.
- Surface sediments: river alluvium, beach sand, arid aeolian sand sheets and calcrete.
- Diagenesis: loose sediments consolidate into sandstone/conglomerate/shale/mudstone with depth; shallow de-consolidation keeps a continuous gradient.
- Performance: strata are now written once at world-generation time (
StrataFeature); old chunks self-heal through a versioned deferred queue. Two-pass column building, section skipping, tick budget, cache cleanup on shutdown, and the fire-crack scan no longer does quadratic lookups.
2. Ore Deposits & Resources
- Deposit system replaces random ore veins: 12 deposit types — porphyry copper, skarn, quartz-vein gold, banded iron formation, sedimentary copper, VMS, SEDEX Pb-Zn, placer, coal measures, evaporites, oil shale, aggregate — gated by domain, depth, host rock, faults and intrusions, with grade zonation (core/mid/rim).
- All random ore veins removed; ores now only come from deposits.
- New resources & chains: rock salt → salt, oil shale → shale oil (fuel, torches), coal measures, gypsum; salt cures rotten flesh into leather.
- Geobotanical indicator
indicator_flower: grows only above deposits, tinted by metal (copper, gold, lead-zinc, iron). - Surface features split by weathering thickness: outcrops where thin, boulders where thick, talus on steep slopes.
3. Fixes
- Nether/End being consumed by the strata pipeline (dimension guards).
- Mine ruins writing blocks across chunk borders (
Detected setBlock in a far chunk, lost blocks) — now per-chunk with bounding-box clipping. - Growing memory use as more chunks load (version cache only in the overworld, cleared on shutdown).
copper_orestag typo (cuprovandite_ore→cuprovanadite_ore).- Missing
minVersionwarning inmixins.json. - Old chunks repaving bug where
lastRockwas compared against the wrong block, leaving rock only at layer boundaries.
4. Textures
- 28 rocks, 24 ores and all Phase 7 blocks redrawn procedurally at 16 px (scripts
gen_*.py, previews in_geo_preview/). - Ores went through “stone base + small clusters” and “angular fragments” iterations and were reverted to the original hand-drawn set per feedback. Rock textures fixed a 90°-wrong foliation direction bug (gneiss, slate, phyllite, schist, mylonite now bed horizontally).
5. Documentation
- Added
TECH_SPEC_GEO_PHASE1…PHASE8_STRUCTURE,GEOLOGY_ASSETS.md,GEOLOGY_BASALT_FIX.md, andTECH_HISTORY_ROADMAP.md(8-stage history-of-technology roadmap v1.1).
6. Known Issues
- Spawn generation is still slow on low-end devices (Android FCL, 4 GB laptops): ~4–5 minutes for 512 chunks; strata account for about a tenth, the rest is vanilla entity/structure generation and GC.
- Several rock textures (sandstone, siltstone, rhyolite, granodiorite, peridotite, hornfels) are still hard to read at 16 px and need individual redraws.
中文
一、地质与世界生成
- 28 种岩石上线(沉积、变质、火成,含角岩
hornfels、斑点板岩spotted_slate),每种都带楼梯、台阶、墙变体,配齐模型、掉落表、语言键与镐类标签。 - 地层柱与构造域:8 套地层柱(华北/华南地台、造山带 A/B、大陆裂谷、被动陆缘碳酸盐、太古宙绿岩带、洋壳),按 7 种构造域自动选择。
- 构造几何:多波长褶皱、角度不整合、断层(正、逆、走滑),带破碎带宽度,生成断层角砾岩、碎裂岩、糜棱岩。
- Phase 8-0 真倾角:每个构造域有真实倾角(地台 0.8–3°、造山带 22–42°…),层界随倾角倾斜;断层面随深度倾斜,不再是竖直的墙。
- 侵入与变质:岩基、岩墙、岩床;接触变质晕(角岩→斑点板岩);区域变质按深度与构造核分级(板岩→千枚岩→片岩→片麻岩/石英岩/大理岩/角闪岩/麻粒岩)。
- 风化剖面:按生物群系温湿度 × 坡度 × 岩石硬度生成 8 种土壤 → 风化壳
regolith→ 碎裂基岩 → 新鲜基岩。 - 地表沉积:河流冲积、海滩砂、干旱区风成砂席与钙结层。
- 成岩作用:松散沉积物随埋深固结成砂岩、砾岩、页岩、泥岩;浅部反向去固结,形成连续梯度。
- 性能改造:地层写入改为世界生成期一次成型(
StrataFeature),旧存档区块按版本号走延迟队列自愈;两遍建列、section 跳过、分 tick 摊平、退出清理缓存、火裂扫描去掉平方级遍历。
二、矿床与资源
- 矿床系统取代随机矿脉,共 12 类:斑岩铜、矽卡岩、石英脉金、条带状铁建造、沉积铜、VMS 块状硫化物、SEDEX 铅锌、砂矿、煤系、蒸发岩、油页岩、骨料;按构造域、深度、母岩、断层与侵入体条件生成,并做品位分带(核/中/边三圈不同矿物组合)。
- 随机矿脉全部下线,矿石只来自矿床。
- 新矿物与利用链:岩盐→盐、油页岩→页岩油(燃料、制火把)、煤系、石膏;盐可硝皮(盐 + 腐肉 → 皮革)。
- 矿化指示花
indicator_flower:只长在矿床上方,按金属着色(铜、金、铅锌、铁)。 - 地表特征按风化厚度分流:薄风化处露头、厚风化处长巨石、陡坡生岩屑堆
talus。
三、修复
- 下界、末地被地层管线误处理导致进入即卡死(补维度守卫)。
- 矿坑、竖井、工坊遗迹跨区块写方块,触发
Detected setBlock in a far chunk且方块丢失(改为逐区块写入并裁剪到本区块包围盒)。 - 读取区块越多越卡(版本缓存只在主世界记录,服务器停止时整体清理)。
copper_ores标签拼写错误(cuprovandite_ore→cuprovanadite_ore)。mixins.json缺minVersion的启动警告。- 旧存档重铺时
lastRock比较对象错误,导致岩石只出现在层界一两格。
四、贴图
- 28 种岩石、24 种矿石、Phase 7 新方块贴图全部程序化重绘为 16 px(脚本
gen_*.py,预览在_geo_preview/)。 - 矿石贴图试过“石底小簇”“棱角碎块”两版,最终按反馈回退到原始手绘版;岩石贴图修掉了变质岩层理方向反了 90° 的 bug(片麻岩、板岩、千枚岩、片岩、糜棱岩改为水平层理)。
五、文档
- 新增
TECH_SPEC_GEO_PHASE1~PHASE8_STRUCTURE、GEOLOGY_ASSETS.md、GEOLOGY_BASALT_FIX.md、TECH_HISTORY_ROADMAP.md(人类技术史 8 阶段路线图 v1.1)。
六、已知问题
- 低端设备(安卓 FCL、4 GB 笔记本)新世界出生点生成仍偏慢:512 区块约 4–5 分钟,地层只占约十分之一,其余是原版实体、结构生成与 GC。
- 部分岩石贴图(砂岩、粉砂岩、流纹岩、花岗闪长岩、橄榄岩、角岩)在 16 px 下辨识度仍不足,待单独重画。
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:7aV51V7y:OsDhAyty"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:7aV51V7y:OsDhAyty"
}

