
global.miningDimOres = [
    {path: 'runic_stone',         id:'allthemodium:runic_stone',         min:65,max:250,size:4,count:1, stoneReplaces:"forbidden_arcanus:runic_stone",         deepslateReplaces:"forbidden_arcanus:runic_deepslate"},
    {path: 'dark_ore',            id:'allthemodium:dark_ore',            min:65,max:129,size:2,count:1, stoneReplaces:"evilcraft:dark_ore",                    deepslateReplaces:"evilcraft:dark_ore_deepslate"},
    {path: 'arcane_crystal_ore',  id:'allthemodium:arcane_crystal_ore',  min:65,max:250,size:4,count:1, stoneReplaces:"forbidden_arcanus:arcane_crystal_ore",  deepslateReplaces:"forbidden_arcanus:deepslate_arcane_crystal_ore"},
    {path: 'uraninite_ore',       id:'allthemodium:uraninite_ore',       min:65,max:250,size:8,count:8, stoneReplaces:"powah:uraninite_ore",                   deepslateReplaces:"powah:deepslate_uraninite_ore"},
    {path: 'inferium_ore',        id:'allthemodium:inferium_ore',        min:65,max:250,size:8,count:16,stoneReplaces:"mysticalagriculture:inferium_ore",      deepslateReplaces:"mysticalagriculture:deepslate_inferium_ore"},
    {path: 'prosperity_ore',      id:'allthemodium:prosperity_ore',      min:65,max:250,size:8,count:3, stoneReplaces:"mysticalagriculture:prosperity_ore",    deepslateReplaces:"mysticalagriculture:deepslate_prosperity_ore"},
    {path: 'apatite_ore',         id:'allthemodium:apatite_ore',         min:65,max:250,size:12,count:3,stoneReplaces:"thermal:apatite_ore",                   deepslateReplaces:"thermal:deepslate_apatite_ore"},
    {path: 'cinnabar_ore',        id:'allthemodium:cinnabar_ore',        min:65,max:250,size:4,count:1, stoneReplaces:"thermal:cinnabar_ore",                  deepslateReplaces:"thermal:deepslate_cinnabar_ore"},
    {path: 'niter_ore',           id:'allthemodium:niter_ore',           min:65,max:250,size:8,count:8, stoneReplaces:"thermal:niter_ore",                     deepslateReplaces:"thermal:deepslate_niter_ore"},
    {path: 'sulfur_ore',          id:'allthemodium:sulfur_ore',          min:65,max:250,size:8,count:8, stoneReplaces:"thermal:sulfur_ore",                    deepslateReplaces:"thermal:deepslate_sulfur_ore"},
]
   
ServerEvents.lowPriorityData(event => {
    let addMiningDimOre = (path, id, min, max, size, count, stoneReplaces, deepslateReplaces) => {
        let jsonPlaced = JsonIO.toObject({
            "feature": id,
            "placement": [
              {
                "count": count,
                "type": "minecraft:count"
              },
              {
                "type": "minecraft:in_square"
              },
              {
                "height": {
                  "min_inclusive": {
                    "absolute": min
                  },
                  "max_inclusive": {
                    "absolute": max
                  },
                  "type": "minecraft:trapezoid"
                },
                "type": "minecraft:height_range"
              },
              {
                "type": "minecraft:biome"
              }
            ]
          })
        let jsonConfigured = JsonIO.toObject({
            "type": "minecraft:ore",
            "config": {
              "size": size,
              "discard_chance_on_air_exposure": 0.0,
              "targets": [
                {
                  "target": {
                    "predicate_type": "minecraft:tag_match",
                    "tag": "minecraft:stone_ore_replaceables"
                  },
                  "state": {
                    "Name": stoneReplaces
                  }
                },
                {
                  "target": {
                    "predicate_type": "minecraft:tag_match",
                    "tag": "minecraft:deepslate_ore_replaceables"
                  },
                  "state": {
                    "Name": deepslateReplaces
                  }
                }
              ]
            }
          })
        let jsonForge = JsonIO.toObject({
            type: "forge:add_features",
            biomes: "#allthemodium:mining_features/mining_biomes",
            "features": [id],
            "step": "underground_ores"
        })
        event.addJson(`allthemodium:worldgen/placed_feature/${path}.json`, jsonPlaced)
        event.addJson(`allthemodium:worldgen/configured_feature/${path}.json`, jsonConfigured)
        event.addJson(`allthemodium:forge/biome_modifier/allthemodium/dim_ores/${path}.json`, jsonForge)
    }
    global.miningDimOres.forEach(ore=>{
        addMiningDimOre(ore.path,ore.id, ore.min, ore.max, ore.size, ore.count, ore.stoneReplaces, ore.deepslateReplaces);
    })
})