Jump to content

[Solved] - [1.15.X] Disable Vanilla Ore Gen or Change the FillerBlockType


Recommended Posts

Posted (edited)

Gday everyone,

 

I'm new to Modding, and still learning. I encountered an issue and not 100% sure how to address it, so I thought I would come here and seek help from the community.

Part of my mod tackles Ore Generation based on a pre-set world strata, and I would like to either disable the Vanilla Ore generation completely and then re-add it under my mod, preferably, or change the FillerBlockType from NATURAL STONE to just regular STONE block.

Most of the things I found here, and on other sites seems to be addressing older versions of Forge, and I couldn't wrap my head around the methods used .. again, completely new to Modding :)

 

Would it be possible to access/override the addOres() from DefaultBiomeFeatures , or disable it completely?

 

A basic code snippet on how to achieve this, or any input on the matter would be much appreciated.

Thanks in advance,

 

Edited by Ridanis
  • Ridanis changed the title to [1.15.X] Disable Vanilla Ore Gen or Change the FillerBlockType
Posted

To remove features from a Biome you have to use  yourBiome.getFeatures(DecorationStageYouWantToAccess).remove(configuredFeatureToRemove)

Just insert there the values you need. To expand the FillerBlockType Enum with your custom filler block types just use the FillerBlockType#create function, so you will be able to generate ores replacing every block you want, including modded ones.

Check out the port of the BetterEnd fabric mod (WIP): https://www.curseforge.com/minecraft/mc-mods/betterend-forge-port

Posted

I did add STONE as a FillerBlockType through the .create(), but the Vanilla Ores are still generating on all NATURAL_STONES and this is what I'm trying to either disable, or override. 

Furthermore, how can I remove the Decoration feature (which I believe is UNDERGROUND_ORES) without effecting other methods using it such as addSedimentDisks() and addStoneVariants()? 

 

public static OreFeatureConfig.FillerBlockType STONE = OreFeatureConfig.FillerBlockType.create("STONE", "stone", new BlockMatcher(Blocks.STONE));
Posted
8 minutes ago, Beethoven92 said:

To remove features from a Biome you have to use  yourBiome.getFeatures(DecorationStageYouWantToAccess).remove(configuredFeatureToRemove)

Just insert there the values you need. To expand the FillerBlockType Enum with your custom filler block types just use the FillerBlockType#create function, so you will be able to generate ores replacing every block you want, including modded ones.

Re-reading this, I think I understand what you mean.

So, I'll need to loop through all the biomes, get the Decoration UNDERGROUND_ORES and remove Feature ORES, and then loop again through the biomes, adding my own Ores. Is my understanding correct here?

Posted

UNDERGROUND_ORES is the decoration stage you want to access, you are not going to remove the decoration stage, but rather a particular feature which generates during that stage, which in your case is the OreFeature. For example, look at how this simple mod overrides the vanilla swamp trees to add in their own custom ones, you can do the same with ores: https://www.curseforge.com/minecraft/mc-mods/swamp-expansion

Check out the port of the BetterEnd fabric mod (WIP): https://www.curseforge.com/minecraft/mc-mods/betterend-forge-port

Posted
Just now, Ridanis said:

Re-reading this, I think I understand what you mean.

So, I'll need to loop through all the biomes, get the Decoration UNDERGROUND_ORES and remove Feature ORES, and then loop again through the biomes, adding my own Ores. Is my understanding correct here?

Yeah, thats how you do that

Check out the port of the BetterEnd fabric mod (WIP): https://www.curseforge.com/minecraft/mc-mods/betterend-forge-port

Posted

Okay, that worked much better than what I was trying to do.

However, that also removed the Stone Variation as for some reason that is flagged as ORES.

Looking into a way to skip over those, and just remove the ORE Blocks.

Posted

My bad! I completely forgot that those also generate during the UNDERGROUND_ORE stage. Then no more one-step lazy code, you have to loop through the features in the Decoration.UNDERGROUND_ORES stage. From every feature you need to retrieve its corresponding Block, and check for the ores you want to replace, COAL_ORE, IRON_ORE etc...so you can leave the stone variants "ores" intact. Hope i explained that clearly enough 🤔

Check out the port of the BetterEnd fabric mod (WIP): https://www.curseforge.com/minecraft/mc-mods/betterend-forge-port

Posted

Yes, thank you. That is what I was doing actually before checking this whole .clear() lazy code usage. 

However, like I said, I might actually go this route as it will allow me to have control over the stone variant generation as this mod is based around TerraForged strata with Quark and Create world blocks.

Your assistance on this matter has been appreciated greatly. Thanks :)

Posted (edited)

Will do.

 

Will also post my current code snippet just in case someone had to do the same. If anyone have any question on how these are generating, please don't hesitate to let me know.

 

for (Biome biome : ForgeRegistries.BIOMES) {

      biome.getFeatures(GenerationStage.Decoration.UNDERGROUND_ORES).clear();

      // Sediment Disks
      genSedimentDisks(biome, Blocks.SAND.getDefaultState(), 7, 2, Lists.newArrayList(Blocks.DIRT.getDefaultState(), Blocks.GRASS_BLOCK.getDefaultState()), 3);
      genSedimentDisks(biome, Blocks.CLAY.getDefaultState(), 4, 1, Lists.newArrayList(Blocks.DIRT.getDefaultState(), Blocks.CLAY.getDefaultState()), 1);
      genSedimentDisks(biome, Blocks.GRAVEL.getDefaultState(), 6, 2, Lists.newArrayList(Blocks.DIRT.getDefaultState(), Blocks.GRASS_BLOCK.getDefaultState()), 1);

      /*if (biome == Biomes.SWAMP || biome == Biomes.SWAMP_HILLS) {
        genSedimentDisks(biome, Blocks.CLAY.getDefaultState(), 4, 1, Lists.newArrayList(Blocks.DIRT.getDefaultState(), Blocks.CLAY.getDefaultState()), 1);
      }*/

      // Stone Variant
      genStoneVariant(biome, 10, 0, 0, 256, STONE, Blocks.DIRT.getDefaultState(), 33);
      genStoneVariant(biome, 8, 0, 0, 256, STONE, Blocks.GRAVEL.getDefaultState(), 33);
      genStoneVariant(biome, 10, 0, 0, 80, STONE, Blocks.GRANITE.getDefaultState(), 33);
      genStoneVariant(biome, 10, 0, 0, 80, STONE, Blocks.DIORITE.getDefaultState(), 33);
      genStoneVariant(biome, 10, 0, 0, 80, STONE, Blocks.ANDESITE.getDefaultState(), 33);

      // Ores
      genOre(biome, 20, 0, 0, 128, STONE, Blocks.COAL_ORE.getDefaultState(), 17);
      genOre(biome, 20, 0, 0, 64, STONE, Blocks.IRON_ORE.getDefaultState(), 9);
      genOre(biome, 2, 0, 0, 32, STONE, Blocks.GOLD_ORE.getDefaultState(), 9);
      genOre(biome, 1, 0, 0, 16, STONE, Blocks.DIAMOND_ORE.getDefaultState(), 8);
      genOre(biome, 1, 0, 0, 16, STONE, Blocks.EMERALD_ORE.getDefaultState(), 4);
      genOre(biome, 2, 0, 0, 16, STONE, Blocks.LAPIS_ORE.getDefaultState(), 7);
      genOre(biome, 8, 0, 0, 16, STONE, Blocks.REDSTONE_ORE.getDefaultState(), 8);
      genOre(biome, 20, 45, 0, 60, STONE, BlockHandler.ORE_COPPER.get().getDefaultState(), 7);
      genOre(biome, 8, 50, 0, 70, STONE, BlockHandler.ORE_ALUMINUM.get().getDefaultState(), 3);
      genOre(biome, 8, 30, 0, 38, STONE, BlockHandler.ORE_SILVER.get().getDefaultState(), 4);
      genOre(biome, 8, 32, 0, 40, STONE, BlockHandler.ORE_LEAD.get().getDefaultState(), 3);
      genOre(biome, 8, 25, 0, 40, STONE, BlockHandler.ORE_NICKEL.get().getDefaultState(), 3);
      genOre(biome, 4, 5, 0, 20, STONE, BlockHandler.ORE_URANIUM.get().getDefaultState(), 3);
      genOre(biome, 20, 20, 0, 45, STONE, BlockHandler.ORE_OSMIUM.get().getDefaultState(), 6);
      genOre(biome, 20, 40, 0, 55, STONE, BlockHandler.ORE_TIN.get().getDefaultState(), 6);
      genOre(biome, 8, 35, 0, 50, STONE, BlockHandler.ORE_ZINC.get().getDefaultState(), 4);
}

 

