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);
}
}
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;
}
Aggregations