mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-02-11 11:17:11 +07:00
Bugfixes / Better topological map
This commit is contained in:
parent
6bab6c57f2
commit
06763b34c3
@ -40,6 +40,10 @@ public class Pathfinder{
|
||||
});
|
||||
}
|
||||
|
||||
public void activateTeamPath(Team team){
|
||||
createFor(team);
|
||||
}
|
||||
|
||||
public void update(){
|
||||
if(Net.client()) return;
|
||||
|
||||
|
@ -13,7 +13,7 @@ public class Waves{
|
||||
return Array.with(
|
||||
new SpawnGroup(UnitTypes.dagger){{
|
||||
end = 8;
|
||||
unitScaling = 1;
|
||||
unitScaling = 3;
|
||||
}},
|
||||
|
||||
new SpawnGroup(UnitTypes.wraith){{
|
||||
|
@ -270,6 +270,8 @@ public class Sectors{
|
||||
: new BattleMission());
|
||||
}
|
||||
|
||||
sector.spawns = new Array<>();
|
||||
|
||||
for(Mission mission : sector.missions){
|
||||
sector.spawns.addAll(mission.getWaves(sector));
|
||||
}
|
||||
@ -296,6 +298,7 @@ public class Sectors{
|
||||
if(headless) return; //obviously not created or needed on server
|
||||
|
||||
Pixmap pixmap = new Pixmap(sectorImageSize * sector.width, sectorImageSize * sector.height, Format.RGBA8888);
|
||||
GenResult secResult = new GenResult();
|
||||
|
||||
for(int x = 0; x < pixmap.getWidth(); x++){
|
||||
for(int y = 0; y < pixmap.getHeight(); y++){
|
||||
@ -303,8 +306,9 @@ public class Sectors{
|
||||
int toY = y * sectorSize / sectorImageSize;
|
||||
|
||||
GenResult result = world.generator().generateTile(sector.x, sector.y, toX, toY, false);
|
||||
world.generator().generateTile(secResult, sector.x, sector.y, toX, toY + sectorSize / sectorImageSize, false, null, null);
|
||||
|
||||
int color = ColorMapper.colorFor(result.floor, result.wall, Team.none, result.elevation, (byte)0);
|
||||
int color = ColorMapper.colorFor(result.floor, result.wall, Team.none, result.elevation, secResult.elevation > result.elevation ? (byte)(1 << 6) : (byte)0);
|
||||
pixmap.drawPixel(x, pixmap.getHeight() - 1 - y, color);
|
||||
}
|
||||
}
|
||||
|
@ -49,6 +49,10 @@ public class TutorialSector{
|
||||
);
|
||||
}
|
||||
|
||||
public static boolean supressDrone(){
|
||||
return world.getSector() != null && world.getSector().x == 0 && world.getSector().y == 0;
|
||||
}
|
||||
|
||||
private static void generateBase(){
|
||||
int x = sectorSize/2, y = sectorSize/2;
|
||||
world.setBlock(world.tile(x, y), StorageBlocks.core, waveTeam);
|
||||
|
@ -322,13 +322,13 @@ public class WorldGenerator{
|
||||
wall = decoration.get(floor);
|
||||
}
|
||||
|
||||
if(ores != null && ((Floor) floor).hasOres && wall == Blocks.air){
|
||||
int offsetX = 10 + x, offsetY = 10 + y;
|
||||
if(ores != null && ((Floor) floor).hasOres){
|
||||
int offsetX = x + 1, offsetY = y + 15;
|
||||
for(int i = ores.size - 1; i >= 0; i--){
|
||||
Item entry = ores.get(i);
|
||||
if(sim.octaveNoise2D(1, 0.7, 1f / (10 + i * 3), offsetX, offsetY) / 4f +
|
||||
Math.abs(0.5f - sim.octaveNoise2D(2, 0.7, 1f / (50 + i * 2), offsetX, offsetY)) > 0.35f &&
|
||||
Math.abs(0.5f - sim2.octaveNoise2D(1, 1, 1f / (55 + i * 4), offsetX, offsetY)) > 0.33f){
|
||||
if(
|
||||
Math.abs(0.5f - sim.octaveNoise2D(2, 0.7, 1f / (50 + i * 2), offsetX, offsetY)) > 0.23f &&
|
||||
Math.abs(0.5f - sim2.octaveNoise2D(1, 1, 1f / (40 + i * 4), offsetX, offsetY)) > 0.32f){
|
||||
floor = OreBlocks.get(floor, entry);
|
||||
break;
|
||||
}
|
||||
|
@ -11,6 +11,8 @@ import io.anuke.mindustry.maps.generation.Generation;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
|
||||
import static io.anuke.mindustry.Vars.state;
|
||||
import static io.anuke.mindustry.Vars.waveTeam;
|
||||
import static io.anuke.mindustry.Vars.world;
|
||||
|
||||
public class WaveMission extends Mission{
|
||||
private final int target;
|
||||
@ -30,6 +32,13 @@ public class WaveMission extends Mission{
|
||||
generateCoreAt(gen, coreX, coreY, Team.blue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBegin(){
|
||||
super.onBegin();
|
||||
|
||||
world.pathfinder().activateTeamPath(waveTeam);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameMode getMode(){
|
||||
return GameMode.waves;
|
||||
|
@ -4,9 +4,12 @@ import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.graphics.Pixmap;
|
||||
import com.badlogic.gdx.graphics.Pixmap.Format;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.async.AsyncExecutor;
|
||||
import io.anuke.mindustry.content.Items;
|
||||
import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.maps.generation.WorldGenerator.GenResult;
|
||||
import io.anuke.mindustry.type.Item;
|
||||
import io.anuke.mindustry.world.ColorMapper;
|
||||
import io.anuke.ucore.graphics.Draw;
|
||||
import io.anuke.ucore.scene.Element;
|
||||
@ -20,6 +23,7 @@ import static io.anuke.mindustry.Vars.sectorSize;
|
||||
import static io.anuke.mindustry.Vars.world;
|
||||
|
||||
public class GenViewDialog extends FloatingDialog{
|
||||
Array<Item> ores = Array.with(Items.copper, Items.lead, Items.coal);
|
||||
|
||||
public GenViewDialog(){
|
||||
super("generate view");
|
||||
@ -81,7 +85,7 @@ public class GenViewDialog extends FloatingDialog{
|
||||
Pixmap pixmap = new Pixmap(sectorSize, sectorSize, Format.RGBA8888);
|
||||
for(int i = 0; i < sectorSize; i++){
|
||||
for(int j = 0; j < sectorSize; j++){
|
||||
world.generator().generateTile(result, wx, wy, i, j, true, null, null);
|
||||
world.generator().generateTile(result, wx, wy, i, j, true, null, ores);
|
||||
pixmap.drawPixel(i, sectorSize - 1 - j, ColorMapper.colorFor(result.floor, result.wall, Team.none, result.elevation, (byte)0));
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,6 @@ import com.badlogic.gdx.utils.ObjectIntMap;
|
||||
import io.anuke.mindustry.game.ContentList;
|
||||
import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.type.ContentType;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
|
||||
import static io.anuke.mindustry.Vars.content;
|
||||
|
||||
@ -34,8 +33,8 @@ public class ColorMapper implements ContentList{
|
||||
Color tmpColor = tmpColors.get();
|
||||
tmpColor.set(color);
|
||||
float maxMult = 1f/Math.max(Math.max(tmpColor.r, tmpColor.g), tmpColor.b) ;
|
||||
float mul = Math.min(1.1f + elevation / 4f, maxMult);
|
||||
if((cliffs & Mathf.pow2(6)) != 0){
|
||||
float mul = Math.min(0.7f + elevation / 5f, maxMult);
|
||||
if((cliffs & ((1 << 6))) != 0){
|
||||
mul -= 0.5f;
|
||||
}
|
||||
tmpColor.mul(mul, mul, mul, 1f);
|
||||
|
@ -16,6 +16,7 @@ import io.anuke.mindustry.entities.units.UnitType;
|
||||
import io.anuke.mindustry.gen.Call;
|
||||
import io.anuke.mindustry.graphics.Palette;
|
||||
import io.anuke.mindustry.graphics.Shaders;
|
||||
import io.anuke.mindustry.maps.TutorialSector;
|
||||
import io.anuke.mindustry.net.Net;
|
||||
import io.anuke.mindustry.type.Item;
|
||||
import io.anuke.mindustry.type.ItemType;
|
||||
@ -225,7 +226,7 @@ public class CoreBlock extends StorageBlock{
|
||||
}
|
||||
}
|
||||
|
||||
if(!found){
|
||||
if(!found && !TutorialSector.supressDrone()){
|
||||
BaseUnit unit = droneType.create(tile.getTeam());
|
||||
unit.setSpawner(tile);
|
||||
unit.setDead(true);
|
||||
|
Loading…
Reference in New Issue
Block a user