Edited by Ridanis
Posted

Damn it, yea that didn't work. It seems I have no other option but to loop through and remove. Doing a .clear() won't work as the mod integration with Create and Quark is not playing nice with this. 

Let's see if I can figure out how to create that loop iteration and removal.

Posted

Okay, I'm struggling to figure out how to loop through the UNDERGROUND_ORES and only remove the Vanilla Ores. Any help here would be much appreciated. 

Posted
@Mod.EventBusSubscriber(modid = Reference.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class WorldGenHandler {

  // Vanilla Fillers
  public static OreFeatureConfig.FillerBlockType ANDESITE = OreFeatureConfig.FillerBlockType.create("ANDESITE", "andesite", new BlockMatcher(Blocks.ANDESITE));
  public static OreFeatureConfig.FillerBlockType STONE = OreFeatureConfig.FillerBlockType.create("STONE", "stone", new BlockMatcher(Blocks.STONE));

  private static OreFeatureConfig.FillerBlockType CREATE_GABBRO = null;
  private static OreFeatureConfig.FillerBlockType CREATE_LIMESTONE = null;
  private static OreFeatureConfig.FillerBlockType CREATE_SCORIA = null;

  @ObjectHolder("create:gabbro")
  public static final Block blockCreateGabbro = null;

  @ObjectHolder("create:limestone")
  public static final Block blockCreateLimestone = null;

  @ObjectHolder("create:natural_scoria")
  public static final Block blockCreateScoria = null;

  @SubscribeEvent
  public static void generateWorld(FMLLoadCompleteEvent event) {

    if (blockCreateGabbro != null) {
      CREATE_GABBRO = OreFeatureConfig.FillerBlockType.create("GABBRO", "gabbro", new BlockMatcher(blockCreateGabbro.getBlock()));
    }
    if (blockCreateLimestone != null) {
      CREATE_LIMESTONE = OreFeatureConfig.FillerBlockType.create("LIMESTONE", "limestone", new BlockMatcher(blockCreateLimestone.getBlock()));
    }
    if (blockCreateScoria != null) {
      CREATE_SCORIA = OreFeatureConfig.FillerBlockType.create("SCORIA", "scoria", new BlockMatcher(blockCreateScoria.getBlock()));
    }

    for (Biome biome : ForgeRegistries.BIOMES) {

      biome.getFeatures(GenerationStage.Decoration.UNDERGROUND_ORES).remove(Feature.ORE.withConfiguration(new OreFeatureConfig(OreFeatureConfig.FillerBlockType.NATURAL_STONE, Blocks.COAL_ORE.getDefaultState(), 17)));


      //biome.getFeatures(GenerationStage.Decoration.UNDERGROUND_ORES).clear();

      // Sediment Disks
      /*genSedimentDisks(biome, Blocks.SAND.getDefaultState(), 7, 2, Lists.newArrayList(Blocks.DIRT.getDefaultState(), Blocks.GRASS_BLOCK.getDefaultState()), 3);
      genSedimentDisks(biome, Blocks.CLAY.getDefaultState(), 4, 1, Lists.newArrayList(Blocks.DIRT.getDefaultState(), Blocks.CLAY.getDefaultState()), 1);
      genSedimentDisks(biome, Blocks.GRAVEL.getDefaultState(), 6, 2, Lists.newArrayList(Blocks.DIRT.getDefaultState(), Blocks.GRASS_BLOCK.getDefaultState()), 1);

      /*if (biome == Biomes.SWAMP || biome == Biomes.SWAMP_HILLS) {
        genSedimentDisks(biome, Blocks.CLAY.getDefaultState(), 4, 1, Lists.newArrayList(Blocks.DIRT.getDefaultState(), Blocks.CLAY.getDefaultState()), 1);
      }*/

      // Stone Variant
      /*genStoneVariant(biome, 10, 0, 0, 256, STONE, Blocks.DIRT.getDefaultState(), 33);
      genStoneVariant(biome, 8, 0, 0, 256, STONE, Blocks.GRAVEL.getDefaultState(), 33);
      genStoneVariant(biome, 10, 0, 0, 80, STONE, Blocks.GRANITE.getDefaultState(), 33);
      genStoneVariant(biome, 10, 0, 0, 80, STONE, Blocks.DIORITE.getDefaultState(), 33);
      genStoneVariant(biome, 10, 0, 0, 80, STONE, Blocks.ANDESITE.getDefaultState(), 33);*/

      // For custom biome gen, use: if (biome == Biomes.DESERT) {genOre ...}
      // Furthermore, you can use if (biome.getCategory() == Biome.Category.NETHER) {genOre ...} to generate these ores in the Nether, or THEEND for The End
      genOre(biome, 20, 0, 0, 128, STONE, Blocks.COAL_ORE.getDefaultState(), 17);
      genOre(biome, 20, 0, 0, 64, STONE, Blocks.IRON_ORE.getDefaultState(), 9);
      genOre(biome, 2, 0, 0, 32, STONE, Blocks.GOLD_ORE.getDefaultState(), 9);
      genOre(biome, 1, 0, 0, 16, STONE, Blocks.DIAMOND_ORE.getDefaultState(), 8);
      genOre(biome, 1, 0, 0, 16, STONE, Blocks.EMERALD_ORE.getDefaultState(), 4);
      genOre(biome, 2, 0, 0, 16, STONE, Blocks.LAPIS_ORE.getDefaultState(), 7);
      genOre(biome, 8, 0, 0, 16, STONE, Blocks.REDSTONE_ORE.getDefaultState(), 8);
      genOre(biome, 20, 45, 0, 60, STONE, BlockHandler.ORE_COPPER.get().getDefaultState(), 7);
      genOre(biome, 8, 50, 0, 70, STONE, BlockHandler.ORE_ALUMINUM.get().getDefaultState(), 3);
      genOre(biome, 8, 30, 0, 38, STONE, BlockHandler.ORE_SILVER.get().getDefaultState(), 4);
      genOre(biome, 8, 32, 0, 40, STONE, BlockHandler.ORE_LEAD.get().getDefaultState(), 3);
      genOre(biome, 8, 25, 0, 40, STONE, BlockHandler.ORE_NICKEL.get().getDefaultState(), 3);
      genOre(biome, 4, 5, 0, 20, STONE, BlockHandler.ORE_URANIUM.get().getDefaultState(), 3);
      genOre(biome, 20, 20, 0, 45, STONE, BlockHandler.ORE_OSMIUM.get().getDefaultState(), 6);
      genOre(biome, 20, 40, 0, 55, STONE, BlockHandler.ORE_TIN.get().getDefaultState(), 6);
      genOre(biome, 8, 35, 0, 50, STONE, BlockHandler.ORE_ZINC.get().getDefaultState(), 4);

      // Strata Ores - Andesite
      genOre(biome, 20, 0, 0, 128, ANDESITE, BlockHandler.ORE_COAL_ANDESITE.get().getDefaultState(), 17);
      genOre(biome, 20, 0, 0, 64, ANDESITE, BlockHandler.ORE_IRON_ANDESITE.get().getDefaultState(), 9);
      genOre(biome, 2, 0, 0, 32, ANDESITE, BlockHandler.ORE_GOLD_ANDESITE.get().getDefaultState(), 9);
      genOre(biome, 1, 0, 0, 16, ANDESITE, BlockHandler.ORE_DIAMOND_ANDESITE.get().getDefaultState(), 8);
      genOre(biome, 1, 0, 0, 16, ANDESITE, BlockHandler.ORE_EMERALD_ANDESITE.get().getDefaultState(), 4);
      genOre(biome, 2, 0, 0, 16, ANDESITE, BlockHandler.ORE_LAPIS_ANDESITE.get().getDefaultState(), 7);
      genOre(biome, 8, 0, 0, 16, ANDESITE, BlockHandler.ORE_REDSTONE_ANDESITE.get().getDefaultState(), 8);
      genOre(biome, 20, 45, 0, 60, ANDESITE, BlockHandler.ORE_COPPER_ANDESITE.get().getDefaultState(), 7);
      genOre(biome, 8, 50, 0, 70, ANDESITE, BlockHandler.ORE_ALUMINUM_ANDESITE.get().getDefaultState(), 3);
      genOre(biome, 8, 30, 0, 38, ANDESITE, BlockHandler.ORE_SILVER_ANDESITE.get().getDefaultState(), 4);
      genOre(biome, 8, 32, 0, 40, ANDESITE, BlockHandler.ORE_LEAD_ANDESITE.get().getDefaultState(), 3);
      genOre(biome, 8, 25, 0, 40, ANDESITE, BlockHandler.ORE_NICKEL_ANDESITE.get().getDefaultState(), 3);
      genOre(biome, 4, 5, 0, 20, ANDESITE, BlockHandler.ORE_URANIUM_ANDESITE.get().getDefaultState(), 3);
      genOre(biome, 20, 20, 0, 45, ANDESITE, BlockHandler.ORE_OSMIUM_ANDESITE.get().getDefaultState(), 6);
      genOre(biome, 20, 40, 0, 55, ANDESITE, BlockHandler.ORE_TIN_ANDESITE.get().getDefaultState(), 6);
      genOre(biome, 8, 35, 0, 50, ANDESITE, BlockHandler.ORE_ZINC_ANDESITE.get().getDefaultState(), 4);

      if(blockCreateGabbro != null) {
        // Strata Ores - Gabbro
        genOre(biome, 20, 0, 0, 128, CREATE_GABBRO, BlockHandler.ORE_COAL_GABBRO.get().getDefaultState(), 17);
        genOre(biome, 20, 0, 0, 64, CREATE_GABBRO, BlockHandler.ORE_IRON_GABBRO.get().getDefaultState(), 9);
        genOre(biome, 2, 0, 0, 32, CREATE_GABBRO, BlockHandler.ORE_GOLD_GABBRO.get().getDefaultState(), 9);
        genOre(biome, 1, 0, 0, 16, CREATE_GABBRO, BlockHandler.ORE_DIAMOND_GABBRO.get().getDefaultState(), 8);
        genOre(biome, 1, 0, 0, 16, CREATE_GABBRO, BlockHandler.ORE_EMERALD_GABBRO.get().getDefaultState(), 4);
        genOre(biome, 2, 0, 0, 16, CREATE_GABBRO, BlockHandler.ORE_LAPIS_GABBRO.get().getDefaultState(), 7);
        genOre(biome, 8, 0, 0, 16, CREATE_GABBRO, BlockHandler.ORE_REDSTONE_GABBRO.get().getDefaultState(), 8);
        genOre(biome, 20, 45, 0, 60, CREATE_GABBRO, BlockHandler.ORE_COPPER_GABBRO.get().getDefaultState(), 7);
        genOre(biome, 8, 50, 0, 70, CREATE_GABBRO, BlockHandler.ORE_ALUMINUM_GABBRO.get().getDefaultState(), 3);
        genOre(biome, 8, 30, 0, 38, CREATE_GABBRO, BlockHandler.ORE_SILVER_GABBRO.get().getDefaultState(), 4);
        genOre(biome, 8, 32, 0, 40, CREATE_GABBRO, BlockHandler.ORE_LEAD_GABBRO.get().getDefaultState(), 3);
        genOre(biome, 8, 25, 0, 40, CREATE_GABBRO, BlockHandler.ORE_NICKEL_GABBRO.get().getDefaultState(), 3);
        genOre(biome, 4, 5, 0, 20, CREATE_GABBRO, BlockHandler.ORE_URANIUM_GABBRO.get().getDefaultState(), 3);
        genOre(biome, 20, 20, 0, 45, CREATE_GABBRO, BlockHandler.ORE_OSMIUM_GABBRO.get().getDefaultState(), 6);
        genOre(biome, 20, 40, 0, 55, CREATE_GABBRO, BlockHandler.ORE_TIN_GABBRO.get().getDefaultState(), 6);
        genOre(biome, 8, 35, 0, 50, CREATE_GABBRO, BlockHandler.ORE_ZINC_GABBRO.get().getDefaultState(), 4);
      }
      if(blockCreateLimestone != null) {
        // Strata Ores - Limestone
        genOre(biome, 20, 0, 0, 128, CREATE_LIMESTONE, BlockHandler.ORE_COAL_C_LIMESTONE.get().getDefaultState(), 17);
        genOre(biome, 20, 0, 0, 64, CREATE_LIMESTONE, BlockHandler.ORE_IRON_C_LIMESTONE.get().getDefaultState(), 9);
        genOre(biome, 2, 0, 0, 32, CREATE_LIMESTONE, BlockHandler.ORE_GOLD_C_LIMESTONE.get().getDefaultState(), 9);
        genOre(biome, 1, 0, 0, 16, CREATE_LIMESTONE, BlockHandler.ORE_DIAMOND_C_LIMESTONE.get().getDefaultState(), 8);
        genOre(biome, 1, 0, 0, 16, CREATE_LIMESTONE, BlockHandler.ORE_EMERALD_C_LIMESTONE.get().getDefaultState(), 4);
        genOre(biome, 2, 0, 0, 16, CREATE_LIMESTONE, BlockHandler.ORE_LAPIS_C_LIMESTONE.get().getDefaultState(), 7);
        genOre(biome, 8, 0, 0, 16, CREATE_LIMESTONE, BlockHandler.ORE_REDSTONE_C_LIMESTONE.get().getDefaultState(), 8);
        genOre(biome, 20, 45, 0, 60, CREATE_LIMESTONE, BlockHandler.ORE_COPPER_C_LIMESTONE.get().getDefaultState(), 7);
        genOre(biome, 8, 50, 0, 70, CREATE_LIMESTONE, BlockHandler.ORE_ALUMINUM_C_LIMESTONE.get().getDefaultState(), 3);
        genOre(biome, 8, 30, 0, 38, CREATE_LIMESTONE, BlockHandler.ORE_SILVER_C_LIMESTONE.get().getDefaultState(), 4);
        genOre(biome, 8, 32, 0, 40, CREATE_LIMESTONE, BlockHandler.ORE_LEAD_C_LIMESTONE.get().getDefaultState(), 3);
        genOre(biome, 8, 25, 0, 40, CREATE_LIMESTONE, BlockHandler.ORE_NICKEL_C_LIMESTONE.get().getDefaultState(), 3);
        genOre(biome, 4, 5, 0, 20, CREATE_LIMESTONE, BlockHandler.ORE_URANIUM_C_LIMESTONE.get().getDefaultState(), 3);
        genOre(biome, 20, 20, 0, 45, CREATE_LIMESTONE, BlockHandler.ORE_OSMIUM_C_LIMESTONE.get().getDefaultState(), 6);
        genOre(biome, 20, 40, 0, 55, CREATE_LIMESTONE, BlockHandler.ORE_TIN_C_LIMESTONE.get().getDefaultState(), 6);
        genOre(biome, 8, 35, 0, 50, CREATE_LIMESTONE, BlockHandler.ORE_ZINC_C_LIMESTONE.get().getDefaultState(), 4);
      }
      if(blockCreateScoria != null) {
        // Strata Ores - Scoria
        genOre(biome, 20, 0, 0, 128, CREATE_SCORIA, BlockHandler.ORE_COAL_SCORIA.get().getDefaultState(), 17);
        genOre(biome, 20, 0, 0, 64, CREATE_SCORIA, BlockHandler.ORE_IRON_SCORIA.get().getDefaultState(), 9);
        genOre(biome, 2, 0, 0, 32, CREATE_SCORIA, BlockHandler.ORE_GOLD_SCORIA.get().getDefaultState(), 9);
        genOre(biome, 1, 0, 0, 16, CREATE_SCORIA, BlockHandler.ORE_DIAMOND_SCORIA.get().getDefaultState(), 8);
        genOre(biome, 1, 0, 0, 16, CREATE_SCORIA, BlockHandler.ORE_EMERALD_SCORIA.get().getDefaultState(), 4);
        genOre(biome, 2, 0, 0, 16, CREATE_SCORIA, BlockHandler.ORE_LAPIS_SCORIA.get().getDefaultState(), 7);
        genOre(biome, 8, 0, 0, 16, CREATE_SCORIA, BlockHandler.ORE_REDSTONE_SCORIA.get().getDefaultState(), 8);
        genOre(biome, 20, 45, 0, 60, CREATE_SCORIA, BlockHandler.ORE_COPPER_SCORIA.get().getDefaultState(), 7);
        genOre(biome, 8, 50, 0, 70, CREATE_SCORIA, BlockHandler.ORE_ALUMINUM_SCORIA.get().getDefaultState(), 3);
        genOre(biome, 8, 30, 0, 38, CREATE_SCORIA, BlockHandler.ORE_SILVER_SCORIA.get().getDefaultState(), 4);
        genOre(biome, 8, 32, 0, 40, CREATE_SCORIA, BlockHandler.ORE_LEAD_SCORIA.get().getDefaultState(), 3);
        genOre(biome, 8, 25, 0, 40, CREATE_SCORIA, BlockHandler.ORE_NICKEL_SCORIA.get().getDefaultState(), 3);
        genOre(biome, 4, 5, 0, 20, CREATE_SCORIA, BlockHandler.ORE_URANIUM_SCORIA.get().getDefaultState(), 3);
        genOre(biome, 20, 20, 0, 45, CREATE_SCORIA, BlockHandler.ORE_OSMIUM_SCORIA.get().getDefaultState(), 6);
        genOre(biome, 20, 40, 0, 55, CREATE_SCORIA, BlockHandler.ORE_TIN_SCORIA.get().getDefaultState(), 6);
        genOre(biome, 8, 35, 0, 50, CREATE_SCORIA, BlockHandler.ORE_ZINC_SCORIA.get().getDefaultState(), 4);
      }
    }
  }

  private static void genOre(Biome biome, int count, int bottomOffset, int topOffset, int max, OreFeatureConfig.FillerBlockType filler, BlockState defaultBlockstate, int size) {
    CountRangeConfig range = new CountRangeConfig(count, bottomOffset, topOffset, max);
    OreFeatureConfig feature = new OreFeatureConfig(filler, defaultBlockstate, size);

    ConfiguredPlacement config = Placement.COUNT_RANGE.configure(range);

    biome.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Feature.ORE.withConfiguration(feature).withPlacement(config));
  }

  public static void genSedimentDisks(Biome biome, BlockState state, int radiusIn, int ySizeIn, List<BlockState> targetsIn, int count) {
    SphereReplaceConfig sphere = new SphereReplaceConfig(state, radiusIn, ySizeIn, targetsIn);
    FrequencyConfig frequency = new FrequencyConfig(count);

    ConfiguredPlacement config = Placement.COUNT_TOP_SOLID.configure(frequency);

    biome.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Feature.DISK.withConfiguration(sphere).withPlacement(config));
  }

  private static void genStoneVariant(Biome biome, int count, int bottomOffset, int topOffset, int max, OreFeatureConfig.FillerBlockType filler, BlockState defaultBlockstate, int size) {
    CountRangeConfig range = new CountRangeConfig(count, bottomOffset, topOffset, max);
    OreFeatureConfig feature = new OreFeatureConfig(filler, defaultBlockstate, size);

    ConfiguredPlacement config = Placement.COUNT_RANGE.configure(range);

    biome.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Feature.ORE.withConfiguration(feature).withPlacement(config));
  }
}

