Fixed JSON planet support

This commit is contained in:
Anuken
2022-02-06 16:11:55 -05:00
parent fce3cf818e
commit cb110e5e6f
4 changed files with 12 additions and 8 deletions

View File

@@ -21,12 +21,10 @@ public abstract class BasicGenerator implements WorldGenerator{
protected Rand rand = new Rand(); protected Rand rand = new Rand();
protected int width, height; protected int width, height;
protected Tiles tiles; protected @Nullable Tiles tiles;
//for drawing //for drawing
protected Block floor; protected @Nullable Block floor, block, ore;
protected Block block;
protected Block ore;
@Override @Override
public void generate(Tiles tiles){ public void generate(Tiles tiles){

View File

@@ -3,6 +3,7 @@ package mindustry.maps.generators;
import arc.math.geom.*; import arc.math.geom.*;
import arc.struct.*; import arc.struct.*;
import arc.struct.ObjectIntMap.*; import arc.struct.ObjectIntMap.*;
import arc.util.*;
import arc.util.noise.*; import arc.util.noise.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.ctype.*; import mindustry.ctype.*;
@@ -20,7 +21,7 @@ public abstract class PlanetGenerator extends BasicGenerator implements HexMeshe
public int seed = 0; public int seed = 0;
protected IntSeq ints = new IntSeq(); protected IntSeq ints = new IntSeq();
protected Sector sector; protected @Nullable Sector sector;
/** Should generate sector bases for a planet. */ /** Should generate sector bases for a planet. */
public void generateSector(Sector sector){ public void generateSector(Sector sector){

View File

@@ -2,6 +2,7 @@ package mindustry.maps.planet;
import arc.math.*; import arc.math.*;
import arc.math.geom.*; import arc.math.geom.*;
import arc.util.*;
import arc.util.noise.*; import arc.util.noise.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.game.*; import mindustry.game.*;
@@ -21,7 +22,7 @@ public class AsteroidGenerator extends BlankPlanetGenerator{
public float thoriumScl = 1f, copperScale = 1f, leadScale = 1f, graphiteScale = 1f, berylliumScale = 1f; public float thoriumScl = 1f, copperScale = 1f, leadScale = 1f, graphiteScale = 1f, berylliumScale = 1f;
Rand rand; @Nullable Rand rand;
int seed; int seed;
void asteroid(int ax, int ay, int radius){ void asteroid(int ax, int ay, int radius){

View File

@@ -32,6 +32,7 @@ import mindustry.game.Objectives.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.graphics.g3d.*; import mindustry.graphics.g3d.*;
import mindustry.graphics.g3d.PlanetGrid.*;
import mindustry.io.*; import mindustry.io.*;
import mindustry.maps.generators.*; import mindustry.maps.generators.*;
import mindustry.maps.planet.*; import mindustry.maps.planet.*;
@@ -499,6 +500,7 @@ public class ContentParser{
SectorPreset out = new SectorPreset(name, locate(ContentType.planet, value.getString("planet", "serpulo")), value.getInt("sector")); SectorPreset out = new SectorPreset(name, locate(ContentType.planet, value.getString("planet", "serpulo")), value.getInt("sector"));
value.remove("sector"); value.remove("sector");
value.remove("planet"); value.remove("planet");
currentContent = out;
read(() -> readFields(out, value)); read(() -> readFields(out, value));
return out; return out;
}, },
@@ -508,12 +510,14 @@ public class ContentParser{
Planet parent = locate(ContentType.planet, value.getString("parent")); Planet parent = locate(ContentType.planet, value.getString("parent"));
Planet planet = new Planet(name, parent, value.getFloat("radius", 1f), value.getInt("sectorSize", 0)); Planet planet = new Planet(name, parent, value.getFloat("radius", 1f), value.getInt("sectorSize", 0));
//TODO unimplemented; still needs generator + mesh
if(value.has("mesh")){ if(value.has("mesh")){
planet.meshLoader = () -> parser.readValue(GenericMesh.class, value.get("mesh")); planet.meshLoader = () -> parser.readValue(GenericMesh.class, value.get("mesh"));
} }
//TODO unimplemented!! //always one sector right now...
planet.sectors.add(new Sector(planet, Ptile.empty));
currentContent = planet;
read(() -> readFields(planet, value)); read(() -> readFields(planet, value));
return planet; return planet;
} }