mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
fix semi-flipped oily spot gaussian distribution
This commit is contained in:
parent
39603e2edb
commit
7d6fea7646
@ -1,6 +1,7 @@
|
|||||||
package com.hbm.world.gen.terrain;
|
package com.hbm.world.gen.terrain;
|
||||||
|
|
||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
|
import com.hbm.blocks.generic.BlockDeadPlant.EnumDeadPlantType;
|
||||||
import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType;
|
import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType;
|
||||||
import com.hbm.world.gen.MapGenBaseMeta;
|
import com.hbm.world.gen.MapGenBaseMeta;
|
||||||
|
|
||||||
@ -11,7 +12,8 @@ import net.minecraft.world.World;
|
|||||||
public class MapGenBedrockOil extends MapGenBaseMeta {
|
public class MapGenBedrockOil extends MapGenBaseMeta {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Similar to oil bubbles, but with a few more behaviours, like adding oily dirt and porous stone
|
* Similar to oil bubbles, but with a few more behaviours, like adding oily dirt
|
||||||
|
* no porous stone don't @ me
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private final int frequency;
|
private final int frequency;
|
||||||
@ -31,8 +33,8 @@ public class MapGenBedrockOil extends MapGenBaseMeta {
|
|||||||
@Override
|
@Override
|
||||||
protected void func_151538_a(World world, int offsetX, int offsetZ, int chunkX, int chunkZ, Block[] blocks) {
|
protected void func_151538_a(World world, int offsetX, int offsetZ, int chunkX, int chunkZ, Block[] blocks) {
|
||||||
if(rand.nextInt(frequency) == frequency - 2) {
|
if(rand.nextInt(frequency) == frequency - 2) {
|
||||||
int xCoord = (chunkX - offsetX) * 16;
|
int xCoord = (chunkX - offsetX) * 16 + rand.nextInt(16);
|
||||||
int zCoord = (chunkZ - offsetZ) * 16;
|
int zCoord = (chunkZ - offsetZ) * 16 + rand.nextInt(16);
|
||||||
|
|
||||||
// Add the bedrock oil spot
|
// Add the bedrock oil spot
|
||||||
for(int bx = 15; bx >= 0; bx--)
|
for(int bx = 15; bx >= 0; bx--)
|
||||||
@ -51,10 +53,12 @@ public class MapGenBedrockOil extends MapGenBaseMeta {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int deadMetaCount = EnumDeadPlantType.values().length;
|
||||||
|
|
||||||
// Add oil spot damage
|
// Add oil spot damage
|
||||||
for(int i = 0; i < spotCount; i++) {
|
for(int i = 0; i < spotCount; i++) {
|
||||||
int rx = xCoord + (int)(world.rand.nextGaussian() * spotWidth);
|
int rx = (int)(rand.nextGaussian() * spotWidth) - xCoord;
|
||||||
int rz = zCoord + (int)(world.rand.nextGaussian() * spotWidth);
|
int rz = (int)(rand.nextGaussian() * spotWidth) - zCoord;
|
||||||
|
|
||||||
if(rx >= 0 && rx < 16 && rz >= 0 && rz < 16) {
|
if(rx >= 0 && rx < 16 && rz >= 0 && rz < 16) {
|
||||||
// find ground level
|
// find ground level
|
||||||
@ -65,8 +69,6 @@ public class MapGenBedrockOil extends MapGenBaseMeta {
|
|||||||
for(int oy = 1; oy > -3; oy--) {
|
for(int oy = 1; oy > -3; oy--) {
|
||||||
int subIndex = index + oy;
|
int subIndex = index + oy;
|
||||||
|
|
||||||
// this generation occurs BEFORE decoration, so we have no plants to modify
|
|
||||||
|
|
||||||
if(blocks[subIndex] == Blocks.grass || blocks[subIndex] == Blocks.dirt) {
|
if(blocks[subIndex] == Blocks.grass || blocks[subIndex] == Blocks.dirt) {
|
||||||
blocks[subIndex] = rand.nextInt(10) == 0 ? ModBlocks.dirt_oily : ModBlocks.dirt_dead;
|
blocks[subIndex] = rand.nextInt(10) == 0 ? ModBlocks.dirt_oily : ModBlocks.dirt_dead;
|
||||||
|
|
||||||
@ -75,6 +77,13 @@ public class MapGenBedrockOil extends MapGenBaseMeta {
|
|||||||
metas[subIndex + 1] = (byte)EnumFlowerType.CD0.ordinal();
|
metas[subIndex + 1] = (byte)EnumFlowerType.CD0.ordinal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// this generation occurs BEFORE decoration, so we have no plants to modify
|
||||||
|
// so we'll instead just add some new ones right now
|
||||||
|
if(oy == 0 && rand.nextInt(20) == 0) {
|
||||||
|
blocks[subIndex + 1] = ModBlocks.plant_dead;
|
||||||
|
metas[subIndex + 1] = (byte)rand.nextInt(deadMetaCount);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
} else if(blocks[subIndex] == Blocks.sand || blocks[subIndex] == ModBlocks.ore_oil_sand) {
|
} else if(blocks[subIndex] == Blocks.sand || blocks[subIndex] == ModBlocks.ore_oil_sand) {
|
||||||
if(metas[subIndex] == 1) {
|
if(metas[subIndex] == 1) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user