At the moment, I'm trying with this 

biome.getFeatures(GenerationStage.Decoration.UNDERGROUND_ORES).remove(Feature.ORE.withConfiguration(new OreFeatureConfig(OreFeatureConfig.FillerBlockType.NATURAL_STONE, Blocks.COAL_ORE.getDefaultState(), 17)));

but needless to say, that has failed. 

 

I also found this topic: 

which seems to be close to what I need, but I just couldn't figure out the solution code, or how to use it.

List<ConfiguredFeature> features = new ArrayList<ConfiguredFeature>();

            for (ConfiguredFeature<?> f : biome.getFeatures(GenerationStage.Decoration.UNDERGROUND_ORES)) {
                if (((DecoratedFeatureConfig)f.config).feature.feature instanceof OreFeature) {
                    if (((OreFeatureConfig)((DecoratedFeatureConfig)f.config).feature.config).state.getBlock() == Blocks.IRON_ORE) {
                        features.add(f);
                    }
                }
            }

            biome.getFeatures(GenerationStage.Decoration.UNDERGROUND_ORES).removeAll(features);

Whenever I tried that, I kept getting an error on the <?> 'Wrong number of type argument'

Posted

That is awesome. Thanks for the tip. It seems to be working now.

public static void overrideFeatures(Biome biome){
    List<ConfiguredFeature> features = new ArrayList<ConfiguredFeature>();

    for (ConfiguredFeature<?,?> f : biome.getFeatures(GenerationStage.Decoration.UNDERGROUND_ORES)) {
      if (((DecoratedFeatureConfig)f.config).feature.feature instanceof OreFeature) {
        if (((OreFeatureConfig)((DecoratedFeatureConfig)f.config).feature.config).state.getBlock() == Blocks.COAL_ORE) {
          features.add(f);
        }
        if (((OreFeatureConfig)((DecoratedFeatureConfig)f.config).feature.config).state.getBlock() == Blocks.IRON_ORE) {
          features.add(f);
        }
        if (((OreFeatureConfig)((DecoratedFeatureConfig)f.config).feature.config).state.getBlock() == Blocks.GOLD_ORE) {
          features.add(f);
        }
        if (((OreFeatureConfig)((DecoratedFeatureConfig)f.config).feature.config).state.getBlock() == Blocks.DIAMOND_ORE) {
          features.add(f);
        }
        if (((OreFeatureConfig)((DecoratedFeatureConfig)f.config).feature.config).state.getBlock() == Blocks.EMERALD_ORE) {
          features.add(f);
        }
        if (((OreFeatureConfig)((DecoratedFeatureConfig)f.config).feature.config).state.getBlock() == Blocks.LAPIS_ORE) {
          features.add(f);
        }
        if (((OreFeatureConfig)((DecoratedFeatureConfig)f.config).feature.config).state.getBlock() == Blocks.REDSTONE_ORE) {
          features.add(f);
        }
      }
    }
    biome.getFeatures(GenerationStage.Decoration.UNDERGROUND_ORES).removeAll(features);
  }

 

