Arkycite biome experiments
This commit is contained in:
@@ -3,6 +3,7 @@ package mindustry.graphics.g3d;
|
|||||||
import arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
import mindustry.graphics.g3d.PlanetGrid.*;
|
import mindustry.graphics.g3d.PlanetGrid.*;
|
||||||
|
import mindustry.maps.generators.*;
|
||||||
|
|
||||||
public class MeshBuilder{
|
public class MeshBuilder{
|
||||||
private static final Vec3 v1 = new Vec3(), v2 = new Vec3(), v3 = new Vec3(), v4 = new Vec3();
|
private static final Vec3 v1 = new Vec3(), v2 = new Vec3(), v3 = new Vec3(), v4 = new Vec3();
|
||||||
@@ -45,6 +46,10 @@ public class MeshBuilder{
|
|||||||
public static Mesh buildHex(HexMesher mesher, int divisions, boolean lines, float radius, float intensity){
|
public static Mesh buildHex(HexMesher mesher, int divisions, boolean lines, float radius, float intensity){
|
||||||
PlanetGrid grid = PlanetGrid.create(divisions);
|
PlanetGrid grid = PlanetGrid.create(divisions);
|
||||||
|
|
||||||
|
if(mesher instanceof PlanetGenerator generator){
|
||||||
|
generator.seed = generator.baseSeed;
|
||||||
|
}
|
||||||
|
|
||||||
begin(grid.tiles.length * 12 * (3 + 3 + 1));
|
begin(grid.tiles.length * 12 * (3 + 3 + 1));
|
||||||
|
|
||||||
for(Ptile tile : grid.tiles){
|
for(Ptile tile : grid.tiles){
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ public class ErekirPlanetGenerator extends PlanetGenerator{
|
|||||||
|
|
||||||
Block getBlock(Vec3 position){
|
Block getBlock(Vec3 position){
|
||||||
float ice = rawTemp(position);
|
float ice = rawTemp(position);
|
||||||
|
Tmp.v32.set(position);
|
||||||
|
|
||||||
float height = rawHeight(position);
|
float height = rawHeight(position);
|
||||||
Tmp.v31.set(position);
|
Tmp.v31.set(position);
|
||||||
@@ -84,6 +85,15 @@ public class ErekirPlanetGenerator extends PlanetGenerator{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
position = Tmp.v32;
|
||||||
|
|
||||||
|
//TODO tweak this to make it more natural
|
||||||
|
//TODO edge distortion?
|
||||||
|
//TODO should be part of planet visuals...?
|
||||||
|
if(result != Blocks.slag && Ridged.noise3d(seed + 3, position.x + 2f, position.y + 5f, position.z + 1f, 2, 0.89f) > 0.24){
|
||||||
|
result = Blocks.beryllicStone;
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,9 +111,12 @@ public class ErekirPlanetGenerator extends PlanetGenerator{
|
|||||||
tile.block = Blocks.air;
|
tile.block = Blocks.air;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO only certain places should have carbon stone...
|
||||||
if(Ridged.noise3d(seed + 2, position.x, position.y + 4f, position.z, 3, 6f) > 0.6){
|
if(Ridged.noise3d(seed + 2, position.x, position.y + 4f, position.z, 3, 6f) > 0.6){
|
||||||
tile.floor = Blocks.carbonStone;
|
tile.floor = Blocks.carbonStone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -141,17 +154,22 @@ public class ErekirPlanetGenerator extends PlanetGenerator{
|
|||||||
erase(endX, endY, 15);
|
erase(endX, endY, 15);
|
||||||
|
|
||||||
//arkycite
|
//arkycite
|
||||||
//TODO arkycite biome
|
|
||||||
//TODO ice biome
|
//TODO ice biome
|
||||||
|
|
||||||
//TODO arkycite is too disruptive to terrain, needs certain conditions and sub-biomes.
|
//TODO arkycite is too disruptive to terrain, needs certain conditions and sub-biomes.
|
||||||
if(false)
|
|
||||||
pass((x, y) -> {
|
pass((x, y) -> {
|
||||||
|
if(floor != Blocks.beryllicStone) return;
|
||||||
|
|
||||||
|
//TODO bad
|
||||||
|
if(Math.abs(noise(x, y + 500f, 5, 0.6f, 40f, 1f) - 0.5f) < 0.09f){
|
||||||
|
floor = Blocks.arkyicStone;
|
||||||
|
}
|
||||||
|
|
||||||
if(nearWall(x, y)) return;
|
if(nearWall(x, y)) return;
|
||||||
|
|
||||||
float noise = noise(x + 300, y - x*1.6f + 100, 4, 0.8f, 120f, 1f);
|
float noise = noise(x + 300, y - x*1.6f + 100, 4, 0.8f, 80f, 1f);
|
||||||
|
|
||||||
if(noise > 0.71f){
|
if(noise > 0.6f){
|
||||||
floor = Blocks.arkyciteFloor;
|
floor = Blocks.arkyciteFloor;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user