string dimension names on save

pull/12/head
valoeghese 2020-02-29 09:11:05 +13:00
parent 8338801b13
commit 5889397521
6 changed files with 24 additions and 19 deletions

View File

@ -36,7 +36,7 @@ public final class LitecraftSave
public boolean saveChunk(Chunk chunk)
{
StringBuilder fileLocBuilder = new StringBuilder(this.file.getPath())
.append('/').append(chunk.dimension)
.append('/').append(Dimension.getById(chunk.dimension).saveIdentifier)
.append('/').append(chunk.chunkX)
.append('/').append(chunk.chunkZ);
File chunkDir = new File(fileLocBuilder.toString());
@ -61,7 +61,7 @@ public final class LitecraftSave
{
// format: <save dir>/<dim>/<chunkX>/<chunkZ>/<chunkY>.sod
File chunkFile = new File(new StringBuilder(this.file.getPath())
.append('/').append(dimension)
.append('/').append(Dimension.getById(dimension).saveIdentifier)
.append('/').append(chunkX)
.append('/').append(chunkZ)
.append('/').append(chunkY).append(".sod").toString());

View File

@ -10,10 +10,12 @@ public abstract class Dimension<T extends ChunkGenerator>
{
public List<WorldModifier> worldModifiers = new ArrayList<>();
public final int id;
public final String saveIdentifier;
public Dimension(int id)
public Dimension(int id, String saveIdentifier)
{
this.id = id;
this.saveIdentifier = saveIdentifier;
ID_TO_DIMENSION.put(id, this);
}
@ -28,5 +30,8 @@ public abstract class Dimension<T extends ChunkGenerator>
public abstract T createChunkGenerator(long seed);
public static Dimension<?> getById(int id)
{ return ID_TO_DIMENSION.get(id); }
private static final Int2ObjectMap<Dimension<?>> ID_TO_DIMENSION = new Int2ObjectArrayMap<>();
}

View File

@ -4,5 +4,5 @@ import com.github.halotroop.litecraft.world.gen.*;
public final class Dimensions
{
public static final Dimension<OverworldChunkGenerator> OVERWORLD = new OverworldDimension(0);
public static final Dimension<EarthChunkGenerator> OVERWORLD = new EarthDimension(0, "earth");
}

View File

@ -0,0 +1,13 @@
package com.github.halotroop.litecraft.world.dimension;
import com.github.halotroop.litecraft.world.gen.EarthChunkGenerator;
class EarthDimension extends Dimension<EarthChunkGenerator>
{
public EarthDimension(int id, String saveIdentifier)
{ super(id, saveIdentifier); }
@Override
public EarthChunkGenerator createChunkGenerator(long seed)
{ return new EarthChunkGenerator(seed, this.id); }
}

View File

@ -6,9 +6,9 @@ import com.github.halotroop.litecraft.types.block.*;
import com.github.halotroop.litecraft.util.noise.OctaveSimplexNoise;
import com.github.halotroop.litecraft.world.Chunk;
public class OverworldChunkGenerator implements ChunkGenerator, WorldGenConstants
public class EarthChunkGenerator implements ChunkGenerator, WorldGenConstants
{
public OverworldChunkGenerator(long seed, int dimension)
public EarthChunkGenerator(long seed, int dimension)
{
Random rand = new Random(seed);
this.noise = new OctaveSimplexNoise(rand, 3, 250.0, 35.0, 10.0);

View File

@ -1,13 +0,0 @@
package com.github.halotroop.litecraft.world.gen;
import com.github.halotroop.litecraft.world.dimension.Dimension;
public class OverworldDimension extends Dimension<OverworldChunkGenerator>
{
public OverworldDimension(int id)
{ super(id); }
@Override
public OverworldChunkGenerator createChunkGenerator(long seed)
{ return new OverworldChunkGenerator(seed, this.id); }
}