and I just called it within the Loops itself.

for (Biome biome : ForgeRegistries.BIOMES) {
  overrideFeatures(biome);

 

and here are the fruits of this labor. Still far from finished, but it's a start. Thanks for the help man.

unknown.png?width=1052&height=567

Posted

Looks great! Just watch out for the emerald ore though, i did a bit of a research myself and with the above method, emeralds appear to be still be generating in the world. This is because the feature responsible for placing emeralds in the world does not belong to OreFeature, but to ReplaceBlockFeature. Also do you mind about infested stone blocks (the silverfish block)? If you look at DefaultBiomeFeatures class you will see that they are generated in a different decoration stage, so if you want to remove those you will need to check also that decoration stage.

  • Thanks 1

Check out the port of the BetterEnd fabric mod (WIP): https://www.curseforge.com/minecraft/mc-mods/betterend-forge-port

Posted

Oh completely forgot about that. Thanks for reminding me. Will add them to the feature removal method to make sure they don't generate unless I push them through my mod. Working on the other types of Strata Ores now. Let's hope removing the vanilla ores and then pushing them through my mod with FillerBlockType Stone will stop them from spawning on the incorrect block. I think the issue is that all these strata blocks have the Stone forge tag, so the game is treating them as Stone.

If that continues to be the case, then I will have to remove the stone tag from them, and maybe give them a new tag.

Posted (edited)

But alas, all this work seems to be not sufficient enough. No sure if it is a mod loading priority, but the Vanilla Stone ores are spawning on other types of strata stones. I fear that it could be due to the fact that these other stone types have the forge Stone tag. Is there a way I can forge my custom FillerBlockType to select ONLY the Vanilla stone, disregarding other blocks with the same tag? At first I thought it could be due to mod loading priority, but the fact that I can see all the new ores I'm generating means my mod should have been initiated after TerraForged, or is my understanding in this matter incorrect? This is how I'm currently using Stone as a FillerBlockType.

 

public static OreFeatureConfig.FillerBlockType STONE = OreFeatureConfig.FillerBlockType.create("STONE", "stone", new BlockMatcher(Blocks.STONE));

 

Edited by Ridanis
Posted

I am not sure i got what your problem is right, so..from what i understood you have now your custom ores correctly generating inside Quark and TerraForged blocks, which is what you want right? But you are also having vanilla stone ores generating inside the modded blocks, is this right? Maybe a screenshot where i can see what is happening would help

Check out the port of the BetterEnd fabric mod (WIP): https://www.curseforge.com/minecraft/mc-mods/betterend-forge-port

Posted

That is exactly what is happening. The Vanilla Ores which have been removed and then re-added through my mod are generating on a non-Vanilla Stone Types such as those added by Create mod and Quark mod.

kMytE2d.pngdtGXSSO.jpg

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Im trying add to block a hole in center, just a usual block and in center of it on up side, there is should be a hole. I tried to add it via BlockModelBuilder, but its not working. Problem is that it only can change block size outside. I tried it to do with VoxelShape and its working, but its has been on server side and looks like its just changed collision shape, but for client, there is a texture covering this hole. I tried to use: base.renderType("cutout"); and removed some pixels from texture. I thought its should work, but game optimization makes block inside looks transparent. So, only custom model?
    • I Made this modpack myself and When i Open a world with embeddium enabeld no chuncks are loading in and when i have the mod brute force rendering culling eanbled the game will not start     This is the Modlist:   Chef's Delight [Forge] (by redstone3game) Yung Structures Addon for Loot Integrations (by someaddon) Macaw's Paths and Pavings (by sketch_macaw) My Nether's Delight (by soytutta) Client Crafting (by someaddon) Integrated Stronghold (by CraisinLord) Delightful (by brnbrd) Immersive Aircraft [Fabric/Forge] (by Conczin) Mysterious Mountain Lib (by sz0999312) Infinity Buttons (by LarsMans) SuperMartijn642's Core Lib (by SuperMartijn642) Clumps (by Jaredlll08) Embeddium (by FiniteReality) Cosmetic Armor Reworked (by LainMI) Creeper Overhaul (by joosh_7889) Balm (by BlayTheNinth) HT's TreeChop (by hammertater) Fastload (by StockiesLad) ImmediatelyFast (by RaphiMC) Integrated Dungeons and Structures (by CraisinLord) Mobtimizations - Entity Performance Fixes (by Corosus) Handcrafted (by terrariumearth) SuperMartijn642's Config Lib (by SuperMartijn642) Dramatic Doors (by FizzWare) Allurement (by TeamAbnormals) Xaero's World Map (by xaero96) Panda's Extra Details (by ThePandaOliver) Geophilic – Vanilla Biome Overhauls (by bebebea_loste) Auroras (by Verph) Naturalist (by Starfish_Studios) Iron Chests (by ProgWML6) Corpse (by henkelmax) FastSuite (by Shadows_of_Fire) Controlling (by Jaredlll08) Ash API (by Trikzon) Eating Animation [Neo/Forge] (by matyrobbrt) Macaw's Doors (by sketch_macaw) ForgeEndertech (by EnderLanky) Philip's Ruins (by philipmoddev) Resourceful Config (by ThatGravyBoat) ModernFix (by embeddedt) Quark (by Vazkii) Illager Invasion [Forge & Fabric] (by Fuzs) Integrated API (by CraisinLord) Redirector [Modern] (by pOtAto__bOy) Macaw's Fences and Walls (by sketch_macaw) Diagonal Windows [Forge & Fabric] (by Fuzs) Waystones (by BlayTheNinth) [EMF] Entity Model Features [Fabric & Forge] (by Traben) FerriteCore ((Neo)Forge) (by malte0811) CodeChicken Lib 1.8.+ (by covers1624) Macaw's Roofs (by sketch_macaw) Server Country Flags (by khajiitos) Bookshelf (by DarkhaxDev) Comforts (Fabric/Forge/Quilt) (by TheIllusiveC4) Enchantment Descriptions (by DarkhaxDev) Entity Culling Fabric/Forge (by tr7zw) Embeddium++ (by SrRapero720) Embeddium (Rubidium) Extra (by dimadencep) Smooth Boot (Reloaded) (by AbdElAziz333) Dungeons and Taverns (by Nova_Wostra) Placeables (by ItzSkay) CoroUtil (by Corosus) Small Ships [Fabric & Forge] (by talhanation) Trade Cycling (by henkelmax) Better Fps - Render Distance[Forge] (by someaddon) Better Villages - Forge (by jtl_elisa) PandaLib (by ThePandaOliver) Curios API (Forge/NeoForge) (by TheIllusiveC4) Stoneworks [Forge & Fabric] (by Fuzs) Pastel Shaders (by ElocinDev) Integrated Villages (by CraisinLord) More Axolotl Variants API (by AkashiiKun69) Potato Shader (by RRe36) Better Archeology (by Pandarix) Block Runner [Forge & Fabric] (by Fuzs) Cloth Config API (Fabric/Forge/NeoForge) (by shedaniel) Kiwi 🥝 (Neo/Forge) (by Snownee) Macaw's Lights and Lamps (by sketch_macaw) Loot Integrations (by someaddon) Farmers Structures (by BlackAuresArt) Wilderness (by ketok) Corpse x Curios API Compat (by Project8gbDeRam) Friends&Foes (Forge/NeoForge) (Copper Golem,Glare,Crab,Moobloom,Iceologer,Rascal,Tuff Golem,Wildfire,Illusioner) (by Faboslav) More Mob Variants (by nyuppo) Better Than Mending (by legobmw99) Remove Reloading Screen (by dimadencep) Simply Swords [Fabric & Forge] (by sweenuss) Better Brightness Slider (by LaidBackSloth) Krypton Reforged (by Txni) AppleSkin (by squeek502) Supplementaries Squared (by plantspookable) Horse Expert (by Fuzs) YUNG's Menu Tweaks (Forge) (by YUNGNICKYOUNG) Pet Cemetery (by TeamAbnormals) Leaky - Item Lag Fix[Forge/Fabric] (by someaddon) Tectonic (by Apollo) Saturn (by AbdElAziz333) Searchables (by Jaredlll08) Inventory HUD+ (by dmitrylovin) Moonlight Lib (by MehVahdJukaar) Explorify – Dungeons & Structures (by bebebea_loste) Placebo (by Shadows_of_Fire) Overflowing Bars [Forge & Fabric] (by Fuzs) Citadel (by sbom_xela) Alex's Mobs - Naturalist Compat (by Kanadeyoru) Forge CIT (by tfarecnim) Create (by simibubi) Starlight (Forge) (by Spottedleaf) [ETF] Entity Texture Features - [Fabric & Forge] (by Traben) Advanced Chimneys (by EnderLanky) Corn Delight[Forge] (by sz0999312) Trials Chambers [1.20.1 Backport] (by Jusey1z) MVS - Moog's Voyager Structures (by finndog_123) Macaw's Paintings (by sketch_macaw) Alternate Current (by SpaceWalkerRS) Hopo Better Ruined Portals (Fabric/Forge/NeoForge) (by hoponopono) Alex's Delight (by Baisylia) Macaw's Biomes O' Plenty (by Samlegamer_) Resourceful Lib (by ThatGravyBoat) FindMe (by Buuz135) Macaw's Bridges (by sketch_macaw) YUNG's Better Witch Huts (Forge) (by YUNGNICKYOUNG) MNS - Moog's Nether Structures (by finndog_123) Mowzie's Mobs (by bobmowzie) FastWorkbench (by Shadows_of_Fire) Transparent (by Trikzon) Artifacts (by ochotonida) Passable Foliage 🌳 (Neo/Forge) (by Snownee) Supplementaries (by MehVahdJukaar) Atmospheric (by TeamAbnormals) Alex's Caves (by sbom_xela) Alex's Caves Delight (by FixerLink1) Ocean's Delight (by scouter567) Brute force Rendering Culling (by RogoShum) fix GPU memory leak[Forge/Fabric] (by someaddon) Burnt: Better Vanilla Fire (by pxlbnk) YDM's Weapon Master (by YourDailyModderx) Curios Compat Layer for Accessories (by Blodhgarm) MES - Moog's End Structures (by finndog_123) Pale Garden and Creaking (by MinoBanana) YUNG's Better Jungle Temples (Forge) (by YUNGNICKYOUNG) AddonsLib (by Samlegamer_) Athena (by CodexAdrian) MakeUp - Ultra Fast | Shaders (by XavierFST) Xaero's Minimap (by xaero96) Macaw's Trapdoors (by sketch_macaw) Translocators 1.8.+ (by covers1624) Additional Structures (by XxRexRaptorxX) AI Improvements (by QueenOfMissiles) Autochef's Delight (by Snownee) Iron Furnaces (by XenoMustache) Iris/Oculus & GeckoLib Compat (by ElocinDev) Connectivity (by someaddon) Easy Magic [Forge & Fabric] (by Fuzs) Blueprint (by TeamAbnormals) VillagersPlus (FORGE) (by finallion_13) Panda's Falling Tree's (by ThePandaOliver) Xaero's Minimap & World Map - Waystones Compatibility [Forge] (by ArcaneAlloy) ServerCore (by Wesley8081) MrCrayfish's Furniture Mod: Refurbished (by MrCrayfish) Just Enough Items (JEI) (by mezz) Farmer's Delight (by vectorwing) Old fisherman swamp house (by SuperWarioModTeam) YUNG's Better Nether Fortresses (Forge) (by YUNGNICKYOUNG) Lithostitched (by Apollo) FastFurnace (by Shadows_of_Fire) DrDestens MCShaders (by DrDesten) Server Performance - Smooth Chunk Save[Forge/Fabric] (by someaddon) Noisium (by Steveplays28) Puzzles Lib [Forge & Fabric] (by Fuzs) YUNG's Bridges (Forge) (by YUNGNICKYOUNG) Alex's Mobs (by sbom_xela) Regions Unexplored (forge/fabric) (by UHQ_GAMES) Architectury API (by shedaniel) Radium Reforged (by Asek3) Separated Leaves (by LarsMans) CullLessLeaves Reforged (Unofficial) (by ccr4ft3r) Just Enough Effect Descriptions (JEED) (by MehVahdJukaar) FastBoot (by dnlayu) Framework (by MrCrayfish) Chipped (by terrariumearth) MSS - Moog's Soaring Structures (by finndog_123) GeckoLib (by Gecko) CB Multipart (by covers1624) GlitchCore (by TheAdubbz) Realm RPG: Fallen Adventurers (by nocubeyt) Zume (by Nolij) Library Ferret - Forge (by jtl_elisa) Recipe Essentials[Forge/Fabric] (by someaddon) Macaw's Stairs (by sketch_macaw) Accessories (by Blodhgarm) What Are They Up To (Watut) (by Corosus) GroovyModLoader (GML) (by matyrobbrt) Fruits Delight (by lcy0x1) Just Enough Breeding (JEBr) (by Christofmeg) Farmer's Respite (by lumpazl) YUNG's API (Forge) (by YUNGNICKYOUNG) Underground Villages (by Mrbysco) Easy Anvils [Forge & Fabric] (by Fuzs) Cupboard (by someaddon) Diagonal Walls (by Fuzs) Large Ore Deposits (by EnderLanky) More Axolotl Variants Mod (by AkashiiKun69) Zeta (by Vazkii) TerraBlender (Forge) (by TheAdubbz) Biomes O' Plenty (by Forstride) Bocchium (by pOtAto__bOy) FramedBlocks (by XFactHD) Patchouli (by Vazkii) Quark Delight (by nocubeyt) Just Enough Resources (JER) (by way2muchnoise) Amendments (by plantspookable) Simple Hats (by fonnymunkey) Oculus (by Asek3) OpenBlocks Elevator (by vsngarcia) YUNG's Better Mineshafts (Forge) (by YUNGNICKYOUNG) Skin Layers 3D (Fabric/Forge) (by tr7zw) Mouse Tweaks (by YaLTeR) YUNG's Extras (Forge) (by YUNGNICKYOUNG)
    • After removing shieldexpansion it wont let me join the server because it's included in the server's modpack. is there a way to bypass that?  
    • Getting this, been trying to comb thru but cant seem to find the error... [13:11:35] [main/INFO]: Loading 169 mods:     - ad_astra 1.15.19     - ae2 15.3.3     - aether 1.20.1-1.5.2-neoforge         |-- cumulus_menus 1.20.1-1.0.1-neoforge         \-- nitrogen_internals 1.20.1-1.0.12-neoforge     - aiimprovements 0.5.2     - alexsmobs 1.22.9     - almostunified 1.20.1-0.9.4     - appleskin 2.5.1+mc1.20.1     - architectury 9.2.14     - athena 3.1.2     - bellsandwhistles 0.4.3-1.20.x     - betterchunkloading 1.20.1-5.3     - betterdeserttemples 1.20-Forge-3.0.3     - betterdungeons 1.20-Forge-4.0.4     - betterendisland 1.20-Forge-2.0.6     - betterfortresses 1.20-Forge-2.0.6     - betterjungletemples 1.20-Forge-2.0.5     - bettermineshafts 1.20-Forge-4.0.4     - betteroceanmonuments 1.20-Forge-3.0.4     - betterstrongholds 1.20-Forge-4.0.3     - bettervillage 3.2.0     - betterwitchhuts 1.20-Forge-3.0.3     - bookshelf 20.2.13     - botanypots 13.0.40     - botarium 2.3.4     - canary 0.3.3     - carryon 2.1.2.7     - cgm 1.4.18     - chipped 3.0.7     - chunkloaders 1.2.8a     - citadel 2.6.1     - cofh_core 11.0.2     - comforts 6.4.0+1.20.1         \-- spectrelib 0.13.15+1.20.1     - copycats 2.2.0+mc.1.20.1-forge     - corpse 1.20.1-1.0.20     - create 0.5.1.j         \-- flywheel 0.6.11-13     - create_better_motors 1.1.0     - create_bic_bit 0.0.86     - create_central_kitchen 1.3.12         \-- create_dragon_lib 1.4.3     - create_confectionery 1.1.0     - create_connected 0.9.4-mc1.20.1     - create_copper_and_zinc 1.6.0     - create_crush_everything 1.0.2     - create_dd 0.1b.Release-Early-Dev     - create_enchantment_industry 1.2.9.d     - create_eureka 1.0.0+forge-1.20.1     - create_extra_casing 0.0.2     - create_factory 0.4b-1.20.1     - create_ltab_f 2.5.0     - create_mechanical_extruder 1.20.1-1.6.3.j-55     - create_new_age 1.1.2     - create_pillagers_arise 116.26.     - create_power_loader 1.5.0-mc1.20.1     - create_questing 1.0.0     - create_sa 2.0.8     - create_ultimate_factory 1.9.0     - createaddoncompatibility 0.2.2b     - createbigcannons 5.8.2         \-- ritchiesprojectilelib 2.0.0-dev+mc.1.20.1-forge-build.182     - createcasing 1.20.1-1.6.2-fix1     - createdieselgenerators 1.20.1-1.2i     - createloveandwar 0.4-1.20.1     - createmobeggs 2.0.1     - createoreexcavation 1.5.3     - createutilities 0.3.0+1.20.1     - crittersandcompanions 2.2.2     - crystal_clear 2.1-Beta     - cupboard 1.20.1-2.7     - curios 5.11.1+1.20.1     - diagonalfences 8.1.5         \-- diagonalblocks 8.0.6     - domum_ornamentum 1.20.1-1.0.284-snapshot     - duckling 3.0.0     - dungeons_arise 2.1.58-1.20.x     - dungeons_arise_seven_seas 1.0.2     - extendedgears 2.1.1-1.20.1-0.5.1.f-forge     - fallingleaves 2.1.0     - fallingtree 4.3.4     - farmersdelight 1.20.1-1.2.7     - fastasyncworldsave 1.20.1-2.3     - ferritecore 6.0.1     - flansmod 0.4         \-- flansphysics 0.4     - forge 47.3.0     - framedblocks 9.3.1     - framework 0.7.12     - ftblibrary 2001.2.9     - ftbquests 2001.4.11     - ftbteams 2001.3.1     - ftbxmodcompat 2.1.2     - fusion 1.2.4     - garnished 2.0.7     - geckolib 4.7     - goblintraders 1.9.3     - gpumemleakfix 1.20.1-1.8     - handcrafted 3.0.6     - interiors 0.5.6     - irisflw 1.1.2     - jade 11.12.3+forge     - jei 15.20.0.106     - kitchen_grow 0.1-1.20.1     - kotlinforforge 4.11.0     - leaky 1.20.1-2.1     - libraryferret 4.0.0     - lmft 1.0.4+1.20.1     - minecraft 1.20.1     - missions 0.4.2     - modernfix 5.20.2+mc1.20.1         \-- mixinextras 0.4.1     - moderntrainparts 0.1.7-forge-mc1.20.1-cr0.5.1.f     - molten_vents 2.0.9     - moonlight 1.20-2.13.62     - moped 1.0.0     - mr_warp_portals 1.4.0     - necronomicon 1.6.0     - numismatics 1.0.7+forge-mc1.20.1     - oculus 1.8.0     - puzzleslib 8.1.25         \-- puzzlesaccessapi 8.0.7     - quark 4.0-460     - railways 1.6.7+forge-mc1.20.1     - rechiseled 1.1.6     - rechiseledcreate 1.0.2     - resourcefulconfig 2.1.2     - resourcefullib 2.1.29     - ribbits 1.20.1-Forge-3.0.4     - rightclickharvest 3.2.3+1.20.1-forge     - simpleclouds 0.6.3+1.20.1-forge         \-- crackerslib 1.20.1-0.4.4     - skinlayers3d 1.7.4     - smoothchunk 1.20.1-4.0     - sophisticatedbackpacks 3.23.4.1196     - sophisticatedcore 1.2.9.867     - storagedrawers 12.9.13     - supermartijn642configlib 1.1.8     - supermartijn642corelib 1.1.18     - supplementaries 1.20-3.1.13         \-- mixinsquared 0.1.1     - tectonic 2.4.1     - terrablender 3.0.1.7     - terralith 2.5.4     - tfmg 0.9.3-1.20.1     - thermal_cultivation 11.0.1     - thermal_dynamics 11.0.1     - thermal_expansion 11.0.1     - thermal_foundation 11.0.6         \-- thermal 11.0.6     - thermal_innovation 11.0.1     - thermal_integration 11.0.1     - torchmaster 20.1.9     - trackwork 1.1.1b     - trashcans 1.0.18b     - travelersbackpack 9.1.16     - twilightforest 4.3.2508     - valkyrienskies 2.3.0-beta.5         \-- cloth_config 11.1.106     - vinery 1.4.38     - vs_clockwork 1.20.1-0.1.16-forge-b3b22e39fe     - vs_eureka 1.5.1-beta.3     - worldedit 7.2.15+6463-5ca4dff     - xaerominimap 25.0.0     - xaeroworldmap 1.39.2     - yungsapi 1.20-Forge-4.0.6     - yungsbridges 1.20-Forge-4.0.3     - yungsextras 1.20-Forge-4.0.3     - zeta 1.0-24 [13:11:35] [main/WARN]: Reference map 'create_eureka-common-refmap.json' for create_eureka-common.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:35] [main/WARN]: Reference map 'eureka-1201-forge-refmap.json' for vs_eureka.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:35] [main/WARN]: Reference map 'createmechanicalextruder.refmap.json' for create_mechanical_extruder.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:35] [main/WARN]: Reference map 'mixins.trackwork.refmap.json' for trackwork.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:35] [main/WARN]: Reference map 'tfmg.refmap.json' for tfmg.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:35] [main/WARN]: Reference map 'Create_The_Kitchen_Must_Grow.refmap.json' for kitchen_grow.mixins.json could not be read. If this is a development environment you can ignore this message [13:11:36] [main/WARN]: Error loading class: mekanism/client/render/entity/RenderFlame (java.lang.ClassNotFoundException: mekanism.client.render.entity.RenderFlame) [13:11:36] [main/WARN]: Error loading class: mekanism/client/render/armor/MekaSuitArmor (java.lang.ClassNotFoundException: mekanism.client.render.armor.MekaSuitArmor) [13:11:36] [main/WARN]: Error loading class: xyz/przemyk/simpleplanes/upgrades/shooter/ShooterUpgrade (java.lang.ClassNotFoundException: xyz.przemyk.simpleplanes.upgrades.shooter.ShooterUpgrade) [13:11:36] [main/WARN]: @Mixin target xyz.przemyk.simpleplanes.upgrades.shooter.ShooterUpgrade was not found cgm.mixins.json:common.simpleplanes.ShooterUpgradeMixin [13:11:36] [main/WARN]: Error loading class: com/jamieswhiteshirt/reachentityattributes/ReachEntityAttributes (java.lang.ClassNotFoundException: com.jamieswhiteshirt.reachentityattributes.ReachEntityAttributes) [13:11:36] [main/WARN]: Error loading class: com/sonicether/soundphysics/SoundPhysics (java.lang.ClassNotFoundException: com.sonicether.soundphysics.SoundPhysics) [13:11:36] [main/WARN]: Error loading class: blusunrize/immersiveengineering/common/gui/BlockEntityInventory (java.lang.ClassNotFoundException: blusunrize.immersiveengineering.common.gui.BlockEntityInventory) [13:11:36] [main/WARN]: Error loading class: net/dries007/tfc/world/TFCChunkGenerator (java.lang.ClassNotFoundException: net.dries007.tfc.world.TFCChunkGenerator) [13:11:36] [main/WARN]: Error loading class: cofh/core/block/entity/TileCoFH (java.lang.ClassNotFoundException: cofh.core.block.entity.TileCoFH) [13:11:36] [main/WARN]: Error loading class: li/cil/tis3d/common/entity/InfraredPacketEntity (java.lang.ClassNotFoundException: li.cil.tis3d.common.entity.InfraredPacketEntity) [13:11:36] [main/WARN]: Error loading class: me/desht/modularrouters/container/RouterMenu (java.lang.ClassNotFoundException: me.desht.modularrouters.container.RouterMenu) [13:11:36] [main/WARN]: Error loading class: me/jellysquid/mods/sodium/client/render/chunk/RenderSectionManager (java.lang.ClassNotFoundException: me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager) [13:11:36] [main/WARN]: @Mixin target me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager was not found valkyrienskies-forge.mixins.json:compat.sodium.MixinRenderSectionManager [13:11:36] [main/WARN]: Error loading class: li/cil/tis3d/client/renderer/block/entity/CasingBlockEntityRenderer (java.lang.ClassNotFoundException: li.cil.tis3d.client.renderer.block.entity.CasingBlockEntityRenderer) [13:11:36] [main/WARN]: Error loading class: li/cil/tis3d/client/renderer/RenderContextImpl (java.lang.ClassNotFoundException: li.cil.tis3d.client.renderer.RenderContextImpl) [13:11:37] [main/WARN]: Error loading class: me/jellysquid/mods/lithium/common/ai/pathing/PathNodeDefaults (java.lang.ClassNotFoundException: me.jellysquid.mods.lithium.common.ai.pathing.PathNodeDefaults) [13:11:37] [main/WARN]: Error loading class: noobanidus/mods/lootr/config/ConfigManager (java.lang.ClassNotFoundException: noobanidus.mods.lootr.config.ConfigManager) [13:11:37] [main/WARN]: Error loading class: me/jellysquid/mods/sodium/client/render/chunk/compile/pipeline/FluidRenderer (java.lang.ClassNotFoundException: me.jellysquid.mods.sodium.client.render.chunk.compile.pipeline.FluidRenderer) [13:11:37] [main/WARN]: Error loading class: net/raphimc/immediatelyfast/feature/map_atlas_generation/MapAtlasTexture (java.lang.ClassNotFoundException: net.raphimc.immediatelyfast.feature.map_atlas_generation.MapAtlasTexture) [13:11:37] [main/WARN]: Error loading class: dan200/computercraft/shared/integration/MoreRedIntegration (java.lang.ClassNotFoundException: dan200.computercraft.shared.integration.MoreRedIntegration) [13:11:37] [main/WARN]: @Mixin target dan200.computercraft.shared.integration.MoreRedIntegration was not found create_central_kitchen.mixins.json:common.computercraft.MoreRedIntegrationMixin [13:11:37] [main/WARN]: Error loading class: com/sammy/minersdelight/content/block/copper_pot/CopperPotBlockEntity (java.lang.ClassNotFoundException: com.sammy.minersdelight.content.block.copper_pot.CopperPotBlockEntity) [13:11:37] [main/WARN]: @Mixin target com.sammy.minersdelight.content.block.copper_pot.CopperPotBlockEntity was not found create_central_kitchen.mixins.json:common.minersdelight.CopperPotBlockEntityMixin [13:11:37] [main/WARN]: Error loading class: com/sammy/minersdelight/content/block/sticky_basket/StickyBasketBlockEntity (java.lang.ClassNotFoundException: com.sammy.minersdelight.content.block.sticky_basket.StickyBasketBlockEntity) [13:11:37] [main/WARN]: @Mixin target com.sammy.minersdelight.content.block.sticky_basket.StickyBasketBlockEntity was not found create_central_kitchen.mixins.json:common.minersdelight.StickyBasketBlockEntityAccessor [13:11:37] [main/WARN]: Error loading class: com/sammy/minersdelight/content/block/sticky_basket/StickyBasketBlockEntity (java.lang.ClassNotFoundException: com.sammy.minersdelight.content.block.sticky_basket.StickyBasketBlockEntity) [13:11:37] [main/WARN]: @Mixin target com.sammy.minersdelight.content.block.sticky_basket.StickyBasketBlockEntity was not found create_central_kitchen.mixins.json:common.minersdelight.StickyBasketBlockEntityMixin [13:11:37] [main/WARN]: Error loading class: net/orcinus/overweightfarming/blocks/CropFullBlock (java.lang.ClassNotFoundException: net.orcinus.overweightfarming.blocks.CropFullBlock) [13:11:37] [main/WARN]: @Mixin target net.orcinus.overweightfarming.blocks.CropFullBlock was not found create_central_kitchen.mixins.json:common.overweightfarming.CropFullBlockMixin [13:11:37] [main/ERROR]: valkyrienskies-common.mixins.json:feature.container_distance_check.MixinContainer: Interface mixin contains a non-public method! Found includeShipsInDistanceCheck(Lnet/minecraft/world/entity/player/Player;DDD)D in valkyrienskies-common.mixins.json:feature.container_distance_check.MixinContainer org.spongepowered.asm.mixin.transformer.throwables.InvalidInterfaceMixinException: Interface mixin contains a non-public method! Found includeShipsInDistanceCheck(Lnet/minecraft/world/entity/player/Player;DDD)D in valkyrienskies-common.mixins.json:feature.container_distance_check.MixinContainer     at org.spongepowered.asm.mixin.transformer.MixinPreProcessorInterface.prepareMethod(MixinPreProcessorInterface.java:65) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinPreProcessorStandard.prepare(MixinPreProcessorStandard.java:187) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinInfo$State.validate(MixinInfo.java:322) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinInfo.validate(MixinInfo.java:913) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinConfig.postInitialise(MixinConfig.java:801) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:567) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:462) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:438) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:290) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:250) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.service.modlauncher.MixinTransformationHandler.processClass(MixinTransformationHandler.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at org.spongepowered.asm.launch.MixinLaunchPluginLegacy.processClass(MixinLaunchPluginLegacy.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]     at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClassWithFlags(ILaunchPluginService.java:156) ~[modlauncher-10.0.9.jar:10.0.9+10.0.9+main.dcd20f30]     at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.10.jar:?]     at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?]     at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.10.jar:?]     at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?]     at java.lang.ClassLoader.loadClass(ClassLoader.java:637) ~[?:?]     at java.lang.Class.forName(Class.java:545) ~[?:?]     at net.minecraftforge.fml.earlydisplay.DisplayWindow.lambda$updateModuleReads$14(DisplayWindow.java:601) ~[fmlearlydisplay-1.20.1-47.3.0.jar:1.0]     at java.util.Optional.map(Optional.java:260) ~[?:?]     at net.minecraftforge.fml.earlydisplay.DisplayWindow.updateModuleReads(DisplayWindow.java:601) ~[fmlearlydisplay-1.20.1-47.3.0.jar:1.0]     at net.minecraftforge.fml.loading.ImmediateWindowHandler.acceptGameLayer(ImmediateWindowHandler.java:71) ~[fmlloader-1.20.1-47.3.0.jar:1.0]     at net.minecraftforge.fml.loading.FMLLoader.beforeStart(FMLLoader.java:207) ~[fmlloader-1.20.1-47.3.0.jar:1.0]     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.launchService(CommonLaunchHandler.java:92) ~[fmlloader-1.20.1-47.3.0.jar:?]     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?]     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] [13:11:37] [main/INFO]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.4.1). [13:11:39] [pool-4-thread-1/INFO]: ModernFix reached bootstrap stage (11.29 s after launch) [13:11:39] [pool-4-thread-1/WARN]: @Final field delegatesByName:Ljava/util/Map; in modernfix-forge.mixins.json:perf.forge_registry_alloc.ForgeRegistryMixin should be final [13:11:39] [pool-4-thread-1/WARN]: @Final field delegatesByValue:Ljava/util/Map; in modernfix-forge.mixins.json:perf.forge_registry_alloc.ForgeRegistryMixin should be final [13:11:39] [pool-4-thread-1/INFO]: Injecting BlockStateBase cache population hook into getNeighborPathNodeType from com.abdelaziz.canary.mixin.ai.pathing.BlockStateBaseMixin [13:11:39] [pool-4-thread-1/INFO]: Injecting BlockStateBase cache population hook into getPathNodeType from com.abdelaziz.canary.mixin.ai.pathing.BlockStateBaseMixin [13:11:39] [pool-4-thread-1/WARN]: @Inject(@At("INVOKE")) Shift.BY=1 on crittersandcompanions.mixins.json:LivingEntityMixin::handler$cjk000$onDie exceeds the maximum allowed value: 0. Increase the value of maxShiftBy to suppress this warning. [13:11:40] [pool-4-thread-1/INFO]: Vanilla bootstrap took 1231 milliseconds [13:11:42] [pool-4-thread-1/WARN]: Static binding violation: PRIVATE @Overwrite method m_47505_ in modernfix-common.mixins.json:perf.remove_biome_temperature_cache.BiomeMixin cannot reduce visibiliy of PUBLIC target method, visibility will be upgraded. [13:11:42] [Render thread/WARN]: Error loading class: net/caffeinemc/mods/sodium/api/memory/MemoryIntrinsics (java.lang.ClassNotFoundException: net.caffeinemc.mods.sodium.api.memory.MemoryIntrinsics)  
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.