New environment blocks
This commit is contained in:
@@ -10,6 +10,7 @@ import mindustry.annotations.Annotations.*;
|
||||
import mindustry.content.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.world.*;
|
||||
import mindustry.world.blocks.environment.*;
|
||||
|
||||
public abstract class GenerateFilter{
|
||||
public int seed = 0;
|
||||
@@ -37,7 +38,7 @@ public abstract class GenerateFilter{
|
||||
Block block = Vars.content.block(PackTile.block(b)), floor = Vars.content.block(PackTile.floor(b)), overlay = Vars.content.block(PackTile.overlay(b));
|
||||
|
||||
tile.setFloor(floor.asFloor());
|
||||
tile.setOverlay(!floor.asFloor().hasSurface() && overlay.asFloor().needsSurface ? Blocks.air : overlay);
|
||||
tile.setOverlay(!floor.asFloor().hasSurface() && overlay.asFloor().needsSurface && overlay instanceof OreBlock ? Blocks.air : overlay);
|
||||
|
||||
if(!tile.block().synthetic() && !block.synthetic()){
|
||||
tile.setBlock(block);
|
||||
@@ -49,7 +50,7 @@ public abstract class GenerateFilter{
|
||||
apply(in);
|
||||
|
||||
tile.setFloor(in.floor.asFloor());
|
||||
tile.setOverlay(!in.floor.asFloor().hasSurface() && in.overlay.asFloor().needsSurface ? Blocks.air : in.overlay);
|
||||
tile.setOverlay(!in.floor.asFloor().hasSurface() && in.overlay.asFloor().needsSurface && in.overlay instanceof OreBlock ? Blocks.air : in.overlay);
|
||||
|
||||
if(!tile.block().synthetic() && !in.block.synthetic()){
|
||||
tile.setBlock(in.block);
|
||||
|
||||
@@ -402,13 +402,13 @@ public abstract class BasicGenerator implements WorldGenerator{
|
||||
|
||||
for(int i = 0; i < max; i++){
|
||||
Tile tile = tiles.geti(i);
|
||||
if(tile.floor() == floor){
|
||||
if(tile.floor() == floor || tile.block() == floor){
|
||||
for(int cx = -cap; cx <= cap; cx++){
|
||||
for(int cy = -cap; cy <= cap; cy++){
|
||||
if(cx*cx + cy*cy <= r2){
|
||||
Tile other = tiles.get(tile.x + cx, tile.y + cy);
|
||||
|
||||
if(other != null && other.floor() != floor){
|
||||
if(other != null){
|
||||
other.setFloor(dest);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ public class ErekirPlanetGenerator extends PlanetGenerator{
|
||||
|
||||
Block[][] arr = {
|
||||
{Blocks.regolith, Blocks.regolith, Blocks.yellowStone, Blocks.rhyolite, Blocks.carbonStone}
|
||||
//{Blocks.redStone, Blocks.redStone, Blocks.redStone, Blocks.rhyolite, Blocks.carbonStone}
|
||||
//TODO basalt bad
|
||||
//{Blocks.regolith, Blocks.regolith, Blocks.yellowStone, Blocks.crystallineStone, Blocks.carbonStone}
|
||||
};
|
||||
@@ -193,10 +194,17 @@ public class ErekirPlanetGenerator extends PlanetGenerator{
|
||||
if(floor == Blocks.yellowStonePlates && noise(x + 78 + y, y, 3, 0.8f, 6f, 1f) > 0.44f){
|
||||
floor = Blocks.yellowStone;
|
||||
}
|
||||
|
||||
if(floor == Blocks.redStone && noise(x + 78 - y, y, 4, 0.73f, 20f, 1f) > 0.65f){
|
||||
floor = Blocks.denseRedStone;
|
||||
}
|
||||
});
|
||||
|
||||
inverseFloodFill(tiles.getn(spawnX, spawnY));
|
||||
|
||||
//TODO veins, blend after inverse flood fill?
|
||||
blend(Blocks.redStoneWall, Blocks.denseRedStone, 4);
|
||||
|
||||
//make sure enemies have room
|
||||
erase(endX, endY, 6);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user