public void replaceBlocksForBiome(int par1, int par2, byte[] par3ArrayOfByte) {

        ChunkProviderEvent.ReplaceBiomeBlocks event = new ChunkProviderEvent.ReplaceBiomeBlocks(
                this, par1, par2, par3ArrayOfByte, null);
        MinecraftForge.EVENT_BUS.post(event);
        if (event.getResult() == Result.DENY) {
            return;
        }

        double d0 = 0.03125D;
        this.slowsandNoise = this.slowsandGravelNoiseGen.generateNoiseOctaves(
                this.slowsandNoise, par1 * 16, par2 * 16, 0, 16, 16, 1, d0, d0,
                1.0D);
        this.gravelNoise = this.slowsandGravelNoiseGen.generateNoiseOctaves(
                this.gravelNoise, par1 * 16, 109, par2 * 16, 16, 1, 16, d0,
                1.0D, d0);
        this.voidFabricExclusivityNoise = this.voidFabricExculsivityNoiseGen
                .generateNoiseOctaves(this.voidFabricExclusivityNoise,
                        par1 * 16, par2 * 16, 0, 16, 16, 1, d0 * 2.0D,
                        d0 * 2.0D, d0 * 2.0D);

        for (int k = 0; k < 16; ++k) {
            for (int l = 0; l < 16; ++l) {
                for (int k1 = 127; k1 >= 0; --k1) {
                    int l1 = (l * 16 + k) * 128 + k1;

                    if (k1 < 127 - this.hellRNG.nextInt(5)
                            && k1 > 0 + this.hellRNG.nextInt(5)) {

                        if (k1 < 121 - this.hellRNG.nextInt(5)
                                && k1 > 11 + this.hellRNG.nextInt(3)) {

                            // TODO ? add random patches of blocks

                        }

                        else {
                            par3ArrayOfByte[l1] = (byte) VoidMod.hardenSpaceTimeStructure.blockID;
                        }

                    } else {
                        par3ArrayOfByte[l1] = (byte) Block.bedrock.blockID;
                    }
                }
            }
        }

    }