Ore Generation

master
TechnoVisionDev 4 years ago
parent 93fbf920f8
commit 286a12f142

@ -1,10 +1,8 @@
package com.technovision.tutorial;
import com.technovision.tutorial.util.RegistryHandler;
import net.minecraft.block.Blocks;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;

@ -0,0 +1,53 @@
package com.technovision.tutorial.world;
import com.technovision.tutorial.Tutorial;
import com.technovision.tutorial.util.RegistryHandler;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.block.pattern.BlockMatcher;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.gen.GenerationStage;
import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.OreFeatureConfig;
import net.minecraft.world.gen.placement.ConfiguredPlacement;
import net.minecraft.world.gen.placement.CountRangeConfig;
import net.minecraft.world.gen.placement.Placement;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent;
import net.minecraftforge.registries.ForgeRegistries;
@Mod.EventBusSubscriber(modid = Tutorial.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class ModOreGen {
public static OreFeatureConfig.FillerBlockType END_STONE = OreFeatureConfig.FillerBlockType.create("END_STONE","end_stone", new BlockMatcher(Blocks.END_STONE));
@SubscribeEvent
public static void generateOres(FMLLoadCompleteEvent event) {
for (Biome biome : ForgeRegistries.BIOMES) {
//World Generation
if (biome.getCategory() == Biome.Category.NETHER) {
genOre(biome, 15, 20, 5, 50, OreFeatureConfig.FillerBlockType.NETHERRACK, RegistryHandler.RUBY_BLOCK.get().getDefaultState(), 6);
//End Generation
} else if (biome.getCategory() == Biome.Category.THEEND) {
genOre(biome, 15, 5, 5, 80, END_STONE, RegistryHandler.RUBY_BLOCK.get().getDefaultState(), 8);
//Nether Generation
} else {
genOre(biome, 15, 5, 5, 80, OreFeatureConfig.FillerBlockType.NATURAL_STONE, RegistryHandler.RUBY_BLOCK.get().getDefaultState(), 12);
}
}
}
private static void genOre(Biome biome, int count, int bottomOffset, int topOffset, int max, OreFeatureConfig.FillerBlockType filler, BlockState defaultBlockstate, int size) {
System.out.println("STARTING: " + biome.getCategory().getName());
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));
System.out.println("FINISHED: " + biome.getCategory().getName());
}
}
Loading…
Cancel
Save