diff --git a/common/src/main/java/common/dimension/Domain.java b/common/src/main/java/common/dimension/Domain.java index 514039e0..c8ae1bf5 100755 --- a/common/src/main/java/common/dimension/Domain.java +++ b/common/src/main/java/common/dimension/Domain.java @@ -1,22 +1,13 @@ package common.dimension; -import java.util.Set; - -import common.collect.Sets; - public final class Domain extends Nameable implements Comparable { public final String id; - private final Set areas = Sets.newHashSet(); public Domain(String id, boolean custom) { super(custom); this.id = id; } - public void addArea(Area area) { - this.areas.add(area); - } - public int compareTo(Domain other) { return other == null ? -1 : this.id.compareTo(other.id); } diff --git a/common/src/main/java/common/dimension/Galaxy.java b/common/src/main/java/common/dimension/Galaxy.java index 3be4943c..1274ddaf 100755 --- a/common/src/main/java/common/dimension/Galaxy.java +++ b/common/src/main/java/common/dimension/Galaxy.java @@ -1,22 +1,13 @@ package common.dimension; -import java.util.Set; - -import common.collect.Sets; - public final class Galaxy extends Nameable implements Comparable { public final String id; - private final Set sectors = Sets.newTreeSet(); public Galaxy(String id, boolean custom) { super(custom); this.id = id; } - public void addSector(Sector sector) { - this.sectors.add(sector); - } - public int compareTo(Galaxy other) { return other == null ? -1 : this.id.compareTo(other.id); } diff --git a/common/src/main/java/common/dimension/Planet.java b/common/src/main/java/common/dimension/Planet.java index aeb9b305..617c8ed4 100755 --- a/common/src/main/java/common/dimension/Planet.java +++ b/common/src/main/java/common/dimension/Planet.java @@ -1,12 +1,9 @@ package common.dimension; import java.util.List; -import common.collect.Lists; import common.init.UniverseRegistry; public final class Planet extends Dimension { - private final List moons = Lists.newArrayList(); - Planet() { super(true); } @@ -34,10 +31,6 @@ public final class Planet extends Dimension { this.setSkyColor(sky).setFogColor(fog).setCloudColor(clouds); } - public void addMoon(Moon moon) { - this.moons.add(moon); - } - public final DimType getType() { return DimType.PLANET; } @@ -48,9 +41,10 @@ public final class Planet extends Dimension { } protected int[] calcMoonColors() { - int[] colors = new int[this.moons.size()]; + List moons = UniverseRegistry.getMoons(this); + int[] colors = new int[moons.size()]; for(int z = 0; z < colors.length; z++) { - colors[z] = this.moons.get(z).getSkyColor() | (this.moons.get(z).isExterminated() ? 0x80000000 : 0); + colors[z] = moons.get(z).getSkyColor() | (moons.get(z).isExterminated() ? 0x80000000 : 0); } return colors; } diff --git a/common/src/main/java/common/dimension/Sector.java b/common/src/main/java/common/dimension/Sector.java index 0b3847d1..3a068edd 100755 --- a/common/src/main/java/common/dimension/Sector.java +++ b/common/src/main/java/common/dimension/Sector.java @@ -1,22 +1,13 @@ package common.dimension; -import java.util.Set; - -import common.collect.Sets; - public final class Sector extends Nameable implements Comparable { public final String id; - private final Set stars = Sets.newHashSet(); public Sector(String id, boolean custom) { super(custom); this.id = id; } - public void addStar(Star star) { - this.stars.add(star); - } - public int compareTo(Sector other) { return other == null ? -1 : this.id.compareTo(other.id); } diff --git a/common/src/main/java/common/dimension/Star.java b/common/src/main/java/common/dimension/Star.java index 5e9d74e3..2bffaf7e 100755 --- a/common/src/main/java/common/dimension/Star.java +++ b/common/src/main/java/common/dimension/Star.java @@ -1,13 +1,8 @@ package common.dimension; -import java.util.Set; - -import common.collect.Sets; import common.world.State; public final class Star extends Dimension { - private final Set planets = Sets.newHashSet(); - Star() { super(true); } @@ -20,105 +15,7 @@ public final class Star extends Dimension { this.setSkyColor(color).setFogColor(color).setFlatGen(surface, height); } - public void addPlanet(Planet planet) { - this.planets.add(planet); - } - public final DimType getType() { return DimType.STAR; } - -// public final ChunkGenerator createChunkGenerator(Random rand) { -// return new GeneratorFlat(this.getHeight(), this.getFiller()); -// } -// -// public final BlockReplacer createBlockReplacer(Random rand) { -// return null; -// } -// -// public float getGravity() { -// return 4.0f; -// } -// -// public final long getOrbitalPeriod() { -// return 1L; -// } -// -// public final long getRotationalPeriod() { -// return 1L; -// } -// -// public final float getOrbitOffset() { -// return 0.0f; -// } -// -// -// public Biome getBiome() { -// return Biome.star; -// } -// -// public final IBlockState getCaveFiller() { -// return Blocks.air.getDefaultState(); -// } -// -// public final IBlockState getTop() { -// return Blocks.air.getDefaultState(); -// } -// -// public final IBlockState getSurface() { -// return Blocks.air.getDefaultState(); -// } -// -// public final IBlockState getAltFiller() { -// return Blocks.air.getDefaultState(); -// } -// -// public final IBlockState getLavaFiller() { -// return null; -// } -// -// public final IBlockState getWorldFloor() { -// return null; -// } -// -// public final boolean hasRavines() { -// return false; -// } -// -// public final boolean hasSnow() { -// return false; -// } -// -// public final boolean hasCaves() { -// return false; -// } -// -// public final float getLavaChance() { -// return 0.0f; -// } -// -// public final float getWaterChance() { -// return 0.0f; -// } -// -// public final boolean hasDungeons() { -// return false; -// } -// -// public final IBlockState getSurfaceLiquid() { -// return Blocks.air.getDefaultState(); -// } -// -// -// public int getBrightness() { -// return 15; -// } -// -// public float getStarBrightness() { -// return 0.75f; -// } -// -// public float getDeepStarBrightness() { -// return 0.75f; -// } } diff --git a/common/src/main/java/common/init/UniverseRegistry.java b/common/src/main/java/common/init/UniverseRegistry.java index 0769cb2c..92f930d6 100755 --- a/common/src/main/java/common/init/UniverseRegistry.java +++ b/common/src/main/java/common/init/UniverseRegistry.java @@ -36,12 +36,17 @@ public abstract class UniverseRegistry { private static final Map SECTORS = Maps.newHashMap(); private static final Map GALAXIES = Maps.newHashMap(); private static final Map DOMAINS = Maps.newHashMap(); - + private static final Map MOON_MAP = Maps.newHashMap(); + private static final Map> MOONS_MAP = Maps.newHashMap(); private static final Map PLANET_MAP = Maps.newHashMap(); + private static final Map> PLANETS_MAP = Maps.newHashMap(); private static final Map STAR_MAP = Maps.newHashMap(); + private static final Map> STARS_MAP = Maps.newHashMap(); private static final Map SECTOR_MAP = Maps.newHashMap(); + private static final Map> SECTORS_MAP = Maps.newHashMap(); private static final Map AREA_MAP = Maps.newHashMap(); + private static final Map> AREAS_MAP = Maps.newHashMap(); private static final Set SEMI_SET = Sets.newHashSet(); public static List getDimensions() { @@ -80,6 +85,26 @@ public abstract class UniverseRegistry { return SEMI_SET; } + public static List getSectors(Galaxy galaxy) { + return SECTORS_MAP.get(galaxy); + } + + public static List getStars(Sector sector) { + return STARS_MAP.get(sector); + } + + public static List getPlanets(Star star) { + return PLANETS_MAP.get(star); + } + + public static List getMoons(Planet planet) { + return MOONS_MAP.get(planet); + } + + public static List getAreas(Domain domain) { + return AREAS_MAP.get(domain); + } + public static Dimension getDimension(int dim) { return ID_MAP.get(dim); } @@ -188,6 +213,7 @@ public abstract class UniverseRegistry { Galaxy galaxy = new Galaxy(name, custom); galaxy.setCustomName(display); GALAXIES.put(name, galaxy); + SECTORS_MAP.put(galaxy, Lists.newArrayList()); return galaxy; } @@ -204,7 +230,8 @@ public abstract class UniverseRegistry { sector.setCustomName(display); SECTORS.put(name, sector); SECTOR_MAP.put(sector, base); - base.addSector(sector); + STARS_MAP.put(sector, Lists.newArrayList()); + SECTORS_MAP.get(base).add(sector); return sector; } @@ -217,6 +244,7 @@ public abstract class UniverseRegistry { Domain domain = new Domain(name, custom); domain.setCustomName(display); DOMAINS.put(name, domain); + AREAS_MAP.put(domain, Lists.newArrayList()); return domain; } @@ -241,7 +269,8 @@ public abstract class UniverseRegistry { throw new IllegalArgumentException("Sektor " + sector + " existiert nicht"); registerDimension(name, display, dim); STAR_MAP.put((Star)dim, base); - base.addStar((Star)dim); + PLANETS_MAP.put((Star)dim, Lists.newArrayList()); + STARS_MAP.get(base).add((Star)dim); } private static void registerPlanet(String name, String display, Dimension dim, String star) { @@ -250,7 +279,8 @@ public abstract class UniverseRegistry { throw new IllegalArgumentException("Stern " + star + " existiert nicht"); registerDimension(name, display, dim); PLANET_MAP.put((Planet)dim, ((Star)base)); - ((Star)base).addPlanet((Planet)dim); + MOONS_MAP.put((Planet)dim, Lists.newArrayList()); + PLANETS_MAP.get((Star)base).add((Planet)dim); } private static void registerMoon(String name, String display, Dimension dim, String planet) { @@ -259,7 +289,7 @@ public abstract class UniverseRegistry { throw new IllegalArgumentException("Planet " + planet + " existiert nicht"); registerDimension(name, display, dim); MOON_MAP.put((Moon)dim, ((Planet)base)); - ((Planet)base).addMoon((Moon)dim); + MOONS_MAP.get((Planet)base).add((Moon)dim); } private static void registerArea(String name, String display, Dimension dim, String domain) { @@ -268,7 +298,7 @@ public abstract class UniverseRegistry { throw new IllegalArgumentException("Bereich " + domain + " existiert nicht"); registerDimension(name, display, dim); AREA_MAP.put((Area)dim, base); - base.addArea((Area)dim); + AREAS_MAP.get(base).add((Area)dim); } private static void registerSemi(String name, String display, Dimension dim) {