Compatibility of "GTOres" and "Astrominer" from "Galacticraft 3". Need help with NBT

This is the part of the code that is responsible for generating asteroids in Galacticraft.

this.coreHandler.addBlock(new SpecialAsteroidBlock(Blocks.diamond_ore, (byte) 0, probability: 1, thickness: .2));

coreHandler - responsible for the generation of asteroid cores
Blocks.diamond_ore - block to be used in generation
(byte) 0 - this block’s metadata
probability: 1 - generation chance
thickness: .2 - the density or size of the core relative to the size of the asteroid

I can just substitute my blocks there and everything will work.
I’m trying to substitute in the existing generation instead of one block of ore, the generation of a vein from 4 different blocks as in GT6

UPD:
I don’t know yet if this will work.
I can’t write code for ore layers like in GT6: OreTop, OreBottom, OreBetween, OreSpread.
I’m trying to create something similar to yours:

WorldgenOresLarge
@SafeVarargs
	public WorldgenOresLarge(String aName, boolean aDefault, boolean aIndicatorRocks, int aMinY, int aMaxY, int aWeight, int aDensity, int aSize, OreDictMaterial aTop, OreDictMaterial aBottom, OreDictMaterial aBetween, OreDictMaterial aSpread, List<WorldgenObject>... aLists) {
		super(aName, aDefault, aLists);
		mMinY               = (short)Math.max(0,        getConfigFile().get(mCategory, "MinHeight"        , aMinY));
		mMaxY               = (short)Math.max(mMinY+5,  getConfigFile().get(mCategory, "MaxHeight"        , aMaxY));
		mWeight             =        Math.max(1,        getConfigFile().get(mCategory, "RandomWeight"     , aWeight));
		mDensity            = (short)Math.max(1,        getConfigFile().get(mCategory, "Density"          , aDensity));
		mDistance           =        Math.max(0,        getConfigFile().get(mCategory, "DistanceFromSpawn", 0));
		mSize               = (short)Math.max(1,        getConfigFile().get(mCategory, "Size"             , aSize));
		mIndicatorRocks     =                           getConfigFile().get(mCategory, "IndicatorRocks"   , aIndicatorRocks);
		mTop                =                           getConfigFile().get(mCategory, "OreTop"           , aTop);
		mBottom             =                           getConfigFile().get(mCategory, "OreBottom"        , aBottom);
		mBetween            =                           getConfigFile().get(mCategory, "OreBetween"       , aBetween);
		mSpread             =                           getConfigFile().get(mCategory, "OreSpread"        , aSpread);
2 Likes