This commit is contained in:
Shiroyasha 2025-09-14 21:22:24 +03:00
commit a956daf8e2
Signed by: shiroyashik
GPG key ID: E4953D3940D7860A
2351 changed files with 163047 additions and 0 deletions

View file

@ -0,0 +1,952 @@
/**
* Definitions for new ore veins using the GregTech: Modern API & tweaks for existing veins.
*/
const WorldGenLayers = Java.loadClass("com.gregtechceu.gtceu.api.data.worldgen.WorldGenLayers")
GTCEuServerEvents.oreVeins(event => {
// Overworld veins
event.add("overworld/uraninite", vein => {
vein.weight(30)
vein.density(0.25)
vein.clusterSize(30)
vein.layer("stone")
vein.dimensions("minecraft:overworld")
vein.heightRangeUniform(30, 60)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.Pitchblende).size(1, 1))
.layer(l => l.weight(3).mat(GTMaterials.Uraninite).size(2, 4))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Uraninite)
.placement("above")
)
})
event.add("overworld/tetrahedrite", vein => {
vein.weight(50)
vein.density(0.25)
vein.clusterSize(40)
vein.layer("stone")
vein.dimensions("minecraft:overworld")
vein.heightRangeUniform(30, 60)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(2).mat(GTMaterials.Tetrahedrite).size(1, 1))
.layer(l => l.weight(2).mat(GTMaterials.Copper).size(2, 4))
.layer(l => l.weight(1).mat(GTMaterials.Stibnite).size(1, 4))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Tetrahedrite)
.placement("above")
)
})
// Moon veins
event.add("moon/diamond", vein => {
vein.weight(20)
vein.density(0.25)
vein.clusterSize(25)
vein.layer("moon")
vein.dimensions("ad_astra:moon")
vein.heightRangeUniform(-40, 20)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(6).mat(GTMaterials.Diamond).size(1, 3))
.layer(l => l.weight(4).mat(GTMaterials.Graphite).size(1, 2))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Diamond)
.placement("above")
)
})
event.add("moon/gold", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(25)
vein.layer("moon")
vein.dimensions("ad_astra:moon")
vein.heightRangeUniform(10, 60)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(2).mat(GTMaterials.Magnetite).size(1, 3))
.layer(l => l.weight(1).mat(GTMaterials.VanadiumMagnetite).size(1, 1))
.layer(l => l.weight(3).mat(GTMaterials.Chromite).size(1, 2))
.layer(l => l.weight(5).mat(GTMaterials.Gold).size(1, 4))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Gold)
.placement("above")
)
})
event.add("moon/manganese", vein => {
vein.weight(30)
vein.density(0.25)
vein.clusterSize(70)
vein.layer("moon")
vein.dimensions("ad_astra:moon")
vein.heightRangeUniform(20, 100)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.Grossular, 3)
.oreBlock(GTMaterials.Spessartine, 3)
.oreBlock(GTMaterials.Pyrolusite, 3)
.oreBlock(GTMaterials.Tantalite, 1)
.veininessThreshold(0.1)
.maxRichnessThreshold(0.3)
.minRichness(0.3)
.maxRichness(0.5)
.edgeRoundoffBegin(10)
.maxEdgeRoundoff(0.2)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Pyrolusite)
.placement("above")
)
})
event.add("moon/molybdenum", vein => {
vein.weight(20)
vein.density(0.25)
vein.clusterSize(80)
vein.layer("moon")
vein.dimensions("ad_astra:moon")
vein.heightRangeUniform(20, 100)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.Wulfenite, 3)
.oreBlock(GTMaterials.Chalcopyrite, 3)
.oreBlock(GTMaterials.Molybdenite, 2)
.veininessThreshold(0.1)
.maxRichnessThreshold(0.3)
.minRichness(0.3)
.maxRichness(0.5)
.edgeRoundoffBegin(10)
.maxEdgeRoundoff(0.2)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Molybdenite)
.placement("above")
)
})
event.add("moon/quartz", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(45)
vein.layer("moon")
vein.dimensions("ad_astra:moon")
vein.heightRangeUniform(40, 120)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(5).mat(GTMaterials.NetherQuartz).size(1, 3))
.layer(l => l.weight(3).mat(GTMaterials.CertusQuartz).size(1, 2))
.layer(l => l.weight(2).mat(GTMaterials.get("dilithium")).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.NetherQuartz)
.placement("above")
)
})
event.add("moon/tungsten", vein => {
vein.weight(45)
vein.density(0.25)
vein.clusterSize(15)
vein.layer("moon")
vein.dimensions("ad_astra:moon")
vein.heightRangeUniform(-40, 20)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(6).mat(GTMaterials.Scheelite).size(1, 4))
.layer(l => l.weight(4).mat(GTMaterials.Tungstate).size(1, 4))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Scheelite)
.placement("above")
)
})
event.add("moon/tetrahedrite", vein => {
vein.weight(30)
vein.density(0.25)
vein.clusterSize(30)
vein.layer("moon")
vein.dimensions("ad_astra:moon")
vein.heightRangeUniform(40, 120)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.Tetrahedrite).size(1, 3))
.layer(l => l.weight(2).mat(GTMaterials.Copper).size(1, 2))
.layer(l => l.weight(1).mat(GTMaterials.Stibnite).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Tetrahedrite)
.placement("above")
)
})
event.add("moon/fluorite", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(25)
vein.layer("moon")
vein.dimensions("ad_astra:moon")
vein.heightRangeUniform(-40, 50)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(5).mat(GTMaterials.get("fluorite")).size(1, 1))
.layer(l => l.weight(3).mat(GTMaterials.Sphalerite).size(2, 4))
.layer(l => l.weight(2).mat(GTMaterials.Bastnasite).size(2, 4))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.get("fluorite"))
.placement("above")
)
})
event.add("moon/bauxite", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(30)
vein.layer("moon")
vein.dimensions("ad_astra:moon")
vein.heightRangeUniform(10, 80)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(2).mat(GTMaterials.Bauxite).size(1, 4))
.layer(l => l.weight(1).mat(GTMaterials.Ilmenite).size(1, 2))
.layer(l => l.weight(1).mat(GTMaterials.Aluminium).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Bauxite)
.placement("above")
)
})
// Mars veins
event.add("mars/tungstate", vein => {
vein.weight(50)
vein.density(0.25)
vein.clusterSize(35)
vein.layer("mars")
vein.dimensions("ad_astra:mars")
vein.heightRangeUniform(10, 80)
vein.dikeVeinGenerator(generator => generator
.withBlock(GTMaterials.Tungstate, 2, 18, 80)
.withBlock(GTMaterials.Scheelite, 2, 15, 80)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Tungstate)
.placement("above")
)
})
event.add("mars/iron", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(50)
vein.layer("mars")
vein.dimensions("ad_astra:mars")
vein.heightRangeUniform(10, 80)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.Iron, 4)
.oreBlock(GTMaterials.Hematite, 3)
.rareBlock(GTMaterials.Gold, 1)
.oreBlock(GTMaterials.Pyrite, 3)
.rareBlockChance(0.33)
.veininessThreshold(0.1)
.maxRichnessThreshold(0.4)
.minRichness(0.3)
.maxRichness(0.6)
.edgeRoundoffBegin(12)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Hematite)
.placement("above")
)
})
event.add("mars/rare_earth_metal", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(30)
vein.layer("mars")
vein.dimensions("ad_astra:mars")
vein.heightRangeUniform(10, 80)
vein.dikeVeinGenerator(generator => generator
.withBlock(GTMaterials.Monazite, 2, 18, 80)
.withBlock(GTMaterials.Molybdenite, 2, 16, 80)
.withBlock(GTMaterials.Bastnasite, 2, 14, 80)
.withBlock(GTMaterials.Neodymium, 1, 12, 80)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Molybdenite)
.placement("above")
)
})
event.add("mars/copper", vein => {
vein.weight(30)
vein.density(0.25)
vein.clusterSize(45)
vein.layer("mars")
vein.dimensions("ad_astra:mars")
vein.heightRangeUniform(10, 80)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.Copper, 4)
.oreBlock(GTMaterials.Tetrahedrite, 3)
.oreBlock(GTMaterials.Chalcopyrite, 2)
.oreBlock(GTMaterials.Pyrite, 1)
.rareBlockChance(0.33)
.veininessThreshold(0.1)
.maxRichnessThreshold(0.4)
.minRichness(0.4)
.maxRichness(0.7)
.edgeRoundoffBegin(12)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Chalcopyrite)
.placement("above")
)
})
event.add("mars/zinc", vein => {
vein.weight(45)
vein.density(0.25)
vein.clusterSize(40)
vein.layer("mars")
vein.dimensions("ad_astra:mars")
vein.heightRangeUniform(10, 80)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.Tetrahedrite, 4)
.oreBlock(GTMaterials.Copper, 3)
.rareBlock(GTMaterials.Stibnite, 1)
.rareBlockChance(0.33)
.veininessThreshold(0.1)
.maxRichnessThreshold(0.4)
.minRichness(0.4)
.maxRichness(0.5)
.edgeRoundoffBegin(12)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Stibnite)
.placement("above")
)
})
event.add("mars/beryllium", vein => {
vein.weight(30)
vein.density(0.25)
vein.clusterSize(70)
vein.layer("mars")
vein.dimensions("ad_astra:mars")
vein.heightRangeUniform(-20, 5)
vein.dikeVeinGenerator(generator => generator
.withBlock(GTMaterials.Emerald, 3, -20, 5)
.withBlock(GTMaterials.Beryllium, 3, -20, 5)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Emerald)
.placement("above")
)
})
event.add("mars/cassiterite", vein => {
vein.weight(65)
vein.density(0.25)
vein.clusterSize(60)
vein.layer("mars")
vein.dimensions("ad_astra:mars")
vein.heightRangeUniform(20, 120)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.Tin, 4)
.oreBlock(GTMaterials.Zeolite, 2)
.rareBlock(GTMaterials.Cassiterite, 2)
.rareBlock(GTMaterials.Realgar, 1)
.rareBlockChance(0.4)
.veininessThreshold(0.01)
.maxRichnessThreshold(0.175)
.minRichness(0.7)
.maxRichness(1.0)
.edgeRoundoffBegin(3)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Cassiterite)
.placement("above")
)
})
// Venus veins
event.add("venus/tungstotitanate", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(50)
vein.layer("venus")
vein.dimensions("ad_astra:venus")
vein.heightRangeUniform(10, 80)
vein.dikeVeinGenerator(generator => generator
.withBlock(GTMaterials.Tungstate, 8, 18, 80)
.withBlock(GTMaterials.Scheelite, 4, 15, 80)
.withBlock(GTMaterials.Bauxite, 2, 15, 80)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Tungstate)
.placement("above")
)
})
event.add("venus/sulfur", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(75)
vein.layer("venus")
vein.dimensions("ad_astra:venus")
vein.heightRangeUniform(10, 80)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.Sulfur, 5)
.oreBlock(GTMaterials.Tetrahedrite, 1)
.rareBlock(GTMaterials.Sphalerite, 1)
.rareBlockChance(0.33)
.veininessThreshold(0.1)
.maxRichnessThreshold(0.4)
.minRichness(0.3)
.maxRichness(0.7)
.edgeRoundoffBegin(12)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Sulfur)
.placement("above")
)
})
event.add("venus/copper", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(60)
vein.layer("venus")
vein.dimensions("ad_astra:venus")
vein.heightRangeUniform(10, 80)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.Copper, 4)
.oreBlock(GTMaterials.Tetrahedrite, 3)
.oreBlock(GTMaterials.Chalcopyrite, 2)
.oreBlock(GTMaterials.Pyrite, 1)
.rareBlockChance(0.33)
.veininessThreshold(0.1)
.maxRichnessThreshold(0.4)
.minRichness(0.4)
.maxRichness(0.5)
.edgeRoundoffBegin(12)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Chalcopyrite)
.placement("above")
)
})
event.add("venus/iron", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(40)
vein.layer("venus")
vein.dimensions("ad_astra:venus")
vein.heightRangeUniform(10, 80)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.Iron, 4)
.oreBlock(GTMaterials.Hematite, 3)
.rareBlock(GTMaterials.Gold, 1)
.oreBlock(GTMaterials.Pyrite, 3)
.rareBlockChance(0.33)
.veininessThreshold(0.1)
.maxRichnessThreshold(0.4)
.minRichness(0.4)
.maxRichness(0.6)
.edgeRoundoffBegin(12)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Hematite)
.placement("above")
)
})
event.add("venus/tricalcium_phosphate", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(45)
vein.layer("venus")
vein.dimensions("ad_astra:venus")
vein.heightRangeUniform(10, 80)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(2).mat(GTMaterials.Apatite).size(2, 4))
.layer(l => l.weight(3).mat(GTMaterials.TricalciumPhosphate).size(2, 4))
.layer(l => l.weight(1).mat(GTMaterials.Pyrochlore).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.TricalciumPhosphate)
.placement("above")
)
})
event.add("venus/galena", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(50)
vein.layer("venus")
vein.dimensions("ad_astra:venus")
vein.heightRangeUniform(-15, 45)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.Galena).size(2, 4))
.layer(l => l.weight(2).mat(GTMaterials.Silver).size(1, 1))
.layer(l => l.weight(1).mat(GTMaterials.Lead).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Galena)
.placement("above")
)
})
event.add("venus/sheldonite", vein => {
vein.weight(10)
vein.density(0.25)
vein.clusterSize(30)
vein.layer("venus")
vein.dimensions("ad_astra:venus")
vein.heightRangeUniform(-50, 0)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.get("cuprorhodsite")).size(2, 4))
.layer(l => l.weight(2).mat(GTMaterials.Cooperite).size(1, 1))
.layer(l => l.weight(2).mat(GTMaterials.Platinum).size(1, 1))
.layer(l => l.weight(1).mat(GTMaterials.Palladium).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Cooperite)
.placement("above")
)
})
event.add("venus/lubricant", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(30)
vein.layer("venus")
vein.dimensions("ad_astra:venus")
vein.heightRangeUniform(0, 50)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.Soapstone).size(2, 4))
.layer(l => l.weight(2).mat(GTMaterials.Talc).size(1, 1))
.layer(l => l.weight(2).mat(GTMaterials.GlauconiteSand).size(1, 1))
.layer(l => l.weight(1).mat(GTMaterials.Olivine).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Soapstone)
.placement("above")
)
})
event.add("venus/nickel", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(30)
vein.layer("venus")
vein.dimensions("ad_astra:venus")
vein.heightRangeUniform(10, 80)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.Nickel).size(1, 4))
.layer(l => l.weight(2).mat(GTMaterials.Garnierite).size(1, 8))
.layer(l => l.weight(2).mat(GTMaterials.Pentlandite).size(1, 5))
.layer(l => l.weight(2).mat(GTMaterials.Cobaltite).size(1, 16))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Garnierite)
.placement("above")
)
})
event.add("venus/dilithium", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(50)
vein.layer("venus")
vein.dimensions("ad_astra:venus")
vein.heightRangeUniform(30, 70)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(5).mat(GTMaterials.get("dilithium")).size(2, 4))
.layer(l => l.weight(3).mat(GTMaterials.Lepidolite).size(1, 1))
.layer(l => l.weight(1).mat(GTMaterials.Spodumene).size(1, 2))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.get("dilithium"))
.placement("above")
)
})
// Mercury veins
event.add("mercury/mercury", vein => {
vein.weight(100)
vein.density(0.25)
vein.clusterSize(60)
vein.layer("mercury")
vein.dimensions("ad_astra:mercury")
vein.heightRangeUniform(10, 80)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.Redstone, 4)
.oreBlock(GTMaterials.Cinnabar, 3)
.oreBlock(GTMaterials.Cinnabar, 2)
.oreBlock(GTMaterials.Ruby, 1)
.veininessThreshold(0.1)
.maxRichnessThreshold(0.4)
.minRichness(0.5)
.maxRichness(0.9)
.edgeRoundoffBegin(12)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Cinnabar)
.placement("above")
)
})
event.add("mercury/fluorite", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(25)
vein.layer("mercury")
vein.dimensions("ad_astra:mercury")
vein.heightRangeUniform(-40, 50)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(5).mat(GTMaterials.get("fluorite")).size(1, 1))
.layer(l => l.weight(3).mat(GTMaterials.BlueTopaz).size(2, 4))
.layer(l => l.weight(2).mat(GTMaterials.Topaz).size(2, 4))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.get("fluorite"))
.placement("above")
)
})
event.add("mercury/mineral_sands", vein => {
vein.weight(60)
vein.density(0.25)
vein.clusterSize(40)
vein.layer("mercury")
vein.dimensions("ad_astra:mercury")
vein.heightRangeUniform(15, 60)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.BasalticMineralSand).size(2, 4))
.layer(l => l.weight(2).mat(GTMaterials.FullersEarth).size(1, 1))
.layer(l => l.weight(1).mat(GTMaterials.Gypsum).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.BasalticMineralSand)
.placement("above")
)
})
event.add("mercury/lithium_salts", vein => {
vein.weight(50)
vein.density(0.25)
vein.clusterSize(40)
vein.layer("mercury")
vein.dimensions("ad_astra:mercury")
vein.heightRangeUniform(30, 70)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.RockSalt).size(1, 1))
.layer(l => l.weight(2).mat(GTMaterials.Salt).size(1, 1))
.layer(l => l.weight(2).mat(GTMaterials.Lepidolite).size(2, 4))
.layer(l => l.weight(1).mat(GTMaterials.Spodumene).size(2, 4))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Lepidolite)
.placement("above")
)
})
event.add("mercury/garnet_tin", vein => {
vein.weight(70)
vein.density(0.25)
vein.clusterSize(40)
vein.layer("mercury")
vein.dimensions("ad_astra:mercury")
vein.heightRangeUniform(20, 50)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.CassiteriteSand).size(2, 4))
.layer(l => l.weight(2).mat(GTMaterials.GarnetSand).size(2, 4))
.layer(l => l.weight(2).mat(GTMaterials.Asbestos).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.GarnetSand)
.placement("above")
)
})
event.add("mercury/platinum_group", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(30)
vein.layer("mercury")
vein.dimensions("ad_astra:mercury")
vein.heightRangeUniform(-50, 0)
vein.dikeVeinGenerator(generator => generator
.withBlock(GTMaterials.Barite, 1, -50, -15)
.withBlock(GTMaterials.get("laurite"), 2, -30, 0)
.withBlock(GTMaterials.get("cuprorhodsite"), 1, -50, -25)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.get("laurite"))
.placement("above")
)
})
event.add("mercury/titanotungstate", vein => {
vein.weight(50)
vein.density(0.25)
vein.clusterSize(50)
vein.layer("mercury")
vein.dimensions("ad_astra:mercury")
vein.heightRangeUniform(-50, -20)
vein.dikeVeinGenerator(generator => generator
.withBlock(GTMaterials.Wulfenite, 8, -50, -30)
.withBlock(GTMaterials.Ilmenite, 4, -40, -20)
.withBlock(GTMaterials.Bauxite, 2, -50, -20)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Wulfenite)
.placement("above")
)
})
event.add("mercury/thorium", vein => {
vein.weight(30)
vein.density(0.25)
vein.clusterSize(50)
vein.layer("mercury")
vein.dimensions("ad_astra:mercury")
vein.heightRangeUniform(-60, -30)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(4).mat(GTMaterials.Thorium).size(2, 4))
.layer(l => l.weight(1).mat(GTMaterials.Plutonium239).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Thorium)
.placement("above")
)
})
// Glacio Veins
event.add("glacio/oilsands", vein => {
vein.weight(20)
vein.density(0.25)
vein.clusterSize(35)
vein.layer("glacio")
vein.dimensions("ad_astra:glacio")
vein.heightRangeUniform(30, 80)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.Oilsands).size(2, 4))
.layer(l => l.weight(1).mat(GTMaterials.GraniticMineralSand).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Oilsands)
.placement("above")
)
})
event.add("glacio/electrotine", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(30)
vein.layer("glacio")
vein.dimensions("ad_astra:glacio")
vein.heightRangeUniform(5, 45)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.Saltpeter).size(1, 1))
.layer(l => l.weight(2).mat(GTMaterials.Electrotine).size(2, 4))
.layer(l => l.weight(1).mat(GTMaterials.Alunite).size(1, 1))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Electrotine)
.placement("above")
)
})
event.add("glacio/osmiridium", vein => {
vein.weight(30)
vein.density(0.25)
vein.clusterSize(50)
vein.layer("glacio")
vein.dimensions("ad_astra:glacio")
vein.heightRangeUniform(10, 90)
vein.veinedVeinGenerator(generator => generator
.oreBlock(GTMaterials.get("iridosmineyes"), 4)
.oreBlock(GTMaterials.get("osmiridiumyes"), 3)
.veininessThreshold(0.1)
.maxRichnessThreshold(0.4)
.minRichness(0.5)
.maxRichness(0.9)
.edgeRoundoffBegin(12)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.get("iridosmineyes"))
.placement("above")
)
})
event.add("glacio/rare_earth_phosphate", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(30)
vein.layer("glacio")
vein.dimensions("ad_astra:glacio")
vein.heightRangeUniform(10, 80)
vein.dikeVeinGenerator(generator => generator
.withBlock(GTMaterials.Monazite, 2, 18, 80)
.withBlock(GTMaterials.Apatite, 2, 16, 80)
.withBlock(GTMaterials.Bastnasite, 2, 14, 80)
.withBlock(GTMaterials.Neodymium, 1, 10, 80)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Monazite)
.placement("above")
)
})
// Glacio Deepslate Veins
event.add("glacio/sodalite", vein => {
vein.weight(40)
vein.density(0.25)
vein.clusterSize(100)
vein.layer("glacio_deepslate")
vein.dimensions("ad_astra:glacio")
vein.heightRangeUniform(-60, 10)
vein.dikeVeinGenerator(generator => generator
.withBlock(GTMaterials.Lapis, 3, -40, 10)
.withBlock(GTMaterials.Sodalite, 2, -50, 0)
.withBlock(GTMaterials.Lazurite, 1, -60, -10)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Sodalite)
.placement("above")
)
})
event.add("glacio/pollucite", vein => {
vein.weight(20)
vein.density(0.25)
vein.clusterSize(50)
vein.layer("glacio_deepslate")
vein.dimensions("ad_astra:glacio")
vein.heightRangeUniform(-40, -10)
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.Kyanite).size(1, 1))
.layer(l => l.weight(2).mat(GTMaterials.Mica).size(1, 1))
.layer(l => l.weight(1).mat(GTMaterials.Pollucite).size(2, 4))
)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Pollucite)
.placement("above")
)
})
let naqMaterial = !doHarderProcessing ? GTMaterials.Naquadah : GTMaterials.get("snowchestite")
event.add("glacio/naquadah", vein => {
vein.weight(30)
vein.density(0.25)
vein.clusterSize(60)
vein.layer("glacio_deepslate")
vein.dimensions("ad_astra:glacio")
vein.heightRangeUniform(-45, 10)
vein.cuboidVeinGenerator(generator => generator
.top(b => b.mat(naqMaterial).size(2))
.middle(b => b.mat(naqMaterial).size(3))
.bottom(b => b.mat(naqMaterial).size(2))
.spread(b => b.mat(GTMaterials.get("kaemanite")))
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(naqMaterial)
.placement("above")
)
})
// End Veins
event.add("end/magnesite", vein => {
vein.weight(20)
vein.density(0.25)
vein.clusterSize(60)
vein.layer(WorldGenLayers.ENDSTONE)
vein.dimensions("minecraft:the_end")
vein.heightRangeUniform(20, 55)
vein.dikeVeinGenerator(generator => generator
.withBlock(GTMaterials.Magnesite, 3, 20, 60)
.withBlock(GTMaterials.Cobaltite, 2, 35, 55)
.withBlock(GTMaterials.Cobalt, 1, 20, 40)
)
vein.surfaceIndicatorGenerator(indicator => indicator
.surfaceRock(GTMaterials.Magnesite)
.placement("above")
)
})
// Increase vein density
event.modifyAll((id, vein) => {
vein.density(Math.sqrt(vein.density()))
vein.discardChanceOnAirExposure(0.3)
})
})
// Remove Naquadah veins
GTCEuServerEvents.oreVeins(event => {
event.remove("gtceu:naquadah_vein")
})
GTCEuServerEvents.oreVeins(event => {
// Make End Magnetite veins more rich in Chromite
event.modify("gtceu:magnetite_vein_end", vein => {
vein.layeredVeinGenerator(generator => generator
.buildLayerPattern(pattern => pattern
.layer(l => l.weight(3).mat(GTMaterials.Magnetite).size(1, 3))
.layer(l => l.weight(1).mat(GTMaterials.VanadiumMagnetite).size(1, 2))
.layer(l => l.weight(2).mat(GTMaterials.Chromite).size(1, 3))
.layer(l => l.weight(1).mat(GTMaterials.Gold).size(1, 2))
.build()
)
)
})
})