Search in sources :

Example 1 with SurfaceBlockPopulator

use of gregtech.api.worldgen.populator.SurfaceBlockPopulator in project GregTech by GregTechCE.

the class WorldGenRegistry method initializeRegistry.

public void initializeRegistry() {
    GTLog.logger.info("Initializing ore generation registry...");
    registerShapeGenerator("ellipsoid", EllipsoidGenerator::new);
    registerShapeGenerator("sphere", SphereGenerator::new);
    registerShapeGenerator("plate", PlateGenerator::new);
    registerShapeGenerator("single", SingleBlockGenerator::new);
    registerBlockFiller("simple", SimpleBlockFiller::new);
    registerBlockFiller("ignore_bedrock", () -> new BlacklistedBlockFiller(Lists.newArrayList(Blocks.BEDROCK.getDefaultState())));
    registerVeinPopulator("surface_rock", SurfaceRockPopulator::new);
    registerVeinPopulator("fluid_spring", FluidSpringPopulator::new);
    registerVeinPopulator("surface_block", SurfaceBlockPopulator::new);
    WorldGeneratorImpl worldGenerator = new WorldGeneratorImpl();
    GameRegistry.registerWorldGenerator(worldGenerator, 1);
    MinecraftForge.ORE_GEN_BUS.register(worldGenerator);
    try {
        reinitializeRegisteredVeins();
    } catch (IOException | RuntimeException exception) {
        GTLog.logger.fatal("Failed to initialize worldgen registry.", exception);
    }
}
Also used : WorldGeneratorImpl(gregtech.api.worldgen.generator.WorldGeneratorImpl) SurfaceRockPopulator(gregtech.api.worldgen.populator.SurfaceRockPopulator) FluidSpringPopulator(gregtech.api.worldgen.populator.FluidSpringPopulator) IOException(java.io.IOException) BlacklistedBlockFiller(gregtech.api.worldgen.filler.BlacklistedBlockFiller) SurfaceBlockPopulator(gregtech.api.worldgen.populator.SurfaceBlockPopulator) SimpleBlockFiller(gregtech.api.worldgen.filler.SimpleBlockFiller)

Example 2 with SurfaceBlockPopulator

use of gregtech.api.worldgen.populator.SurfaceBlockPopulator in project GregTech by GregTechCE.

the class GTOreInfo method findSurfaceBlock.

// Finds the generated surface block or material. In the case of Fluid generation, finds a bucket of the fluid
public ItemStack findSurfaceBlock(IVeinPopulator veinPopulator) {
    Material mat;
    IBlockState state;
    ItemStack stack = new ItemStack(Items.AIR);
    FluidStack fStack;
    // Legacy Surface rock Support
    if (veinPopulator instanceof SurfaceRockPopulator) {
        mat = ((SurfaceRockPopulator) veinPopulator).getMaterial();
        // Create a Tiny Dust for the Identifier.
        stack = OreDictUnifier.getDust(mat.createMaterialStack(M / 9));
        return stack.isEmpty() ? new ItemStack(Items.AIR) : stack;
    } else // Surface Block support
    if (veinPopulator instanceof SurfaceBlockPopulator) {
        state = ((SurfaceBlockPopulator) veinPopulator).getBlockState();
        stack = new ItemStack(state.getBlock(), 1, state.getBlock().getMetaFromState(state));
        return stack;
    } else // Fluid generation support
    if (veinPopulator instanceof FluidSpringPopulator) {
        state = ((FluidSpringPopulator) veinPopulator).getFluidState();
        Block temp = state.getBlock();
        if (temp instanceof IFluidBlock) {
            Fluid fluid = ((IFluidBlock) temp).getFluid();
            fStack = new FluidStack(fluid, 1000);
            stack = FluidUtil.getFilledBucket(fStack);
            return stack;
        }
    }
    // No defined surface rock
    return stack;
}
Also used : IBlockState(net.minecraft.block.state.IBlockState) SurfaceBlockPopulator(gregtech.api.worldgen.populator.SurfaceBlockPopulator) SurfaceRockPopulator(gregtech.api.worldgen.populator.SurfaceRockPopulator) Block(net.minecraft.block.Block) Material(gregtech.api.unification.material.type.Material) FluidSpringPopulator(gregtech.api.worldgen.populator.FluidSpringPopulator) ItemStack(net.minecraft.item.ItemStack)

Aggregations

FluidSpringPopulator (gregtech.api.worldgen.populator.FluidSpringPopulator)2 SurfaceBlockPopulator (gregtech.api.worldgen.populator.SurfaceBlockPopulator)2 SurfaceRockPopulator (gregtech.api.worldgen.populator.SurfaceRockPopulator)2 Material (gregtech.api.unification.material.type.Material)1 BlacklistedBlockFiller (gregtech.api.worldgen.filler.BlacklistedBlockFiller)1 SimpleBlockFiller (gregtech.api.worldgen.filler.SimpleBlockFiller)1 WorldGeneratorImpl (gregtech.api.worldgen.generator.WorldGeneratorImpl)1 IOException (java.io.IOException)1 Block (net.minecraft.block.Block)1 IBlockState (net.minecraft.block.state.IBlockState)1 ItemStack (net.minecraft.item.ItemStack)1