Lakes / Fixed water placement

This commit is contained in:
Anuken
2018-11-04 18:52:51 -05:00
parent fa4491340a
commit 09418f1a5d
2 changed files with 7 additions and 4 deletions

View File

@@ -72,14 +72,14 @@ public class Generation{
for(int dy = 0; dy < block.size; dy++){ for(int dy = 0; dy < block.size; dy++){
int worldx = dx + offsetx + x; int worldx = dx + offsetx + x;
int worldy = dy + offsety + y; int worldy = dy + offsety + y;
if(!Structs.inBounds(worldx, worldy, tiles) || !tiles[worldx][worldy].block().alwaysReplace){ if(!Structs.inBounds(worldx, worldy, tiles) || !tiles[worldx][worldy].block().alwaysReplace || tiles[worldx][worldy].floor().isLiquid){
return false; return false;
} }
} }
} }
return true; return true;
}else{ }else{
return tiles[x][y].block().alwaysReplace; return tiles[x][y].block().alwaysReplace && !tiles[x][y].floor().isLiquid;
} }
} }

View File

@@ -309,6 +309,9 @@ public class WorldGenerator{
double elevation = elevationOf(x, y, detailed); double elevation = elevationOf(x, y, detailed);
double temp = double temp =
+ sim3.octaveNoise2D(detailed ? 12 : 9, 0.6, 1f / 1100f, x - 120, y); + sim3.octaveNoise2D(detailed ? 12 : 9, 0.6, 1f / 1100f, x - 120, y);
double lake = sim2.octaveNoise2D(1, 1, 1f / 110f, x, y);
elevation -= lake/3f;
int lerpDst = 20; int lerpDst = 20;
lerpDst *= lerpDst; lerpDst *= lerpDst;
@@ -326,9 +329,9 @@ public class WorldGenerator{
} }
} }
if(elevation < 0.7){ if(elevation < 0.7 || lake > 0.96){
floor = Blocks.deepwater; floor = Blocks.deepwater;
}else if(elevation < 0.79){ }else if(elevation < 0.79 || lake > 0.948){
floor = Blocks.water; floor = Blocks.water;
}else if(elevation < 0.85){ }else if(elevation < 0.85){
floor = Blocks.sand; floor = Blocks.sand;