Ginger3D/src/main/java/com/halotroop/litecraft/world/dimension/Dimension.java

39 lines
1.0 KiB
Java
Raw Normal View History

2020-03-09 04:08:09 +00:00
package com.halotroop.litecraft.world.dimension;
2020-02-26 09:23:01 +00:00
import java.util.*;
2020-03-09 04:08:09 +00:00
import com.halotroop.litecraft.world.gen.ChunkGenerator;
import com.halotroop.litecraft.world.gen.modifier.WorldModifier;
2020-02-28 07:23:27 +00:00
import it.unimi.dsi.fastutil.ints.*;
2020-02-26 09:23:01 +00:00
public abstract class Dimension<T extends ChunkGenerator>
{
public List<WorldModifier> worldModifiers = new ArrayList<>();
public final int id;
2020-02-28 20:11:05 +00:00
public final String saveIdentifier;
2020-02-26 09:23:01 +00:00
2020-02-28 20:11:05 +00:00
public Dimension(int id, String saveIdentifier)
{
this.id = id;
2020-02-28 20:11:05 +00:00
this.saveIdentifier = saveIdentifier;
ID_TO_DIMENSION.put(id, this);
}
public Dimension<T> addWorldModifier(WorldModifier modifier)
2020-02-26 09:23:01 +00:00
{
this.worldModifiers.add(modifier);
return this;
}
2020-02-28 04:10:47 +00:00
public WorldModifier[] getWorldModifierArray()
2020-02-28 06:27:51 +00:00
{ return this.worldModifiers.toArray(new WorldModifier[0]); }
2020-02-26 09:23:01 +00:00
public abstract T createChunkGenerator(long seed);
2020-02-28 20:11:05 +00:00
public static Dimension<?> getById(int id)
{ return ID_TO_DIMENSION.get(id); }
private static final Int2ObjectMap<Dimension<?>> ID_TO_DIMENSION = new Int2ObjectArrayMap<>();
2020-02-26 09:23:01 +00:00
}