diff --git a/client/src/client/Client.java b/client/src/client/Client.java index e1b1490..3547751 100755 --- a/client/src/client/Client.java +++ b/client/src/client/Client.java @@ -95,7 +95,7 @@ import client.window.Wheel; import client.window.Window; import client.window.WindowEvent; import client.world.WorldClient; -import common.biome.Biome; +import common.biome.BaseBiome; import common.block.Block; import common.collect.Lists; import common.collect.Maps; @@ -116,6 +116,7 @@ import common.init.ItemRegistry; import common.init.Items; import common.init.Registry; import common.init.SoundEvent; +import common.init.UniverseRegistry; import common.inventory.InventoryPlayer; import common.item.Item; import common.item.ItemBlock; @@ -1728,7 +1729,7 @@ public class Client implements IThreadListener { break; } - Biome biome = null; + BaseBiome biome = null; String bline; String lline; if(this.world.isBlockLoaded(blockpos)) { @@ -2638,6 +2639,7 @@ public class Client implements IThreadListener { Window.init(); ModelBlock.setAsProvider(); Registry.setup("Render thread"); + UniverseRegistry.register(); CLIENT.run(); Window.end(); } diff --git a/client/src/client/renderer/EntityRenderer.java b/client/src/client/renderer/EntityRenderer.java index 9e5bf48..0e7be20 100755 --- a/client/src/client/renderer/EntityRenderer.java +++ b/client/src/client/renderer/EntityRenderer.java @@ -14,7 +14,7 @@ import client.renderer.particle.EffectRenderer; import client.renderer.texture.DynamicTexture; import client.renderer.texture.TextureMap; import client.world.WorldClient; -import common.biome.Biome; +import common.biome.BaseBiome; import common.block.Block; import common.entity.Entity; import common.entity.npc.EntityNPC; @@ -1144,7 +1144,7 @@ public class EntityRenderer { for (int l = 0; l < k; ++l) { BlockPos blockpos1 = world.getPrecipitationHeight(blockpos.add(this.random.zrange(i) - this.random.zrange(i), 0, this.random.zrange(i) - this.random.zrange(i))); - Biome biomegenbase = world.getBiomeGenForCoords(blockpos1); + BaseBiome biomegenbase = world.getBiomeGenForCoords(blockpos1); BlockPos blockpos2 = blockpos1.down(); Block block = world.getState(blockpos2).getBlock(); float temp = World.ABSOLUTE_ZERO + world.getTempOffset() + biomegenbase.getTemperature(blockpos1); @@ -1253,7 +1253,7 @@ public class EntityRenderer { double d3 = (double)this.rainXCoords[i2] * 0.5D; double d4 = (double)this.rainYCoords[i2] * 0.5D; blockpos$mutableblockpos.set(l1, 0, k1); - Biome biomegenbase = world.getBiomeGenForCoords(blockpos$mutableblockpos); + BaseBiome biomegenbase = world.getBiomeGenForCoords(blockpos$mutableblockpos); // if (biomegenbase.canRain() || biomegenbase.isSnowyBiome()) // { diff --git a/client/src/client/renderer/RegionRenderCache.java b/client/src/client/renderer/RegionRenderCache.java index 635a77a..f5157cc 100755 --- a/client/src/client/renderer/RegionRenderCache.java +++ b/client/src/client/renderer/RegionRenderCache.java @@ -2,7 +2,7 @@ package client.renderer; import java.util.Arrays; -import common.biome.Biome; +import common.biome.BaseBiome; import common.init.Blocks; import common.tileentity.TileEntity; import common.util.BlockPos; @@ -125,7 +125,7 @@ public class RegionRenderCache extends ChunkCache implements IWorldAccess return i << 20 | j << 4; } - public Biome getBiomeGenForCoords(BlockPos pos) + public BaseBiome getBiomeGenForCoords(BlockPos pos) { return this.worldObj.getBiomeGenForCoords(pos); } diff --git a/client/src/client/world/WorldClient.java b/client/src/client/world/WorldClient.java index a38b356..497f744 100755 --- a/client/src/client/world/WorldClient.java +++ b/client/src/client/world/WorldClient.java @@ -6,7 +6,7 @@ import java.util.Set; import client.Client; import client.renderer.particle.EntityFX; import client.renderer.particle.EntityFirework; -import common.biome.Biome; +import common.biome.BaseBiome; import common.block.Block; import common.collect.Lists; import common.collect.Sets; @@ -759,10 +759,10 @@ public class WorldClient extends AWorldClient public Vec3 getSkyColor(Entity entity, float partial) { BlockPos pos = new BlockPos(ExtMath.floord(entity.posX), ExtMath.floord(entity.posY), ExtMath.floord(entity.posZ)); - Biome biome = this.getBiomeGenForCoords(pos); + BaseBiome biome = this.getBiomeGenForCoords(pos); Vec3 vec; - if(biome.getSkyColor() != 0xffffffff) - vec = new Vec3(biome.getSkyColor()); + if(biome.skyColor != 0xffffffff) + vec = new Vec3(biome.skyColor); else vec = new Vec3(this.dimension.getSkyColor()); if(this.dimension.getType().days) { @@ -815,10 +815,10 @@ public class WorldClient extends AWorldClient public Vec3 getCloudColour(Entity entity, float partialTicks) { Vec3 color = new Vec3(this.dimension.getCloudColor()); - Biome biome = this.getBiomeGenForCoords(new BlockPos(ExtMath.floord(entity.posX), ExtMath.floord(entity.posY), + BaseBiome biome = this.getBiomeGenForCoords(new BlockPos(ExtMath.floord(entity.posX), ExtMath.floord(entity.posY), ExtMath.floord(entity.posZ))); - if(biome.getCloudColor() != 0xffffffff) - color = new Vec3(biome.getCloudColor()); + if(biome.cloudColor != 0xffffffff) + color = new Vec3(biome.cloudColor); float r = (float)color.xCoord; float g = (float)color.yCoord; float b = (float)color.zCoord; @@ -854,10 +854,10 @@ public class WorldClient extends AWorldClient public Vec3 getFogColor(Entity entity, float partialTicks) { Vec3 color = new Vec3(this.dimension.getFogColor()); - Biome biome = this.getBiomeGenForCoords(new BlockPos(ExtMath.floord(entity.posX), ExtMath.floord(entity.posY), + BaseBiome biome = this.getBiomeGenForCoords(new BlockPos(ExtMath.floord(entity.posX), ExtMath.floord(entity.posY), ExtMath.floord(entity.posZ))); - if(biome.getFogColor() != 0xffffffff) - color = new Vec3(biome.getFogColor()); + if(biome.fogColor != 0xffffffff) + color = new Vec3(biome.fogColor); if(!this.dimension.getType().days) return color; float sun = ExtMath.clampf(ExtMath.cos(this.getCelestialAngle(partialTicks) * (float)Math.PI * 2.0F) * 2.0F + 0.5F, diff --git a/common/src/common/biome/BaseBiome.java b/common/src/common/biome/BaseBiome.java index 91c6a43..c2de8dd 100644 --- a/common/src/common/biome/BaseBiome.java +++ b/common/src/common/biome/BaseBiome.java @@ -1,6 +1,96 @@ package common.biome; -public abstract class BaseBiome { +import java.util.List; +import java.util.Map; + +import common.collect.Lists; +import common.collect.Maps; +import common.color.Colorizer; +import common.log.Log; +import common.rng.PerlinGen; +import common.rng.Random; +import common.util.BlockPos; +import common.util.ExtMath; + +public enum BaseBiome { + NONE(0, "none", "", 0x000000), + PLAINS(1, "plains", "Ebene", 0x8db360, 12.0f, 40.0f), + DESERT(2, "desert", "Wüste", 0xfa9418, 60.0f, 0.0f), + EXTREMEHILLS(3, "extremeHills", "Extremes Bergland", 0x606060, -12.0f, 30.0f), + FOREST(4, "forest", "Wald", 0x056621, 8.0f, 80.0f), + TAIGA(5, "taiga", "Taiga", 0x0b6659, -10.0f, 80.0f), + SWAMPLAND(6, "swampland", "Sumpf", 0x07f9b2, 12.0f, 90.0f, 0xe0ffae, 0xffffffff, 6975545), + RIVER(7, "river", "Fluss", 0x0000ff), + EXTERMINATED(8, "exterminated", "Ausgelöscht", 0x000000, 150.0f, 0.0f, 0x202020, 0x303030, 0x303030, 0x101010, 0x303030, 0x000000), + SPACE(9, "space", "Leere des Weltraums", 0x000000, 0.0f, 0.0f), + FROZENSEA(10, "frozenSea", "Vereister See", 0x9090a0, -20.0f), + FROZENRIVER(11, "frozenRiver", "Vereister Fluss", 0xa0a0ff, -20.0f), + ICEPLAINS(12, "icePlains", "Eisebene", 0xffffff, -20.0f), + ICEMOUNTAINS(13, "iceMountains", "Vereistes Bergland", 0xa0a0a0, -20.0f), + MUSHROOMPLAINS(14, "mushroomPlains", "Pilzland", 0xff00ff, 16.0f, 100.0f), + BLACKENED(15, "blackened", "Schwarz", 0x000000, 0.0f, 0.0f), + BEACH(16, "beach", "Strand", 0xfade55, 12.0f, 40.0f), + DESERTHILLS(17, "desertHills", "Wüsten-Bergland", 0xd25f12, 60.0f, 0.0f), + FORESTHILLS(18, "forestHills", "Wald-Bergland", 0x22551c, 8.0f, 80.0f), + TAIGAHILLS(19, "taigaHills", "Taiga-Bergland", 0x163933, -10.0f, 80.0f), + EXTREMEHILLSEDGE(20, "extremeHillsEdge", "Extremes Bergland Gr.", 0x72789a, -12.0f, 30.0f), + JUNGLE(21, "jungle", "Urwald", 0x537b09, 18.0f, 90.0f), + JUNGLEHILLS(22, "jungleHills", "Urwald-Bergland", 0x2c4205, 18.0f, 90.0f), + JUNGLEEDGE(23, "jungleEdge", "Urwald Gr.", 0x628b17, 18.0f, 80.0f), + SEA(24, "sea", "See", 0x000070), + STONEBEACH(25, "stoneBeach", "Steinstrand", 0xa2a284, -12.0f, 30.0f), + COLDBEACH(26, "coldBeach", "Vereister Strand", 0xfaf0c0, -18.0f, 30.0f), + BIRCHFOREST(27, "birchForest", "Birkenwald", 0x307444, 4.0f, 60.0f), + BIRCHFORESTHILLS(28, "birchForestHills", "Birkenwald-Bergland", 0x1f5f32, 4.0f, 60.0f), + ROOFEDFOREST(29, "roofedForest", "Dichter Wald", 0x40511a, 8.0f, 80.0f), + COLDTAIGA(30, "coldTaiga", "Vereiste Taiga", 0x31554a, -40.0f, 40.0f), + COLDTAIGAHILLS(31, "coldTaigaHills", "Vereistes Taiga-Bergland", 0x243f36, -40.0f, 40.0f), + MEGATAIGA(32, "megaTaiga", "Hohe Taiga", 0x596651, -8.0f, 80.0f), + MEGATAIGAHILLS(33, "megaTaigaHills", "Hohes Taiga-Bergland", 0x454f3e, -8.0f, 80.0f), + EXTREMEHILLSPLUS(34, "extremeHillsPlus", "Extremes Bergland +", 0x507050, -12.0f, 30.0f), + SAVANNA(35, "savanna", "Savanne", 0xbdb25f, 28.0f, 0.0f), + SAVANNAPLATEAU(36, "savannaPlateau", "Savannen-Plateau", 0xa79d64, 20.0f, 0.0f), + MESA(37, "mesa", "Mesa", 0xd94515, 0.0f, 0.0f, 0xffffff, 9470285, 10387789), + MESAPLATEAUF(38, "mesaPlateauF", "Mesa-Waldplateau", 0xb09765, 0.0f, 0.0f, 0xffffff, 9470285, 10387789), + MESAPLATEAU(39, "mesaPlateau", "Mesa-Plateau", 0xca8c65, 0.0f, 0.0f, 0xffffff, 9470285, 10387789), + SNOWLAND(40, "snowLand", "Eisland", 0xffffff, 0.0f, 100.0f), + TIAN(41, "tian", "Tian", 0x808080, 0.0f, 80.0f), + ELVENFOREST(42, "elvenForest", "Elbenwald", 0x059821, 8.0f, 90.0f), + UPPERHELL(43, "upperHell", "Übergang in die Hölle", 0xff0000, 0.0f, 0.0f, 0x000000, 0x000000, 0x000000), + LOWERHELL(44, "lowerHell", "Abgrund der Hölle", 0xff0000, 0.0f, 0.0f, 0x000000, 0x000000, 0x000000), + HELLHILLS(45, "hellHills", "Bergland der Hölle", 0xff0000, 0.0f, 0.0f, 0x000000, 0x000000, 0x000000), + SOULPLAINS(46, "soulPlains", "Seelenland", 0xff0000, 0.0f, 0.0f, 0x000000, 0x000000, 0x000000), + ASHLAND(47, "ashLand", "Verbrannt", 0xff0000, 0.0f, 0.0f, 0x000000, 0x000000, 0x000000), + MOON(48, "moon", "Mondoberfläche", 0xa0a0a0, 0.0f, 0.0f), + CHAOS(49, "chaos", "Chaos", 0xff00ff), + + DESERTM(130, "desertM", "Wüste M", 0xfa9418, 60.0f, 0.0f), + EXTREMEHILLSM(131, "extremeHillsM", "Extremes Bergland M", 0x606060, -12.0f, 30.0f), + FLOWERFOREST(132, "flowerForest", "Blumenwald", 0x6a7425, 8.0f, 80.0f), + TAIGAM(133, "taigaM", "Taiga M", 0x0b6659, -10.0f, 80.0f), + SWAMPLANDM(134, "swamplandM", "Sumpf M", 0x07f9b2, 12.0f, 90.0f, 0xe0ffae, 0xffffffff, 6975545), + ICEPLAINSSPIKES(140, "icePlainsSpikes", "Eisebene + Spitzen", 0xd2ffff, -20.0f), + JUNGLEM(149, "jungleM", "Urwald M", 0x537b09, 18.0f, 90.0f), + JUNGLEEDGEM(151, "jungleEdgeM", "Urwald Gr. M", 0x628b17, 18.0f, 80.0f), + BIRCHFORESTM(155, "birchForestM", "Birkenwald M", 0x307444, 4.0f, 60.0f), + BIRCHFORESTHILLSM(156, "birchForestHillsM", "Birkenwald-Bergland M", 0x1f5f32, 4.0f, 60.0f), + ROOFEDFORESTM(157, "roofedForestM", "Dichter Wald M", 0x40511a, 8.0f, 80.0f), + COLDTAIGAM(158, "coldTaigaM", "Vereiste Taiga M", 0x31554a, -40.0f, 40.0f), + MEGASPRUCETAIGA(160, "megaSpruceTaiga", "Hohe Fichtentaiga", 0x596651, -10.0f, 80.0f), + REDWOODTAIGAHILLSM(161, "redwoodTaigaHillsM", "Mammutbaumtaiga", 0x596651, -10.0f, 80.0f), + EXTREMEHILLSPLUSM(162, "extremeHillsPlusM", "Extremes Bergland + M", 0x507050, -12.0f, 30.0f), + SAVANNAM(163, "savannaM", "Savanne M", 0xbdb25f, 24.0f, 0.0f), + SAVANNAPLATEAUM(164, "savannaPlateauM", "Savannen-Plateau M", 0xa79d64, 20.0f, 0.0f), + MESABRYCE(165, "mesaBryce", "Mesa (Bryce)", 0xd94515, 0.0f, 0.0f, 0xffffff, 9470285, 10387789), + MESAPLATEAUFM(166, "mesaPlateauFM", "Mesa-Waldplateau M", 0xb09765, 0.0f, 0.0f, 0xffffff, 9470285, 10387789), + MESAPLATEAUM(167, "mesaPlateauM", "Mesa-Plateau M", 0xca8c65, 0.0f, 0.0f, 0xffffff, 9470285, 10387789); + + public static final BaseBiome DEF_BIOME = FOREST; + private static final PerlinGen TEMP_NOISE = new PerlinGen(new Random(1234L), 1); + private static final PerlinGen COLOR_NOISE = new PerlinGen(new Random(2345L), 1); + private static final BaseBiome[] BIOMES = new BaseBiome[256]; + private static final Map LOOKUP = Maps.newTreeMap(); + public final int id; public final String name; public final String display; @@ -8,11 +98,68 @@ public abstract class BaseBiome { public final float temperature; public final float humidity; public final int waterColor; + public final int grassColor; + public final int foliageColor; public final int skyColor; public final int fogColor; public final int cloudColor; + + static { + for(BaseBiome biome : values()) { + BIOMES[biome.id] = biome; + if(LOOKUP.containsKey(biome.name.toLowerCase())) + throw new IllegalStateException("Biom \"" + biome.name + "\" ist als ID " + LOOKUP.get(biome.name.toLowerCase()).id + " und " + biome.id + " definiert"); + LOOKUP.put(biome.name.toLowerCase(), biome); + } + } + + public static BaseBiome getBiome(int id) + { + if (id >= 0 && id < BIOMES.length) + { + return BIOMES[id]; + } + else + { + Log.JNI.warn("Biom-ID ist nicht im Bereich: " + id + ", verwende " + DEF_BIOME.id + " (" + DEF_BIOME.name + ")"); + return DEF_BIOME; + } + } - private BaseBiome(int id, String name, String display, int color, float temperature, float humidity, int waterColor, int skyColor, int fogColor, int cloudColor) { + public static BaseBiome getBiomeDef(int id) + { + if (id >= 0 && id < BIOMES.length) + { + BaseBiome biome = BIOMES[id]; + return biome == null ? DEF_BIOME : biome; + } + else + { + Log.JNI.warn("Biom-ID ist nicht im Bereich: " + id + ", verwende " + DEF_BIOME.id + " (" + DEF_BIOME.name + ")"); + return DEF_BIOME; + } + } + + public static List getBiomeNames() { + return Lists.newArrayList(LOOKUP.keySet()); + } + + public static BaseBiome findByName(String name) { + BaseBiome biome = LOOKUP.get(name.toLowerCase().replace(" ", "").replace("_", "")); + if(biome == null) { + int z; + try { + z = Integer.parseInt(name); + } + catch(NumberFormatException e) { + return DEF_BIOME; + } + return z < 0 || z >= BIOMES.length || BIOMES[z] == null ? DEF_BIOME : BIOMES[z]; + } + return biome; + } + + private BaseBiome(int id, String name, String display, int color, float temperature, float humidity, int waterColor, int grassColor, int foliageColor, int skyColor, int fogColor, int cloudColor) { this.id = id; this.name = name; this.display = display; @@ -20,28 +167,69 @@ public abstract class BaseBiome { this.humidity = humidity; this.color = color; this.waterColor = waterColor; + this.grassColor = grassColor; + this.foliageColor = foliageColor; this.skyColor = skyColor; this.fogColor = fogColor; this.cloudColor = cloudColor; } - private BaseBiome(int id, String name, String display, int color, float temperature, float humidity, int waterColor) { - this(id, name, display, color, temperature, humidity, waterColor, 0xffffffff, 0xffffffff, 0xffffffff); - } - - private BaseBiome(int id, String name, String display, int color, float temperature, float humidity, int skyColor, int fogColor, int cloudColor) { - this(id, name, display, color, temperature, humidity, 0xffffff, skyColor, fogColor, cloudColor); + private BaseBiome(int id, String name, String display, int color, float temperature, float humidity, int waterColor, int grassColor, int foliageColor) { + this(id, name, display, color, temperature, humidity, waterColor, grassColor, foliageColor, 0xffffffff, 0xffffffff, 0xffffffff); } private BaseBiome(int id, String name, String display, int color, float temperature, float humidity) { - this(id, name, display, color, temperature, humidity, 0xffffff, 0xffffffff, 0xffffffff, 0xffffffff); + this(id, name, display, color, temperature, humidity, 0xffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff); } private BaseBiome(int id, String name, String display, int color, float temperature) { - this(id, name, display, color, temperature, 50.0f, 0xffffff, 0xffffffff, 0xffffffff, 0xffffffff); + this(id, name, display, color, temperature, 50.0f, 0xffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff); } private BaseBiome(int id, String name, String display, int color) { - this(id, name, display, color, 0.0f, 50.0f, 0xffffff, 0xffffffff, 0xffffffff, 0xffffffff); + this(id, name, display, color, 0.0f, 50.0f, 0xffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff); + } + + public final float getTemperature(BlockPos pos) { + if(pos.getY() > 64) { + float f = (float)(TEMP_NOISE.generate((double)pos.getX() * 1.0D / 8.0D, (double)pos.getZ() * 1.0D / 8.0D) * 4.0D); + return this.temperature - (f + (float)pos.getY() - 64.0F) / 15.0f; + } + return this.temperature; + } + + public float getFactor() { + float f = this.humidity * 0.01f * ((this.temperature + 14.0f) / 40.0f + 0.15f); + return f > 1.0f ? 1.0f : f; + } + + public boolean isHighHumidity() { + return this.humidity > 85.0f; + } + + // skycolor = ((temp + 14) / 40 + 0.15) / 3 + + public int getGrassColorAtPos(BlockPos pos) { + if(this.grassColor != 0xffffffff) + return this.grassColor; + if(this == SWAMPLAND || this == SWAMPLANDM) { + double d0 = COLOR_NOISE.generate((double)pos.getX() * 0.0225D, (double)pos.getZ() * 0.0225D); + return d0 < -0.1D ? 5011004 : 6975545; + } + if(this == ELVENFOREST) + return Colorizer.getGrassColor(1.0f, this.humidity * 0.01f); + double d0 = (double)ExtMath.clampf((this.getTemperature(pos) + 14.0f) / 40.0f + 0.15f, 0.0F, 1.0F); + double d1 = (double)ExtMath.clampf(this.humidity * 0.01f, 0.0F, 1.0F); + return this == ROOFEDFOREST || this == ROOFEDFORESTM ? (Colorizer.getGrassColor(d0, d1) & 16711422) + 2634762 >> 1 : Colorizer.getGrassColor(d0, d1); + } + + public int getFoliageColorAtPos(BlockPos pos) { + if(this.foliageColor != 0xffffffff) + return this.foliageColor; + if(this == ELVENFOREST) + return Colorizer.getFoliageColor(1.0f, this.humidity * 0.01f); + double d0 = (double)ExtMath.clampf((this.getTemperature(pos) + 14.0f) / 40.0f + 0.15f, 0.0F, 1.0F); + double d1 = (double)ExtMath.clampf(this.humidity * 0.01f, 0.0F, 1.0F); + return Colorizer.getFoliageColor(d0, d1); } } diff --git a/common/src/common/biome/BiomeExterminated.java b/common/src/common/biome/BiomeExterminated.java deleted file mode 100755 index f944a55..0000000 --- a/common/src/common/biome/BiomeExterminated.java +++ /dev/null @@ -1,33 +0,0 @@ -package common.biome; - -import common.init.Blocks; -import common.rng.Random; -import common.rng.WeightedList; -import common.util.BlockPos; -import common.world.AWorldServer; - -public class BiomeExterminated extends Biome { - public BiomeExterminated(int id) { - super(id); - this.topBlock = Blocks.air.getState(); - this.fillerBlock = Blocks.air.getState(); - } - - protected void addMobs(WeightedList mobs) { - } - - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) { - } - - public int getSkyColor() { - return 0x101010; - } - - public int getFogColor() { - return 0x303030; - } - - public int getCloudColor() { - return 0x000000; - } -} diff --git a/common/src/common/biome/IBiome.java b/common/src/common/biome/IBiome.java new file mode 100644 index 0000000..c46503f --- /dev/null +++ b/common/src/common/biome/IBiome.java @@ -0,0 +1,47 @@ +package common.biome; + +import common.init.BlockRegistry; +import common.rng.Random; +import common.util.BlockPos; +import common.world.AWorldServer; +import common.world.State; + +public interface IBiome { + public static abstract class BiomeProvider { + private static BiomeProvider provider = new BiomeProvider() { + public IBiome getBiome(BaseBiome base) { + return new IBiome() { + public State getFiller() { + return BlockRegistry.getRegisteredBlock("air").getState(); + } + public State getTop() { + return BlockRegistry.getRegisteredBlock("air").getState(); + } + public void growGrass(AWorldServer worldIn, BlockPos pos, State state, Random rand) { + } + public boolean generateBigMushroom(AWorldServer worldIn, BlockPos pos, State state, Random rand) { + return false; + } + public void generateTree(AWorldServer worldIn, BlockPos pos, State state, Random rand) { + } + }; + } + }; + + public abstract IBiome getBiome(BaseBiome base); + } + + public static void setProvider(BiomeProvider provider) { + BiomeProvider.provider = provider; + } + + public static IBiome getBiome(BaseBiome base) { + return BiomeProvider.provider.getBiome(base); + } + + void growGrass(AWorldServer worldIn, BlockPos pos, State state, Random rand); + boolean generateBigMushroom(AWorldServer worldIn, BlockPos pos, State state, Random rand); + void generateTree(AWorldServer worldIn, BlockPos pos, State state, Random rand); + State getFiller(); + State getTop(); +} \ No newline at end of file diff --git a/common/src/common/block/BlockGrass.java b/common/src/common/block/BlockGrass.java index 440a2b0..2f1ddcf 100755 --- a/common/src/common/block/BlockGrass.java +++ b/common/src/common/block/BlockGrass.java @@ -1,5 +1,6 @@ package common.block; +import common.biome.IBiome; import common.color.Colorizer; import common.init.Blocks; import common.init.Config; @@ -113,54 +114,7 @@ public class BlockGrass extends Block implements IGrowable public void grow(AWorldServer worldIn, Random rand, BlockPos pos, State state) { - BlockPos blockpos = pos.up(); - - for (int i = 0; i < 128; ++i) - { - BlockPos blockpos1 = blockpos; - int j = 0; - - while (true) - { - if (j >= i / 16) - { - if (worldIn.getState(blockpos1).getBlock().material == Material.air) - { - if (rand.chance(8)) - { - BlockFlower.EnumFlowerType blockflower$enumflowertype = worldIn.getBiomeGenForCoords(blockpos1).pickRandomFlower(rand, blockpos1); - BlockFlower blockflower = blockflower$enumflowertype.getBlockType().getBlock(); - State iblockstate = blockflower.getState().withProperty(blockflower.getTypeProperty(), blockflower$enumflowertype); - - if (blockflower.canBlockStay(worldIn, blockpos1, iblockstate)) - { - worldIn.setState(blockpos1, iblockstate, 3); - } - } - else - { - State iblockstate1 = Blocks.tallgrass.getState().withProperty(BlockTallGrass.TYPE, BlockTallGrass.EnumType.GRASS); - - if (Blocks.tallgrass.canBlockStay(worldIn, blockpos1, iblockstate1)) - { - worldIn.setState(blockpos1, iblockstate1, 3); - } - } - } - - break; - } - - blockpos1 = blockpos1.add(rand.zrange(3) - 1, (rand.zrange(3) - 1) * rand.zrange(3) / 2, rand.zrange(3) - 1); - - if (worldIn.getState(blockpos1.down()).getBlock() != Blocks.grass || worldIn.getState(blockpos1).getBlock().isNormalCube()) - { - break; - } - - ++j; - } - } + IBiome.getBiome(worldIn.getBiomeGenForCoords(pos)).growGrass(worldIn, pos, state, rand); } public BlockLayer getBlockLayer() diff --git a/common/src/common/block/BlockMushroom.java b/common/src/common/block/BlockMushroom.java index 0f11d22..aedd4e5 100755 --- a/common/src/common/block/BlockMushroom.java +++ b/common/src/common/block/BlockMushroom.java @@ -1,5 +1,6 @@ package common.block; +import common.biome.IBiome; import common.init.Blocks; import common.init.Config; import common.model.Model; @@ -9,8 +10,6 @@ import common.util.BlockPos; import common.world.State; import common.world.World; import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; -import common.worldgen.foliage.WorldGenBigMushroom; public class BlockMushroom extends BlockBush implements IGrowable { @@ -86,31 +85,6 @@ public class BlockMushroom extends BlockBush implements IGrowable } } - public boolean generateBigMushroom(AWorldServer worldIn, BlockPos pos, State state, Random rand) - { - worldIn.setBlockToAir(pos); - FeatureGenerator worldgenerator = null; - - if (this == Blocks.brown_mushroom) - { - worldgenerator = new WorldGenBigMushroom(Blocks.brown_mushroom_block); - } - else if (this == Blocks.red_mushroom) - { - worldgenerator = new WorldGenBigMushroom(Blocks.red_mushroom_block); - } - - if (worldgenerator != null && worldgenerator.generate(worldIn, rand, pos)) - { - return true; - } - else - { - worldIn.setState(pos, state, 3); - return false; - } - } - /** * Whether this IGrowable can grow */ @@ -126,7 +100,7 @@ public class BlockMushroom extends BlockBush implements IGrowable public void grow(AWorldServer worldIn, Random rand, BlockPos pos, State state) { - this.generateBigMushroom(worldIn, pos, state, rand); + IBiome.getBiome(worldIn.getBiomeGenForCoords(pos)).generateBigMushroom(worldIn, pos, state, rand); } public Model getModel(ModelProvider provider, String name, State state) { diff --git a/common/src/common/block/BlockSapling.java b/common/src/common/block/BlockSapling.java index d612805..f03ba37 100755 --- a/common/src/common/block/BlockSapling.java +++ b/common/src/common/block/BlockSapling.java @@ -2,6 +2,7 @@ package common.block; import java.util.List; +import common.biome.IBiome; import common.collect.Lists; import common.init.Blocks; import common.init.Config; @@ -16,15 +17,6 @@ import common.util.BlockPos; import common.world.State; import common.world.World; import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; -import common.worldgen.tree.WorldGenBaseTree; -import common.worldgen.tree.WorldGenBigTree; -import common.worldgen.tree.WorldGenBirch; -import common.worldgen.tree.WorldGenDarkOak; -import common.worldgen.tree.WorldGenJungle; -import common.worldgen.tree.WorldGenPine; -import common.worldgen.tree.WorldGenSavanna; -import common.worldgen.tree.WorldGenTaiga2; public class BlockSapling extends BlockBush implements IGrowable { @@ -79,158 +71,10 @@ public class BlockSapling extends BlockBush implements IGrowable } else { - this.generateTree(worldIn, pos, state, rand); + IBiome.getBiome(worldIn.getBiomeGenForCoords(pos)).generateTree(worldIn, pos, state, rand); } } - public void generateTree(AWorldServer worldIn, BlockPos pos, State state, Random rand) - { - WoodType type = state.getBlock() instanceof BlockSapling ? ((BlockSapling)state.getBlock()).type : WoodType.OAK; - State log = type == WoodType.CHERRY ? Blocks.cherry_log.getState() : // .withProperty(BlockNewLog.VARIANT, BlockPlanks.EnumType.CHERRY) : - (type == WoodType.MAPLE ? Blocks.maple_log.getState() /* .withProperty(BlockNewLog.VARIANT, BlockPlanks.EnumType.MAPLE) */ : Blocks.oak_log.getState()); - State leaves = type == WoodType.CHERRY ? Blocks.cherry_leaves.getState() : - (type == WoodType.MAPLE ? Blocks.maple_leaves.getState() : Blocks.oak_leaves.getState()); - FeatureGenerator worldgenerator = (FeatureGenerator)(rand.chance(10) ? new WorldGenBigTree(true, log, leaves) : new WorldGenBaseTree(true, log, leaves)); - int i = 0; - int j = 0; - boolean flag = false; -// leaves = leaves.withProperty(BlockLeaves.TYPE, worldIn.getLeavesGen()); - - switch (type) - { - case SPRUCE: - label114: - for (i = 0; i >= -1; --i) - { - for (j = 0; j >= -1; --j) - { - if (this.isSameSaplingTypeIn(worldIn, pos, i, j, WoodType.SPRUCE)) - { - worldgenerator = new WorldGenPine(false, rand.chance()); - flag = true; - break label114; - } - } - } - - if (!flag) - { - j = 0; - i = 0; - worldgenerator = new WorldGenTaiga2(true); - } - - break; - - case BIRCH: - worldgenerator = new WorldGenBirch(true, false); - break; - - case TIAN: - worldgenerator = new WorldGenBigTree(true, Blocks.tian_log.getState(), Blocks.tian_leaves.getState()) - .setHeightLimit(6, 20); - break; - - case JUNGLE: - State iblockstate = Blocks.jungle_log.getState(); // .withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.JUNGLE); - State iblockstate1 = Blocks.jungle_leaves.getState(); // .withProperty(BlockOldLeaf.VARIANT, BlockPlanks.EnumType.JUNGLE); // .withProperty(BlockLeaves.CHECK_DECAY, Boolean.valueOf(false)); - label269: - - for (i = 0; i >= -1; --i) - { - for (j = 0; j >= -1; --j) - { - if (this.isSameSaplingTypeIn(worldIn, pos, i, j, WoodType.JUNGLE)) - { - worldgenerator = new WorldGenJungle(true, 10, 20, iblockstate, iblockstate1); - flag = true; - break label269; - } - } - } - - if (!flag) - { - j = 0; - i = 0; - worldgenerator = new WorldGenBaseTree(true, rand.range(4, 10), iblockstate, iblockstate1, false); - } - - break; - - case ACACIA: - worldgenerator = new WorldGenSavanna(true); - break; - - case DARK_OAK: - label390: - for (i = 0; i >= -1; --i) - { - for (j = 0; j >= -1; --j) - { - if (this.isSameSaplingTypeIn(worldIn, pos, i, j, WoodType.DARK_OAK)) - { - worldgenerator = new WorldGenDarkOak(true); - flag = true; - break label390; - } - } - } - - if (!flag) - { - return; - } - - case OAK: - case CHERRY: - case MAPLE: - } - - State iblockstate2 = Blocks.air.getState(); - - if (flag) - { - worldIn.setState(pos.add(i, 0, j), iblockstate2, 4); - worldIn.setState(pos.add(i + 1, 0, j), iblockstate2, 4); - worldIn.setState(pos.add(i, 0, j + 1), iblockstate2, 4); - worldIn.setState(pos.add(i + 1, 0, j + 1), iblockstate2, 4); - } - else - { - worldIn.setState(pos, iblockstate2, 4); - } - - if (!worldgenerator.generate(worldIn, rand, pos.add(i, 0, j))) - { - if (flag) - { - worldIn.setState(pos.add(i, 0, j), state, 4); - worldIn.setState(pos.add(i + 1, 0, j), state, 4); - worldIn.setState(pos.add(i, 0, j + 1), state, 4); - worldIn.setState(pos.add(i + 1, 0, j + 1), state, 4); - } - else - { - worldIn.setState(pos, state, 4); - } - } - } - - private boolean isSameSaplingTypeIn(World worldIn, BlockPos pos, int xOff, int yOff, WoodType type) - { - return this.isTypeAt(worldIn, pos.add(xOff, 0, yOff), type) && this.isTypeAt(worldIn, pos.add(xOff + 1, 0, yOff), type) && this.isTypeAt(worldIn, pos.add(xOff, 0, yOff + 1), type) && this.isTypeAt(worldIn, pos.add(xOff + 1, 0, yOff + 1), type); - } - - /** - * Check whether the given BlockPos has a Sapling of the given type - */ - public boolean isTypeAt(World worldIn, BlockPos pos, WoodType type) - { - State iblockstate = worldIn.getState(pos); - return iblockstate.getBlock() instanceof BlockSapling && ((BlockSapling)iblockstate.getBlock()).type == type; - } - // /** // * Gets the metadata of the item this Block can drop. This method is called when the block gets destroyed. It // * returns the metadata of the dropped item based on the old metadata of the block. @@ -296,4 +140,8 @@ public class BlockSapling extends BlockBush implements IGrowable public Model getModel(ModelProvider provider, String name, State state) { return provider.getModel(name).cross(); } + + public WoodType getWoodType() { + return this.type; + } } diff --git a/common/src/common/color/Colorizer.java b/common/src/common/color/Colorizer.java index dcae2c9..468793a 100755 --- a/common/src/common/color/Colorizer.java +++ b/common/src/common/color/Colorizer.java @@ -1,6 +1,6 @@ package common.color; -import common.biome.Biome; +import common.biome.BaseBiome; import common.util.BlockPos; import common.world.IWorldAccess; @@ -8,21 +8,21 @@ public enum Colorizer { NONE(0xffffff), BASIC(0x37b500), PINE(0x3f993f), BIRCH(0x68a723); private interface ColorResolver { - int getColorAtPos(Biome biome, BlockPos pos); + int getColorAtPos(BaseBiome biome, BlockPos pos); } private static final ColorResolver GRASS_COLOR = new ColorResolver() { - public int getColorAtPos(Biome biome, BlockPos pos) { + public int getColorAtPos(BaseBiome biome, BlockPos pos) { return biome.getGrassColorAtPos(pos); } }; private static final ColorResolver FOLIAGE_COLOR = new ColorResolver() { - public int getColorAtPos(Biome biome, BlockPos pos) { + public int getColorAtPos(BaseBiome biome, BlockPos pos) { return biome.getFoliageColorAtPos(pos); } }; private static final ColorResolver WATER_COLOR_MULTIPLIER = new ColorResolver() { - public int getColorAtPos(Biome biome, BlockPos pos) { + public int getColorAtPos(BaseBiome biome, BlockPos pos) { return biome.waterColor; } }; diff --git a/common/src/common/dimension/Dimension.java b/common/src/common/dimension/Dimension.java index 32c7520..b3ef389 100755 --- a/common/src/common/dimension/Dimension.java +++ b/common/src/common/dimension/Dimension.java @@ -4,7 +4,8 @@ import java.util.List; import java.util.Map; import java.util.Set; -import common.biome.Biome; +import common.biome.BaseBiome; +import common.biome.IBiome; import common.block.LeavesType; import common.collect.Lists; import common.collect.Maps; @@ -16,34 +17,13 @@ import common.init.UniverseRegistry; import common.nbt.NBTTagCompound; import common.nbt.NBTTagList; import common.nbt.NBTTagString; -import common.rng.Random; import common.util.ExtMath; import common.util.Vec3; import common.world.State; import common.world.Weather; -import common.worldgen.BiomeGenLayered; -import common.worldgen.BiomeGenPerlin; -import common.worldgen.BiomeGenSingle; -import common.worldgen.BiomeGenerator; -import common.worldgen.BlockReplacer; -import common.worldgen.ChunkGenerator; -import common.worldgen.FeatureDungeons; -import common.worldgen.FeatureLakes; -import common.worldgen.FeatureLiquids; -import common.worldgen.FeatureOres; -import common.worldgen.GeneratorCavern; -import common.worldgen.GeneratorDestroyed; -import common.worldgen.GeneratorFlat; -import common.worldgen.GeneratorIsland; -import common.worldgen.GeneratorPerlin; -import common.worldgen.GeneratorSimple; -import common.worldgen.ReplacerAltBiome; -import common.worldgen.ReplacerAltSurface; -import common.worldgen.ReplacerBiome; -import common.worldgen.ReplacerTopLayer; -import common.worldgen.caves.MapGenBigCaves; -import common.worldgen.caves.MapGenCaves; -import common.worldgen.caves.MapGenRavine; +import common.worldgen.FeatureLake; +import common.worldgen.FeatureLiquid; +import common.worldgen.FeatureOre; public abstract class Dimension extends Nameable implements Comparable { public class GeneratorSettings { @@ -290,7 +270,7 @@ public abstract class Dimension extends Nameable implements Comparable ores = Lists.newArrayList(); - private final List lakes = Lists.newArrayList(); - private final List liquids = Lists.newArrayList(); + private final List ores = Lists.newArrayList(); + private final List lakes = Lists.newArrayList(); + private final List liquids = Lists.newArrayList(); private long seed = 0L; @@ -482,15 +462,16 @@ public abstract class Dimension extends Nameable implements Comparable 0 ? new BiomeGenLayered(rand.longv(), this.defaultBiome, this.semiFixed, this.biomeSize, this.riverSize, - this.snowRarity, this.seaRarity, this.addBiomes == null ? new Biome[0] : this.addBiomes, this.addRarity, - this.hotBiomes == null ? new Biome[] {this.defaultBiome} : this.hotBiomes, - this.mediumBiomes == null ? new Biome[] {this.defaultBiome} : this.mediumBiomes, - this.coldBiomes == null ? new Biome[] {this.defaultBiome} : this.coldBiomes, - this.frostBiomes == null ? new Biome[] {this.defaultBiome} : this.frostBiomes) : new BiomeGenSingle(this.defaultBiome); - } - - public final ChunkGenerator createChunkGenerator(Random rand) { - switch(this.generatorType) { - case FLAT: - return this.layers == null ? new GeneratorFlat(this.seaLevel, this.filler) : new GeneratorFlat(this.layers); - case PERLIN: - default: - return new GeneratorPerlin(rand, this.filler, this.liquid, this.noiseGen); - case SIMPLE: - return new GeneratorSimple(rand, this.filler, this.liquid, - this.biomeSize > 0 ? null : new BiomeGenPerlin(rand.longv())); - case ISLAND: - return new GeneratorIsland(rand, this.filler); - case CAVERN: - return new GeneratorCavern(rand, this.filler, this.liquid); - case DESTROYED: - return new GeneratorDestroyed(this.seaLevel); - } - } - - public final BlockReplacer createBlockReplacer(Random rand) { - switch(this.replacerType) { - case BIOMES: - default: - return new ReplacerBiome(rand); - case SIMPLE: - return new ReplacerAltBiome(rand, this.filler, this.liquid, this.alt2, this.alt1); - case ALTERNATE: - return new ReplacerAltSurface(rand, this.filler, this.alt1, this.alt2, this.liquid); - case TOPLAYER: - return new ReplacerTopLayer(this.surface, this.filler.getBlock()); - case NONE: - return null; - } - } - - public final FeatureDungeons createDungeonGenerator() { - return this.dungeons > 0 ? new FeatureDungeons(this.dungeons) : null; - } - - public final MapGenCaves createCaveGenerator() { - return this.caves ? - (new MapGenCaves(this.caveFiller, this.filler.getBlock(), this.top.getBlock(), - this.surface.getBlock(), this.alt1.getBlock())) : null; - } - - public final MapGenRavine createRavineGenerator() { - return this.ravines ? - (new MapGenRavine(this.caveFiller, this.filler.getBlock(), - this.top.getBlock(), this.surface.getBlock())) : null; - } - - public final MapGenBigCaves createBigCaveGenerator() { - return this.strideCaves ? - (new MapGenBigCaves(this.filler.getBlock(), - this.top.getBlock(), this.surface.getBlock())) : null; - } - - public final FeatureOres[] getOres() { - return this.ores.isEmpty() ? null : this.ores.toArray(new FeatureOres[this.ores.size()]); - } - - public final FeatureLakes[] getLakes() { - return this.lakes.isEmpty() ? null : this.lakes.toArray(new FeatureLakes[this.lakes.size()]); - } - - public final FeatureLiquids[] getLiquids() { - return this.liquids.isEmpty() ? null : this.liquids.toArray(new FeatureLiquids[this.liquids.size()]); - } - public final long getSeed() { return this.seed; } @@ -1108,8 +1010,7 @@ public abstract class Dimension extends Nameable implements Comparable getOres() { + return this.ores; + } + + public List getLakes() { + return this.lakes; + } + + public List getLiquids() { + return this.liquids; + } } diff --git a/common/src/common/dimension/Space.java b/common/src/common/dimension/Space.java index 3eac115..268ad58 100755 --- a/common/src/common/dimension/Space.java +++ b/common/src/common/dimension/Space.java @@ -1,6 +1,6 @@ package common.dimension; -import common.biome.Biome; +import common.biome.BaseBiome; public final class Space extends Dimension { public static final Space INSTANCE = new Space(); @@ -8,7 +8,7 @@ public final class Space extends Dimension { private Space() { super(0, "space"); this.setPhysics(1L, 1L, 0.0f, 0.0f, 2.7f, 15).setTimeQualifier(8); - this.setBiome(Biome.space).setStarBrightness(1.0f).setDeepStarBrightness(1.0f); + this.setBiome(BaseBiome.SPACE).setStarBrightness(1.0f).setDeepStarBrightness(1.0f); this.setCustomName("Der Weltraum"); } diff --git a/common/src/common/entity/animal/EntitySheep.java b/common/src/common/entity/animal/EntitySheep.java index cf4ee54..78cb9ac 100755 --- a/common/src/common/entity/animal/EntitySheep.java +++ b/common/src/common/entity/animal/EntitySheep.java @@ -12,7 +12,7 @@ import common.ai.EntityAITempt; import common.ai.EntityAIWander; import common.ai.EntityAIWatchClosest; import common.attributes.Attributes; -import common.biome.Biome; +import common.biome.BaseBiome; import common.collect.Maps; import common.color.DyeColor; import common.entity.item.EntityItem; @@ -303,9 +303,9 @@ public class EntitySheep extends EntityAnimal DyeColor.MAGENTA, DyeColor.ORANGE, DyeColor.PINK, DyeColor.PURPLE, DyeColor.RED }; - public static DyeColor getRandomSheepColor(Random random, Biome biome) + public static DyeColor getRandomSheepColor(Random random, BaseBiome biome) { - if(biome == Biome.snowLand) + if(biome == BaseBiome.SNOWLAND) return DyeColor.WHITE; int i = random.zrange(140); return i < 20 ? DyeColor.BLACK : diff --git a/common/src/common/entity/npc/EntitySlime.java b/common/src/common/entity/npc/EntitySlime.java index 5a8dcf1..406b2b7 100755 --- a/common/src/common/entity/npc/EntitySlime.java +++ b/common/src/common/entity/npc/EntitySlime.java @@ -3,7 +3,7 @@ package common.entity.npc; import common.ai.EntityAIBase; import common.ai.EntityMoveHelper; import common.attributes.Attributes; -import common.biome.Biome; +import common.biome.BaseBiome; import common.entity.DamageSource; import common.entity.Entity; import common.entity.types.EntityLiving; @@ -396,9 +396,9 @@ public class EntitySlime extends EntityNPC // { // if (this.worldObj.getDifficulty() != Difficulty.PEACEFUL) // { - Biome biomegenbase = this.worldObj.getBiomeGenForCoords(blockpos); + BaseBiome biomegenbase = this.worldObj.getBiomeGenForCoords(blockpos); - if (biomegenbase == Biome.swampland && this.posY > 50.0D && this.posY < 70.0D && this.rand.floatv() < 0.5F && this.rand.floatv() < this.worldObj.getCurrentMoonPhaseFactor() && this.worldObj.getLightFromNeighbors(new BlockPos(this)) <= this.rand.zrange(8)) + if (biomegenbase == BaseBiome.SWAMPLAND && this.posY > 50.0D && this.posY < 70.0D && this.rand.floatv() < 0.5F && this.rand.floatv() < this.worldObj.getCurrentMoonPhaseFactor() && this.worldObj.getLightFromNeighbors(new BlockPos(this)) <= this.rand.zrange(8)) { return super.getCanSpawnHere(); } diff --git a/common/src/common/entity/projectile/EntityHook.java b/common/src/common/entity/projectile/EntityHook.java index 8c811aa..8e51dd4 100755 --- a/common/src/common/entity/projectile/EntityHook.java +++ b/common/src/common/entity/projectile/EntityHook.java @@ -26,7 +26,6 @@ import common.util.HitPosition; import common.util.Vec3; import common.world.World; import common.world.AWorldServer; -import common.worldgen.LootConstants; public class EntityHook extends Entity implements IObjectData { @@ -614,7 +613,7 @@ public class EntityHook extends Entity implements IObjectData if (f < f1) { // this.angler.triggerAchievement(StatRegistry.junkFishedStat); - return ((RngFishable)LootConstants.FISHING_JUNK.pick(this.rand)).getItemStack(this.rand); + return ((RngFishable)FishConstants.FISHING_JUNK.pick(this.rand)).getItemStack(this.rand); } else { @@ -623,13 +622,13 @@ public class EntityHook extends Entity implements IObjectData if (f < f2) { // this.angler.triggerAchievement(StatRegistry.treasureFishedStat); - return ((RngFishable)LootConstants.FISHING_TREASURE.pick(this.rand)).getItemStack(this.rand); + return ((RngFishable)FishConstants.FISHING_TREASURE.pick(this.rand)).getItemStack(this.rand); } else { float f3 = f - f2; // this.angler.triggerAchievement(StatRegistry.fishCaughtStat); - return ((RngFishable)LootConstants.FISH_TYPES.pick(this.rand)).getItemStack(this.rand); + return ((RngFishable)FishConstants.FISH_TYPES.pick(this.rand)).getItemStack(this.rand); } } } diff --git a/common/src/common/entity/projectile/FishConstants.java b/common/src/common/entity/projectile/FishConstants.java new file mode 100644 index 0000000..890d8c7 --- /dev/null +++ b/common/src/common/entity/projectile/FishConstants.java @@ -0,0 +1,29 @@ +package common.entity.projectile; + +import common.color.DyeColor; +import common.init.Blocks; +import common.init.Items; +import common.item.ItemFishFood; +import common.item.ItemStack; +import common.rng.WeightedList; + +public abstract class FishConstants { + public static final WeightedList FISHING_JUNK = new WeightedList( + (new RngFishable(new ItemStack(Items.leather_boots), 10)).setMaxDamagePercent(0.9F), new RngFishable(new ItemStack(Items.leather), 10), + new RngFishable(new ItemStack(Items.bone), 10), new RngFishable(new ItemStack(Items.potion), 10), + new RngFishable(new ItemStack(Items.string), 5), (new RngFishable(new ItemStack(Items.fishing_rod), 2)).setMaxDamagePercent(0.9F), + new RngFishable(new ItemStack(Items.bowl), 10), new RngFishable(new ItemStack(Items.stick), 5), + new RngFishable(new ItemStack(Items.dye, 10, DyeColor.BLACK.getDyeDamage()), 1), + new RngFishable(new ItemStack(Blocks.tripwire_hook), 10), new RngFishable(new ItemStack(Items.rotten_flesh), 10)); + public static final WeightedList FISHING_TREASURE = new WeightedList( + new RngFishable(new ItemStack(Blocks.waterlily), 1), new RngFishable(new ItemStack(Items.name_tag), 1), + new RngFishable(new ItemStack(Items.saddle), 1), + (new RngFishable(new ItemStack(Items.bow), 1)).setMaxDamagePercent(0.25F).setEnchantable(), + (new RngFishable(new ItemStack(Items.fishing_rod), 1)).setMaxDamagePercent(0.25F).setEnchantable(), + (new RngFishable(new ItemStack(Items.book), 1)).setEnchantable()); + public static final WeightedList FISH_TYPES = new WeightedList( + new RngFishable(new ItemStack(Items.fish, 1, ItemFishFood.FishType.COD.getMetadata()), 60), + new RngFishable(new ItemStack(Items.fish, 1, ItemFishFood.FishType.SALMON.getMetadata()), 25), + new RngFishable(new ItemStack(Items.fish, 1, ItemFishFood.FishType.CLOWNFISH.getMetadata()), 2), + new RngFishable(new ItemStack(Items.fish, 1, ItemFishFood.FishType.PUFFERFISH.getMetadata()), 13)); +} diff --git a/common/src/common/init/Registry.java b/common/src/common/init/Registry.java index c6a34ff..4880af1 100755 --- a/common/src/common/init/Registry.java +++ b/common/src/common/init/Registry.java @@ -31,7 +31,6 @@ public abstract class Registry { SmeltingRegistry.register(); EntityRegistry.register(); DispenserRegistry.register(); - UniverseRegistry.register(); } public static void setup(String thread) { diff --git a/common/src/common/init/UniverseRegistry.java b/common/src/common/init/UniverseRegistry.java index 4986d28..dd02b2c 100755 --- a/common/src/common/init/UniverseRegistry.java +++ b/common/src/common/init/UniverseRegistry.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import common.biome.Biome; +import common.biome.BaseBiome; import common.block.BlockColored; import common.block.BlockSand; import common.block.LeavesType; @@ -518,7 +518,7 @@ public abstract class UniverseRegistry { PORTALS.put(portal.ordinal() | 0x7ff00000, BASE_ALIASES.get(dest).getDimensionId()); } - static void register() { + public static void register() { registerGalaxy("Milchstraße", "milkyway"); registerSector("Solar", "solar", "milkyway"); registerDimension("Sol", new Star(2, "sol", 0xff7f00, 274.0f, 5778.0f, Blocks.lava.getState(), 128).setTimeQualifier(1), "solar"); @@ -526,12 +526,12 @@ public abstract class UniverseRegistry { 259.15f).setTimeQualifier(0) .setPerlinGen(Blocks.stone.getState(), Blocks.water.getState(), 63) .setBiomeReplacer(Blocks.gravel.getState()) - .setBiomeGen(Biome.forest, false, 4, 4, 6, 50, 50, Biome.mushroomPlains).enableMobs().enableSnow() - .setFrostBiomes(Biome.icePlains, Biome.icePlains, Biome.icePlains, Biome.coldTaiga, Biome.megaTaiga) - .setColdBiomes(Biome.forest, Biome.extremeHills, Biome.taiga, Biome.plains, Biome.blackened) - .setMediumBiomes(Biome.forest, Biome.roofedForest, Biome.extremeHills, Biome.plains, Biome.birchForest, - Biome.swampland, Biome.jungle, Biome.blackened) - .setHotBiomes(Biome.desert, Biome.desert, Biome.desert, Biome.savanna, Biome.savanna, Biome.plains) + .setBiomeGen(BaseBiome.FOREST, false, 4, 4, 6, 50, 50, BaseBiome.MUSHROOMPLAINS).enableMobs().enableSnow() + .setFrostBiomes(BaseBiome.ICEPLAINS, BaseBiome.ICEPLAINS, BaseBiome.ICEPLAINS, BaseBiome.COLDTAIGA, BaseBiome.MEGATAIGA) + .setColdBiomes(BaseBiome.FOREST, BaseBiome.EXTREMEHILLS, BaseBiome.TAIGA, BaseBiome.PLAINS, BaseBiome.BLACKENED) + .setMediumBiomes(BaseBiome.FOREST, BaseBiome.ROOFEDFOREST, BaseBiome.EXTREMEHILLS, BaseBiome.PLAINS, BaseBiome.BIRCHFOREST, + BaseBiome.SWAMPLAND, BaseBiome.JUNGLE, BaseBiome.BLACKENED) + .setHotBiomes(BaseBiome.DESERT, BaseBiome.DESERT, BaseBiome.DESERT, BaseBiome.SAVANNA, BaseBiome.SAVANNA, BaseBiome.PLAINS) .enableCavesRavines(Blocks.lava.getState()).setDungeons(8).setWorldFloor(Blocks.bedrock.getState()) .addLake(Blocks.water.getState(), null, Blocks.grass.getState(), 4, 0, 255, false) .addLake(Blocks.lava.getState(), Blocks.stone.getState(), null, 8, 8, 255, true) @@ -549,7 +549,7 @@ public abstract class UniverseRegistry { .addOre(Blocks.cinnabar_ore.getState(), 1, 0, 11, 0, 24, false) .enableVillages().enableMineshafts().enableScattered().enableStrongholds(), "sol"); registerDimension("Luna", new Moon(3, "luna", 0x333333, 0x333333, 655728L, 655728L, 1.62f, 210.0f, 8) - .setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63).setBiome(Biome.moon) + .setPerlinGen(Blocks.moon_rock.getState(), Blocks.air.getState(), 63).setBiome(BaseBiome.MOON) .setTimeQualifier(1), "terra"); registerDimension("Merkur", new Planet(4, "mercury", 0x666666, 0x535353, 0x858585, 2111297L, 1407509L, 3.7f, 440.0f) @@ -592,7 +592,7 @@ public abstract class UniverseRegistry { registerDimension("Gi'rok", new Star(100, "girok", 0xff8f00, 232.0f, 5220.0f, Blocks.lava.getState(), 112).setTimeQualifier(2), "solar"); registerDimension("'Elbenplanet Gharoth'", new Planet(101, "gharoth", 0xffffffff, 0xc0d8ff, 0xffffff, 4837386L, 52960L, 30.0f, 10.0f, 257.3f) .setTimeQualifier(2).setSimpleGen(Blocks.dirt.getState(), Blocks.water.getState(), 64) - .setSimpleReplacer(Blocks.gravel.getState(), Blocks.sand.getState()).setBiome(Biome.elvenForest) + .setSimpleReplacer(Blocks.gravel.getState(), Blocks.sand.getState()).setBiome(BaseBiome.ELVENFOREST) .enableCaves(Blocks.air.getState()).setDungeons(4).enableMobs().enableSnow() .setWorldFloor(Blocks.bedrock.getState()) .addLake(Blocks.water.getState(), null, Blocks.grass.getState(), 4, 0, 255, false) @@ -603,7 +603,7 @@ public abstract class UniverseRegistry { .addOre(Blocks.gyriyn_ore.getState(), 0, 2, 3, 0, 12, false), "girok"); registerDimension("'Vampirplanet Transsylvanien'", new Planet(102, "transylvania", 0xffffffff, 0xc0d8ff, 0xffffff, 33850466L, 49760L, 20.0f, 10.0f, 255.5f) .setTimeQualifier(5).setPerlinGen(Blocks.rock.getState(), Blocks.water.getState(), 63) - .setBiomeReplacer(Blocks.gravel.getState()).setBiomeGen(Biome.forest, true, 5, 3, 3, 30) + .setBiomeReplacer(Blocks.gravel.getState()).setBiomeGen(BaseBiome.FOREST, true, 5, 3, 3, 30) .enableCavesRavines(Blocks.lava.getState()).setDungeons(10).enableMobs().enableSnow() .setWorldFloor(Blocks.bedrock.getState()) .addLake(Blocks.water.getState(), null, Blocks.grass.getState(), 4, 0, 255, false) @@ -615,12 +615,12 @@ public abstract class UniverseRegistry { .addOre(Blocks.ardite_ore.getState(), 0, 2, 3, 0, 12, false) .addOre(Blocks.nichun_ore.getState(), 0, 10, 1, 0, 10, false), "girok"); registerDimension("'Eismond Yrdinath'", new Moon(103, "yrdinath", 0xccccff, 0xccccff, 46743637L, 17460L, 2.5f, 239.15f, 8).setTimeQualifier(4) - .setPerlinGen(Blocks.snow.getState(), Blocks.ice.getState(), 63).setBiome(Biome.snowLand) + .setPerlinGen(Blocks.snow.getState(), Blocks.ice.getState(), 63).setBiome(BaseBiome.SNOWLAND) .setWorldFloor(Blocks.air.getState()).enableMobs().enableSnow().setWeather(Weather.SNOW), "transylvania"); registerDimension("'Wüstenplanet Me'sar'", new Planet(104, "mesar", 0xff7f3f, 0xff6022, 0xff6f00, 56643366L, 87340L, 11.0f, 333.15f) .setTimeQualifier(5).setPerlinGen(Blocks.rock.getState(), Blocks.air.getState(), 63) .setBiomeReplacer(Blocks.sand.getState().withProperty(BlockSand.VARIANT, BlockSand.EnumType.RED_SAND)) - .setBiomeGen(Biome.mesa, true, 3, 1000, 100000, 100000) + .setBiomeGen(BaseBiome.MESA, true, 3, 1000, 100000, 100000) .enableCavesRavines(Blocks.lava.getState()).enableMobs() .setWorldFloor(Blocks.bedrock.getState()) .addLake(Blocks.lava.getState(), null, null, 8, 8, 255, true) @@ -637,7 +637,7 @@ public abstract class UniverseRegistry { registerDimension("Ov'rol", new Star(120, "ovrol", 0x000000, 302.0f, 12666.0f, Blocks.goo.getState(), 192), "blvck"); registerDimension("'Schwarzplanet'", new Planet(121, "blackplanet", 0x000000, 0x000000, 0x000000, 4632918508L, 204556L, 12.0f, 0.0f) .setPerlinGen(Blocks.blackened_stone.getState(), Blocks.goo.getState(), 63) - .setBiomeReplacer(Blocks.blackened_cobble.getState()).setBiome(Biome.blackened) + .setBiomeReplacer(Blocks.blackened_cobble.getState()).setBiome(BaseBiome.BLACKENED) .enableCaves(Blocks.air.getState()).setDungeons(4).enableMobs() .setWorldFloor(Blocks.bedrock.getState()) .addLake(Blocks.goo.getState(), null, null, 8, 8, 255, true) @@ -646,7 +646,7 @@ public abstract class UniverseRegistry { registerDimension("Der Warp", new Semi(-1, "warp", 0x0c001f, 0x0c001f, 0x190033, 285.0f, 3).setCloudTexture("clouds_dense").setCloudHeight(238.0f) .setPerlinGen(Blocks.obsidian.getState(), Blocks.lava.getState(), 63) - .setBiome(Biome.chaos).enableCavesRavines(Blocks.air.getState()).enableLongCaves().enableMobs().enableSnow() + .setBiome(BaseBiome.CHAOS).enableCavesRavines(Blocks.air.getState()).enableLongCaves().enableMobs().enableSnow() .addLake(Blocks.water.getState(), null, Blocks.obsidian.getState(), 8, 0, 255, false) .addLake(Blocks.lava.getState(), null, null, 1, 8, 255, false) .addLiquid(Blocks.flowing_water.getState(), 1, 8, 255, false) @@ -656,7 +656,7 @@ public abstract class UniverseRegistry { registerDomain("Tian'Xin", "tianxin"); registerDimension("Ni'enrath", new Area(-2, "nienrath", 0x7f00ff, 0x7f00ff, 276.15f, 1) - .setPerlinGen(Blocks.tian.getState(), Blocks.water.getState(), 63).setBiome(Biome.tian) + .setPerlinGen(Blocks.tian.getState(), Blocks.water.getState(), 63).setBiome(BaseBiome.TIAN) .setBiomeReplacer(Blocks.tian.getState()).enableLongCaves().enableMobs().enableSnow() .addLake(Blocks.water.getState(), Blocks.tian.getState(), Blocks.tian.getState(), 4, 0, 255, false) .addLiquid(Blocks.flowing_water.getState(), 50, 8, 255, false), "tianxin"); @@ -670,32 +670,32 @@ public abstract class UniverseRegistry { .setWorldFloor(Blocks.air.getState()).setWorldCeiling(Blocks.bedrock.getState()).enableDenseFog() .setCavernGen(Blocks.hellrock.getState(), Blocks.lava.getState(), 63) .setSurfaceReplacer(Blocks.gravel.getState(), Blocks.soul_sand.getState()) - .setBiome(Biome.upperHell), "hell"); + .setBiome(BaseBiome.UPPERHELL), "hell"); registerDimension("Kreis Kyroth", new Area(-1002, "kyroth", 0x990000, 0x990000, 387.15f, 3).enableLongCaves().enableMobs() .setWorldFloor(Blocks.air.getState()) .setSimpleGen(Blocks.hellrock.getState(), Blocks.lava.getState(), 64) .setSimpleReplacer(Blocks.obsidian.getState(), Blocks.soul_sand.getState()) - .setBiome(Biome.lowerHell) + .setBiome(BaseBiome.LOWERHELL) .addLake(Blocks.lava.getState(), null, null, 4, 8, 255, false) .addLiquid(Blocks.flowing_lava.getState(), 40, 8, 255, true), "hell"); registerDimension("Kreis Ahrd", new Area(-1003, "ahrd", 0xcc0000, 0xcc0000, 467.15f, 15).enableLongCaves().enableMobs() .setWorldFloor(Blocks.air.getState()) .setPerlinGen(Blocks.hellrock.getState(), Blocks.lava.getState(), 63) - .setBiomeReplacer(Blocks.soul_sand.getState()).setBiome(Biome.hellHills) + .setBiomeReplacer(Blocks.soul_sand.getState()).setBiome(BaseBiome.HELLHILLS) .addLake(Blocks.lava.getState(), Blocks.soul_sand.getState(), Blocks.soul_sand.getState(), 2, 8, 255, false).addLiquid(Blocks.flowing_lava.getState(), 80, 8, 255, true), "hell"); registerDimension("Kreis Mizorath", new Area(-1004, "mizorath", 0xff0000, 0xff0000, 1067.15f, 15).enableMobs() .setWorldFloor(Blocks.air.getState()) .setPerlinGen(Blocks.hellrock.getState(), Blocks.blood.getState(), 63) - .setBiomeReplacer(Blocks.soul_sand.getState()).setBiome(Biome.soulPlains), "hell"); + .setBiomeReplacer(Blocks.soul_sand.getState()).setBiome(BaseBiome.SOULPLAINS), "hell"); registerDimension("Kreis Dargoth", new Area(-1005, "dargoth", 0xff3f0c, 0xff3f0c, 1707.15f, 15).enableMobs() .setWorldFloor(Blocks.air.getState()) .setPerlinGen(Blocks.hellrock.getState(), Blocks.magma.getState(), 63) - .setBiomeReplacer(Blocks.soul_sand.getState()).setBiome(Biome.soulPlains), "hell"); + .setBiomeReplacer(Blocks.soul_sand.getState()).setBiome(BaseBiome.SOULPLAINS), "hell"); registerDimension("Kreis Aasirith", new Area(-1006, "aasirith", 0x191919, 0x191919, 2482.0f, 1).enableLongCaves().enableMobs() .setWorldFloor(Blocks.air.getState()) .setPerlinGen(Blocks.rock.getState(), Blocks.magma.getState(), 63) - .setBiomeReplacer(Blocks.ash.getState()).setBiome(Biome.ashLand) + .setBiomeReplacer(Blocks.ash.getState()).setBiome(BaseBiome.ASHLAND) .addLake(Blocks.lava.getState(), Blocks.rock.getState(), Blocks.rock.getState(), 2, 8, 255, false).addLiquid(Blocks.flowing_lava.getState(), 80, 8, 255, true), "hell"); @@ -749,7 +749,7 @@ public abstract class UniverseRegistry { dtag.setInteger("SeaRarity", 50); dtag.setInteger("AddRarity", 50); dtag.setInteger("SeaLevel", 0); - dtag.setString("DefaultBiome", Biome.none.name.toLowerCase()); + dtag.setString("DefaultBiome", BaseBiome.NONE.name.toLowerCase()); dtag.setBoolean("SemiFixed", false); // dtag.setString("DefaultWeather", Weather.CLEAR.getName()); dtag.setString("DefaultLeaves", LeavesType.SPRING.getName()); @@ -768,11 +768,11 @@ public abstract class UniverseRegistry { return dim; } - private static Dimension addFlatPreset(String name, Biome biome, boolean populate, State main, Object ... layers) { + private static Dimension addFlatPreset(String name, BaseBiome biome, boolean populate, State main, Object ... layers) { return addFlatPreset(name, "terra", biome, populate, main, layers); } - private static Dimension addFlatPreset(String name, String base, Biome biome, boolean populate, State main, Object ... layers) { + private static Dimension addFlatPreset(String name, String base, BaseBiome biome, boolean populate, State main, Object ... layers) { Dimension dim = addPreset("Flach - " + name, base, "ClearGenerator:1b" + (populate ? "" : ",NoPopulation:1b")); dim.setBiome(biome); if(main != null) @@ -795,33 +795,33 @@ public abstract class UniverseRegistry { addPreset("Chaotische Höhlen", "UpperLmtScale:2.0,LowerLmtScale:64.0,SeaLevel:6"); addPreset("Viel Glück", "LiquidBlock:lava,SeaLevel:40"); - addFlatPreset("Klassisch", Biome.plains, false, Blocks.dirt.getState(), Blocks.bedrock.getState(), 2, Blocks.dirt.getState(), + addFlatPreset("Klassisch", BaseBiome.PLAINS, false, Blocks.dirt.getState(), Blocks.bedrock.getState(), 2, Blocks.dirt.getState(), Blocks.grass.getState()).enableVillages(); - addFlatPreset("Abbauwelt", Biome.extremeHills, true, Blocks.stone.getState(), Blocks.bedrock.getState(), 230, Blocks.stone.getState(), + addFlatPreset("Abbauwelt", BaseBiome.EXTREMEHILLS, true, Blocks.stone.getState(), Blocks.bedrock.getState(), 230, Blocks.stone.getState(), 5, Blocks.dirt.getState(), Blocks.grass.getState()).enableStrongholds().enableMineshafts().setDungeons(8); - addFlatPreset("Wasserwelt", Biome.sea, false, Blocks.stone.getState(), Blocks.bedrock.getState(), 5, Blocks.stone.getState(), + addFlatPreset("Wasserwelt", BaseBiome.SEA, false, Blocks.stone.getState(), Blocks.bedrock.getState(), 5, Blocks.stone.getState(), 52, Blocks.dirt.getState(), 5, Blocks.sand.getState(), 90, Blocks.water.getState()); - addFlatPreset("Oberfläche", Biome.plains, true, Blocks.stone.getState(), Blocks.bedrock.getState(), 59, Blocks.stone.getState(), + addFlatPreset("Oberfläche", BaseBiome.PLAINS, true, Blocks.stone.getState(), Blocks.bedrock.getState(), 59, Blocks.stone.getState(), 3, Blocks.dirt.getState(), Blocks.grass.getState()).setBiomeReplacer(Blocks.gravel.getState()).enableVillages().enableStrongholds().enableMineshafts().setDungeons(8) .addLake(Blocks.water.getState(), null, Blocks.grass.getState(), 4, 0, 255, false).addLake(Blocks.lava.getState(), Blocks.stone.getState(), null, 8, 8, 255, true); - addFlatPreset("Verschneites Königreich", Biome.icePlains, false, Blocks.stone.getState(), Blocks.bedrock.getState(), 59, Blocks.stone.getState(), + addFlatPreset("Verschneites Königreich", BaseBiome.ICEPLAINS, false, Blocks.stone.getState(), Blocks.bedrock.getState(), 59, Blocks.stone.getState(), 3, Blocks.dirt.getState(), Blocks.grass.getState(), Blocks.snow_layer.getState()).enableVillages(); - addFlatPreset("Verschneites Königreich +", Biome.icePlains, true, Blocks.stone.getState(), Blocks.bedrock.getState(), 59, Blocks.stone.getState(), + addFlatPreset("Verschneites Königreich +", BaseBiome.ICEPLAINS, true, Blocks.stone.getState(), Blocks.bedrock.getState(), 59, Blocks.stone.getState(), 3, Blocks.dirt.getState(), Blocks.grass.getState(), Blocks.snow_layer.getState()).setBiomeReplacer(Blocks.gravel.getState()).enableVillages() .addLake(Blocks.water.getState(), null, Blocks.grass.getState(), 4, 0, 255, false); - addFlatPreset("Unendliche Grube", Biome.plains, false, Blocks.dirt.getState(), 2, Blocks.cobblestone.getState(), 3, Blocks.dirt.getState(), Blocks.grass.getState()) + addFlatPreset("Unendliche Grube", BaseBiome.PLAINS, false, Blocks.dirt.getState(), 2, Blocks.cobblestone.getState(), 3, Blocks.dirt.getState(), Blocks.grass.getState()) .setBiomeReplacer(Blocks.gravel.getState()).enableVillages(); - addFlatPreset("Wüste", Biome.desert, false, Blocks.stone.getState(), Blocks.bedrock.getState(), 3, Blocks.stone.getState(), 52, Blocks.sandstone.getState()) + addFlatPreset("Wüste", BaseBiome.DESERT, false, Blocks.stone.getState(), Blocks.bedrock.getState(), 3, Blocks.stone.getState(), 52, Blocks.sandstone.getState()) .enableVillages().enableScattered(); - addFlatPreset("Redstonewelt", Biome.desert, false, Blocks.sandstone.getState(), Blocks.bedrock.getState(), 3, Blocks.stone.getState(), + addFlatPreset("Redstonewelt", BaseBiome.DESERT, false, Blocks.sandstone.getState(), Blocks.bedrock.getState(), 3, Blocks.stone.getState(), 52, Blocks.sandstone.getState()); addPreset("Leer", "ClearGenerator:1b"); diff --git a/common/src/common/item/ItemInfoWand.java b/common/src/common/item/ItemInfoWand.java index 6370462..a0250f0 100755 --- a/common/src/common/item/ItemInfoWand.java +++ b/common/src/common/item/ItemInfoWand.java @@ -1,6 +1,6 @@ package common.item; -import common.biome.Biome; +import common.biome.BaseBiome; import common.color.TextColor; import common.entity.npc.EntityNPC; import common.util.BlockPos; @@ -14,7 +14,7 @@ public class ItemInfoWand extends ItemWand { public void onUse(ItemStack stack, EntityNPC player, AWorldServer world, Vec3 vec) { - Biome biome = world.getBiomeGenForCoords(new BlockPos(vec.xCoord, 0, vec.zCoord)); + BaseBiome biome = world.getBiomeGenForCoords(new BlockPos(vec.xCoord, 0, vec.zCoord)); player.connection.addHotbar(TextColor.NEON + "* Position bei Level %d: %.3f %.3f %.3f, %s [%d], %.2f °C", world.dimension.getDimensionId(), vec.xCoord, vec.yCoord, vec.zCoord, biome.display, biome.id, world.getTemperatureC(new BlockPos(vec))); diff --git a/common/src/common/world/AWorldServer.java b/common/src/common/world/AWorldServer.java index 5135f32..3ab7b11 100644 --- a/common/src/common/world/AWorldServer.java +++ b/common/src/common/world/AWorldServer.java @@ -10,12 +10,10 @@ import common.entity.types.EntityLiving; import common.model.ParticleType; import common.network.IPlayer; import common.network.Packet; -import common.rng.Random; import common.util.BlockPos; import common.util.BoundingBox; import common.util.PortalType; import common.village.Village; -import common.worldgen.BiomeGenerator; public abstract class AWorldServer extends World { protected AWorldServer(Dimension dim, boolean debug) { @@ -25,10 +23,8 @@ public abstract class AWorldServer extends World { public abstract List getAllPlayers(); public abstract AWorldServer getOtherWorld(int dimension); public abstract void placeInDimension(Entity entity, AWorldServer oldWorld, AWorldServer world, BlockPos pos, PortalType portal); - public abstract State getSurfaceLiquid(); public abstract boolean addLoader(BlockPos pos); public abstract boolean removeLoader(BlockPos pos); - public abstract BiomeGenerator getBiomeGenerator(); public abstract boolean isBlockTickPending(BlockPos pos, Block blockType); public abstract void updateBlockTick(BlockPos pos, Block blockIn, int delay, int priority); public abstract void resetUpdateEntityTick(); @@ -39,24 +35,13 @@ public abstract class AWorldServer extends World { public abstract long getSeed(); public abstract boolean isExterminated(); public abstract boolean exterminate(); - public abstract void forceBlockUpdateTick(Block blockType, BlockPos pos, Random random); public abstract Village getNearestVillage(BlockPos doorBlock, int radius); public abstract void addToVillagerPositionList(BlockPos blockpos); - public abstract void removePlayer(EntityNPC player); - public abstract void updateMountedMovingPlayer(EntityNPC player); public abstract boolean isPlayerWatchingChunk(EntityNPC player, int chunkX, int chunkZ); - public abstract void untrackEntity(Entity entityIn); - public abstract void updateTrackedPlayer(EntityNPC player); public abstract void sendToAllTrackingEntity(Entity entityIn, Packet packet); - public abstract void sendToAllTrackingAndSelf(Entity entityIn, Packet packet); - public abstract void removePlayerFromTrackers(EntityNPC player); - public abstract void updateChunksForPlayer(EntityNPC player, Chunk chunk); public abstract boolean isDaytime(); public abstract int getSkylightSubtracted(); public abstract boolean isBlockinHighHumidity(BlockPos pos); public abstract T findNearestEntityWithinAABB(Class entityType, BoundingBox aabb, T closestTo); - public abstract boolean canBlockFreeze(BlockPos pos, boolean noWaterAdj); - public abstract BlockPos getTopSolidOrLiquidBlock(BlockPos pos); - public abstract void removePlayerEntityDangerously(Entity entityIn); public abstract long getTime(); } diff --git a/common/src/common/world/Chunk.java b/common/src/common/world/Chunk.java index 484292c..84ed58c 100755 --- a/common/src/common/world/Chunk.java +++ b/common/src/common/world/Chunk.java @@ -6,11 +6,12 @@ import java.util.Map; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.function.Predicate; -import common.biome.Biome; +import common.biome.BaseBiome; import common.block.Block; import common.block.ITileEntityProvider; import common.collect.Maps; import common.entity.Entity; +import common.init.BlockRegistry; import common.init.Blocks; import common.log.Log; import common.material.Material; @@ -24,8 +25,7 @@ import common.util.ExtMath; import common.util.Facing; import common.util.NibbleArray; import common.worldgen.BiomeGenerator; -import common.worldgen.ChunkPrimer; -import common.worldgen.GeneratorDebug; +import common.worldgen.DebugStates; public class Chunk { public final int xPos; @@ -63,14 +63,14 @@ public class Chunk { Arrays.fill(this.biomes, (byte)-1); } - public Chunk(World world, ChunkPrimer primer, State base, State ceil, Random rand, Biome[] biomes, int x, int z) { + public Chunk(World world, short[] data, int height, State base, State ceil, Random rand, BaseBiome[] biomes, int x, int z) { this(world, x, z); boolean sky = !world.dimension.hasNoLight(); for(int bx = 0; bx < 16; ++bx) { for(int bz = 0; bz < 16; ++bz) { - for(int by = 0; by < primer.height; ++by) { - State state = primer.get(bx, by, bz); - if(state.getBlock().getMaterial() != Material.air) { + for(int by = 0; by < height; ++by) { + State state = BlockRegistry.STATEMAP.getByValue(data[bx << 4 | bz | by << 8]); + if(state != null && state.getBlock().getMaterial() != Material.air) { int y = by >> 4; if(this.blocks[y] == null) this.blocks[y] = new BlockArray(y << 4, sky); @@ -92,16 +92,16 @@ public class Chunk { } } if(ceil != null) { - int y = (primer.height - 1) >> 4; + int y = (height - 1) >> 4; if(this.blocks[y] == null) this.blocks[y] = new BlockArray(y << 4, sky); - y = (primer.height - 5) >> 4; + y = (height - 5) >> 4; if(this.blocks[y] == null) this.blocks[y] = new BlockArray(y << 4, sky); for(int bx = 0; bx < 16; ++bx) { for(int bz = 0; bz < 16; ++bz) { - for(int by = primer.height - 1; by >= primer.height - 5; --by) { - if(by >= (primer.height - 1) - rand.zrange(5)) + for(int by = height - 1; by >= height - 5; --by) { + if(by >= (height - 1) - rand.zrange(5)) this.blocks[by >> 4].set(bx, by & 15, bz, ceil); } } @@ -412,7 +412,7 @@ public class Chunk { // } if(pos.getY() == 1) { - state = GeneratorDebug.getState(pos.getX(), pos.getZ()); + state = DebugStates.getState(pos.getX(), pos.getZ()); } return state == null ? Blocks.air.getState() : state; @@ -956,19 +956,18 @@ public class Chunk { } } - public Biome getBiome(BlockPos pos, BiomeGenerator gen) { + public BaseBiome getBiome(BlockPos pos, BiomeGenerator gen) { int x = pos.getX() & 15; int z = pos.getZ() & 15; int o = this.biomes[z << 4 | x] & 255; if(o == 255) { - Biome biome = gen == null ? Biome.DEF_BIOME : gen.getBiomeGenerator(pos, Biome.DEF_BIOME); + BaseBiome biome = gen == null ? BaseBiome.DEF_BIOME : gen.getBiomeGenerator(pos, BaseBiome.DEF_BIOME); o = biome.id; this.biomes[z << 4 | x] = (byte)(o & 255); } - Biome biome = Biome.getBiome(o); - return biome == null ? Biome.DEF_BIOME : biome; + return BaseBiome.getBiomeDef(o); } public byte[] getBiomes() { diff --git a/common/src/common/world/IWorld.java b/common/src/common/world/IWorld.java deleted file mode 100644 index ef161f4..0000000 --- a/common/src/common/world/IWorld.java +++ /dev/null @@ -1,279 +0,0 @@ -package common.world; - -import java.util.Collection; -import java.util.List; -import java.util.function.Predicate; - -import common.biome.Biome; -import common.block.Block; -import common.block.LeavesType; -import common.entity.Entity; -import common.entity.item.EntityExplosion; -import common.entity.npc.EntityNPC; -import common.init.SoundEvent; -import common.item.ItemStack; -import common.model.ParticleType; -import common.tileentity.TileEntity; -import common.util.BlockPos; -import common.util.BoundingBox; -import common.util.Facing; -import common.util.HitPosition; -import common.util.Vec3; - -public interface IWorld { - - boolean isBlockSolid(BlockPos pos); - - void setGravity(float gravity); - - Biome getBiomeGenForCoords(BlockPos pos); - - boolean isAirBlock(BlockPos pos); - - boolean isBlockLoaded(BlockPos pos); - - boolean isBlockLoaded(BlockPos pos, boolean allowEmpty); - - boolean isAreaLoaded(BlockPos center, int radius); - - boolean isAreaLoaded(BlockPos center, int radius, boolean allowEmpty); - - boolean isAreaLoaded(BlockPos from, BlockPos to); - - boolean isAreaLoaded(BlockPos from, BlockPos to, boolean allowEmpty); - - Chunk getChunk(BlockPos pos); - - boolean setState(BlockPos pos, State newState, int flags); - - boolean setState(BlockPos pos, State state); - - boolean setBlockToAir(BlockPos pos); - - boolean destroyBlock(BlockPos pos, boolean dropBlock); - - void notifyNeighborsRespectDebug(BlockPos pos, Block blockType); - - void markBlocksDirtyVertical(int x1, int z1, int x2, int z2); - - void markBlockRangeForRenderUpdate(BlockPos rangeMin, BlockPos rangeMax); - - void notifyNeighborsOfStateChange(BlockPos pos, Block blockType); - - void notifyNeighborsOfStateExcept(BlockPos pos, Block blockType, Facing skipSide); - - void notifyBlockOfStateChange(BlockPos pos, Block blockIn); - - boolean canSeeSky(BlockPos pos); - - int getLight(BlockPos pos); - - int getLightFromNeighbors(BlockPos pos); - - BlockPos getHeight(BlockPos pos); - - int getChunksLowestHorizon(int x, int z); - - int getLightFromNeighborsFor(LightType type, BlockPos pos); - - int getLightFor(LightType type, BlockPos pos); - - void setLightFor(LightType type, BlockPos pos, int lightValue); - - int getCombinedLight(BlockPos pos, int lightValue); - - float getLightBrightness(BlockPos pos); - - State getState(BlockPos pos); - - BlockPos getBlockTrace(Entity entity, int distance); - - HitPosition rayTraceBlocks(Vec3 p_72933_1_, Vec3 p_72933_2_); - - HitPosition rayTraceBlocks(Vec3 start, Vec3 end, boolean stopOnLiquid); - - HitPosition rayTraceBlocks(Vec3 vec31, Vec3 vec32, boolean stopOnLiquid, boolean ignoreBlockWithoutBoundingBox, - boolean returnLastUncollidableBlock); - - void playSoundAtEntity(Entity entityIn, SoundEvent name, float volume); - - boolean spawnEntityInWorld(Entity entityIn); - - void removeEntity(Entity entityIn); - - List getCollidingBoundingBoxes(Entity entityIn, BoundingBox bb); - - List getCollisionBoxes(BoundingBox bb); - - int calculateSkylightSubtracted(boolean current); - - float getCelestialAngle(float partialTicks); - - int getMoonPhase(); - - float getCurrentMoonPhaseFactor(); - - float getCelestialAngleRadians(float partialTicks); - - BlockPos getPrecipitationHeight(BlockPos pos); - - void updateEntities(); - - boolean addTileEntity(TileEntity tile); - - void addTileEntities(Collection tileEntityCollection); - - void updateEntity(Entity entityIn, boolean forceUpdate); - - boolean checkNoEntityCollision(BoundingBox bb); - - boolean checkNoEntityCollision(BoundingBox bb, Entity entityIn); - - boolean isAnyLiquid(BoundingBox bb); - - boolean isFlammableWithin(BoundingBox bb); - - boolean handleLiquidAcceleration(BoundingBox bb, Entity entityIn); - - boolean isMaterialInMolten(BoundingBox bb); - - boolean isAABBInLiquid(BoundingBox bb); - - Explosion createExplosion(Entity entityIn, double x, double y, double z, float strength, boolean isSmoking); - - Explosion createAltExplosion(Entity entityIn, double x, double y, double z, float strength, boolean isSmoking); - - Explosion newExplosion(Entity entityIn, double x, double y, double z, float strength, boolean isFlaming, boolean isSmoking, boolean altSound); - - EntityExplosion newExplosion(double x, double y, double z, int strength); - - float getBlockDensity(Vec3 vec, BoundingBox bb); - - boolean extinguishFire(EntityNPC player, BlockPos pos, Facing side); - - TileEntity getTileEntity(BlockPos pos); - - void setTileEntity(BlockPos pos, TileEntity tileEntityIn); - - void removeTileEntity(BlockPos pos); - - void markTileEntityForRemoval(TileEntity tileEntityIn); - - float getTempOffset(); - - LeavesType getLeavesGen(BlockPos pos); - - float getTemperatureK(BlockPos pos); - - float getTemperatureC(BlockPos pos); - - boolean canFreezeAt(BlockPos pos); - - boolean canBurnAt(BlockPos pos); - - boolean doesWaterVaporize(BlockPos pos); - - boolean isLavaFaster(BlockPos pos); - - boolean canSnowAt(BlockPos pos, boolean checkLight, boolean allowLayers); - - boolean checkLight(BlockPos pos); - - boolean checkLightFor(LightType lightType, BlockPos pos); - - List getEntitiesWithinAABBExcludingEntity(Entity entityIn, BoundingBox bb); - - List getEntitiesInAABBexcluding(Entity entityIn, BoundingBox boundingBox, Predicate predicate); - - List getEntitiesWithinAABB(Class classEntity, BoundingBox bb); - - List getEntitiesWithinAABB(Class clazz, BoundingBox aabb, Predicate filter); - - Entity getEntityByID(int id); - - void markChunkDirty(BlockPos pos, TileEntity unusedTileEntity); - - void loadEntities(Collection entityCollection); - - void unloadEntities(Collection entityCollection); - - boolean canBlockBePlaced(Block blockIn, BlockPos pos, boolean p_175716_3_, Facing side, Entity entityIn, ItemStack itemStackIn); - - int getSeaLevel(); - - int getStrongPower(BlockPos pos); - - boolean isSidePowered(BlockPos pos, Facing side); - - int getRedstonePower(BlockPos pos, Facing facing); - - boolean isBlockPowered(BlockPos pos); - - int isBlockIndirectlyGettingPowered(BlockPos pos); - - EntityNPC getClosestPlayerToEntity(Entity entityIn, double distance); - - EntityNPC getClosestPlayer(double x, double y, double z, double distance); - - boolean isAnyPlayerWithinRangeAt(double x, double y, double z, double range); - - void setTimeFactor(int factor); - - void setEntityState(Entity entityIn, byte state); - - void addBlockEvent(BlockPos pos, Block blockIn, int eventID, int eventParam); - - Weather getWeather(); - - long getDayTime(); - - void setWeather(Weather weather); - - void setDayTime(long time); - - float getDarkness(); - - void setDarkness(float dark); - - float getRainStrength(); - - void setRainStrength(float strength); - - float getFogStrength(); - - void setFogStrength(float strength); - - void setTemperature(float temp); - - boolean isDark(); - - boolean isThundering(); - - boolean hasDownfall(); - - boolean isRaining(); - - boolean isRainingAt(BlockPos strikePosition, boolean wet); - - void playAuxSFX(int type, BlockPos pos, int data); - - void updateComparatorOutputLevel(BlockPos pos, Block blockIn); - - void scheduleUpdate(BlockPos pos, Block blockIn, int delay); - - void spawnParticle(ParticleType particleType, double xCoord, double yCoord, double zCoord, double xOffset, double yOffset, double zOffset, - int... data); - - Chunk getChunk(int x, int z); - - void markBlockForUpdate(BlockPos pos); - - void markBlockRangeForRenderUpdate(int x1, int y1, int z1, int x2, int y2, int z2); - - void playSound(SoundEvent sound, double x, double y, double z, float volume); - - void playAuxSFX(EntityNPC player, int sfxType, BlockPos blockPosIn, int data); - - void sendBlockBreakProgress(int breakerId, BlockPos pos, int progress); - -} \ No newline at end of file diff --git a/common/src/common/world/IWorldAccess.java b/common/src/common/world/IWorldAccess.java index b798152..e90b74f 100755 --- a/common/src/common/world/IWorldAccess.java +++ b/common/src/common/world/IWorldAccess.java @@ -1,6 +1,6 @@ package common.world; -import common.biome.Biome; +import common.biome.BaseBiome; import common.tileentity.TileEntity; import common.util.BlockPos; @@ -8,5 +8,5 @@ public interface IWorldAccess extends IBlockAccess { TileEntity getTileEntity(BlockPos pos); int getCombinedLight(BlockPos pos, int lightValue); - Biome getBiomeGenForCoords(BlockPos pos); + BaseBiome getBiomeGenForCoords(BlockPos pos); } diff --git a/common/src/common/world/World.java b/common/src/common/world/World.java index 7b66e16..7597092 100755 --- a/common/src/common/world/World.java +++ b/common/src/common/world/World.java @@ -6,7 +6,7 @@ import java.util.List; import java.util.Set; import java.util.function.Predicate; -import common.biome.Biome; +import common.biome.BaseBiome; import common.block.Block; import common.block.BlockHopper; import common.block.BlockLiquid; @@ -38,7 +38,7 @@ import common.util.HitPosition; import common.util.IntHashMap; import common.util.Vec3; -public abstract class World implements IWorldAccess, IWorld { +public abstract class World implements IWorldAccess { public static final float[][] BRIGHTNESS = new float[16][16]; static { for(int l = 0; l < 16; l++) { @@ -133,11 +133,11 @@ public abstract class World implements IWorldAccess, IWorld { this.gravity = Math.signum(this.gravity) * 0.075; } - public Biome getBiomeGenForCoords(final BlockPos pos) { + public BaseBiome getBiomeGenForCoords(final BlockPos pos) { if(this.isBlockLoaded(pos)) return this.getChunk(pos).getBiome(pos, null); else - return Biome.DEF_BIOME; + return BaseBiome.DEF_BIOME; } public boolean isAirBlock(BlockPos pos) { diff --git a/common/src/common/worldgen/BiomeGenerator.java b/common/src/common/worldgen/BiomeGenerator.java index b6ef4e9..c8db4d7 100755 --- a/common/src/common/worldgen/BiomeGenerator.java +++ b/common/src/common/worldgen/BiomeGenerator.java @@ -2,15 +2,15 @@ package common.worldgen; import java.util.Set; -import common.biome.Biome; +import common.biome.BaseBiome; import common.util.BlockPos; public interface BiomeGenerator { public void genFactors(double[] factors, int xPos, int zPos, int sizeX, int sizeZ); - public Biome getBiomeGenerator(BlockPos pos, Biome def); - public void getGenBiomes(Biome[] biomes, int x, int z, int width, int height); - public void getChunkBiomes(Biome[] oldBiomeList, int x, int z, int width, int depth); - public void getBiomes(Biome[] listToReuse, int x, int z, int width, int length, boolean cacheFlag); - public boolean areBiomesViable(int x, int z, int size, Set allowed); + public BaseBiome getBiomeGenerator(BlockPos pos, BaseBiome def); + public void getGenBiomes(BaseBiome[] biomes, int x, int z, int width, int height); + public void getChunkBiomes(BaseBiome[] oldBiomeList, int x, int z, int width, int depth); + public void getBiomes(BaseBiome[] listToReuse, int x, int z, int width, int length, boolean cacheFlag); + public boolean areBiomesViable(int x, int z, int size, Set allowed); public void cleanupCache(); } diff --git a/common/src/common/worldgen/BlockReplacer.java b/common/src/common/worldgen/BlockReplacer.java deleted file mode 100755 index f94bab7..0000000 --- a/common/src/common/worldgen/BlockReplacer.java +++ /dev/null @@ -1,9 +0,0 @@ -package common.worldgen; - -import common.biome.Biome; -import common.rng.Random; -import common.world.AWorldServer; - -public interface BlockReplacer { - public void replaceBlocks(AWorldServer world, int x, int z, ChunkPrimer primer, Random rand, Biome[] biomes); -} diff --git a/common/src/common/worldgen/ChunkGenerator.java b/common/src/common/worldgen/ChunkGenerator.java deleted file mode 100755 index 6e149f1..0000000 --- a/common/src/common/worldgen/ChunkGenerator.java +++ /dev/null @@ -1,8 +0,0 @@ -package common.worldgen; - -import common.world.AWorldServer; - -public interface ChunkGenerator { - public void generateChunk(AWorldServer world, int x, int z, ChunkPrimer primer); - public int getMaximumHeight(); -} diff --git a/common/src/common/worldgen/GeneratorDebug.java b/common/src/common/worldgen/DebugStates.java old mode 100755 new mode 100644 similarity index 60% rename from common/src/common/worldgen/GeneratorDebug.java rename to common/src/common/worldgen/DebugStates.java index 5833d49..7487eb7 --- a/common/src/common/worldgen/GeneratorDebug.java +++ b/common/src/common/worldgen/DebugStates.java @@ -1,59 +1,38 @@ -package common.worldgen; - -import java.util.List; - -import common.block.Block; -import common.collect.Lists; -import common.init.BlockRegistry; -import common.util.ExtMath; -import common.world.State; -import common.world.AWorldServer; - -public class GeneratorDebug implements ChunkGenerator -{ - private static final List STATES = Lists.newArrayList(); - private static final int XSTRETCH; - private static final int ZSTRETCH; - - static { - for(Block block : BlockRegistry.REGISTRY) { - STATES.addAll(block.getValidStates()); - } - XSTRETCH = ExtMath.ceilf(ExtMath.sqrtf((float)STATES.size())); - ZSTRETCH = ExtMath.ceilf((float)STATES.size() / (float)XSTRETCH); - } - - public static State getState(int x, int z) { - State state = null; - if(x > 0 && z > 0 && x % 2 != 0 && z % 2 != 0) { - x = x / 2; - z = z / 2; - if(x <= XSTRETCH && z <= ZSTRETCH) { - int idx = ExtMath.absi(x * XSTRETCH + z); - if(idx < STATES.size()) { - state = STATES.get(idx); - } - } - } - return state; - } - - public int getMaximumHeight() { - return 72; - } - - public void generateChunk(AWorldServer world, int x, int z, ChunkPrimer primer) - { - for(int bx = 0; bx < 16; ++bx) { - for(int bz = 0; bz < 16; ++bz) { - int sx = x * 16 + bx; - int sz = z * 16 + bz; -// primer.set(bx, 60, bz, Blocks.glass.getDefaultState()); - State state = getState(sx, sz); - if(state != null) { - primer.set(bx, 1, bz, state); - } - } +package common.worldgen; + +import java.util.List; + +import common.block.Block; +import common.collect.Lists; +import common.init.BlockRegistry; +import common.util.ExtMath; +import common.world.State; + +public class DebugStates { + private static final List STATES = Lists.newArrayList(); + private static final int XSTRETCH; + private static final int ZSTRETCH; + + static { + for(Block block : BlockRegistry.REGISTRY) { + STATES.addAll(block.getValidStates()); } - } -} + XSTRETCH = ExtMath.ceilf(ExtMath.sqrtf((float)STATES.size())); + ZSTRETCH = ExtMath.ceilf((float)STATES.size() / (float)XSTRETCH); + } + + public static State getState(int x, int z) { + State state = null; + if(x > 0 && z > 0 && x % 2 != 0 && z % 2 != 0) { + x = x / 2; + z = z / 2; + if(x <= XSTRETCH && z <= ZSTRETCH) { + int idx = ExtMath.absi(x * XSTRETCH + z); + if(idx < STATES.size()) { + state = STATES.get(idx); + } + } + } + return state; + } +} diff --git a/common/src/common/worldgen/FeatureLake.java b/common/src/common/worldgen/FeatureLake.java new file mode 100644 index 0000000..b279e52 --- /dev/null +++ b/common/src/common/worldgen/FeatureLake.java @@ -0,0 +1,23 @@ +package common.worldgen; + +import common.world.State; + +public class FeatureLake { + public final State state; + public final State filler; + public final State top; + public final int chance; + public final int minHeight; + public final int maxHeight; + public final boolean ratiod; + + public FeatureLake(State state, State filler, State top, int chance, int minHeight, int maxHeight, boolean ratiod) { + this.state = state; + this.filler = filler; + this.top = top; + this.chance = chance; + this.minHeight = minHeight; + this.maxHeight = maxHeight; + this.ratiod = ratiod; + } +} diff --git a/common/src/common/worldgen/FeatureLiquid.java b/common/src/common/worldgen/FeatureLiquid.java new file mode 100644 index 0000000..d2794c0 --- /dev/null +++ b/common/src/common/worldgen/FeatureLiquid.java @@ -0,0 +1,19 @@ +package common.worldgen; + +import common.world.State; + +public class FeatureLiquid { + public final State state; + public final int chance; + public final int minHeight; + public final int maxHeight; + public final boolean lower; + + public FeatureLiquid(State state, int chance, int minHeight, int maxHeight, boolean lower) { + this.state = state; + this.chance = chance; + this.minHeight = minHeight; + this.maxHeight = maxHeight; + this.lower = lower; + } +} diff --git a/common/src/common/worldgen/FeatureOre.java b/common/src/common/worldgen/FeatureOre.java new file mode 100644 index 0000000..38237ff --- /dev/null +++ b/common/src/common/worldgen/FeatureOre.java @@ -0,0 +1,23 @@ +package common.worldgen; + +import common.world.State; + +public class FeatureOre { + public final State state; + public final int count; + public final int more; + public final int size; + public final int min; + public final int max; + public final boolean dist; + + public FeatureOre(State state, int count, int more, int size, int min, int max, boolean dist) { + this.state = state; + this.count = count; + this.more = more; + this.size = size; + this.min = min; + this.max = max; + this.dist = dist; + } +} diff --git a/server/src/server/Server.java b/server/src/server/Server.java index 738d227..4e33741 100755 --- a/server/src/server/Server.java +++ b/server/src/server/Server.java @@ -86,6 +86,7 @@ import io.netty.channel.socket.nio.NioServerSocketChannel; import io.netty.handler.timeout.ReadTimeoutHandler; import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; +import server.biome.Biome; import server.clipboard.ReorderRegistry; import server.clipboard.RotationRegistry; import server.command.CommandEnvironment; @@ -144,6 +145,8 @@ public final class Server implements IThreadListener { public static void main(String[] args) { Util.checkOs(); Registry.setup("Server thread"); + Biome.setAsProvider(); + UniverseRegistry.register(); RotationRegistry.register(); ReorderRegistry.register(); boolean debug = System.getProperty("server.debug", null) != null; @@ -907,10 +910,11 @@ public final class Server implements IThreadListener { public void recreatePlayer(Player conn) { EntityNPC old = conn.getEntity(); BlockPos pos = old.getPosition(); - old.getServerWorld().removePlayerFromTrackers(old); - old.getServerWorld().untrackEntity(old); - old.getServerWorld().removePlayer(old); - old.getServerWorld().removePlayerEntityDangerously(old); + WorldServer oldWorld = (WorldServer)old.getServerWorld(); + oldWorld.removePlayerFromTrackers(old); + oldWorld.untrackEntity(old); + oldWorld.removePlayer(old); + oldWorld.removePlayerEntityDangerously(old); WorldPos bed = old.getSpawnPoint(); WorldPos origin = old.getOrigin(); BlockPos spawn = null; @@ -975,11 +979,12 @@ public final class Server implements IThreadListener { old.writeToNBT(oldTag); oldTag.setInteger("Dimension", old.worldObj.dimension.getDimensionId()); oldTag.setString("id", EntityRegistry.getEntityString(old)); - - old.getServerWorld().removePlayerFromTrackers(old); - old.getServerWorld().untrackEntity(old); - old.getServerWorld().removePlayer(old); - old.getServerWorld().removePlayerEntityDangerously(old); + + WorldServer oldWorld = (WorldServer)old.getServerWorld(); + oldWorld.removePlayerFromTrackers(old); + oldWorld.untrackEntity(old); + oldWorld.removePlayer(old); + oldWorld.removePlayerEntityDangerously(old); // old.dead = false; WorldServer world = tag == null ? this.space : this.getWorld(tag.getInteger("Dimension")); diff --git a/common/src/common/biome/Biome.java b/server/src/server/biome/Biome.java similarity index 51% rename from common/src/common/biome/Biome.java rename to server/src/server/biome/Biome.java index e37576a..a8564f4 100755 --- a/common/src/common/biome/Biome.java +++ b/server/src/server/biome/Biome.java @@ -1,16 +1,13 @@ -package common.biome; - -import java.util.List; -import java.util.Map; +package server.biome; +import common.biome.BaseBiome; +import common.biome.IBiome; import common.block.Block; import common.block.BlockColored; import common.block.BlockFlower; import common.block.BlockSand; +import common.block.BlockSapling; import common.block.BlockTallGrass; -import common.collect.Lists; -import common.collect.Maps; -import common.color.Colorizer; import common.color.DyeColor; import common.entity.animal.EntityBat; import common.entity.animal.EntityChicken; @@ -27,104 +24,107 @@ import common.entity.npc.EntitySlime; import common.entity.npc.EntityUndead; import common.entity.npc.EntityZombie; import common.init.Blocks; +import common.init.WoodType; import common.log.Log; import common.material.Material; import common.rng.PerlinGen; import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; -import common.util.ExtMath; +import common.world.AWorldServer; import common.world.State; import common.world.World; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; -import common.worldgen.FeatureGenerator; -import common.worldgen.feature.WorldGenClay; -import common.worldgen.feature.WorldGenClayExt; -import common.worldgen.feature.WorldGenSand; -import common.worldgen.foliage.FeatureDoublePlant; -import common.worldgen.foliage.WorldGenBigMushroom; -import common.worldgen.foliage.WorldGenCactus; -import common.worldgen.foliage.WorldGenDeadBush; -import common.worldgen.foliage.WorldGenFlowers; -import common.worldgen.foliage.WorldGenMushroom; -import common.worldgen.foliage.WorldGenPumpkin; -import common.worldgen.foliage.WorldGenReed; -import common.worldgen.foliage.WorldGenTallGrass; -import common.worldgen.foliage.WorldGenWaterlily; -import common.worldgen.tree.WorldGenBaseTree; -import common.worldgen.tree.WorldGenBigTree; -import common.worldgen.tree.WorldGenSwamp; -import common.worldgen.tree.WorldGenTree; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; +import server.worldgen.FeatureGenerator; +import server.worldgen.feature.WorldGenClay; +import server.worldgen.feature.WorldGenClayExt; +import server.worldgen.feature.WorldGenSand; +import server.worldgen.foliage.FeatureDoublePlant; +import server.worldgen.foliage.WorldGenBigMushroom; +import server.worldgen.foliage.WorldGenCactus; +import server.worldgen.foliage.WorldGenDeadBush; +import server.worldgen.foliage.WorldGenFlowers; +import server.worldgen.foliage.WorldGenMushroom; +import server.worldgen.foliage.WorldGenPumpkin; +import server.worldgen.foliage.WorldGenReed; +import server.worldgen.foliage.WorldGenTallGrass; +import server.worldgen.foliage.WorldGenWaterlily; +import server.worldgen.tree.WorldGenBaseTree; +import server.worldgen.tree.WorldGenBigTree; +import server.worldgen.tree.WorldGenBirch; +import server.worldgen.tree.WorldGenDarkOak; +import server.worldgen.tree.WorldGenJungle; +import server.worldgen.tree.WorldGenPine; +import server.worldgen.tree.WorldGenSavanna; +import server.worldgen.tree.WorldGenSwamp; +import server.worldgen.tree.WorldGenTaiga2; +import server.worldgen.tree.WorldGenTree; -public abstract class Biome { - private static final Biome[] BIOMES = new Biome[256]; +public abstract class Biome implements IBiome { + public static final Biome[] BIOMES = new Biome[256]; - public static final Biome none = (new BiomeNone(0)).setBiomeName("none", ""); + public static final Biome none = (new BiomeNone()); - public static final Biome plains = (new BiomePlains(1)).setColor(9286496).setBiomeName("plains", "Ebene"); - public static final Biome desert = (new BiomeDesert(2)).setColor(16421912).setBiomeName("desert", "Wüste").setTemperature(60.0f).setHumidity(0.0f).setScaling(Scaling.PLAINS_LOW); - public static final Biome extremeHills = (new BiomeHills(3, false)).setColor(6316128).setBiomeName("extremeHills", "Extremes Bergland").setScaling(Scaling.HILLS_LARGE).setTemperature(-12.0f).setHumidity(30.0f); - public static final Biome forest = (new BiomeForest(4, 0)).setColor(353825).setBiomeName("forest", "Wald"); - public static final Biome taiga = (new BiomeTaiga(5, 0)).setColor(747097).setBiomeName("taiga", "Taiga").setTemperature(-10.0f).setHumidity(80.0f).setScaling(Scaling.PLAINS_MEDIUM); - public static final Biome swampland = (new BiomeSwamp(6)).setColor(522674).setBiomeName("swampland", "Sumpf").setScaling(Scaling.SEA_POND).setTemperature(12.0f).setHumidity(90.0f); - public static final Biome river = (new BiomeWater(7, true)).setColor(255).setBiomeName("river", "Fluss").setScaling(Scaling.SEA_SHALLOW); + public static final Biome plains = (new BiomePlains()); + public static final Biome desert = (new BiomeDesert(false)).setScaling(Scaling.PLAINS_LOW); + public static final Biome extremeHills = (new BiomeHills(BaseBiome.EXTREMEHILLS, false)).setScaling(Scaling.HILLS_LARGE); + public static final Biome forest = (new BiomeForest(BaseBiome.FOREST, 0)); + public static final Biome taiga = (new BiomeTaiga(BaseBiome.TAIGA, 0)).setScaling(Scaling.PLAINS_MEDIUM); + public static final Biome swampland = (new BiomeSwamp()).setScaling(Scaling.SEA_POND); + public static final Biome river = (new BiomeWater(BaseBiome.RIVER, true)).setScaling(Scaling.SEA_SHALLOW); - public static final Biome exterminated = (new BiomeExterminated(8)).setColor(0x000000).setBiomeName("exterminated", "Ausgelöscht").setHumidity(0.0f).setTemperature(150.0f); - public static final Biome space = (new BiomeSpace(9)).setColor(0x000000).setBiomeName("space", "Leere des Weltraums").setHumidity(0.0f); + public static final Biome exterminated = (new BiomeExterminated()); + public static final Biome space = (new BiomeSpace()); - public static final Biome frozenSea = (new BiomeWater(10, false)).setColor(9474208).setBiomeName("frozenSea", "Vereister See").enableColdBeach().setScaling(Scaling.SEA_MEDIUM).setTemperature(-20.0f).setHumidity(50.0f); - public static final Biome frozenRiver = (new BiomeWater(11, true)).setColor(10526975).setBiomeName("frozenRiver", "Vereister Fluss").enableColdBeach().setScaling(Scaling.SEA_SHALLOW).setTemperature(-20.0f).setHumidity(50.0f); - public static final Biome icePlains = (new BiomeSnow(12, false)).setColor(16777215).setBiomeName("icePlains", "Eisebene").enableColdBeach().setTemperature(-20.0f).setHumidity(50.0f).setScaling(Scaling.PLAINS_LOW); - public static final Biome iceMountains = (new BiomeSnow(13, false)).setColor(10526880).setBiomeName("iceMountains", "Vereistes Bergland").enableColdBeach().setScaling(Scaling.HILLS_LOW).setTemperature(-20.0f).setHumidity(50.0f); - public static final Biome mushroomPlains = (new BiomeMushroom(14)).setColor(16711935).setBiomeName("mushroomPlains", "Pilzland").setTemperature(16.0f).setHumidity(100.0f).setScaling(Scaling.PLAINS_VARYING); - public static final Biome blackened = (new BiomeBlackened(15)).setColor(0x000000).setBiomeName("blackened", "Schwarz").setHumidity(0.0f); - public static final Biome beach = (new BiomeBeach(16)).setColor(16440917).setBiomeName("beach", "Strand").setTemperature(12.0f).setHumidity(40.0f).setScaling(Scaling.SEA_SHORE); - public static final Biome desertHills = (new BiomeDesert(17)).setColor(13786898).setBiomeName("desertHills", "Wüsten-Bergland").setTemperature(60.0f).setHumidity(0.0f).setScaling(Scaling.HILLS_LOW); - public static final Biome forestHills = (new BiomeForest(18, 0)).setColor(2250012).setBiomeName("forestHills", "Wald-Bergland").setScaling(Scaling.HILLS_LOW); - public static final Biome taigaHills = (new BiomeTaiga(19, 0)).setColor(1456435).setBiomeName("taigaHills", "Taiga-Bergland").setTemperature(-10.0f).setHumidity(80.0f).setScaling(Scaling.HILLS_LOW); - public static final Biome extremeHillsEdge = (new BiomeHills(20, true)).setColor(7501978).setBiomeName("extremeHillsEdge", "Extremes Bergland Gr.").setScaling(Scaling.HILLS_MEDIUM).setTemperature(-12.0f).setHumidity(30.0f); - public static final Biome jungle = (new BiomeJungle(21, false)).setColor(5470985).setBiomeName("jungle", "Urwald").setTemperature(18.0f).setHumidity(90.0f); - public static final Biome jungleHills = (new BiomeJungle(22, false)).setColor(2900485).setBiomeName("jungleHills", "Urwald-Bergland").setTemperature(18.0f).setHumidity(90.0f).setScaling(Scaling.HILLS_LOW); - public static final Biome jungleEdge = (new BiomeJungle(23, true)).setColor(6458135).setBiomeName("jungleEdge", "Urwald Gr.").setTemperature(18.0f).setHumidity(80.0f); - public static final Biome sea = (new BiomeWater(24, false)).setColor(112).setBiomeName("sea", "See").setScaling(Scaling.SEA_MEDIUM); - public static final Biome stoneBeach = (new BiomeStoneBeach(25)).setColor(10658436).setBiomeName("stoneBeach", "Steinstrand").setTemperature(-12.0f).setHumidity(30.0f).setScaling(Scaling.SEA_VARYING); - public static final Biome coldBeach = (new BiomeBeach(26)).setColor(16445632).setBiomeName("coldBeach", "Vereister Strand").setTemperature(-18.0f).setHumidity(30.0f).setScaling(Scaling.SEA_SHORE).enableColdBeach(); - public static final Biome birchForest = (new BiomeForest(27, 2)).setBiomeName("birchForest", "Birkenwald").setColor(3175492); - public static final Biome birchForestHills = (new BiomeForest(28, 2)).setBiomeName("birchForestHills", "Birkenwald-Bergland").setColor(2055986).setScaling(Scaling.HILLS_LOW); - public static final Biome roofedForest = (new BiomeForest(29, 3)).setColor(4215066).setBiomeName("roofedForest", "Dichter Wald"); - public static final Biome coldTaiga = (new BiomeTaiga(30, 0)).setColor(3233098).setBiomeName("coldTaiga", "Vereiste Taiga").enableColdBeach().setTemperature(-40.0f).setHumidity(40.0f).setScaling(Scaling.PLAINS_MEDIUM); - public static final Biome coldTaigaHills = (new BiomeTaiga(31, 0)).setColor(2375478).setBiomeName("coldTaigaHills", "Vereistes Taiga-Bergland").enableColdBeach().setTemperature(-40.0f).setHumidity(40.0f).setScaling(Scaling.HILLS_LOW); - public static final Biome megaTaiga = (new BiomeTaiga(32, 1)).setColor(5858897).setBiomeName("megaTaiga", "Hohe Taiga").setTemperature(-8.0f).setHumidity(80.0f).setScaling(Scaling.PLAINS_MEDIUM); - public static final Biome megaTaigaHills = (new BiomeTaiga(33, 1)).setColor(4542270).setBiomeName("megaTaigaHills", "Hohes Taiga-Bergland").setTemperature(-8.0f).setHumidity(80.0f).setScaling(Scaling.HILLS_LOW); - public static final Biome extremeHillsPlus = (new BiomeHills(34, true)).setColor(5271632).setBiomeName("extremeHillsPlus", "Extremes Bergland +").setScaling(Scaling.HILLS_LARGE).setTemperature(-12.0f).setHumidity(30.0f); - public static final Biome savanna = (new BiomeSavanna(35)).setColor(12431967).setBiomeName("savanna", "Savanne").setTemperature(28.0F).setHumidity(0.0f).setScaling(Scaling.PLAINS_LOW); - public static final Biome savannaPlateau = (new BiomeSavanna(36)).setColor(10984804).setBiomeName("savannaPlateau", "Savannen-Plateau").setTemperature(20.0F).setHumidity(0.0f).setScaling(Scaling.HILLS_PLATEAU); + public static final Biome frozenSea = (new BiomeWater(BaseBiome.FROZENSEA, false)).enableColdBeach().setScaling(Scaling.SEA_MEDIUM); + public static final Biome frozenRiver = (new BiomeWater(BaseBiome.FROZENRIVER, true)).enableColdBeach().setScaling(Scaling.SEA_SHALLOW); + public static final Biome icePlains = (new BiomeSnow(BaseBiome.ICEPLAINS, false)).enableColdBeach().setScaling(Scaling.PLAINS_LOW); + public static final Biome iceMountains = (new BiomeSnow(BaseBiome.ICEMOUNTAINS, false)).enableColdBeach().setScaling(Scaling.HILLS_LOW); + public static final Biome mushroomPlains = (new BiomeMushroom()).setScaling(Scaling.PLAINS_VARYING); + public static final Biome blackened = (new BiomeBlackened()); + public static final Biome beach = (new BiomeBeach(false)).setScaling(Scaling.SEA_SHORE); + public static final Biome desertHills = (new BiomeDesert(true)).setScaling(Scaling.HILLS_LOW); + public static final Biome forestHills = (new BiomeForest(BaseBiome.FORESTHILLS, 0)).setScaling(Scaling.HILLS_LOW); + public static final Biome taigaHills = (new BiomeTaiga(BaseBiome.TAIGAHILLS, 0)).setScaling(Scaling.HILLS_LOW); + public static final Biome extremeHillsEdge = (new BiomeHills(BaseBiome.EXTREMEHILLSEDGE, true)).setScaling(Scaling.HILLS_MEDIUM); + public static final Biome jungle = (new BiomeJungle(BaseBiome.JUNGLE, false)); + public static final Biome jungleHills = (new BiomeJungle(BaseBiome.JUNGLEHILLS, false)).setScaling(Scaling.HILLS_LOW); + public static final Biome jungleEdge = (new BiomeJungle(BaseBiome.JUNGLEEDGE, true)); + public static final Biome sea = (new BiomeWater(BaseBiome.SEA, false)).setScaling(Scaling.SEA_MEDIUM); + public static final Biome stoneBeach = (new BiomeStoneBeach()).setScaling(Scaling.SEA_VARYING); + public static final Biome coldBeach = (new BiomeBeach(true)).setScaling(Scaling.SEA_SHORE).enableColdBeach(); + public static final Biome birchForest = (new BiomeForest(BaseBiome.BIRCHFOREST, 2)); + public static final Biome birchForestHills = (new BiomeForest(BaseBiome.BIRCHFORESTHILLS, 2)).setScaling(Scaling.HILLS_LOW); + public static final Biome roofedForest = (new BiomeForest(BaseBiome.ROOFEDFOREST, 3)); + public static final Biome coldTaiga = (new BiomeTaiga(BaseBiome.COLDTAIGA, 0)).enableColdBeach().setScaling(Scaling.PLAINS_MEDIUM); + public static final Biome coldTaigaHills = (new BiomeTaiga(BaseBiome.COLDTAIGAHILLS, 0)).enableColdBeach().setScaling(Scaling.HILLS_LOW); + public static final Biome megaTaiga = (new BiomeTaiga(BaseBiome.MEGATAIGA, 1)).setScaling(Scaling.PLAINS_MEDIUM); + public static final Biome megaTaigaHills = (new BiomeTaiga(BaseBiome.MEGATAIGAHILLS, 1)).setScaling(Scaling.HILLS_LOW); + public static final Biome extremeHillsPlus = (new BiomeHills(BaseBiome.EXTREMEHILLSPLUS, true)).setScaling(Scaling.HILLS_LARGE); + public static final Biome savanna = (new BiomeSavanna(false)).setScaling(Scaling.PLAINS_LOW); + public static final Biome savannaPlateau = (new BiomeSavanna(true)).setScaling(Scaling.HILLS_PLATEAU); - public static final Biome mesa = (new BiomeMesa(37, false, false)).setColor(14238997).setBiomeName("mesa", "Mesa"); - public static final Biome mesaPlateau_F = (new BiomeMesa(38, false, true)).setColor(11573093).setBiomeName("mesaPlateauF", "Mesa-Waldplateau").setScaling(Scaling.HILLS_PLATEAU); - public static final Biome mesaPlateau = (new BiomeMesa(39, false, false)).setColor(13274213).setBiomeName("mesaPlateau", "Mesa-Plateau").setScaling(Scaling.HILLS_PLATEAU); + public static final Biome mesa = (new BiomeMesa(BaseBiome.MESA, false, false)); + public static final Biome mesaPlateau_F = (new BiomeMesa(BaseBiome.MESAPLATEAUF, false, true)).setScaling(Scaling.HILLS_PLATEAU); + public static final Biome mesaPlateau = (new BiomeMesa(BaseBiome.MESAPLATEAU, false, false)).setScaling(Scaling.HILLS_PLATEAU); - public static final Biome snowLand = (new BiomeSnowLand(40)).setColor(0xffffff).setBiomeName("snowLand", "Eisland").enableColdBeach().setHumidity(100.0f); - public static final Biome tian = (new BiomeTian(41)).setColor(0x808080).setBiomeName("tian", "Tian").setHumidity(80.0f).setScaling(Scaling.VARYING_MEDIUM); - public static final Biome elvenForest = (new BiomeForest(42, 4)).setColor(0x059821).setBiomeName("elvenForest", "Elbenwald").setHumidity(90.0f); - public static final Biome upperHell = (new BiomeHell(43, 0)).setColor(16711680).setBiomeName("upperHell", "Übergang in die Hölle").setHumidity(0.0f); - public static final Biome lowerHell = (new BiomeHell(44, 1)).setColor(16711680).setBiomeName("lowerHell", "Abgrund der Hölle").setHumidity(0.0f); - public static final Biome hellHills = (new BiomeHell(45, 1)).setColor(16711680).setBiomeName("hellHills", "Bergland der Hölle").setHumidity(0.0f).setScaling(Scaling.HILLS_LARGE); - public static final Biome soulPlains = (new BiomeHell(46, 1)).setColor(16711680).setBiomeName("soulPlains", "Seelenland").setHumidity(0.0f).setScaling(Scaling.SEA_POND); - public static final Biome ashLand = (new BiomeHell(47, 2)).setColor(16711680).setBiomeName("ashLand", "Verbrannt").setHumidity(0.0f).setScaling(Scaling.PLAINS_LOW); - public static final Biome moon = (new BiomeMoon(48)).setColor(0xa0a0a0).setBiomeName("moon", "Mondoberfläche").setHumidity(0.0f).setScaling(Scaling.PLAINS_LOW); - public static final Biome chaos = (new BiomeChaos(49)).setColor(0xff00ff).setBiomeName("chaos", "Chaos").setHumidity(50.0f).setScaling(Scaling.VARYING_CHAOTIC); + public static final Biome snowLand = (new BiomeSnowLand()).enableColdBeach(); + public static final Biome tian = (new BiomeTian()).setScaling(Scaling.VARYING_MEDIUM); + public static final Biome elvenForest = (new BiomeForest(BaseBiome.ELVENFOREST, 4)); + public static final Biome upperHell = (new BiomeHell(BaseBiome.UPPERHELL, 0)); + public static final Biome lowerHell = (new BiomeHell(BaseBiome.LOWERHELL, 1)); + public static final Biome hellHills = (new BiomeHell(BaseBiome.HELLHILLS, 1)).setScaling(Scaling.HILLS_LARGE); + public static final Biome soulPlains = (new BiomeHell(BaseBiome.SOULPLAINS, 1)).setScaling(Scaling.SEA_POND); + public static final Biome ashLand = (new BiomeHell(BaseBiome.ASHLAND, 2)).setScaling(Scaling.PLAINS_LOW); + public static final Biome moon = (new BiomeMoon()).setScaling(Scaling.PLAINS_LOW); + public static final Biome chaos = (new BiomeChaos()).setScaling(Scaling.VARYING_CHAOTIC); - public static final Biome DEF_BIOME = forest; - protected static final PerlinGen TEMP_NOISE; protected static final PerlinGen TREE_NOISE; protected static final PerlinGen GRASS_NOISE; protected static final FeatureDoublePlant DOUBLE_PLANT_GEN; - private static final Map LOOKUP = Maps.newTreeMap(); - private static final List LIST = Lists.newArrayList(); - public final int id; + public final BaseBiome base; protected final WeightedList mobs = new WeightedList(); protected final WorldGenBaseTree worldGeneratorTrees = new WorldGenBaseTree(false); @@ -142,13 +142,6 @@ public abstract class Biome { private final FeatureGenerator waterlilyGen = new WorldGenWaterlily(); private final FeatureGenerator clayGenExt = new WorldGenClayExt(32); - public String name = null; - public String display = ""; - public int color = 0x000000; - protected float temperature = 0.0f; - protected float humidity = 50.0f; - public int waterColor = 0xffffff; - public State topBlock = Blocks.grass.getState(); public State fillerBlock = Blocks.dirt.getState(); public float depth = Scaling.VARYING_LOW.depth; @@ -171,10 +164,31 @@ public abstract class Biome { protected int clayPerChunk = 1; protected int clayExtPerChunk = 0; // 10 protected int bigMushroomsPerChunk = 0; + + public static Biome getBiome(int id) + { + if (id >= 0 && id < BIOMES.length) + { + return BIOMES[id]; + } + else + { + Log.JNI.warn("Biom-ID ist nicht im Bereich: " + id + ", verwende " + BaseBiome.DEF_BIOME.id + " (" + BaseBiome.DEF_BIOME.name + ")"); + return BIOMES[BaseBiome.DEF_BIOME.id]; + } + } + + public static void setAsProvider() { + IBiome.setProvider(new IBiome.BiomeProvider() { + public final IBiome getBiome(BaseBiome base) { + return BIOMES[base.id]; + } + }); + } - protected Biome(int id) { - this.id = id; - BIOMES[id] = this; + protected Biome(BaseBiome base) { + BIOMES[base.id] = this; + this.base = base; this.addMobs(this.mobs); } @@ -196,36 +210,6 @@ public abstract class Biome { mobs.add(new RngSpawn(EntityMouse.class, 10, 8, 8)); } - public int getSkyColor() { - return 0xffffffff; - } - - public int getFogColor() { - return 0xffffffff; - } - - public int getCloudColor() { - return 0xffffffff; - } - - public float getFactor() { - float f = this.humidity * 0.01f * ((this.temperature + 14.0f) / 40.0f + 0.15f); - return f > 1.0f ? 1.0f : f; - } - - // skycolor = ((temp + 14) / 40 + 0.15) / 3 - protected Biome setTemperature(float temp) - { - this.temperature = temp; - return this; - } - - protected Biome setHumidity(float humidity) - { - this.humidity = humidity; - return this; - } - protected final Biome setScaling(Scaling scaling) { return this.setScaling(scaling.depth, scaling.scale); @@ -246,13 +230,10 @@ public abstract class Biome { public WorldGenTree genBigTreeLegacy(Random rand, BlockPos pos) { int noise = (int)((TREE_NOISE.generate((double)pos.getX() * 0.5D, (double)pos.getZ() * 0.5D) / 8D + rand.doublev() * 4D + 4D) / 3D); - return (noise > 0 && rand.chance(noise)) || (this.isHighHumidity() && rand.chance(3)) ? this.worldGeneratorBigTree : + return (noise > 0 && rand.chance(noise)) || (this.base.isHighHumidity() && rand.chance(3)) ? this.worldGeneratorBigTree : this.worldGeneratorTrees; } - - /** - * Gets a WorldGen appropriate for this biome. - */ + public FeatureGenerator getRandomWorldGenForGrass(Random rand) { return new WorldGenTallGrass(BlockTallGrass.EnumType.GRASS); @@ -263,6 +244,14 @@ public abstract class Biome { return rand.rarity(3) ? BlockFlower.EnumFlowerType.DANDELION : BlockFlower.EnumFlowerType.ROSE; } + public State getFiller() { + return this.fillerBlock; + } + + public State getTop() { + return this.topBlock; + } + protected Biome enableColdBeach() { this.allowColdBeach = true; @@ -275,48 +264,17 @@ public abstract class Biome { return this; } - protected Biome setBiomeName(String name, String display) - { - this.name = name; - this.display = display; - return this; - } - - protected Biome setColor(int colorIn) - { - this.color = colorIn; - return this; - } - public WeightedList getMobs() { return this.mobs; } - public boolean isHighHumidity() - { - return this.humidity > 85.0f; - } - public float getMobGenChance() { return 0.1F; } - public final float getTemperature(BlockPos pos) - { - if (pos.getY() > 64) - { - float f = (float)(TEMP_NOISE.generate((double)pos.getX() * 1.0D / 8.0D, (double)pos.getZ() * 1.0D / 8.0D) * 4.0D); - return this.temperature - (f + (float)pos.getY() - 64.0F) / 15.0f; - } - else - { - return this.temperature; - } - } - - public void decorate(AWorldServer world, Random rand, BlockPos pos) + public void decorate(WorldServer world, Random rand, BlockPos pos) { for (int i = 0; i < this.sandPerChunk2; ++i) { @@ -550,22 +508,8 @@ public abstract class Biome { } } } - - public int getGrassColorAtPos(BlockPos pos) - { - double d0 = (double)ExtMath.clampf((this.getTemperature(pos) + 14.0f) / 40.0f + 0.15f, 0.0F, 1.0F); - double d1 = (double)ExtMath.clampf(this.humidity * 0.01f, 0.0F, 1.0F); - return Colorizer.getGrassColor(d0, d1); - } - - public int getFoliageColorAtPos(BlockPos pos) - { - double d0 = (double)ExtMath.clampf((this.getTemperature(pos) + 14.0f) / 40.0f + 0.15f, 0.0F, 1.0F); - double d1 = (double)ExtMath.clampf(this.humidity * 0.01f, 0.0F, 1.0F); - return Colorizer.getFoliageColor(d0, d1); - } - public void genTerrainBlocks(AWorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) + public void genTerrainBlocks(WorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { this.generateBiomeTerrain(worldIn, rand, chunkPrimerIn, x, z, noiseVal); } @@ -580,7 +524,7 @@ public abstract class Biome { * * If this.fillerBlock is red sand, we replace some of that with red sandstone. */ - public final void generateBiomeTerrain(AWorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) + public final void generateBiomeTerrain(WorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { int i = worldIn.getSeaLevel(); State worldState = worldIn.dimension.getFiller(); @@ -621,7 +565,7 @@ public abstract class Biome { if (j1 < i && (iblockstate == null || iblockstate.getBlock().getMaterial() == Material.air)) { - if (freeze && World.ABSOLUTE_ZERO + worldIn.getTempOffset() + this.getTemperature(blockpos$mutableblockpos.set(x, j1, z)) <= 0.0F) + if (freeze && World.ABSOLUTE_ZERO + worldIn.getTempOffset() + this.base.getTemperature(blockpos$mutableblockpos.set(x, j1, z)) <= 0.0F) { iblockstate = Blocks.ice.getState(); } @@ -663,14 +607,231 @@ public abstract class Biome { } } - protected Biome createMutation() + public boolean generateBigMushroom(AWorldServer worldIn, BlockPos pos, State state, Random rand) { - return this.createMutatedBiome(this.id + 128); + worldIn.setBlockToAir(pos); + FeatureGenerator worldgenerator = null; + + if (state.getBlock() == Blocks.brown_mushroom) + { + worldgenerator = new WorldGenBigMushroom(Blocks.brown_mushroom_block); + } + else if (state.getBlock() == Blocks.red_mushroom) + { + worldgenerator = new WorldGenBigMushroom(Blocks.red_mushroom_block); + } + + if (worldgenerator != null && worldgenerator.generate((WorldServer)worldIn, rand, pos)) + { + return true; + } + else + { + worldIn.setState(pos, state, 3); + return false; + } } - protected Biome createMutatedBiome(int p_180277_1_) + private boolean isTypeAt(World worldIn, BlockPos pos, WoodType type) { - return new BiomeMutated(p_180277_1_, this); + State iblockstate = worldIn.getState(pos); + return iblockstate.getBlock() instanceof BlockSapling && ((BlockSapling)iblockstate.getBlock()).getWoodType() == type; + } + + private boolean isSameSaplingTypeIn(World worldIn, BlockPos pos, int xOff, int yOff, WoodType type) + { + return this.isTypeAt(worldIn, pos.add(xOff, 0, yOff), type) && this.isTypeAt(worldIn, pos.add(xOff + 1, 0, yOff), type) && this.isTypeAt(worldIn, pos.add(xOff, 0, yOff + 1), type) && this.isTypeAt(worldIn, pos.add(xOff + 1, 0, yOff + 1), type); + } + + public void generateTree(AWorldServer worldIn, BlockPos pos, State state, Random rand) + { + WoodType type = state.getBlock() instanceof BlockSapling ? ((BlockSapling)state.getBlock()).getWoodType() : WoodType.OAK; + State log = type == WoodType.CHERRY ? Blocks.cherry_log.getState() : // .withProperty(BlockNewLog.VARIANT, BlockPlanks.EnumType.CHERRY) : + (type == WoodType.MAPLE ? Blocks.maple_log.getState() /* .withProperty(BlockNewLog.VARIANT, BlockPlanks.EnumType.MAPLE) */ : Blocks.oak_log.getState()); + State leaves = type == WoodType.CHERRY ? Blocks.cherry_leaves.getState() : + (type == WoodType.MAPLE ? Blocks.maple_leaves.getState() : Blocks.oak_leaves.getState()); + FeatureGenerator worldgenerator = (FeatureGenerator)(rand.chance(10) ? new WorldGenBigTree(true, log, leaves) : new WorldGenBaseTree(true, log, leaves)); + int i = 0; + int j = 0; + boolean flag = false; +// leaves = leaves.withProperty(BlockLeaves.TYPE, worldIn.getLeavesGen()); + + switch (type) + { + case SPRUCE: + label114: + for (i = 0; i >= -1; --i) + { + for (j = 0; j >= -1; --j) + { + if (this.isSameSaplingTypeIn(worldIn, pos, i, j, WoodType.SPRUCE)) + { + worldgenerator = new WorldGenPine(false, rand.chance()); + flag = true; + break label114; + } + } + } + + if (!flag) + { + j = 0; + i = 0; + worldgenerator = new WorldGenTaiga2(true); + } + + break; + + case BIRCH: + worldgenerator = new WorldGenBirch(true, false); + break; + + case TIAN: + worldgenerator = new WorldGenBigTree(true, Blocks.tian_log.getState(), Blocks.tian_leaves.getState()) + .setHeightLimit(6, 20); + break; + + case JUNGLE: + State iblockstate = Blocks.jungle_log.getState(); // .withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.JUNGLE); + State iblockstate1 = Blocks.jungle_leaves.getState(); // .withProperty(BlockOldLeaf.VARIANT, BlockPlanks.EnumType.JUNGLE); // .withProperty(BlockLeaves.CHECK_DECAY, Boolean.valueOf(false)); + label269: + + for (i = 0; i >= -1; --i) + { + for (j = 0; j >= -1; --j) + { + if (this.isSameSaplingTypeIn(worldIn, pos, i, j, WoodType.JUNGLE)) + { + worldgenerator = new WorldGenJungle(true, 10, 20, iblockstate, iblockstate1); + flag = true; + break label269; + } + } + } + + if (!flag) + { + j = 0; + i = 0; + worldgenerator = new WorldGenBaseTree(true, rand.range(4, 10), iblockstate, iblockstate1, false); + } + + break; + + case ACACIA: + worldgenerator = new WorldGenSavanna(true); + break; + + case DARK_OAK: + label390: + for (i = 0; i >= -1; --i) + { + for (j = 0; j >= -1; --j) + { + if (this.isSameSaplingTypeIn(worldIn, pos, i, j, WoodType.DARK_OAK)) + { + worldgenerator = new WorldGenDarkOak(true); + flag = true; + break label390; + } + } + } + + if (!flag) + { + return; + } + + case OAK: + case CHERRY: + case MAPLE: + } + + State iblockstate2 = Blocks.air.getState(); + + if (flag) + { + worldIn.setState(pos.add(i, 0, j), iblockstate2, 4); + worldIn.setState(pos.add(i + 1, 0, j), iblockstate2, 4); + worldIn.setState(pos.add(i, 0, j + 1), iblockstate2, 4); + worldIn.setState(pos.add(i + 1, 0, j + 1), iblockstate2, 4); + } + else + { + worldIn.setState(pos, iblockstate2, 4); + } + + if (!worldgenerator.generate((WorldServer)worldIn, rand, pos.add(i, 0, j))) + { + if (flag) + { + worldIn.setState(pos.add(i, 0, j), state, 4); + worldIn.setState(pos.add(i + 1, 0, j), state, 4); + worldIn.setState(pos.add(i, 0, j + 1), state, 4); + worldIn.setState(pos.add(i + 1, 0, j + 1), state, 4); + } + else + { + worldIn.setState(pos, state, 4); + } + } + } + + public void growGrass(AWorldServer worldIn, BlockPos pos, State state, Random rand) + { + BlockPos blockpos = pos.up(); + + for (int i = 0; i < 128; ++i) + { + BlockPos blockpos1 = blockpos; + int j = 0; + + while (true) + { + if (j >= i / 16) + { + if (worldIn.getState(blockpos1).getBlock().getMaterial() == Material.air) + { + if (rand.chance(8)) + { + BlockFlower.EnumFlowerType blockflower$enumflowertype = BIOMES[worldIn.getBiomeGenForCoords(blockpos1).id].pickRandomFlower(rand, blockpos1); + BlockFlower blockflower = blockflower$enumflowertype.getBlockType().getBlock(); + State iblockstate = blockflower.getState().withProperty(blockflower.getTypeProperty(), blockflower$enumflowertype); + + if (blockflower.canBlockStay(worldIn, blockpos1, iblockstate)) + { + worldIn.setState(blockpos1, iblockstate, 3); + } + } + else + { + State iblockstate1 = Blocks.tallgrass.getState().withProperty(BlockTallGrass.TYPE, BlockTallGrass.EnumType.GRASS); + + if (Blocks.tallgrass.canBlockStay(worldIn, blockpos1, iblockstate1)) + { + worldIn.setState(blockpos1, iblockstate1, 3); + } + } + } + + break; + } + + blockpos1 = blockpos1.add(rand.zrange(3) - 1, (rand.zrange(3) - 1) * rand.zrange(3) / 2, rand.zrange(3) - 1); + + if (worldIn.getState(blockpos1.down()).getBlock() != Blocks.grass || worldIn.getState(blockpos1).getBlock().isNormalCube()) + { + break; + } + + ++j; + } + } + } + + protected Biome createMutatedBiome(BaseBiome base) + { + return new BiomeMutated(base, this); } public Class getBiomeClass() @@ -685,88 +846,34 @@ public abstract class Biome { public Temperature getTempCategory() { - return this.temperature < -12.0f ? Temperature.COLD : (this.temperature < 20.0f ? Temperature.MEDIUM : Temperature.WARM); + return this.base.temperature < -12.0f ? Temperature.COLD : (this.base.temperature < 20.0f ? Temperature.MEDIUM : Temperature.WARM); } - - public static Biome getBiome(int id) - { - return getBiome(id, null); - } - - public static Biome getBiome(int id, Biome def) - { - if (id >= 0 && id < BIOMES.length) - { - Biome biome = BIOMES[id]; - return biome == null ? def : biome; - } - else - { - Log.JNI.warn("Biom-ID ist nicht im Bereich: " + id + ", verwende " + DEF_BIOME.id + " (" + DEF_BIOME.name + ")"); - return DEF_BIOME; - } - } - - public static List getBiomes() { - return LIST; - } - - public static List getBiomeNames() { - return Lists.newArrayList(LOOKUP.keySet()); - } - - public static Biome findByName(String name) { - Biome biome = LOOKUP.get(name.toLowerCase().replace(" ", "").replace("_", "")); - if(biome == null) { - int z; - try { - z = Integer.parseInt(name); - } - catch(NumberFormatException e) { - return null; - } - return z < 0 || z >= BIOMES.length ? null : BIOMES[z]; - } - return biome; - } static { -// plains.createMutation(); - desert.createMutation(); - forest.createMutation(); - taiga.createMutation(); - swampland.createMutation(); - icePlains.createMutation(); - jungle.createMutation(); - jungleEdge.createMutation(); - coldTaiga.createMutation(); - savanna.createMutation(); - savannaPlateau.createMutation(); - mesa.createMutation(); - mesaPlateau_F.createMutation(); - mesaPlateau.createMutation(); - birchForest.createMutation(); - birchForestHills.createMutation(); - roofedForest.createMutation(); - megaTaiga.createMutation(); - extremeHills.createMutation(); - extremeHillsPlus.createMutation(); - megaTaiga.createMutatedBiome(megaTaigaHills.id + 128).setBiomeName("redwoodTaigaHillsM", "Mammutbaumtaiga"); + desert.createMutatedBiome(BaseBiome.DESERTM); + forest.createMutatedBiome(BaseBiome.FLOWERFOREST); + taiga.createMutatedBiome(BaseBiome.TAIGAM); + swampland.createMutatedBiome(BaseBiome.SWAMPLANDM); + icePlains.createMutatedBiome(BaseBiome.ICEPLAINSSPIKES); + jungle.createMutatedBiome(BaseBiome.JUNGLEM); + jungleEdge.createMutatedBiome(BaseBiome.JUNGLEEDGEM); + coldTaiga.createMutatedBiome(BaseBiome.COLDTAIGAM); + savanna.createMutatedBiome(BaseBiome.SAVANNAM); + savannaPlateau.createMutatedBiome(BaseBiome.SAVANNAPLATEAUM); + mesa.createMutatedBiome(BaseBiome.MESABRYCE); + mesaPlateau_F.createMutatedBiome(BaseBiome.MESAPLATEAUFM); + mesaPlateau.createMutatedBiome(BaseBiome.MESAPLATEAUM); + birchForest.createMutatedBiome(BaseBiome.BIRCHFORESTM); + birchForestHills.createMutatedBiome(BaseBiome.BIRCHFORESTHILLSM); + roofedForest.createMutatedBiome(BaseBiome.ROOFEDFORESTM); + megaTaiga.createMutatedBiome(BaseBiome.MEGASPRUCETAIGA); + extremeHills.createMutatedBiome(BaseBiome.EXTREMEHILLSM); + extremeHillsPlus.createMutatedBiome(BaseBiome.EXTREMEHILLSPLUSM); + megaTaiga.createMutatedBiome(BaseBiome.REDWOODTAIGAHILLSM); - TEMP_NOISE = new PerlinGen(new Random(1234L), 1); TREE_NOISE = new PerlinGen(new Random(667L), 8); GRASS_NOISE = new PerlinGen(new Random(2345L), 1); DOUBLE_PLANT_GEN = new FeatureDoublePlant(); - - for(Biome biome : BIOMES) { - if(biome == null) - continue; - if(LOOKUP.containsKey(biome.name.toLowerCase())) - throw new IllegalStateException("Biom \"" + biome.name + "\" ist als ID " + LOOKUP.get(biome.name.toLowerCase()).id + " und " + biome.id + " definiert"); - LOOKUP.put(biome.name.toLowerCase(), biome); - LIST.add(biome); - System.out.printf("%s(%d, \"%s\", \"%s\", 0x%06x, %.1ff, %.1ff),\n", biome.name.toUpperCase(), biome.id, biome.name, biome.display, biome.color, biome.temperature, biome.humidity); - } } } diff --git a/common/src/common/biome/BiomeBeach.java b/server/src/server/biome/BiomeBeach.java similarity index 73% rename from common/src/common/biome/BiomeBeach.java rename to server/src/server/biome/BiomeBeach.java index f73c715..e6fac04 100755 --- a/common/src/common/biome/BiomeBeach.java +++ b/server/src/server/biome/BiomeBeach.java @@ -1,13 +1,14 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.init.Blocks; import common.rng.WeightedList; public class BiomeBeach extends Biome { - public BiomeBeach(int id) + public BiomeBeach(boolean cold) { - super(id); + super(cold ? BaseBiome.COLDBEACH : BaseBiome.BEACH); this.topBlock = Blocks.sand.getState(); this.fillerBlock = Blocks.sand.getState(); this.treesPerChunk = -999; diff --git a/common/src/common/biome/BiomeBlackened.java b/server/src/server/biome/BiomeBlackened.java similarity index 81% rename from common/src/common/biome/BiomeBlackened.java rename to server/src/server/biome/BiomeBlackened.java index ffe2256..c917b39 100644 --- a/common/src/common/biome/BiomeBlackened.java +++ b/server/src/server/biome/BiomeBlackened.java @@ -1,19 +1,20 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.block.BlockFlower; import common.entity.npc.EntityMetalhead; import common.init.Blocks; import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; -import common.worldgen.tree.WorldGenBaseTree; -import common.worldgen.tree.WorldGenTree; +import server.worldgen.tree.WorldGenBaseTree; +import server.worldgen.tree.WorldGenTree; public class BiomeBlackened extends Biome { protected final WorldGenTree treeGen = new WorldGenBaseTree(false, Blocks.blackwood_log.getState(), Blocks.blackwood_leaves.getState()); - public BiomeBlackened(int id) { - super(id); + public BiomeBlackened() { + super(BaseBiome.BLACKENED); this.topBlock = Blocks.blackened_soil.getState(); this.fillerBlock = Blocks.blackened_dirt.getState(); this.treesPerChunk = 3; diff --git a/common/src/common/biome/BiomeChaos.java b/server/src/server/biome/BiomeChaos.java similarity index 78% rename from common/src/common/biome/BiomeChaos.java rename to server/src/server/biome/BiomeChaos.java index 79ee8c1..7613c41 100755 --- a/common/src/common/biome/BiomeChaos.java +++ b/server/src/server/biome/BiomeChaos.java @@ -1,5 +1,6 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.entity.Entity; import common.entity.types.EntityLiving; import common.init.Blocks; @@ -7,17 +8,17 @@ import common.init.EntityRegistry; import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; -import common.worldgen.foliage.WorldGenMushroom; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; +import server.worldgen.foliage.WorldGenMushroom; public class BiomeChaos extends Biome { protected FeatureGenerator mushroomBlueGen = new WorldGenMushroom(Blocks.blue_mushroom); - public BiomeChaos(int id) + public BiomeChaos() { - super(id); + super(BaseBiome.CHAOS); this.topBlock = Blocks.obsidian.getState(); this.fillerBlock = Blocks.obsidian.getState(); } @@ -29,7 +30,7 @@ public class BiomeChaos extends Biome } } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { super.decorate(worldIn, rand, pos); diff --git a/common/src/common/biome/BiomeDesert.java b/server/src/server/biome/BiomeDesert.java similarity index 72% rename from common/src/common/biome/BiomeDesert.java rename to server/src/server/biome/BiomeDesert.java index b95ad41..e6b445d 100755 --- a/common/src/common/biome/BiomeDesert.java +++ b/server/src/server/biome/BiomeDesert.java @@ -1,17 +1,18 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.init.Blocks; import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.feature.WorldGenDesertWells; +import server.world.WorldServer; +import server.worldgen.feature.WorldGenDesertWells; public class BiomeDesert extends Biome { - public BiomeDesert(int id) + public BiomeDesert(boolean hills) { - super(id); + super(hills ? BaseBiome.DESERTHILLS : BaseBiome.DESERT); this.topBlock = Blocks.sand.getState(); this.fillerBlock = Blocks.sand.getState(); this.treesPerChunk = -999; @@ -24,7 +25,7 @@ public class BiomeDesert extends Biome protected void addMobs(WeightedList mobs) { } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { super.decorate(worldIn, rand, pos); diff --git a/server/src/server/biome/BiomeExterminated.java b/server/src/server/biome/BiomeExterminated.java new file mode 100755 index 0000000..cf386f8 --- /dev/null +++ b/server/src/server/biome/BiomeExterminated.java @@ -0,0 +1,22 @@ +package server.biome; + +import common.biome.BaseBiome; +import common.init.Blocks; +import common.rng.Random; +import common.rng.WeightedList; +import common.util.BlockPos; +import server.world.WorldServer; + +public class BiomeExterminated extends Biome { + public BiomeExterminated() { + super(BaseBiome.EXTERMINATED); + this.topBlock = Blocks.air.getState(); + this.fillerBlock = Blocks.air.getState(); + } + + protected void addMobs(WeightedList mobs) { + } + + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { + } +} diff --git a/common/src/common/biome/BiomeForest.java b/server/src/server/biome/BiomeForest.java similarity index 83% rename from common/src/common/biome/BiomeForest.java rename to server/src/server/biome/BiomeForest.java index b699026..e77f451 100755 --- a/common/src/common/biome/BiomeForest.java +++ b/server/src/server/biome/BiomeForest.java @@ -1,8 +1,8 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.block.BlockDoublePlant; import common.block.BlockFlower; -import common.color.Colorizer; import common.entity.animal.EntityWolf; import common.entity.npc.EntityElf; import common.entity.npc.EntityWoodElf; @@ -10,13 +10,13 @@ import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; import common.util.ExtMath; -import common.world.AWorldServer; -import common.worldgen.foliage.WorldGenBigMushroom; -import common.worldgen.tree.WorldGenBaseTree; -import common.worldgen.tree.WorldGenBigTree; -import common.worldgen.tree.WorldGenBirch; -import common.worldgen.tree.WorldGenDarkOak; -import common.worldgen.tree.WorldGenTree; +import server.world.WorldServer; +import server.worldgen.foliage.WorldGenBigMushroom; +import server.worldgen.tree.WorldGenBaseTree; +import server.worldgen.tree.WorldGenBigTree; +import server.worldgen.tree.WorldGenBirch; +import server.worldgen.tree.WorldGenDarkOak; +import server.worldgen.tree.WorldGenTree; public class BiomeForest extends Biome { @@ -42,9 +42,9 @@ public class BiomeForest extends Biome protected WorldGenBigTree mapleBig = new WorldGenBigTree(false, Blocks.maple_log.getState(), // .withProperty(BlockNewLog.VARIANT, BlockPlanks.EnumType.MAPLE), Blocks.maple_leaves.getState()); // .withProperty(BlockLeaves.TYPE, worldIn.getLeavesGen())); - public BiomeForest(int id, int type) + public BiomeForest(BaseBiome base, int type) { - super(id); + super(base); this.subType = type; this.treesPerChunk = 10; this.grassPerChunk = 2; @@ -65,14 +65,6 @@ public class BiomeForest extends Biome this.waterlilyPerChunk = 4; } - this.setTemperature(8.0f).setHumidity(80.0f); - - if (this.subType == 2) - { - this.setColor(3175492); - this.setTemperature(4.0f).setHumidity(60.0f); - } - if (this.subType == 0) { this.mobs.add(new RngSpawn(EntityWolf.class, 5, 4, 4)); @@ -120,7 +112,7 @@ public class BiomeForest extends Biome } } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { // if(worldIn.getLeavesGen() != this.leavesType) { // this.leavesType = worldIn.getLeavesGen(); @@ -203,37 +195,23 @@ public class BiomeForest extends Biome super.decorate(worldIn, rand, pos); } - public int getGrassColorAtPos(BlockPos pos) + protected Biome createMutatedBiome(BaseBiome base) { - return this.subType == 4 ? Colorizer.getGrassColor(1.0f, this.humidity * 0.01f) : - (this.subType == 3 ? (super.getGrassColorAtPos(pos) & 16711422) + 2634762 >> 1 : - super.getGrassColorAtPos(pos)); - } - - public int getFoliageColorAtPos(BlockPos pos) - { - return this.subType == 4 ? Colorizer.getFoliageColor(1.0f, this.humidity * 0.01f) : super.getFoliageColorAtPos(pos); - } - - protected Biome createMutatedBiome(final int id) - { - if (this.id == Biome.forest.id) + if (this.base == BaseBiome.FOREST) { - BiomeForest biomegenforest = new BiomeForest(id, 1); + BiomeForest biomegenforest = new BiomeForest(base, 1); biomegenforest.setScaling(this.depth, this.scale + 0.2F); - biomegenforest.setBiomeName("flowerForest", "Blumenwald"); - biomegenforest.setColor(6976549); return biomegenforest; } else { - return this.id != Biome.birchForest.id && this.id != Biome.birchForestHills.id ? new BiomeMutated(id, this) + return this.base != BaseBiome.BIRCHFOREST && this.base != BaseBiome.BIRCHFORESTHILLS ? new BiomeMutated(base, this) { - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { this.baseBiome.decorate(worldIn, rand, pos); } - }: new BiomeMutated(id, this) + }: new BiomeMutated(base, this) { public WorldGenTree genBigTreeChance(Random rand) { diff --git a/common/src/common/biome/BiomeHell.java b/server/src/server/biome/BiomeHell.java similarity index 88% rename from common/src/common/biome/BiomeHell.java rename to server/src/server/biome/BiomeHell.java index 1e4b4dc..39fc07e 100755 --- a/common/src/common/biome/BiomeHell.java +++ b/server/src/server/biome/BiomeHell.java @@ -1,5 +1,6 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.entity.npc.EntityBloodElf; import common.entity.npc.EntityCultivator; import common.entity.npc.EntityFireDemon; @@ -10,12 +11,12 @@ import common.init.Blocks; import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureOres; -import common.worldgen.feature.WorldGenFire; -import common.worldgen.feature.WorldGenGlowStone; -import common.worldgen.feature.WorldGenHellLava; -import common.worldgen.foliage.WorldGenMushroom; +import server.world.WorldServer; +import server.worldgen.FeatureOres; +import server.worldgen.feature.WorldGenFire; +import server.worldgen.feature.WorldGenGlowStone; +import server.worldgen.feature.WorldGenHellLava; +import server.worldgen.foliage.WorldGenMushroom; public class BiomeHell extends Biome { @@ -29,9 +30,9 @@ public class BiomeHell extends Biome private final WorldGenMushroom brownMushroomGen; private final WorldGenMushroom redMushroomGen; - public BiomeHell(int id, int subtype) + public BiomeHell(BaseBiome base, int subtype) { - super(id); + super(base); this.subtype = subtype; if(this.subtype == 0) { this.mobs.add(new RngSpawn(EntityBloodElf.class, 10, 1, 2)); @@ -73,7 +74,7 @@ public class BiomeHell extends Biome mobs.add(new RngSpawn(EntityMagma.class, 1, 4, 4)); } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { if(this.subtype == 0) { for (int i = 0; i < 8; ++i) @@ -125,14 +126,4 @@ public class BiomeHell extends Biome // { // return this.subtype == 0 ? new DecoratorHell() : super.createBiomeDecorator(); // } - - public int getGrassColorAtPos(BlockPos pos) - { - return 0; - } - - public int getFoliageColorAtPos(BlockPos pos) - { - return 0; - } } diff --git a/common/src/common/biome/BiomeHills.java b/server/src/server/biome/BiomeHills.java similarity index 76% rename from common/src/common/biome/BiomeHills.java rename to server/src/server/biome/BiomeHills.java index 7ea7137..dacd5c1 100755 --- a/common/src/common/biome/BiomeHills.java +++ b/server/src/server/biome/BiomeHills.java @@ -1,13 +1,14 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; -import common.worldgen.FeatureOres; -import common.worldgen.tree.WorldGenTaiga2; -import common.worldgen.tree.WorldGenTree; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; +import server.worldgen.FeatureOres; +import server.worldgen.tree.WorldGenTaiga2; +import server.worldgen.tree.WorldGenTree; public class BiomeHills extends Biome { @@ -19,12 +20,12 @@ public class BiomeHills extends Biome private int field_150637_aG = 2; private int field_150638_aH; - protected BiomeHills(int id, boolean p_i45373_2_) + protected BiomeHills(BaseBiome base, boolean large) { - super(id); + super(base); this.field_150638_aH = this.field_150635_aE; - if (p_i45373_2_) + if (large) { this.treesPerChunk = 3; this.field_150638_aH = this.field_150636_aF; @@ -36,7 +37,7 @@ public class BiomeHills extends Biome return (WorldGenTree)(rand.rarity(3) ? this.field_150634_aD : super.genBigTreeChance(rand)); } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { super.decorate(worldIn, rand, pos); // int i = 3 + rand.nextInt(6); @@ -64,7 +65,7 @@ public class BiomeHills extends Biome // } } - public void genTerrainBlocks(AWorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) + public void genTerrainBlocks(WorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { this.topBlock = Blocks.grass.getState(); this.fillerBlock = Blocks.dirt.getState(); @@ -89,16 +90,12 @@ public class BiomeHills extends Biome private BiomeHills mutateHills(Biome p_150633_1_) { this.field_150638_aH = this.field_150637_aG; - this.setColor(p_150633_1_.color); - this.setBiomeName(p_150633_1_.name + "M", p_150633_1_.display + " M"); this.setScaling(p_150633_1_.depth, p_150633_1_.scale); - this.setTemperature(p_150633_1_.temperature); - this.setHumidity(p_150633_1_.humidity); return this; } - protected Biome createMutatedBiome(int p_180277_1_) + protected Biome createMutatedBiome(BaseBiome base) { - return (new BiomeHills(p_180277_1_, false)).mutateHills(this); + return (new BiomeHills(base, false)).mutateHills(this); } } diff --git a/common/src/common/biome/BiomeJungle.java b/server/src/server/biome/BiomeJungle.java similarity index 80% rename from common/src/common/biome/BiomeJungle.java rename to server/src/server/biome/BiomeJungle.java index 71737c7..84517f2 100755 --- a/common/src/common/biome/BiomeJungle.java +++ b/server/src/server/biome/BiomeJungle.java @@ -1,5 +1,6 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.block.BlockTallGrass; import common.entity.animal.EntityChicken; import common.entity.animal.EntityOcelot; @@ -7,15 +8,15 @@ import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; -import common.worldgen.foliage.WorldGenMelon; -import common.worldgen.foliage.WorldGenShrub; -import common.worldgen.foliage.WorldGenTallGrass; -import common.worldgen.foliage.WorldGenVines; -import common.worldgen.tree.WorldGenBaseTree; -import common.worldgen.tree.WorldGenJungle; -import common.worldgen.tree.WorldGenTree; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; +import server.worldgen.foliage.WorldGenMelon; +import server.worldgen.foliage.WorldGenShrub; +import server.worldgen.foliage.WorldGenTallGrass; +import server.worldgen.foliage.WorldGenVines; +import server.worldgen.tree.WorldGenBaseTree; +import server.worldgen.tree.WorldGenJungle; +import server.worldgen.tree.WorldGenTree; public class BiomeJungle extends Biome { @@ -25,9 +26,9 @@ public class BiomeJungle extends Biome private final boolean edge; - public BiomeJungle(int id, boolean edge) + public BiomeJungle(BaseBiome base, boolean edge) { - super(id); + super(base); this.edge = edge; if (edge) @@ -63,7 +64,7 @@ public class BiomeJungle extends Biome return rand.chance(4) ? new WorldGenTallGrass(BlockTallGrass.EnumType.FERN) : new WorldGenTallGrass(BlockTallGrass.EnumType.GRASS); } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { super.decorate(worldIn, rand, pos); int i = rand.chOffset(); diff --git a/common/src/common/biome/BiomeMesa.java b/server/src/server/biome/BiomeMesa.java similarity index 91% rename from common/src/common/biome/BiomeMesa.java rename to server/src/server/biome/BiomeMesa.java index eb9fd70..90dca55 100755 --- a/common/src/common/biome/BiomeMesa.java +++ b/server/src/server/biome/BiomeMesa.java @@ -1,7 +1,8 @@ -package common.biome; +package server.biome; import java.util.Arrays; +import common.biome.BaseBiome; import common.block.Block; import common.block.BlockColored; import common.block.BlockDirt; @@ -14,9 +15,9 @@ import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; -import common.worldgen.tree.WorldGenTree; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; +import server.worldgen.tree.WorldGenTree; public class BiomeMesa extends Biome { @@ -29,14 +30,13 @@ public class BiomeMesa extends Biome private PerlinGen highBryceGen; private PerlinGen clayColorGen; - public BiomeMesa(int id, boolean bryce, boolean soil) + public BiomeMesa(BaseBiome base, boolean bryce, boolean soil) { - super(id); + super(base); this.bryce = bryce; this.soil = soil; // this.setDisableRain(); // this.setTemperatureLegacy(2.0F).setHumidity(0.0F); - this.setHumidity(0.0f); // this.mobs.clear(); this.topBlock = Blocks.sand.getState().withProperty(BlockSand.VARIANT, BlockSand.EnumType.RED_SAND); this.fillerBlock = Blocks.stained_hardened_clay.getState(); @@ -61,22 +61,12 @@ public class BiomeMesa extends Biome return this.worldGeneratorTrees; } - public int getFoliageColorAtPos(BlockPos pos) - { - return 10387789; - } - - public int getGrassColorAtPos(BlockPos pos) - { - return 9470285; - } - - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { super.decorate(worldIn, rand, pos); } - public void genTerrainBlocks(AWorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) + public void genTerrainBlocks(WorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { if (this.layers == null || this.layerSeed != worldIn.getSeed()) { @@ -327,22 +317,16 @@ public class BiomeMesa extends Biome return this.layers[(y + i + 64) % 64]; } - protected Biome createMutatedBiome(int id) + protected Biome createMutatedBiome(BaseBiome base) { - boolean bryce = this.id == Biome.mesa.id; - BiomeMesa mesa = new BiomeMesa(id, bryce, this.soil); + boolean bryce = this.base == BaseBiome.MESA; + BiomeMesa mesa = new BiomeMesa(base, bryce, this.soil); if (!bryce) { mesa.setScaling(Scaling.HILLS_LOW); - mesa.setBiomeName(this.name + "M", this.display + " M"); - } - else - { - mesa.setBiomeName(this.name + "Bryce", this.display + " (Bryce)"); } - mesa.setColor(this.color); return mesa; } } diff --git a/common/src/common/biome/BiomeMoon.java b/server/src/server/biome/BiomeMoon.java similarity index 67% rename from common/src/common/biome/BiomeMoon.java rename to server/src/server/biome/BiomeMoon.java index 49ccfb8..2263900 100755 --- a/common/src/common/biome/BiomeMoon.java +++ b/server/src/server/biome/BiomeMoon.java @@ -1,17 +1,18 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.init.Blocks; import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureOres; +import server.world.WorldServer; +import server.worldgen.FeatureOres; public class BiomeMoon extends Biome { private FeatureOres cheeseGenerator = new FeatureOres(Blocks.moon_cheese.getState(), 8, 8, 12, 24, 52, false); - public BiomeMoon(int id) { - super(id); + public BiomeMoon() { + super(BaseBiome.MOON); this.topBlock = Blocks.moon_rock.getState(); this.fillerBlock = Blocks.moon_rock.getState(); } @@ -19,7 +20,7 @@ public class BiomeMoon extends Biome { protected void addMobs(WeightedList mobs) { } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) { + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { this.cheeseGenerator.generate(worldIn, rand, pos); } } diff --git a/common/src/common/biome/BiomeMushroom.java b/server/src/server/biome/BiomeMushroom.java similarity index 81% rename from common/src/common/biome/BiomeMushroom.java rename to server/src/server/biome/BiomeMushroom.java index 5133daa..755e52b 100755 --- a/common/src/common/biome/BiomeMushroom.java +++ b/server/src/server/biome/BiomeMushroom.java @@ -1,14 +1,15 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.entity.animal.EntityMooshroom; import common.init.Blocks; import common.rng.WeightedList; public class BiomeMushroom extends Biome { - public BiomeMushroom(int id) + public BiomeMushroom() { - super(id); + super(BaseBiome.MUSHROOMPLAINS); this.treesPerChunk = -100; this.flowersPerChunk = -100; this.grassPerChunk = -100; diff --git a/common/src/common/biome/BiomeMutated.java b/server/src/server/biome/BiomeMutated.java similarity index 66% rename from common/src/common/biome/BiomeMutated.java rename to server/src/server/biome/BiomeMutated.java index 2f90e23..a422fda 100755 --- a/common/src/common/biome/BiomeMutated.java +++ b/server/src/server/biome/BiomeMutated.java @@ -1,30 +1,25 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; -import common.worldgen.tree.WorldGenTree; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; +import server.worldgen.tree.WorldGenTree; public class BiomeMutated extends Biome { protected Biome baseBiome; - public BiomeMutated(int id, Biome biome) + public BiomeMutated(BaseBiome base, Biome biome) { - super(id); + super(base); this.baseBiome = biome; - this.setColor(biome.color); - this.name = biome.name + "M"; - this.display = biome.display + " M"; this.topBlock = biome.topBlock; this.fillerBlock = biome.fillerBlock; // this.minHeight = biome.minHeight; // this.maxHeight = biome.maxHeight; - this.temperature = biome.temperature; - this.humidity = biome.humidity; - this.waterColor = biome.waterColor; this.allowColdBeach = biome.allowColdBeach; // this.enableRain = biome.enableRain; // this.mobs.clear(); @@ -43,17 +38,17 @@ public class BiomeMutated extends Biome protected void addMobs(WeightedList mobs) { } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { this.baseBiome.decorate(worldIn, rand, pos); // TODO: check } - public void decorateNormal(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorateNormal(WorldServer worldIn, Random rand, BlockPos pos) { super.decorate(worldIn, rand, pos); } - public void genTerrainBlocks(AWorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) + public void genTerrainBlocks(WorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { this.baseBiome.genTerrainBlocks(worldIn, rand, chunkPrimerIn, x, z, noiseVal); } @@ -67,17 +62,7 @@ public class BiomeMutated extends Biome { return this.baseBiome.genBigTreeChance(rand); } - - public int getFoliageColorAtPos(BlockPos pos) - { - return this.baseBiome.getFoliageColorAtPos(pos); - } - - public int getGrassColorAtPos(BlockPos pos) - { - return this.baseBiome.getGrassColorAtPos(pos); - } - + public Class getBiomeClass() { return this.baseBiome.getBiomeClass(); diff --git a/common/src/common/biome/BiomeNone.java b/server/src/server/biome/BiomeNone.java similarity index 51% rename from common/src/common/biome/BiomeNone.java rename to server/src/server/biome/BiomeNone.java index 00a5ef4..4ae060c 100755 --- a/common/src/common/biome/BiomeNone.java +++ b/server/src/server/biome/BiomeNone.java @@ -1,15 +1,16 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.init.Blocks; import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; public class BiomeNone extends Biome { - public BiomeNone(int id) { - super(id); + public BiomeNone() { + super(BaseBiome.NONE); this.topBlock = Blocks.air.getState(); this.fillerBlock = Blocks.air.getState(); } @@ -17,10 +18,10 @@ public class BiomeNone extends Biome { protected void addMobs(WeightedList mobs) { } - public void genTerrainBlocks(AWorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { + public void genTerrainBlocks(WorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) { + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { } public Temperature getTempCategory() { diff --git a/common/src/common/biome/BiomePlains.java b/server/src/server/biome/BiomePlains.java similarity index 94% rename from common/src/common/biome/BiomePlains.java rename to server/src/server/biome/BiomePlains.java index 6aace9a..d9b1c03 100755 --- a/common/src/common/biome/BiomePlains.java +++ b/server/src/server/biome/BiomePlains.java @@ -1,11 +1,12 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.block.BlockDoublePlant; import common.block.BlockFlower; import common.entity.animal.EntityHorse; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; +import server.world.WorldServer; public class BiomePlains extends Biome { @@ -20,10 +21,9 @@ public class BiomePlains extends Biome // protected boolean field_150628_aC; - protected BiomePlains(int id) + protected BiomePlains() { - super(id); - this.setTemperature(12.0f).setHumidity(40.0f); + super(BaseBiome.PLAINS); this.setScaling(Scaling.PLAINS_LOW); this.mobs.add(new RngSpawn(EntityHorse.class, 5, 2, 6)); this.treesPerChunk = -999; @@ -68,7 +68,7 @@ public class BiomePlains extends Biome } } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { double d0 = GRASS_NOISE.generate((double)(pos.getX() + 8) / 200.0D, (double)(pos.getZ() + 8) / 200.0D); diff --git a/common/src/common/biome/BiomeSavanna.java b/server/src/server/biome/BiomeSavanna.java similarity index 71% rename from common/src/common/biome/BiomeSavanna.java rename to server/src/server/biome/BiomeSavanna.java index c456f4e..d35f6d9 100755 --- a/common/src/common/biome/BiomeSavanna.java +++ b/server/src/server/biome/BiomeSavanna.java @@ -1,23 +1,24 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.block.BlockDirt; import common.block.BlockDoublePlant; import common.entity.animal.EntityHorse; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; -import common.worldgen.tree.WorldGenSavanna; -import common.worldgen.tree.WorldGenTree; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; +import server.worldgen.tree.WorldGenSavanna; +import server.worldgen.tree.WorldGenTree; public class BiomeSavanna extends Biome { private static final WorldGenSavanna field_150627_aC = new WorldGenSavanna(false); - protected BiomeSavanna(int id) + protected BiomeSavanna(boolean plateau) { - super(id); + super(plateau ? BaseBiome.SAVANNAPLATEAU : BaseBiome.SAVANNA); this.mobs.add(new RngSpawn(EntityHorse.class, 1, 2, 6)); this.treesPerChunk = 1; this.flowersPerChunk = 4; @@ -29,16 +30,15 @@ public class BiomeSavanna extends Biome return (WorldGenTree)(rand.rarity(5) ? field_150627_aC : this.worldGeneratorTrees); } - protected Biome createMutatedBiome(int p_180277_1_) + protected Biome createMutatedBiome(BaseBiome base) { - Biome biomegenbase = new BiomeSavanna.Mutated(p_180277_1_, this); - biomegenbase.temperature = this.temperature == 28.0f ? 24.0f : 20.0f; + Biome biomegenbase = new BiomeSavanna.Mutated(base, this); biomegenbase.depth = this.depth * 0.5F + 0.3F; biomegenbase.scale = this.scale * 0.5F + 1.2F; return biomegenbase; } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { DOUBLE_PLANT_GEN.setPlantType(BlockDoublePlant.EnumPlantType.GRASS); @@ -55,15 +55,15 @@ public class BiomeSavanna extends Biome public static class Mutated extends BiomeMutated { - public Mutated(int p_i45382_1_, Biome p_i45382_2_) + public Mutated(BaseBiome base, Biome p_i45382_2_) { - super(p_i45382_1_, p_i45382_2_); + super(base, p_i45382_2_); this.treesPerChunk = 2; this.flowersPerChunk = 2; this.grassPerChunk = 5; } - public void genTerrainBlocks(AWorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) + public void genTerrainBlocks(WorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { this.topBlock = Blocks.grass.getState(); this.fillerBlock = Blocks.dirt.getState(); @@ -81,7 +81,7 @@ public class BiomeSavanna extends Biome this.generateBiomeTerrain(worldIn, rand, chunkPrimerIn, x, z, noiseVal); } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { this.decorateNormal(worldIn, rand, pos); } diff --git a/common/src/common/biome/BiomeSnow.java b/server/src/server/biome/BiomeSnow.java similarity index 66% rename from common/src/common/biome/BiomeSnow.java rename to server/src/server/biome/BiomeSnow.java index d1440e8..134f190 100755 --- a/common/src/common/biome/BiomeSnow.java +++ b/server/src/server/biome/BiomeSnow.java @@ -1,14 +1,15 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.init.Blocks; import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.feature.WorldGenIcePath; -import common.worldgen.feature.WorldGenIceSpike; -import common.worldgen.tree.WorldGenTaiga2; -import common.worldgen.tree.WorldGenTree; +import server.world.WorldServer; +import server.worldgen.feature.WorldGenIcePath; +import server.worldgen.feature.WorldGenIceSpike; +import server.worldgen.tree.WorldGenTaiga2; +import server.worldgen.tree.WorldGenTree; public class BiomeSnow extends Biome { @@ -16,9 +17,9 @@ public class BiomeSnow extends Biome private final WorldGenIcePath pathGen = new WorldGenIcePath(4); private final boolean spiky; - public BiomeSnow(int id, boolean spiky) + public BiomeSnow(BaseBiome base, boolean spiky) { - super(id); + super(base); this.spiky = spiky; if(spiky) this.topBlock = Blocks.snow.getState(); @@ -27,7 +28,7 @@ public class BiomeSnow extends Biome protected void addMobs(WeightedList mobs) { } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { if (this.spiky) { @@ -54,9 +55,9 @@ public class BiomeSnow extends Biome return new WorldGenTaiga2(false); } - protected Biome createMutatedBiome(int p_180277_1_) + protected Biome createMutatedBiome(BaseBiome base) { - Biome biomegenbase = (new BiomeSnow(p_180277_1_, true)).setColor(13828095).setBiomeName(this.name + "Spikes", this.display + " + Spitzen").enableColdBeach().setTemperature(-20.0f).setHumidity(50.0f).setScaling(this.depth + 0.1F, this.scale + 0.1F); + Biome biomegenbase = (new BiomeSnow(base, true)).enableColdBeach().setScaling(this.depth + 0.1F, this.scale + 0.1F); biomegenbase.depth = this.depth + 0.3F; biomegenbase.scale = this.scale + 0.4F; return biomegenbase; diff --git a/common/src/common/biome/BiomeSnowLand.java b/server/src/server/biome/BiomeSnowLand.java similarity index 82% rename from common/src/common/biome/BiomeSnowLand.java rename to server/src/server/biome/BiomeSnowLand.java index 5699886..0ba4b65 100755 --- a/common/src/common/biome/BiomeSnowLand.java +++ b/server/src/server/biome/BiomeSnowLand.java @@ -1,5 +1,6 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.entity.animal.EntitySheep; import common.entity.npc.EntitySpirit; import common.init.Blocks; @@ -7,9 +8,9 @@ import common.rng.WeightedList; public class BiomeSnowLand extends Biome { - public BiomeSnowLand(int id) + public BiomeSnowLand() { - super(id); + super(BaseBiome.SNOWLAND); this.topBlock = Blocks.snow.getState(); this.fillerBlock = Blocks.snow.getState(); this.mushroomsPerChunk = -1; diff --git a/common/src/common/biome/BiomeSpace.java b/server/src/server/biome/BiomeSpace.java similarity index 74% rename from common/src/common/biome/BiomeSpace.java rename to server/src/server/biome/BiomeSpace.java index 550c865..ad2708a 100755 --- a/common/src/common/biome/BiomeSpace.java +++ b/server/src/server/biome/BiomeSpace.java @@ -1,13 +1,14 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.block.BlockDirt; import common.init.Blocks; import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; -import common.worldgen.feature.WorldGenAsteroid; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; +import server.worldgen.feature.WorldGenAsteroid; public class BiomeSpace extends Biome { @@ -16,9 +17,9 @@ public class BiomeSpace extends Biome protected FeatureGenerator asteroidGen2 = new WorldGenAsteroid(Blocks.dirt.getState(), Blocks.dirt.getState().withProperty(BlockDirt.VARIANT, BlockDirt.DirtType.COARSE_DIRT)); - public BiomeSpace(int id) + public BiomeSpace() { - super(id); + super(BaseBiome.SPACE); this.topBlock = Blocks.air.getState(); this.fillerBlock = Blocks.air.getState(); } @@ -26,7 +27,7 @@ public class BiomeSpace extends Biome protected void addMobs(WeightedList mobs) { } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { if(rand.chance(5)) { int x = rand.chOffset(); diff --git a/common/src/common/biome/BiomeStoneBeach.java b/server/src/server/biome/BiomeStoneBeach.java similarity index 79% rename from common/src/common/biome/BiomeStoneBeach.java rename to server/src/server/biome/BiomeStoneBeach.java index 41c1926..9c6fa69 100755 --- a/common/src/common/biome/BiomeStoneBeach.java +++ b/server/src/server/biome/BiomeStoneBeach.java @@ -1,13 +1,14 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.init.Blocks; import common.rng.WeightedList; public class BiomeStoneBeach extends Biome { - public BiomeStoneBeach(int id) + public BiomeStoneBeach() { - super(id); + super(BaseBiome.STONEBEACH); // this.mobs.clear(); this.topBlock = Blocks.stone.getState(); this.fillerBlock = Blocks.stone.getState(); diff --git a/common/src/common/biome/BiomeSwamp.java b/server/src/server/biome/BiomeSwamp.java similarity index 75% rename from common/src/common/biome/BiomeSwamp.java rename to server/src/server/biome/BiomeSwamp.java index d726a13..6b10c37 100755 --- a/common/src/common/biome/BiomeSwamp.java +++ b/server/src/server/biome/BiomeSwamp.java @@ -1,5 +1,6 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.block.BlockDirectional; import common.block.BlockFlower; import common.entity.npc.EntitySlime; @@ -8,15 +9,15 @@ import common.material.Material; import common.rng.Random; import common.util.BlockPos; import common.util.Facing; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; -import common.worldgen.tree.WorldGenTree; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; +import server.worldgen.tree.WorldGenTree; public class BiomeSwamp extends Biome { - protected BiomeSwamp(int id) + protected BiomeSwamp() { - super(id); + super(BaseBiome.SWAMPLAND); this.treesPerChunk = 2; this.flowersPerChunk = 1; this.deadBushPerChunk = 1; @@ -27,7 +28,6 @@ public class BiomeSwamp extends Biome this.sandPerChunk2 = 0; this.sandPerChunk = 0; this.grassPerChunk = 5; - this.waterColor = 0xe0ffae; this.mobs.add(new RngSpawn(EntitySlime.class, 1, 1, 1)); this.disableBeach(); } @@ -37,23 +37,12 @@ public class BiomeSwamp extends Biome return this.worldGeneratorSwamp; } - public int getGrassColorAtPos(BlockPos pos) - { - double d0 = GRASS_NOISE.generate((double)pos.getX() * 0.0225D, (double)pos.getZ() * 0.0225D); - return d0 < -0.1D ? 5011004 : 6975545; - } - - public int getFoliageColorAtPos(BlockPos pos) - { - return 6975545; - } - public BlockFlower.EnumFlowerType pickRandomFlower(Random rand, BlockPos pos) { return BlockFlower.EnumFlowerType.BLUE_ORCHID; } - public void genTerrainBlocks(AWorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) + public void genTerrainBlocks(WorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { double d0 = GRASS_NOISE.generate((double)x * 0.25D, (double)z * 0.25D); diff --git a/common/src/common/biome/BiomeTaiga.java b/server/src/server/biome/BiomeTaiga.java similarity index 76% rename from common/src/common/biome/BiomeTaiga.java rename to server/src/server/biome/BiomeTaiga.java index 440fc02..e892d05 100755 --- a/common/src/common/biome/BiomeTaiga.java +++ b/server/src/server/biome/BiomeTaiga.java @@ -1,5 +1,6 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.block.BlockDirt; import common.block.BlockDoublePlant; import common.block.BlockTallGrass; @@ -7,15 +8,15 @@ import common.entity.animal.EntityWolf; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; -import common.worldgen.FeatureGenerator; -import common.worldgen.feature.WorldGenBlockBlob; -import common.worldgen.foliage.WorldGenTallGrass; -import common.worldgen.tree.WorldGenPine; -import common.worldgen.tree.WorldGenTaiga1; -import common.worldgen.tree.WorldGenTaiga2; -import common.worldgen.tree.WorldGenTree; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; +import server.worldgen.FeatureGenerator; +import server.worldgen.feature.WorldGenBlockBlob; +import server.worldgen.foliage.WorldGenTallGrass; +import server.worldgen.tree.WorldGenPine; +import server.worldgen.tree.WorldGenTaiga1; +import server.worldgen.tree.WorldGenTaiga2; +import server.worldgen.tree.WorldGenTree; public class BiomeTaiga extends Biome { @@ -26,9 +27,9 @@ public class BiomeTaiga extends Biome private static final WorldGenBlockBlob field_150643_aG = new WorldGenBlockBlob(Blocks.mossy_cobblestone, 0); private int field_150644_aH; - public BiomeTaiga(int id, int p_i45385_2_) + public BiomeTaiga(BaseBiome base, int p_i45385_2_) { - super(id); + super(base); this.field_150644_aH = p_i45385_2_; this.mobs.add(new RngSpawn(EntityWolf.class, 8, 4, 4)); this.treesPerChunk = 10; @@ -59,7 +60,7 @@ public class BiomeTaiga extends Biome return rand.rarity(5) ? new WorldGenTallGrass(BlockTallGrass.EnumType.FERN) : new WorldGenTallGrass(BlockTallGrass.EnumType.GRASS); } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { if (this.field_150644_aH == 1 || this.field_150644_aH == 2) { @@ -87,7 +88,7 @@ public class BiomeTaiga extends Biome super.decorate(worldIn, rand, pos); } - public void genTerrainBlocks(AWorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) + public void genTerrainBlocks(WorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { if (this.field_150644_aH == 1 || this.field_150644_aH == 2) { @@ -107,8 +108,8 @@ public class BiomeTaiga extends Biome this.generateBiomeTerrain(worldIn, rand, chunkPrimerIn, x, z, noiseVal); } - protected Biome createMutatedBiome(int p_180277_1_) + protected Biome createMutatedBiome(BaseBiome base) { - return this.id == Biome.megaTaiga.id ? (new BiomeTaiga(p_180277_1_, 2)).setColor(5858897).setBiomeName("megaSpruceTaiga", "Hohe Fichtentaiga").setTemperature(-10.0f).setHumidity(80.0f).setScaling(this.depth, this.scale) : super.createMutatedBiome(p_180277_1_); + return this.base == BaseBiome.MEGATAIGA ? (new BiomeTaiga(base, 2)).setScaling(this.depth, this.scale) : super.createMutatedBiome(base); } } diff --git a/common/src/common/biome/BiomeTian.java b/server/src/server/biome/BiomeTian.java similarity index 85% rename from common/src/common/biome/BiomeTian.java rename to server/src/server/biome/BiomeTian.java index 6f8b5bf..c7a52c3 100755 --- a/common/src/common/biome/BiomeTian.java +++ b/server/src/server/biome/BiomeTian.java @@ -1,5 +1,6 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.block.BlockFlower; import common.entity.animal.EntityBat; import common.entity.animal.EntityMouse; @@ -9,13 +10,13 @@ import common.init.Blocks; import common.rng.Random; import common.rng.WeightedList; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; -import common.worldgen.feature.WorldGenSpikes; -import common.worldgen.foliage.WorldGenMushroom; -import common.worldgen.tree.WorldGenBaseTree; -import common.worldgen.tree.WorldGenBigTree; -import common.worldgen.tree.WorldGenTree; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; +import server.worldgen.feature.WorldGenSpikes; +import server.worldgen.foliage.WorldGenMushroom; +import server.worldgen.tree.WorldGenBaseTree; +import server.worldgen.tree.WorldGenBigTree; +import server.worldgen.tree.WorldGenTree; public class BiomeTian extends Biome { @@ -29,9 +30,9 @@ public class BiomeTian extends Biome protected WorldGenTree treeGen4 = new WorldGenBigTree(false, Blocks.tian_log.getState(), Blocks.tian_leaves.getState()) .setHeightLimit(12, 15); - public BiomeTian(int id) + public BiomeTian() { - super(id); + super(BaseBiome.TIAN); this.topBlock = Blocks.tian_soil.getState(); this.fillerBlock = Blocks.tian.getState(); this.mushroomsPerChunk = -1; @@ -57,7 +58,7 @@ public class BiomeTian extends Biome return rand.pick(rand.chance(this.treeGen2, this.treeGen1, 4), rand.chance(this.treeGen3, this.treeGen4, 15)); } - public void decorate(AWorldServer worldIn, Random rand, BlockPos pos) + public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { super.decorate(worldIn, rand, pos); diff --git a/common/src/common/biome/BiomeWater.java b/server/src/server/biome/BiomeWater.java similarity index 77% rename from common/src/common/biome/BiomeWater.java rename to server/src/server/biome/BiomeWater.java index af521da..acf45c1 100755 --- a/common/src/common/biome/BiomeWater.java +++ b/server/src/server/biome/BiomeWater.java @@ -1,13 +1,14 @@ -package common.biome; +package server.biome; +import common.biome.BaseBiome; import common.entity.animal.EntitySquid; import common.rng.WeightedList; public class BiomeWater extends Biome { private final boolean river; - public BiomeWater(int id, boolean river) { - super(id); + public BiomeWater(BaseBiome base, boolean river) { + super(base); this.river = river; this.disableBeach(); } diff --git a/common/src/common/biome/RngSpawn.java b/server/src/server/biome/RngSpawn.java similarity index 94% rename from common/src/common/biome/RngSpawn.java rename to server/src/server/biome/RngSpawn.java index 969bdca..140c20b 100644 --- a/common/src/common/biome/RngSpawn.java +++ b/server/src/server/biome/RngSpawn.java @@ -1,4 +1,4 @@ -package common.biome; +package server.biome; import common.entity.types.EntityLiving; import common.rng.RngItem; diff --git a/common/src/common/biome/Scaling.java b/server/src/server/biome/Scaling.java similarity index 96% rename from common/src/common/biome/Scaling.java rename to server/src/server/biome/Scaling.java index 1518b57..1dadf62 100644 --- a/common/src/common/biome/Scaling.java +++ b/server/src/server/biome/Scaling.java @@ -1,4 +1,4 @@ -package common.biome; +package server.biome; public enum Scaling { VARYING_LOW(0.1F, 0.2F), diff --git a/common/src/common/biome/Temperature.java b/server/src/server/biome/Temperature.java similarity index 71% rename from common/src/common/biome/Temperature.java rename to server/src/server/biome/Temperature.java index 3c809c9..4eda435 100644 --- a/common/src/common/biome/Temperature.java +++ b/server/src/server/biome/Temperature.java @@ -1,4 +1,4 @@ -package common.biome; +package server.biome; public enum Temperature { SEA, COLD, MEDIUM, WARM; diff --git a/server/src/server/network/Player.java b/server/src/server/network/Player.java index e975817..c667590 100755 --- a/server/src/server/network/Player.java +++ b/server/src/server/network/Player.java @@ -841,17 +841,17 @@ public class Player extends NetHandler implements ICrafting, Executor, IPlayer public void onCriticalHit(Entity entityHit) { - this.entity.getServerWorld().sendToAllTrackingAndSelf(this.entity, new SPacketAnimation(entityHit, 4)); + this.getEntityWorld().sendToAllTrackingAndSelf(this.entity, new SPacketAnimation(entityHit, 4)); } public void onEnchantmentCritical(Entity entityHit) { - this.entity.getServerWorld().sendToAllTrackingAndSelf(this.entity, new SPacketAnimation(entityHit, 5)); + this.getEntityWorld().sendToAllTrackingAndSelf(this.entity, new SPacketAnimation(entityHit, 5)); } public void updateEffectMeta() { - this.entity.getServerWorld().updateTrackedPlayer(this.entity); + this.getEntityWorld().updateTrackedPlayer(this.entity); } public void playSound(SoundEvent name, float volume) @@ -990,7 +990,7 @@ public class Player extends NetHandler implements ICrafting, Executor, IPlayer for (Chunk chunk1 : list) { - this.entity.getServerWorld().updateChunksForPlayer(this.entity, chunk1); + this.getEntityWorld().updateChunksForPlayer(this.entity, chunk1); } } } @@ -1367,7 +1367,7 @@ public class Player extends NetHandler implements ICrafting, Executor, IPlayer int ny = this.clipboard[0].length; int nz = this.clipboard[0][0].length; BlockPos to = this.entity.getPosition(); - ClipboardPlacer placer = new ClipboardPlacer((WorldServer)this.entity.getServerWorld()); + ClipboardPlacer placer = new ClipboardPlacer(this.getEntityWorld()); BlockTransform transform = null; if(this.rotation != 0 || this.flipX || this.flipZ) { transform = new BlockTransform(); @@ -2125,7 +2125,7 @@ public class Player extends NetHandler implements ICrafting, Executor, IPlayer this.entity.vehicle.updateRiderPosition(); } - this.entity.getServerWorld().updateMountedMovingPlayer(this.entity); + this.getEntityWorld().updateMountedMovingPlayer(this.entity); if (this.entity.vehicle != null) { @@ -2278,7 +2278,7 @@ public class Player extends NetHandler implements ICrafting, Executor, IPlayer // } this.entity.onGround = packetIn.isOnGround(); - this.entity.getServerWorld().updateMountedMovingPlayer(this.entity); + this.getEntityWorld().updateMountedMovingPlayer(this.entity); this.handleFalling(this.entity.posY - d7, packetIn.isOnGround()); } else if (this.tickTime - this.lastMoved > 20) diff --git a/server/src/server/world/Converter.java b/server/src/server/world/Converter.java index 34001e7..4ce09ac 100644 --- a/server/src/server/world/Converter.java +++ b/server/src/server/world/Converter.java @@ -15,7 +15,7 @@ import java.util.Map.Entry; import java.util.zip.GZIPInputStream; import java.util.zip.InflaterInputStream; -import common.biome.Biome; +import common.biome.BaseBiome; import common.block.Block; import common.block.BlockCactus; import common.block.BlockCarpet; @@ -916,7 +916,7 @@ public abstract class Converter { } tag.setTag("Sections", sections); byte[] biomes = new byte[256]; - Arrays.fill(biomes, (byte)(Biome.DEF_BIOME.id & 255)); + Arrays.fill(biomes, (byte)(BaseBiome.DEF_BIOME.id & 255)); tag.setByteArray("Biomes", biomes); } NBTTagList ents = tag.getTagList("Entities", 10); diff --git a/server/src/server/world/Spawner.java b/server/src/server/world/Spawner.java index 5a4255b..307d605 100755 --- a/server/src/server/world/Spawner.java +++ b/server/src/server/world/Spawner.java @@ -2,8 +2,6 @@ package server.world; import java.util.Set; -import common.biome.Biome; -import common.biome.RngSpawn; import common.block.Block; import common.collect.Sets; import common.entity.npc.EntityNPC; @@ -18,6 +16,8 @@ import common.util.ChunkPos; import common.util.ExtMath; import common.world.Chunk; import common.world.World; +import server.biome.Biome; +import server.biome.RngSpawn; public abstract class Spawner { private static final int MOB_COUNT_DIV = (int)Math.pow(17.0D, 2.0D); diff --git a/server/src/server/world/WorldServer.java b/server/src/server/world/WorldServer.java index 145c86c..d20dce3 100755 --- a/server/src/server/world/WorldServer.java +++ b/server/src/server/world/WorldServer.java @@ -13,8 +13,7 @@ import java.util.TreeSet; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; -import common.biome.Biome; -import common.biome.RngSpawn; +import common.biome.BaseBiome; import common.block.Block; import common.block.BlockDoor; import common.block.BlockEventData; @@ -81,25 +80,41 @@ import common.world.LightType; import common.world.State; import common.world.Weather; import common.world.World; -import common.worldgen.BiomeGenSingle; import common.worldgen.BiomeGenerator; -import common.worldgen.BlockReplacer; -import common.worldgen.ChunkGenerator; -import common.worldgen.ChunkPrimer; -import common.worldgen.FeatureDungeons; -import common.worldgen.FeatureLakes; -import common.worldgen.FeatureLiquids; -import common.worldgen.FeatureOres; -import common.worldgen.GeneratorDebug; -import common.worldgen.GeneratorDestroyed; -import common.worldgen.LootConstants; -import common.worldgen.caves.MapGenBigCaves; -import common.worldgen.caves.MapGenCaves; -import common.worldgen.caves.MapGenRavine; +import common.worldgen.FeatureLake; +import common.worldgen.FeatureLiquid; +import common.worldgen.FeatureOre; import server.Server; +import server.biome.Biome; +import server.biome.RngSpawn; import server.clipboard.ClipboardBlock; import server.network.Player; import server.village.VillageCollection; +import server.worldgen.BiomeGenLayered; +import server.worldgen.BiomeGenPerlin; +import server.worldgen.BiomeGenSingle; +import server.worldgen.BlockReplacer; +import server.worldgen.ChunkGenerator; +import server.worldgen.ChunkPrimer; +import server.worldgen.FeatureDungeons; +import server.worldgen.FeatureLakes; +import server.worldgen.FeatureLiquids; +import server.worldgen.FeatureOres; +import server.worldgen.GeneratorCavern; +import server.worldgen.GeneratorDebug; +import server.worldgen.GeneratorDestroyed; +import server.worldgen.GeneratorFlat; +import server.worldgen.GeneratorIsland; +import server.worldgen.GeneratorPerlin; +import server.worldgen.GeneratorSimple; +import server.worldgen.MobConstants; +import server.worldgen.ReplacerAltBiome; +import server.worldgen.ReplacerAltSurface; +import server.worldgen.ReplacerBiome; +import server.worldgen.ReplacerTopLayer; +import server.worldgen.caves.MapGenBigCaves; +import server.worldgen.caves.MapGenCaves; +import server.worldgen.caves.MapGenRavine; import server.worldgen.structure.MapGenBridge; import server.worldgen.structure.MapGenMineshaft; import server.worldgen.structure.MapGenScatteredFeature; @@ -131,7 +146,7 @@ public final class WorldServer extends AWorldServer { private final IntHashMap trackMap = new IntHashMap(); private final Map dataMap = Maps.newHashMap(); private final List dataList = Lists.newArrayList(); - private final Biome[] biomes = new Biome[256]; + private final BaseBiome[] biomes = new BaseBiome[256]; private MapGenCaves caveGen; private MapGenBigCaves bigCaveGen; @@ -175,6 +190,105 @@ public final class WorldServer extends AWorldServer { public static float clampGravity() { return ExtMath.clampf(Config.gravity, -10.0f, 10.0f); } + + private BiomeGenerator createBiomeGenerator(Random rand) { + return this.dimension.getBiomeSize() > 0 ? new BiomeGenLayered(rand.longv(), this.dimension.getDefaultBiome(), this.dimension.isSemiFixed(), this.dimension.getBiomeSize(), this.dimension.getRiverSize(), + this.dimension.getSnowRarity(), this.dimension.getSeaRarity(), this.dimension.getAddBiomes() == null ? new BaseBiome[0] : this.dimension.getAddBiomes(), this.dimension.getAddRarity(), + this.dimension.getHotBiomes() == null ? new BaseBiome[] {this.dimension.getDefaultBiome()} : this.dimension.getHotBiomes(), + this.dimension.getMediumBiomes() == null ? new BaseBiome[] {this.dimension.getDefaultBiome()} : this.dimension.getMediumBiomes(), + this.dimension.getColdBiomes() == null ? new BaseBiome[] {this.dimension.getDefaultBiome()} : this.dimension.getColdBiomes(), + this.dimension.getFrostBiomes() == null ? new BaseBiome[] {this.dimension.getDefaultBiome()} : this.dimension.getFrostBiomes()) : new BiomeGenSingle(this.dimension.getDefaultBiome()); + } + + private ChunkGenerator createChunkGenerator(Random rand) { + switch(this.dimension.getGeneratorType()) { + case FLAT: + return this.dimension.getLayers() == null ? new GeneratorFlat(this.dimension.getSeaLevel(), this.dimension.getFiller()) : new GeneratorFlat(this.dimension.getLayers()); + case PERLIN: + default: + return new GeneratorPerlin(rand, this.dimension.getFiller(), this.dimension.getLiquid(), this.dimension.getNoiseGen()); + case SIMPLE: + return new GeneratorSimple(rand, this.dimension.getFiller(), this.dimension.getLiquid(), + this.dimension.getBiomeSize() > 0 ? null : new BiomeGenPerlin(rand.longv())); + case ISLAND: + return new GeneratorIsland(rand, this.dimension.getFiller()); + case CAVERN: + return new GeneratorCavern(rand, this.dimension.getFiller(), this.dimension.getLiquid()); + case DESTROYED: + return new GeneratorDestroyed(this.dimension.getSeaLevel()); + } + } + + private BlockReplacer createBlockReplacer(Random rand) { + switch(this.dimension.getReplacerType()) { + case BIOMES: + default: + return new ReplacerBiome(rand); + case SIMPLE: + return new ReplacerAltBiome(rand, this.dimension.getFiller(), this.dimension.getLiquid(), this.dimension.getAlt2(), this.dimension.getAlt1()); + case ALTERNATE: + return new ReplacerAltSurface(rand, this.dimension.getFiller(), this.dimension.getAlt1(), this.dimension.getAlt2(), this.dimension.getLiquid()); + case TOPLAYER: + return new ReplacerTopLayer(this.dimension.getSurface(), this.dimension.getFiller().getBlock()); + case NONE: + return null; + } + } + + private FeatureDungeons createDungeonGenerator() { + return this.dimension.getDungeons() > 0 ? new FeatureDungeons(this.dimension.getDungeons()) : null; + } + + private MapGenCaves createCaveGenerator() { + return this.dimension.hasCaves() ? + (new MapGenCaves(this.dimension.getCaveFiller(), this.dimension.getFiller().getBlock(), this.dimension.getTop().getBlock(), + this.dimension.getSurface().getBlock(), this.dimension.getAlt1().getBlock())) : null; + } + + private MapGenRavine createRavineGenerator() { + return this.dimension.hasRavines() ? + (new MapGenRavine(this.dimension.getCaveFiller(), this.dimension.getFiller().getBlock(), + this.dimension.getTop().getBlock(), this.dimension.getSurface().getBlock())) : null; + } + + private MapGenBigCaves createBigCaveGenerator() { + return this.dimension.hasStrideCaves() ? + (new MapGenBigCaves(this.dimension.getFiller().getBlock(), + this.dimension.getTop().getBlock(), this.dimension.getSurface().getBlock())) : null; + } + + private FeatureOres[] createOres() { + if(this.dimension.getOres().isEmpty()) + return null; + FeatureOres[] gens = new FeatureOres[this.dimension.getOres().size()]; + for(int z = 0; z < gens.length; z++) { + FeatureOre gen = this.dimension.getOres().get(z); + gens[z] = new FeatureOres(gen.state, gen.count, gen.more, gen.size, gen.min, gen.max, gen.dist); + } + return gens; + } + + private FeatureLakes[] createLakes() { + if(this.dimension.getLakes().isEmpty()) + return null; + FeatureLakes[] gens = new FeatureLakes[this.dimension.getLakes().size()]; + for(int z = 0; z < gens.length; z++) { + FeatureLake gen = this.dimension.getLakes().get(z); + gens[z] = new FeatureLakes(gen.state, gen.filler, gen.top, gen.chance, gen.minHeight, gen.maxHeight, gen.ratiod); + } + return gens; + } + + private FeatureLiquids[] createLiquids() { + if(this.dimension.getLiquids().isEmpty()) + return null; + FeatureLiquids[] gens = new FeatureLiquids[this.dimension.getLiquids().size()]; + for(int z = 0; z < gens.length; z++) { + FeatureLiquid gen = this.dimension.getLiquids().get(z); + gens[z] = new FeatureLiquids(gen.state, gen.chance, gen.minHeight, gen.maxHeight, gen.lower); + } + return gens; + } public WorldServer(Server server, long dtime, Dimension dim, boolean debug) { super(dim, debug); @@ -220,7 +334,7 @@ public final class WorldServer extends AWorldServer { // GeneratorSettings settings = !debug && !this.exterminated ? dim.getSettings() : null; if(debug) { this.liquid = Blocks.air.getState(); - this.biomeGen = new BiomeGenSingle(Biome.none); + this.biomeGen = new BiomeGenSingle(BaseBiome.NONE); this.generator = new GeneratorDebug(); this.replacer = null; this.populate = false; @@ -301,13 +415,13 @@ public final class WorldServer extends AWorldServer { // } else { this.liquid = this.dimension.getLiquid(); - this.biomeGen = this.dimension.createBiomeGenerator(this.grng); - this.generator = this.dimension.createChunkGenerator(this.grng); - this.replacer = this.dimension.createBlockReplacer(this.grng); + this.biomeGen = this.createBiomeGenerator(this.grng); + this.generator = this.createChunkGenerator(this.grng); + this.replacer = this.createBlockReplacer(this.grng); this.populate = this.dimension.hasPopulator(); - this.caveGen = this.dimension.createCaveGenerator(); - this.bigCaveGen = this.dimension.createBigCaveGenerator(); - this.ravineGen = this.dimension.createRavineGenerator(); + this.caveGen = this.createCaveGenerator(); + this.bigCaveGen = this.createBigCaveGenerator(); + this.ravineGen = this.createRavineGenerator(); this.base = this.dimension.getWorldFloor(); this.ceil = this.dimension.getWorldCeiling(); this.mobs = this.dimension.hasMobs(); @@ -318,10 +432,10 @@ public final class WorldServer extends AWorldServer { this.scatteredGen = this.dimension.hasScattered() ? new MapGenScatteredFeature() : null; this.bridgeGen = this.dimension.hasFortresses() ? new MapGenBridge() : null; this.seaLevel = this.dimension.getSeaLevel(); - this.ores = this.dimension.getOres(); - this.lakes = this.dimension.getLakes(); - this.liquids = this.dimension.getLiquids(); - this.dungeons = this.dimension.createDungeonGenerator(); + this.ores = this.createOres(); + this.lakes = this.createLakes(); + this.liquids = this.createLiquids(); + this.dungeons = this.createDungeonGenerator(); } this.height = this.generator.getMaximumHeight(); // this.teleporter = new Teleporter(this); @@ -482,13 +596,13 @@ public final class WorldServer extends AWorldServer { } private WeightedList getSpawnTypes(BlockPos pos) { - Biome biome = this.getBiomeGenForCoords(pos); + BaseBiome biome = this.getBiomeGenForCoords(pos); if(this.bridgeGen != null && (this.bridgeGen.isPresent(pos) || (this.bridgeGen.isPositionInStructure(this, pos) && this.getState(pos.down()).getBlock() == Blocks.blood_brick))) - return LootConstants.FORTRESS_MOBS; + return MobConstants.FORTRESS_MOBS; else if(this.scatteredGen != null && this.scatteredGen.hasMageHut(pos)) - return LootConstants.MAGEHUT_MOBS; - return biome.getMobs(); + return MobConstants.MAGEHUT_MOBS; + return Biome.BIOMES[biome.id].getMobs(); } public RngSpawn getSpawnListEntryForTypeAt(BlockPos pos) { @@ -509,11 +623,11 @@ public final class WorldServer extends AWorldServer { return this.biomeGen; } - public Biome getBiomeGenForCoords(final BlockPos pos) { + public BaseBiome getBiomeGenForCoords(final BlockPos pos) { if(this.isBlockLoaded(pos)) return this.getChunk(pos).getBiome(pos, this.biomeGen); else - return this.biomeGen.getBiomeGenerator(pos, Biome.DEF_BIOME); + return this.biomeGen.getBiomeGenerator(pos, BaseBiome.DEF_BIOME); } public void setItemData(String dataID, WorldSavedData worldSavedDataIn) { @@ -1423,7 +1537,7 @@ public final class WorldServer extends AWorldServer { int bx = x * 16; int bz = z * 16; BlockPos pos = new BlockPos(bx, 0, bz); - Biome biome = this.getBiomeGenForCoords(pos.add(16, 0, 16)); + Biome biome = Biome.BIOMES[this.getBiomeGenForCoords(pos.add(16, 0, 16)).id]; this.grng.setSeed(this.seed); long sx = this.grng.longv() / 2L * 2L + 1L; long sz = this.grng.longv() / 2L * 2L + 1L; @@ -1521,7 +1635,7 @@ public final class WorldServer extends AWorldServer { if(this.scatteredGen != null) { this.scatteredGen.generate(this, x, z, primer); } - return new Chunk(this, primer, this.base, this.ceil, this.grng, this.biomes, x, z); + return new Chunk(this, primer.getData(), primer.height, this.base, this.ceil, this.grng, this.biomes, x, z); } public boolean isExterminated() { @@ -1627,7 +1741,7 @@ public final class WorldServer extends AWorldServer { this.scatteredGen = null; this.bridgeGen = null; this.generator = new GeneratorDestroyed(this.dimension.getSeaLevel()); - this.biomeGen = new BiomeGenSingle(Biome.exterminated); + this.biomeGen = new BiomeGenSingle(BaseBiome.EXTERMINATED); this.replacer = null; this.populate = false; this.liquid = Blocks.air.getState(); @@ -2131,7 +2245,7 @@ public final class WorldServer extends AWorldServer { // return new LazyBlock(state, this, position); // } - public final boolean setBiome(BlockPos position, Biome biome) { + public final boolean setBiome(BlockPos position, BaseBiome biome) { Chunk chunk = this.getChunk(position); if((chunk != null) && (chunk.isLoaded())) { chunk.getBiomes()[((position.getZ() & 0xF) << 4 | position.getX() & 0xF)] = (byte)biome.id; @@ -2140,7 +2254,7 @@ public final class WorldServer extends AWorldServer { return false; } - public final void setBiomes(BlockPos start, BlockPos end, Biome biome) { + public final void setBiomes(BlockPos start, BlockPos end, BaseBiome biome) { Set chunks = Sets.newHashSet(); for(int x = start.getX(); x <= end.getX(); x++) { for(int z = start.getZ(); z <= end.getZ(); z++) { @@ -2185,7 +2299,7 @@ public final class WorldServer extends AWorldServer { } public boolean isBlockinHighHumidity(BlockPos pos) { - Biome biomegenbase = this.getBiomeGenForCoords(pos); + BaseBiome biomegenbase = this.getBiomeGenForCoords(pos); return biomegenbase.isHighHumidity(); } diff --git a/common/src/common/worldgen/BiomeGenLayered.java b/server/src/server/worldgen/BiomeGenLayered.java similarity index 78% rename from common/src/common/worldgen/BiomeGenLayered.java rename to server/src/server/worldgen/BiomeGenLayered.java index 152ba93..3718e9a 100755 --- a/common/src/common/worldgen/BiomeGenLayered.java +++ b/server/src/server/worldgen/BiomeGenLayered.java @@ -1,38 +1,39 @@ -package common.worldgen; +package server.worldgen; import java.util.List; import java.util.Set; -import common.biome.Biome; +import common.biome.BaseBiome; import common.collect.Lists; import common.util.BlockPos; import common.util.LongHashMap; -import common.worldgen.layer.GenLayer; -import common.worldgen.layer.GenLayerAddAreas; -import common.worldgen.layer.GenLayerAddExtra; -import common.worldgen.layer.GenLayerAddSea; -import common.worldgen.layer.GenLayerAddSnow; -import common.worldgen.layer.GenLayerBase; -import common.worldgen.layer.GenLayerBiome; -import common.worldgen.layer.GenLayerBiomeEdge; -import common.worldgen.layer.GenLayerEdge; -import common.worldgen.layer.GenLayerFuzzyZoom; -import common.worldgen.layer.GenLayerHills; -import common.worldgen.layer.GenLayerRemoveEmpty; -import common.worldgen.layer.GenLayerRiver; -import common.worldgen.layer.GenLayerRiverInit; -import common.worldgen.layer.GenLayerRiverMix; -import common.worldgen.layer.GenLayerShore; -import common.worldgen.layer.GenLayerSmooth; -import common.worldgen.layer.GenLayerVoronoiZoom; -import common.worldgen.layer.GenLayerZoom; -import common.worldgen.layer.IntCache; +import common.worldgen.BiomeGenerator; +import server.worldgen.layer.GenLayer; +import server.worldgen.layer.GenLayerAddAreas; +import server.worldgen.layer.GenLayerAddExtra; +import server.worldgen.layer.GenLayerAddSea; +import server.worldgen.layer.GenLayerAddSnow; +import server.worldgen.layer.GenLayerBase; +import server.worldgen.layer.GenLayerBiome; +import server.worldgen.layer.GenLayerBiomeEdge; +import server.worldgen.layer.GenLayerEdge; +import server.worldgen.layer.GenLayerFuzzyZoom; +import server.worldgen.layer.GenLayerHills; +import server.worldgen.layer.GenLayerRemoveEmpty; +import server.worldgen.layer.GenLayerRiver; +import server.worldgen.layer.GenLayerRiverInit; +import server.worldgen.layer.GenLayerRiverMix; +import server.worldgen.layer.GenLayerShore; +import server.worldgen.layer.GenLayerSmooth; +import server.worldgen.layer.GenLayerVoronoiZoom; +import server.worldgen.layer.GenLayerZoom; +import server.worldgen.layer.IntCache; public class BiomeGenLayered implements BiomeGenerator { private class CacheBlock { public final double[] factors = new double[256]; - public final Biome[] biomes = new Biome[256]; + public final BaseBiome[] biomes = new BaseBiome[256]; public int xPosition; public int zPosition; public long lastAccessTime; @@ -45,7 +46,7 @@ public class BiomeGenLayered implements BiomeGenerator { BiomeGenLayered.this.getBiomes(this.biomes, x << 4, z << 4, 16, 16, false); } - public Biome getBiomeGenAt(int x, int z) + public BaseBiome getBiomeGenAt(int x, int z) { return this.biomes[x & 15 | (z & 15) << 4]; } @@ -66,8 +67,8 @@ public class BiomeGenLayered implements BiomeGenerator { // this(); // } - public BiomeGenLayered(long seed, Biome def, boolean fixed, int biomeSize, int riverSize, int snowRarity, int seaRarity, - Biome[] add, int addRarity, Biome[] hot, Biome[] medium, Biome[] cold, Biome[] frost) { + public BiomeGenLayered(long seed, BaseBiome def, boolean fixed, int biomeSize, int riverSize, int snowRarity, int seaRarity, + BaseBiome[] add, int addRarity, BaseBiome[] hot, BaseBiome[] medium, BaseBiome[] cold, BaseBiome[] frost) { // GenLayer[] layers = GenLayer.getLayers(seed, fixedBiome, biomeSize, riverSize, snowRarity, seaRarity, shroomRarity, biomeRarity); GenLayer layer0t1 = new GenLayerBase(1L); layer0t1 = new GenLayerFuzzyZoom(2000L, layer0t1); @@ -162,10 +163,10 @@ public class BiomeGenLayered implements BiomeGenerator { } } - public Biome getBiomeGenerator(BlockPos pos, Biome def) { + public BaseBiome getBiomeGenerator(BlockPos pos, BaseBiome def) { int x = pos.getX(); int z = pos.getZ(); - Biome biome = this.getBiomeCacheBlock(x, z).getBiomeGenAt(x, z); + BaseBiome biome = this.getBiomeCacheBlock(x, z).getBiomeGenAt(x, z); return biome == null ? def : biome; } @@ -175,7 +176,7 @@ public class BiomeGenLayered implements BiomeGenerator { int[] aint = this.biomeIndexLayer.getInts(x, z, width, length); for(int i = 0; i < width * length; ++i) { - Biome biome = Biome.getBiome(aint[i], Biome.DEF_BIOME); + BaseBiome biome = BaseBiome.getBiomeDef(aint[i]); listToReuse[i] = (double)biome.getFactor(); } } @@ -191,43 +192,43 @@ public class BiomeGenLayered implements BiomeGenerator { int[] aint = this.biomeIndexLayer.getInts(xPos, zPos, sizeX, sizeZ); for(int i = 0; i < sizeX * sizeZ; ++i) { - Biome biome = Biome.getBiome(aint[i], Biome.DEF_BIOME); + BaseBiome biome = BaseBiome.getBiomeDef(aint[i]); factors[i] = (double)biome.getFactor(); } } } - public void getGenBiomes(Biome[] biomes, int x, int z, int width, int height) { + public void getGenBiomes(BaseBiome[] biomes, int x, int z, int width, int height) { IntCache.resetIntCache(); int[] aint = this.genBiomes.getInts(x, z, width, height); for(int i = 0; i < width * height; ++i) { - biomes[i] = Biome.getBiome(aint[i], Biome.DEF_BIOME); + biomes[i] = BaseBiome.getBiomeDef(aint[i]); } } - public void getChunkBiomes(Biome[] oldBiomeList, int x, int z, int width, int depth) { + public void getChunkBiomes(BaseBiome[] oldBiomeList, int x, int z, int width, int depth) { this.getBiomes(oldBiomeList, x, z, width, depth, true); } - public void getBiomes(Biome[] listToReuse, int x, int z, int width, int length, boolean cache) { + public void getBiomes(BaseBiome[] listToReuse, int x, int z, int width, int length, boolean cache) { IntCache.resetIntCache(); if(cache && width == 16 && length == 16 && (x & 15) == 0 && (z & 15) == 0) { - Biome[] biomes = this.getBiomeCacheBlock(x, z).biomes; + BaseBiome[] biomes = this.getBiomeCacheBlock(x, z).biomes; System.arraycopy(biomes, 0, listToReuse, 0, width * length); } else { int[] aint = this.biomeIndexLayer.getInts(x, z, width, length); for(int i = 0; i < width * length; ++i) { - listToReuse[i] = Biome.getBiome(aint[i], Biome.DEF_BIOME); + listToReuse[i] = BaseBiome.getBiomeDef(aint[i]); } } } - public boolean areBiomesViable(int x, int z, int size, Set allowed) { + public boolean areBiomesViable(int x, int z, int size, Set allowed) { IntCache.resetIntCache(); int i = x - size >> 2; int j = z - size >> 2; @@ -238,7 +239,7 @@ public class BiomeGenLayered implements BiomeGenerator { int[] aint = this.genBiomes.getInts(i, j, i1, j1); for(int k1 = 0; k1 < i1 * j1; ++k1) { - Biome biome = Biome.getBiome(aint[k1]); + BaseBiome biome = BaseBiome.getBiome(aint[k1]); if(!allowed.contains(biome)) { return false; diff --git a/common/src/common/worldgen/BiomeGenPerlin.java b/server/src/server/worldgen/BiomeGenPerlin.java similarity index 96% rename from common/src/common/worldgen/BiomeGenPerlin.java rename to server/src/server/worldgen/BiomeGenPerlin.java index ae0e0df..3cde62c 100755 --- a/common/src/common/worldgen/BiomeGenPerlin.java +++ b/server/src/server/worldgen/BiomeGenPerlin.java @@ -1,4 +1,4 @@ -package common.worldgen; +package server.worldgen; import common.rng.PerlinGenOld; import common.rng.Random; diff --git a/common/src/common/worldgen/BiomeGenSingle.java b/server/src/server/worldgen/BiomeGenSingle.java similarity index 59% rename from common/src/common/worldgen/BiomeGenSingle.java rename to server/src/server/worldgen/BiomeGenSingle.java index 1dd6493..9af3ed9 100755 --- a/common/src/common/worldgen/BiomeGenSingle.java +++ b/server/src/server/worldgen/BiomeGenSingle.java @@ -1,31 +1,32 @@ -package common.worldgen; +package server.worldgen; import java.util.Arrays; import java.util.Set; -import common.biome.Biome; +import common.biome.BaseBiome; import common.util.BlockPos; +import common.worldgen.BiomeGenerator; public class BiomeGenSingle implements BiomeGenerator { - private final Biome biome; + private final BaseBiome biome; - public BiomeGenSingle(Biome biome) { + public BiomeGenSingle(BaseBiome biome) { this.biome = biome; } - public Biome getBiomeGenerator(BlockPos pos, Biome def) { + public BaseBiome getBiomeGenerator(BlockPos pos, BaseBiome def) { return this.biome; } - public void getGenBiomes(Biome[] biomes, int x, int z, int width, int height) { + public void getGenBiomes(BaseBiome[] biomes, int x, int z, int width, int height) { Arrays.fill(biomes, 0, width * height, this.biome); } - public void getChunkBiomes(Biome[] oldBiomeList, int x, int z, int width, int depth) { + public void getChunkBiomes(BaseBiome[] oldBiomeList, int x, int z, int width, int depth) { Arrays.fill(oldBiomeList, 0, width * depth, this.biome); } - public void getBiomes(Biome[] listToReuse, int x, int z, int width, int length, boolean cache) { + public void getBiomes(BaseBiome[] listToReuse, int x, int z, int width, int length, boolean cache) { Arrays.fill(listToReuse, 0, width * length, this.biome); } @@ -34,7 +35,7 @@ public class BiomeGenSingle implements BiomeGenerator { // : null; // } - public boolean areBiomesViable(int x, int z, int size, Set allowed) { + public boolean areBiomesViable(int x, int z, int size, Set allowed) { return allowed.contains(this.biome); } diff --git a/server/src/server/worldgen/BlockReplacer.java b/server/src/server/worldgen/BlockReplacer.java new file mode 100755 index 0000000..2350409 --- /dev/null +++ b/server/src/server/worldgen/BlockReplacer.java @@ -0,0 +1,9 @@ +package server.worldgen; + +import common.biome.BaseBiome; +import common.rng.Random; +import server.world.WorldServer; + +public interface BlockReplacer { + public void replaceBlocks(WorldServer world, int x, int z, ChunkPrimer primer, Random rand, BaseBiome[] biomes); +} diff --git a/server/src/server/worldgen/ChunkGenerator.java b/server/src/server/worldgen/ChunkGenerator.java new file mode 100755 index 0000000..fd6f685 --- /dev/null +++ b/server/src/server/worldgen/ChunkGenerator.java @@ -0,0 +1,8 @@ +package server.worldgen; + +import server.world.WorldServer; + +public interface ChunkGenerator { + public void generateChunk(WorldServer world, int x, int z, ChunkPrimer primer); + public int getMaximumHeight(); +} diff --git a/common/src/common/worldgen/ChunkPrimer.java b/server/src/server/worldgen/ChunkPrimer.java similarity index 88% rename from common/src/common/worldgen/ChunkPrimer.java rename to server/src/server/worldgen/ChunkPrimer.java index d0c6f0e..7372177 100755 --- a/common/src/common/worldgen/ChunkPrimer.java +++ b/server/src/server/worldgen/ChunkPrimer.java @@ -1,4 +1,4 @@ -package common.worldgen; +package server.worldgen; import common.init.BlockRegistry; import common.init.Blocks; @@ -12,6 +12,10 @@ public class ChunkPrimer { this.data = new short[Math.max(height, 256) * 256]; this.height = height; } + + public short[] getData() { + return this.data; + } public State get(int x, int y, int z) { State state = BlockRegistry.STATEMAP.getByValue(this.data[x << 4 | z | y << 8]); diff --git a/common/src/common/worldgen/FeatureDungeons.java b/server/src/server/worldgen/FeatureDungeons.java similarity index 96% rename from common/src/common/worldgen/FeatureDungeons.java rename to server/src/server/worldgen/FeatureDungeons.java index cb04f19..816c0d8 100755 --- a/common/src/common/worldgen/FeatureDungeons.java +++ b/server/src/server/worldgen/FeatureDungeons.java @@ -1,4 +1,4 @@ -package common.worldgen; +package server.worldgen; import common.init.Blocks; import common.init.Items; @@ -12,7 +12,7 @@ import common.tileentity.TileEntityChest; import common.tileentity.TileEntityMobSpawner; import common.util.BlockPos; import common.util.Facing; -import common.world.AWorldServer; +import server.world.WorldServer; public class FeatureDungeons { @@ -25,7 +25,7 @@ public class FeatureDungeons } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) { + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { boolean flag = false; for(int z = 0; z < this.chance; z++) { flag |= this.generateDungeon(worldIn, rand, position.add(rand.chOffset(), rand.zrange(256), rand.chOffset())); @@ -33,7 +33,7 @@ public class FeatureDungeons return flag; } - private boolean generateDungeon(AWorldServer worldIn, Random rand, BlockPos position) + private boolean generateDungeon(WorldServer worldIn, Random rand, BlockPos position) { int i = 3; int j = rand.zrange(2) + 2; diff --git a/common/src/common/worldgen/FeatureGenerator.java b/server/src/server/worldgen/FeatureGenerator.java similarity index 67% rename from common/src/common/worldgen/FeatureGenerator.java rename to server/src/server/worldgen/FeatureGenerator.java index 6854bce..95f6331 100755 --- a/common/src/common/worldgen/FeatureGenerator.java +++ b/server/src/server/worldgen/FeatureGenerator.java @@ -1,9 +1,9 @@ -package common.worldgen; +package server.worldgen; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public abstract class FeatureGenerator { @@ -19,9 +19,9 @@ public abstract class FeatureGenerator this.doBlockNotify = notify; } - public abstract boolean generate(AWorldServer worldIn, Random rand, BlockPos position); + public abstract boolean generate(WorldServer worldIn, Random rand, BlockPos position); - protected void setBlockAndNotifyAdequately(AWorldServer worldIn, BlockPos pos, State state) + protected void setBlockAndNotifyAdequately(WorldServer worldIn, BlockPos pos, State state) { if (this.doBlockNotify) { diff --git a/common/src/common/worldgen/FeatureLakes.java b/server/src/server/worldgen/FeatureLakes.java similarity index 95% rename from common/src/common/worldgen/FeatureLakes.java rename to server/src/server/worldgen/FeatureLakes.java index 47f5f97..a930b0e 100755 --- a/common/src/common/worldgen/FeatureLakes.java +++ b/server/src/server/worldgen/FeatureLakes.java @@ -1,6 +1,5 @@ -package common.worldgen; +package server.worldgen; -import common.biome.Biome; import common.block.Block; import common.init.Blocks; import common.material.Material; @@ -8,7 +7,8 @@ import common.rng.Random; import common.util.BlockPos; import common.world.LightType; import common.world.State; -import common.world.AWorldServer; +import server.biome.Biome; +import server.world.WorldServer; public class FeatureLakes { @@ -47,7 +47,7 @@ public class FeatureLakes // this(block, block == Blocks.lava ? Blocks.stone.getDefaultState() : null, Blocks.dirt, Blocks.grass.getDefaultState()); // } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) { + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { if(this.ratiod) { if(this.chance >= 1 && rand.chance(this.chance)) { int y = rand.range(this.minHeight, this.maxHeight); // rand.zrange(rand.zrange(248) + 8); @@ -63,7 +63,7 @@ public class FeatureLakes return false; } - private boolean generateLake(AWorldServer worldIn, Random rand, BlockPos position) + private boolean generateLake(WorldServer worldIn, Random rand, BlockPos position) { for (position = position.add(-8, 0, -8); position.getY() > 5 && worldIn.isAirBlock(position); position = position.down()) { @@ -163,7 +163,7 @@ public class FeatureLakes if (worldIn.getState(blockpos).getBlock() == replace && worldIn.getLightFor(LightType.SKY, position.add(i2, j4, j3)) > 0) { - Biome biomegenbase = worldIn.getBiomeGenForCoords(blockpos); + Biome biomegenbase = Biome.BIOMES[worldIn.getBiomeGenForCoords(blockpos).id]; if (biomegenbase.topBlock.getBlock() == Blocks.mycelium) { diff --git a/common/src/common/worldgen/FeatureLiquids.java b/server/src/server/worldgen/FeatureLiquids.java similarity index 93% rename from common/src/common/worldgen/FeatureLiquids.java rename to server/src/server/worldgen/FeatureLiquids.java index e0c0e26..ff0a1e8 100755 --- a/common/src/common/worldgen/FeatureLiquids.java +++ b/server/src/server/worldgen/FeatureLiquids.java @@ -1,11 +1,11 @@ -package common.worldgen; +package server.worldgen; import common.block.Block; import common.material.Material; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class FeatureLiquids { @@ -40,7 +40,7 @@ public class FeatureLiquids } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) { + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { Block replace = worldIn.dimension.getFiller().getBlock(); boolean flag = false; for(int z = 0; z < this.chance; z++) { @@ -56,7 +56,7 @@ public class FeatureLiquids return flag; } - private boolean generateLiquid(AWorldServer worldIn, Random rand, BlockPos position, Block replace) + private boolean generateLiquid(WorldServer worldIn, Random rand, BlockPos position, Block replace) { if (worldIn.getState(position.up()).getBlock() != replace) { diff --git a/common/src/common/worldgen/FeatureOres.java b/server/src/server/worldgen/FeatureOres.java similarity index 96% rename from common/src/common/worldgen/FeatureOres.java rename to server/src/server/worldgen/FeatureOres.java index 0786e0c..abac8a1 100755 --- a/common/src/common/worldgen/FeatureOres.java +++ b/server/src/server/worldgen/FeatureOres.java @@ -1,11 +1,11 @@ -package common.worldgen; +package server.worldgen; import common.block.Block; import common.rng.Random; import common.util.BlockPos; import common.util.ExtMath; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class FeatureOres { @@ -80,7 +80,7 @@ public class FeatureOres // this.replace = replace; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) { + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { Block replace = /* this.replace != null ? this.replace : */ worldIn.dimension.getFiller().getBlock(); int tries = this.spawnTries == 0 ? (rand.zrange(this.moreTries) == 0 ? 1 : 0) : @@ -106,7 +106,7 @@ public class FeatureOres return true; } - private void generateVein(AWorldServer worldIn, Random rand, BlockPos position, Block replace) + private void generateVein(WorldServer worldIn, Random rand, BlockPos position, Block replace) { float f = rand.floatv() * (float)Math.PI; double d0 = (double)(/* (float)(position.getX() + 8) */ 8.0f + ExtMath.sin(f) * (float)this.numberOfBlocks / 8.0F); diff --git a/common/src/common/worldgen/GeneratorCavern.java b/server/src/server/worldgen/GeneratorCavern.java similarity index 97% rename from common/src/common/worldgen/GeneratorCavern.java rename to server/src/server/worldgen/GeneratorCavern.java index a3e164e..12f221b 100755 --- a/common/src/common/worldgen/GeneratorCavern.java +++ b/server/src/server/worldgen/GeneratorCavern.java @@ -1,10 +1,10 @@ -package common.worldgen; +package server.worldgen; import common.rng.OctaveGen; import common.rng.Random; import common.util.ExtMath; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class GeneratorCavern implements ChunkGenerator { @@ -43,7 +43,7 @@ public class GeneratorCavern implements ChunkGenerator return 128; } - public void generateChunk(AWorldServer world, int x, int z, ChunkPrimer primer) + public void generateChunk(WorldServer world, int x, int z, ChunkPrimer primer) { int range = 4; int lh = world.getSeaLevel() / 2 + 1; diff --git a/server/src/server/worldgen/GeneratorDebug.java b/server/src/server/worldgen/GeneratorDebug.java new file mode 100755 index 0000000..d1eb549 --- /dev/null +++ b/server/src/server/worldgen/GeneratorDebug.java @@ -0,0 +1,27 @@ +package server.worldgen; + +import common.world.State; +import common.worldgen.DebugStates; +import server.world.WorldServer; + +public class GeneratorDebug implements ChunkGenerator +{ + public int getMaximumHeight() { + return 72; + } + + public void generateChunk(WorldServer world, int x, int z, ChunkPrimer primer) + { + for(int bx = 0; bx < 16; ++bx) { + for(int bz = 0; bz < 16; ++bz) { + int sx = x * 16 + bx; + int sz = z * 16 + bz; +// primer.set(bx, 60, bz, Blocks.glass.getDefaultState()); + State state = DebugStates.getState(sx, sz); + if(state != null) { + primer.set(bx, 1, bz, state); + } + } + } + } +} diff --git a/common/src/common/worldgen/GeneratorDestroyed.java b/server/src/server/worldgen/GeneratorDestroyed.java similarity index 86% rename from common/src/common/worldgen/GeneratorDestroyed.java rename to server/src/server/worldgen/GeneratorDestroyed.java index 2d7b188..cfaf319 100755 --- a/common/src/common/worldgen/GeneratorDestroyed.java +++ b/server/src/server/worldgen/GeneratorDestroyed.java @@ -1,9 +1,9 @@ -package common.worldgen; +package server.worldgen; import common.init.Blocks; import common.rng.Random; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class GeneratorDestroyed implements ChunkGenerator { @@ -23,7 +23,7 @@ public class GeneratorDestroyed implements ChunkGenerator return this.height; } - public void generateChunk(AWorldServer world, int x, int z, ChunkPrimer primer) + public void generateChunk(WorldServer world, int x, int z, ChunkPrimer primer) { for(int by = 0; by < this.height; ++by) { for(int bx = 0; bx < 16; ++bx) { diff --git a/common/src/common/worldgen/GeneratorFlat.java b/server/src/server/worldgen/GeneratorFlat.java similarity index 86% rename from common/src/common/worldgen/GeneratorFlat.java rename to server/src/server/worldgen/GeneratorFlat.java index bb97868..668e651 100755 --- a/common/src/common/worldgen/GeneratorFlat.java +++ b/server/src/server/worldgen/GeneratorFlat.java @@ -1,9 +1,9 @@ -package common.worldgen; +package server.worldgen; import java.util.Arrays; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class GeneratorFlat implements ChunkGenerator { private final State[] layers; @@ -37,7 +37,7 @@ public class GeneratorFlat implements ChunkGenerator { return this.layers.length; } - public void generateChunk(AWorldServer world, int x, int z, ChunkPrimer primer) { + public void generateChunk(WorldServer world, int x, int z, ChunkPrimer primer) { for(int by = 0; by < this.layers.length; by++) { State state = this.layers[by]; for(int bx = 0; bx < 16; bx++) { diff --git a/common/src/common/worldgen/GeneratorIsland.java b/server/src/server/worldgen/GeneratorIsland.java similarity index 97% rename from common/src/common/worldgen/GeneratorIsland.java rename to server/src/server/worldgen/GeneratorIsland.java index ffb42f9..639b28e 100755 --- a/common/src/common/worldgen/GeneratorIsland.java +++ b/server/src/server/worldgen/GeneratorIsland.java @@ -1,10 +1,10 @@ -package common.worldgen; +package server.worldgen; import common.rng.OctaveGen; import common.rng.Random; import common.util.ExtMath; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class GeneratorIsland implements ChunkGenerator { @@ -41,7 +41,7 @@ public class GeneratorIsland implements ChunkGenerator return 128; } - public void generateChunk(AWorldServer world, int x, int z, ChunkPrimer primer) + public void generateChunk(WorldServer world, int x, int z, ChunkPrimer primer) { int range = 2; int xr = range + 1; diff --git a/common/src/common/worldgen/GeneratorPerlin.java b/server/src/server/worldgen/GeneratorPerlin.java similarity index 95% rename from common/src/common/worldgen/GeneratorPerlin.java rename to server/src/server/worldgen/GeneratorPerlin.java index 7269142..659347f 100755 --- a/common/src/common/worldgen/GeneratorPerlin.java +++ b/server/src/server/worldgen/GeneratorPerlin.java @@ -1,13 +1,14 @@ -package common.worldgen; +package server.worldgen; -import common.biome.Biome; +import common.biome.BaseBiome; import common.dimension.Dimension; import common.rng.NoiseGen; import common.rng.OctaveGen; import common.rng.Random; import common.util.ExtMath; import common.world.State; -import common.world.AWorldServer; +import server.biome.Biome; +import server.world.WorldServer; public class GeneratorPerlin implements ChunkGenerator { @@ -51,7 +52,7 @@ public class GeneratorPerlin implements ChunkGenerator private final double[] lowerNoise = new double[825]; private final double[] upperNoise = new double[825]; private final double[] depthNoise = new double[25]; - private final Biome[] biomes = new Biome[100]; + private final BaseBiome[] biomes = new BaseBiome[100]; // public GeneratorNew(Random rand, GeneratorSettings settings) // { @@ -105,7 +106,7 @@ public class GeneratorPerlin implements ChunkGenerator return 256; } - public void generateChunk(AWorldServer world, int x, int z, ChunkPrimer primer) + public void generateChunk(WorldServer world, int x, int z, ChunkPrimer primer) { int sea = world.getSeaLevel(); world.getBiomeGenerator().getGenBiomes(this.biomes, x * 4 - 2, z * 4 - 2, 10, 10); @@ -196,13 +197,13 @@ public class GeneratorPerlin implements ChunkGenerator float min = 0.0F; float sum = 0.0F; int range = 2; - Biome biome = this.biomes[u + 2 + (v + 2) * 10]; + Biome biome = Biome.BIOMES[this.biomes[u + 2 + (v + 2) * 10].id]; for (int a = -range; a <= range; ++a) { for (int b = -range; b <= range; ++b) { - Biome biome2 = this.biomes[u + a + 2 + (v + b + 2) * 10]; + Biome biome2 = Biome.BIOMES[this.biomes[u + a + 2 + (v + b + 2) * 10].id]; float bmin = this.biomeDepthOffset + biome2.depth * this.biomeDepthWeight; float bmax = this.biomeScaleOffset + biome2.scale * this.biomeScaleWeight; diff --git a/common/src/common/worldgen/GeneratorSimple.java b/server/src/server/worldgen/GeneratorSimple.java similarity index 96% rename from common/src/common/worldgen/GeneratorSimple.java rename to server/src/server/worldgen/GeneratorSimple.java index fb940fc..0f84201 100755 --- a/common/src/common/worldgen/GeneratorSimple.java +++ b/server/src/server/worldgen/GeneratorSimple.java @@ -1,10 +1,10 @@ -package common.worldgen; +package server.worldgen; import common.rng.NoiseGen; import common.rng.OctaveGen; import common.rng.Random; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class GeneratorSimple implements ChunkGenerator { @@ -54,7 +54,7 @@ public class GeneratorSimple implements ChunkGenerator return 128; } - public void generateChunk(AWorldServer world, int x, int z, ChunkPrimer primer) + public void generateChunk(WorldServer world, int x, int z, ChunkPrimer primer) { if(this.biomeGen == null) world.getBiomeGenerator().genFactors(this.factors, x * 16, z * 16, 16, 16); diff --git a/common/src/common/worldgen/LootConstants.java b/server/src/server/worldgen/LootConstants.java similarity index 73% rename from common/src/common/worldgen/LootConstants.java rename to server/src/server/worldgen/LootConstants.java index 9e52c59..a26738f 100755 --- a/common/src/common/worldgen/LootConstants.java +++ b/server/src/server/worldgen/LootConstants.java @@ -1,40 +1,13 @@ -package common.worldgen; +package server.worldgen; -import common.biome.RngSpawn; import common.color.DyeColor; -import common.entity.npc.EntityDarkMage; -import common.entity.npc.EntityMage; -import common.entity.npc.EntityMagma; -import common.entity.npc.EntityTiefling; -import common.entity.npc.EntityUndead; -import common.entity.projectile.RngFishable; import common.init.Blocks; import common.init.ItemRegistry; import common.init.Items; -import common.item.ItemFishFood; -import common.item.ItemStack; import common.item.RngLoot; import common.rng.WeightedList; public abstract class LootConstants { - public static final WeightedList FISHING_JUNK = new WeightedList( - (new RngFishable(new ItemStack(Items.leather_boots), 10)).setMaxDamagePercent(0.9F), new RngFishable(new ItemStack(Items.leather), 10), - new RngFishable(new ItemStack(Items.bone), 10), new RngFishable(new ItemStack(Items.potion), 10), - new RngFishable(new ItemStack(Items.string), 5), (new RngFishable(new ItemStack(Items.fishing_rod), 2)).setMaxDamagePercent(0.9F), - new RngFishable(new ItemStack(Items.bowl), 10), new RngFishable(new ItemStack(Items.stick), 5), - new RngFishable(new ItemStack(Items.dye, 10, DyeColor.BLACK.getDyeDamage()), 1), - new RngFishable(new ItemStack(Blocks.tripwire_hook), 10), new RngFishable(new ItemStack(Items.rotten_flesh), 10)); - public static final WeightedList FISHING_TREASURE = new WeightedList( - new RngFishable(new ItemStack(Blocks.waterlily), 1), new RngFishable(new ItemStack(Items.name_tag), 1), - new RngFishable(new ItemStack(Items.saddle), 1), - (new RngFishable(new ItemStack(Items.bow), 1)).setMaxDamagePercent(0.25F).setEnchantable(), - (new RngFishable(new ItemStack(Items.fishing_rod), 1)).setMaxDamagePercent(0.25F).setEnchantable(), - (new RngFishable(new ItemStack(Items.book), 1)).setEnchantable()); - public static final WeightedList FISH_TYPES = new WeightedList( - new RngFishable(new ItemStack(Items.fish, 1, ItemFishFood.FishType.COD.getMetadata()), 60), - new RngFishable(new ItemStack(Items.fish, 1, ItemFishFood.FishType.SALMON.getMetadata()), 25), - new RngFishable(new ItemStack(Items.fish, 1, ItemFishFood.FishType.CLOWNFISH.getMetadata()), 2), - new RngFishable(new ItemStack(Items.fish, 1, ItemFishFood.FishType.PUFFERFISH.getMetadata()), 13)); public static final WeightedList VILLAGE_BLACKSMITH = new WeightedList(new RngLoot(Items.diamond, 0, 1, 3, 3), new RngLoot(Items.iron_ingot, 0, 1, 5, 10), new RngLoot(Items.gold_ingot, 0, 1, 3, 5), new RngLoot(Items.bread, 0, 1, 3, 15), new RngLoot(Items.apple, 0, 1, 3, 15), new RngLoot(Items.iron_pickaxe, 0, 1, 1, 5), new RngLoot(Items.iron_sword, 0, 1, 1, 5), @@ -95,8 +68,4 @@ public abstract class LootConstants { new RngLoot(Items.wood_axe, 0, 1, 1, 5), new RngLoot(Items.stone_pickaxe, 0, 1, 1, 3), new RngLoot(Items.wood_pickaxe, 0, 1, 1, 5), new RngLoot(Items.apple, 0, 2, 3, 5), new RngLoot(Items.bread, 0, 2, 3, 3), new RngLoot(ItemRegistry.getItemFromBlock(Blocks.acacia_log), 0, 1, 3, 10)); - public static final WeightedList MAGEHUT_MOBS = new WeightedList(new RngSpawn(EntityMage.class, 1, 1, 1)); - public static final WeightedList FORTRESS_MOBS = new WeightedList(new RngSpawn(EntityDarkMage.class, 10, 2, 3), - new RngSpawn(EntityTiefling.class, 5, 4, 4), new RngSpawn(EntityUndead.class, 10, 4, 4), - new RngSpawn(EntityMagma.class, 3, 4, 4)); } diff --git a/server/src/server/worldgen/MobConstants.java b/server/src/server/worldgen/MobConstants.java new file mode 100644 index 0000000..38b9ab5 --- /dev/null +++ b/server/src/server/worldgen/MobConstants.java @@ -0,0 +1,16 @@ +package server.worldgen; + +import common.entity.npc.EntityDarkMage; +import common.entity.npc.EntityMage; +import common.entity.npc.EntityMagma; +import common.entity.npc.EntityTiefling; +import common.entity.npc.EntityUndead; +import common.rng.WeightedList; +import server.biome.RngSpawn; + +public abstract class MobConstants { + public static final WeightedList MAGEHUT_MOBS = new WeightedList(new RngSpawn(EntityMage.class, 1, 1, 1)); + public static final WeightedList FORTRESS_MOBS = new WeightedList(new RngSpawn(EntityDarkMage.class, 10, 2, 3), + new RngSpawn(EntityTiefling.class, 5, 4, 4), new RngSpawn(EntityUndead.class, 10, 4, 4), + new RngSpawn(EntityMagma.class, 3, 4, 4)); +} diff --git a/common/src/common/worldgen/ReplacerAltBiome.java b/server/src/server/worldgen/ReplacerAltBiome.java similarity index 92% rename from common/src/common/worldgen/ReplacerAltBiome.java rename to server/src/server/worldgen/ReplacerAltBiome.java index f312858..6bb6890 100755 --- a/common/src/common/worldgen/ReplacerAltBiome.java +++ b/server/src/server/worldgen/ReplacerAltBiome.java @@ -1,13 +1,14 @@ -package common.worldgen; +package server.worldgen; -import common.biome.Biome; +import common.biome.BaseBiome; import common.block.Block; import common.init.Blocks; import common.rng.NoiseGen; import common.rng.OctaveGen; import common.rng.Random; import common.world.State; -import common.world.AWorldServer; +import server.biome.Biome; +import server.world.WorldServer; public class ReplacerAltBiome implements BlockReplacer { @@ -46,7 +47,7 @@ public class ReplacerAltBiome implements BlockReplacer this.block = filler.getBlock(); } - public void replaceBlocks(AWorldServer world, int x, int z, ChunkPrimer primer, Random rand, Biome[] biomes) + public void replaceBlocks(WorldServer world, int x, int z, ChunkPrimer primer, Random rand, BaseBiome[] biomes) { int seaLevel = world.getSeaLevel(); double scale = 0.03125D; @@ -57,7 +58,7 @@ public class ReplacerAltBiome implements BlockReplacer { for(int px = 0; px < 16; px++) { - Biome biome = biomes[pz * 16 + px]; + Biome biome = Biome.BIOMES[biomes[pz * 16 + px].id]; boolean alt2 = this.alt2Noise[pz + px * 16] + rand.doublev() * 0.20000000000000001D > 0.0D; boolean alt1 = this.alt1Noise[px + pz * 16] + rand.doublev() * 0.20000000000000001D > 3D; int excl = (int)(this.exclNoise[pz + px * 16] / 3D + 3D + rand.doublev() * 0.25D); diff --git a/common/src/common/worldgen/ReplacerAltSurface.java b/server/src/server/worldgen/ReplacerAltSurface.java similarity index 95% rename from common/src/common/worldgen/ReplacerAltSurface.java rename to server/src/server/worldgen/ReplacerAltSurface.java index 1911633..eb03789 100755 --- a/common/src/common/worldgen/ReplacerAltSurface.java +++ b/server/src/server/worldgen/ReplacerAltSurface.java @@ -1,12 +1,12 @@ -package common.worldgen; +package server.worldgen; -import common.biome.Biome; +import common.biome.BaseBiome; import common.block.Block; import common.material.Material; import common.rng.OctaveGen; import common.rng.Random; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class ReplacerAltSurface implements BlockReplacer { @@ -38,7 +38,7 @@ public class ReplacerAltSurface implements BlockReplacer this.fillerBlock = filler.getBlock(); } - public void replaceBlocks(AWorldServer world, int x, int z, ChunkPrimer primer, Random rand, Biome[] biomes) + public void replaceBlocks(WorldServer world, int x, int z, ChunkPrimer primer, Random rand, BaseBiome[] biomes) { int i = world.getSeaLevel() + 1; double d0 = 0.03125D; diff --git a/common/src/common/worldgen/ReplacerBiome.java b/server/src/server/worldgen/ReplacerBiome.java similarity index 69% rename from common/src/common/worldgen/ReplacerBiome.java rename to server/src/server/worldgen/ReplacerBiome.java index c483418..536639a 100755 --- a/common/src/common/worldgen/ReplacerBiome.java +++ b/server/src/server/worldgen/ReplacerBiome.java @@ -1,9 +1,10 @@ -package common.worldgen; +package server.worldgen; -import common.biome.Biome; +import common.biome.BaseBiome; import common.rng.PerlinGen; import common.rng.Random; -import common.world.AWorldServer; +import server.biome.Biome; +import server.world.WorldServer; public class ReplacerBiome implements BlockReplacer { @@ -15,7 +16,7 @@ public class ReplacerBiome implements BlockReplacer this.stoneNoiseGen = new PerlinGen(rand, 4); } - public void replaceBlocks(AWorldServer world, int x, int z, ChunkPrimer primer, Random rand, Biome[] biomes) + public void replaceBlocks(WorldServer world, int x, int z, ChunkPrimer primer, Random rand, BaseBiome[] biomes) { double d0 = 0.03125D; this.stoneNoiseGen.generate(this.stoneNoise, (double)(x * 16), (double)(z * 16), 16, 16, d0 * 2.0D, d0 * 2.0D, 1.0D); @@ -24,7 +25,7 @@ public class ReplacerBiome implements BlockReplacer { for (int j = 0; j < 16; ++j) { - Biome biome = biomes[j + i * 16]; + Biome biome = Biome.BIOMES[biomes[j + i * 16].id]; biome.genTerrainBlocks(world, rand, primer, x * 16 + i, z * 16 + j, this.stoneNoise[j + i * 16]); } } diff --git a/common/src/common/worldgen/ReplacerTopLayer.java b/server/src/server/worldgen/ReplacerTopLayer.java similarity index 91% rename from common/src/common/worldgen/ReplacerTopLayer.java rename to server/src/server/worldgen/ReplacerTopLayer.java index 2a1804e..b229a04 100755 --- a/common/src/common/worldgen/ReplacerTopLayer.java +++ b/server/src/server/worldgen/ReplacerTopLayer.java @@ -1,12 +1,12 @@ -package common.worldgen; +package server.worldgen; -import common.biome.Biome; +import common.biome.BaseBiome; import common.block.Block; import common.init.Blocks; import common.material.Material; import common.rng.Random; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class ReplacerTopLayer implements BlockReplacer { @@ -22,7 +22,7 @@ public class ReplacerTopLayer implements BlockReplacer this.replace = replace; } - public void replaceBlocks(AWorldServer world, int x, int z, ChunkPrimer primer, Random rand, Biome[] biomes) + public void replaceBlocks(WorldServer world, int x, int z, ChunkPrimer primer, Random rand, BaseBiome[] biomes) { for (int i = 0; i < 16; ++i) { diff --git a/common/src/common/worldgen/caves/MapGenBase.java b/server/src/server/worldgen/caves/MapGenBase.java similarity index 70% rename from common/src/common/worldgen/caves/MapGenBase.java rename to server/src/server/worldgen/caves/MapGenBase.java index f2c9b08..a16f947 100755 --- a/common/src/common/worldgen/caves/MapGenBase.java +++ b/server/src/server/worldgen/caves/MapGenBase.java @@ -1,8 +1,8 @@ -package common.worldgen.caves; +package server.worldgen.caves; import common.rng.Random; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; public class MapGenBase { @@ -13,9 +13,9 @@ public class MapGenBase protected Random rand = new Random(); /** This world object. */ - protected AWorldServer worldObj; + protected WorldServer worldObj; - public void generate(AWorldServer worldIn, int x, int z, ChunkPrimer chunkPrimerIn) + public void generate(WorldServer worldIn, int x, int z, ChunkPrimer chunkPrimerIn) { int i = this.range; this.worldObj = worldIn; @@ -38,7 +38,7 @@ public class MapGenBase /** * Recursively called by generate() */ - protected void recursiveGenerate(AWorldServer worldIn, int chunkX, int chunkZ, int p_180701_4_, int p_180701_5_, ChunkPrimer chunkPrimerIn) + protected void recursiveGenerate(WorldServer worldIn, int chunkX, int chunkZ, int p_180701_4_, int p_180701_5_, ChunkPrimer chunkPrimerIn) { } } diff --git a/common/src/common/worldgen/caves/MapGenBigCaves.java b/server/src/server/worldgen/caves/MapGenBigCaves.java similarity index 97% rename from common/src/common/worldgen/caves/MapGenBigCaves.java rename to server/src/server/worldgen/caves/MapGenBigCaves.java index 9fb133e..00cd451 100755 --- a/common/src/common/worldgen/caves/MapGenBigCaves.java +++ b/server/src/server/worldgen/caves/MapGenBigCaves.java @@ -1,12 +1,12 @@ -package common.worldgen.caves; +package server.worldgen.caves; import common.block.Block; import common.init.Blocks; import common.rng.Random; import common.util.ExtMath; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; public class MapGenBigCaves extends MapGenBase { @@ -199,7 +199,7 @@ public class MapGenBigCaves extends MapGenBase /** * Recursively called by generate() */ - protected void recursiveGenerate(AWorldServer worldIn, int chunkX, int chunkZ, int p_180701_4_, int p_180701_5_, ChunkPrimer chunkPrimerIn) + protected void recursiveGenerate(WorldServer worldIn, int chunkX, int chunkZ, int p_180701_4_, int p_180701_5_, ChunkPrimer chunkPrimerIn) { int i = this.rand.zrange(this.rand.zrange(this.rand.zrange(10) + 1) + 1); diff --git a/common/src/common/worldgen/caves/MapGenCaves.java b/server/src/server/worldgen/caves/MapGenCaves.java similarity index 96% rename from common/src/common/worldgen/caves/MapGenCaves.java rename to server/src/server/worldgen/caves/MapGenCaves.java index ec0d0c7..368c9ed 100755 --- a/common/src/common/worldgen/caves/MapGenCaves.java +++ b/server/src/server/worldgen/caves/MapGenCaves.java @@ -1,4 +1,4 @@ -package common.worldgen.caves; +package server.worldgen.caves; import common.block.Block; import common.block.BlockColored; @@ -9,8 +9,9 @@ import common.rng.Random; import common.util.BlockPos; import common.util.ExtMath; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; +import server.biome.Biome; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; public class MapGenCaves extends MapGenBase { @@ -217,7 +218,7 @@ public class MapGenCaves extends MapGenBase if (flag1 && p_180702_5_.get(j3, j2 - 1, i2).getBlock() == this.top) { blockpos$mutableblockpos.set(j3 + p_180702_3_ * 16, 0, i2 + p_180702_4_ * 16); - p_180702_5_.set(j3, j2 - 1, i2, this.worldObj.getBiomeGenForCoords(blockpos$mutableblockpos).topBlock.getBlock().getState()); + p_180702_5_.set(j3, j2 - 1, i2, Biome.BIOMES[this.worldObj.getBiomeGenForCoords(blockpos$mutableblockpos).id].topBlock.getBlock().getState()); } } } @@ -245,7 +246,7 @@ public class MapGenCaves extends MapGenBase /** * Recursively called by generate() */ - protected void recursiveGenerate(AWorldServer worldIn, int chunkX, int chunkZ, int p_180701_4_, int p_180701_5_, ChunkPrimer chunkPrimerIn) + protected void recursiveGenerate(WorldServer worldIn, int chunkX, int chunkZ, int p_180701_4_, int p_180701_5_, ChunkPrimer chunkPrimerIn) { int i = this.rand.zrange(this.rand.zrange(this.rand.zrange(15) + 1) + 1); diff --git a/common/src/common/worldgen/caves/MapGenRavine.java b/server/src/server/worldgen/caves/MapGenRavine.java similarity index 96% rename from common/src/common/worldgen/caves/MapGenRavine.java rename to server/src/server/worldgen/caves/MapGenRavine.java index cbe9256..160d9d3 100755 --- a/common/src/common/worldgen/caves/MapGenRavine.java +++ b/server/src/server/worldgen/caves/MapGenRavine.java @@ -1,4 +1,4 @@ -package common.worldgen.caves; +package server.worldgen.caves; import common.block.Block; import common.init.Blocks; @@ -6,8 +6,9 @@ import common.rng.Random; import common.util.BlockPos; import common.util.ExtMath; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.ChunkPrimer; +import server.biome.Biome; +import server.world.WorldServer; +import server.worldgen.ChunkPrimer; public class MapGenRavine extends MapGenBase { @@ -196,7 +197,7 @@ public class MapGenRavine extends MapGenBase if (flag && p_180707_5_.get(j3, j2 - 1, i2).getBlock() == this.top) { blockpos$mutableblockpos.set(j3 + p_180707_3_ * 16, 0, i2 + p_180707_4_ * 16); - p_180707_5_.set(j3, j2 - 1, i2, this.worldObj.getBiomeGenForCoords(blockpos$mutableblockpos).topBlock); + p_180707_5_.set(j3, j2 - 1, i2, Biome.BIOMES[this.worldObj.getBiomeGenForCoords(blockpos$mutableblockpos).id].topBlock); } } } @@ -219,7 +220,7 @@ public class MapGenRavine extends MapGenBase /** * Recursively called by generate() */ - protected void recursiveGenerate(AWorldServer worldIn, int chunkX, int chunkZ, int p_180701_4_, int p_180701_5_, ChunkPrimer chunkPrimerIn) + protected void recursiveGenerate(WorldServer worldIn, int chunkX, int chunkZ, int p_180701_4_, int p_180701_5_, ChunkPrimer chunkPrimerIn) { if (this.rand.zrange(50) == 0) { diff --git a/common/src/common/worldgen/feature/WorldGenAbandonedChest.java b/server/src/server/worldgen/feature/WorldGenAbandonedChest.java similarity index 89% rename from common/src/common/worldgen/feature/WorldGenAbandonedChest.java rename to server/src/server/worldgen/feature/WorldGenAbandonedChest.java index 61d7574..88b69b0 100755 --- a/common/src/common/worldgen/feature/WorldGenAbandonedChest.java +++ b/server/src/server/worldgen/feature/WorldGenAbandonedChest.java @@ -1,4 +1,4 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.block.Block; import common.init.Blocks; @@ -9,9 +9,9 @@ import common.rng.WeightedList; import common.tileentity.TileEntity; import common.tileentity.TileEntityChest; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; -import common.worldgen.LootConstants; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; +import server.worldgen.LootConstants; public class WorldGenAbandonedChest extends FeatureGenerator { @@ -30,7 +30,7 @@ public class WorldGenAbandonedChest extends FeatureGenerator this(LootConstants.ABANDONED_ITEMS, 10); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { Block block; while (((block = worldIn.getState(position).getBlock()).getMaterial() == Material.air || block.getMaterial() == Material.leaves) && position.getY() > 1) diff --git a/common/src/common/worldgen/feature/WorldGenAsteroid.java b/server/src/server/worldgen/feature/WorldGenAsteroid.java similarity index 91% rename from common/src/common/worldgen/feature/WorldGenAsteroid.java rename to server/src/server/worldgen/feature/WorldGenAsteroid.java index c1459c6..4444a4b 100755 --- a/common/src/common/worldgen/feature/WorldGenAsteroid.java +++ b/server/src/server/worldgen/feature/WorldGenAsteroid.java @@ -1,10 +1,10 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenAsteroid extends FeatureGenerator { private final State[] blocks; @@ -13,7 +13,7 @@ public class WorldGenAsteroid extends FeatureGenerator { this.blocks = blocks; } - public boolean generate(AWorldServer world, Random rand, BlockPos pos) { + public boolean generate(WorldServer world, Random rand, BlockPos pos) { for(pos = pos.add(-8, 0, -8); pos.getY() > 9 && !world.isAirBlock(pos); pos = pos.down()) { ; } diff --git a/common/src/common/worldgen/feature/WorldGenBlockBlob.java b/server/src/server/worldgen/feature/WorldGenBlockBlob.java similarity index 91% rename from common/src/common/worldgen/feature/WorldGenBlockBlob.java rename to server/src/server/worldgen/feature/WorldGenBlockBlob.java index 5de76f4..bdc7467 100755 --- a/common/src/common/worldgen/feature/WorldGenBlockBlob.java +++ b/server/src/server/worldgen/feature/WorldGenBlockBlob.java @@ -1,11 +1,11 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.block.Block; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenBlockBlob extends FeatureGenerator { @@ -19,7 +19,7 @@ public class WorldGenBlockBlob extends FeatureGenerator this.field_150544_b = p_i45450_2_; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { while (true) { diff --git a/common/src/common/worldgen/feature/WorldGenClay.java b/server/src/server/worldgen/feature/WorldGenClay.java similarity index 89% rename from common/src/common/worldgen/feature/WorldGenClay.java rename to server/src/server/worldgen/feature/WorldGenClay.java index 6dc622f..e1b125a 100755 --- a/common/src/common/worldgen/feature/WorldGenClay.java +++ b/server/src/server/worldgen/feature/WorldGenClay.java @@ -1,11 +1,11 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.block.Block; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenClay extends FeatureGenerator { @@ -19,7 +19,7 @@ public class WorldGenClay extends FeatureGenerator this.numberOfBlocks = blocks; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { if (!worldIn.getState(position).getBlock().getMaterial().isColdLiquid()) { diff --git a/common/src/common/worldgen/feature/WorldGenClayExt.java b/server/src/server/worldgen/feature/WorldGenClayExt.java similarity index 93% rename from common/src/common/worldgen/feature/WorldGenClayExt.java rename to server/src/server/worldgen/feature/WorldGenClayExt.java index c9e5ce0..1f5c616 100755 --- a/common/src/common/worldgen/feature/WorldGenClayExt.java +++ b/server/src/server/worldgen/feature/WorldGenClayExt.java @@ -1,18 +1,18 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.block.Block; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; import common.util.ExtMath; -import common.world.AWorldServer; +import server.world.WorldServer; public class WorldGenClayExt extends WorldGenClay { public WorldGenClayExt(int blocks) { super(blocks); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) { + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { if(!worldIn.getState(position).getBlock().getMaterial().isColdLiquid()) { return false; } diff --git a/common/src/common/worldgen/feature/WorldGenDesertWells.java b/server/src/server/worldgen/feature/WorldGenDesertWells.java similarity index 94% rename from common/src/common/worldgen/feature/WorldGenDesertWells.java rename to server/src/server/worldgen/feature/WorldGenDesertWells.java index 55a49c8..f54c1e0 100755 --- a/common/src/common/worldgen/feature/WorldGenDesertWells.java +++ b/server/src/server/worldgen/feature/WorldGenDesertWells.java @@ -1,4 +1,4 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.block.BlockSand; import common.block.BlockSlab; @@ -9,8 +9,8 @@ import common.util.BlockPos; import common.util.Facing; import common.util.Predicates; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenDesertWells extends FeatureGenerator { @@ -19,7 +19,7 @@ public class WorldGenDesertWells extends FeatureGenerator private final State field_175912_c = Blocks.sandstone.getState(); private final State field_175910_d = Blocks.flowing_water.getState(); - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { while (worldIn.isAirBlock(position) && position.getY() > 2) { diff --git a/common/src/common/worldgen/feature/WorldGenFire.java b/server/src/server/worldgen/feature/WorldGenFire.java similarity index 75% rename from common/src/common/worldgen/feature/WorldGenFire.java rename to server/src/server/worldgen/feature/WorldGenFire.java index d5ffd52..2eb8728 100755 --- a/common/src/common/worldgen/feature/WorldGenFire.java +++ b/server/src/server/worldgen/feature/WorldGenFire.java @@ -1,14 +1,14 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenFire extends FeatureGenerator { - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { for (int i = 0; i < 64; ++i) { diff --git a/common/src/common/worldgen/feature/WorldGenGlowStone.java b/server/src/server/worldgen/feature/WorldGenGlowStone.java similarity index 88% rename from common/src/common/worldgen/feature/WorldGenGlowStone.java rename to server/src/server/worldgen/feature/WorldGenGlowStone.java index 7f8e92b..9e99c29 100755 --- a/common/src/common/worldgen/feature/WorldGenGlowStone.java +++ b/server/src/server/worldgen/feature/WorldGenGlowStone.java @@ -1,16 +1,16 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.init.Blocks; import common.material.Material; import common.rng.Random; import common.util.BlockPos; import common.util.Facing; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenGlowStone extends FeatureGenerator { - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { if (!worldIn.isAirBlock(position)) { diff --git a/common/src/common/worldgen/feature/WorldGenHellLava.java b/server/src/server/worldgen/feature/WorldGenHellLava.java similarity index 92% rename from common/src/common/worldgen/feature/WorldGenHellLava.java rename to server/src/server/worldgen/feature/WorldGenHellLava.java index 202ab9f..9932d74 100755 --- a/common/src/common/worldgen/feature/WorldGenHellLava.java +++ b/server/src/server/worldgen/feature/WorldGenHellLava.java @@ -1,12 +1,12 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.block.Block; import common.init.Blocks; import common.material.Material; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenHellLava extends FeatureGenerator { @@ -19,7 +19,7 @@ public class WorldGenHellLava extends FeatureGenerator this.field_94524_b = p_i45453_2_; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { if (worldIn.getState(position.up()).getBlock() != Blocks.hellrock) { diff --git a/common/src/common/worldgen/feature/WorldGenIcePath.java b/server/src/server/worldgen/feature/WorldGenIcePath.java similarity index 89% rename from common/src/common/worldgen/feature/WorldGenIcePath.java rename to server/src/server/worldgen/feature/WorldGenIcePath.java index b06b13d..0f84e5c 100755 --- a/common/src/common/worldgen/feature/WorldGenIcePath.java +++ b/server/src/server/worldgen/feature/WorldGenIcePath.java @@ -1,11 +1,11 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.block.Block; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenIcePath extends FeatureGenerator { @@ -17,7 +17,7 @@ public class WorldGenIcePath extends FeatureGenerator this.basePathWidth = p_i45454_1_; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { while (worldIn.isAirBlock(position) && position.getY() > 2) { diff --git a/common/src/common/worldgen/feature/WorldGenIceSpike.java b/server/src/server/worldgen/feature/WorldGenIceSpike.java similarity index 95% rename from common/src/common/worldgen/feature/WorldGenIceSpike.java rename to server/src/server/worldgen/feature/WorldGenIceSpike.java index 03f5388..886d3d9 100755 --- a/common/src/common/worldgen/feature/WorldGenIceSpike.java +++ b/server/src/server/worldgen/feature/WorldGenIceSpike.java @@ -1,4 +1,4 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.block.Block; import common.init.Blocks; @@ -6,12 +6,12 @@ import common.material.Material; import common.rng.Random; import common.util.BlockPos; import common.util.ExtMath; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenIceSpike extends FeatureGenerator { - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { while (worldIn.isAirBlock(position) && position.getY() > 2) { diff --git a/common/src/common/worldgen/feature/WorldGenSand.java b/server/src/server/worldgen/feature/WorldGenSand.java similarity index 89% rename from common/src/common/worldgen/feature/WorldGenSand.java rename to server/src/server/worldgen/feature/WorldGenSand.java index 1e750bf..edc5cad 100755 --- a/common/src/common/worldgen/feature/WorldGenSand.java +++ b/server/src/server/worldgen/feature/WorldGenSand.java @@ -1,11 +1,11 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.block.Block; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenSand extends FeatureGenerator { @@ -20,7 +20,7 @@ public class WorldGenSand extends FeatureGenerator this.radius = p_i45462_2_; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { if (!worldIn.getState(position).getBlock().getMaterial().isColdLiquid()) { diff --git a/common/src/common/worldgen/feature/WorldGenSpikes.java b/server/src/server/worldgen/feature/WorldGenSpikes.java similarity index 93% rename from common/src/common/worldgen/feature/WorldGenSpikes.java rename to server/src/server/worldgen/feature/WorldGenSpikes.java index 736f13b..9885fe8 100755 --- a/common/src/common/worldgen/feature/WorldGenSpikes.java +++ b/server/src/server/worldgen/feature/WorldGenSpikes.java @@ -1,4 +1,4 @@ -package common.worldgen.feature; +package server.worldgen.feature; import common.block.Block; import common.entity.Entity; @@ -6,8 +6,8 @@ import common.entity.item.EntityCrystal; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenSpikes extends FeatureGenerator { @@ -28,7 +28,7 @@ public class WorldGenSpikes extends FeatureGenerator this.crystals = crystals; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { if (worldIn.isAirBlock(position) && worldIn.getState(position.down()).getBlock() == this.base) { diff --git a/common/src/common/worldgen/foliage/FeatureDoublePlant.java b/server/src/server/worldgen/foliage/FeatureDoublePlant.java similarity index 85% rename from common/src/common/worldgen/foliage/FeatureDoublePlant.java rename to server/src/server/worldgen/foliage/FeatureDoublePlant.java index 7dbfdcb..8237227 100755 --- a/common/src/common/worldgen/foliage/FeatureDoublePlant.java +++ b/server/src/server/worldgen/foliage/FeatureDoublePlant.java @@ -1,10 +1,10 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.block.BlockDoublePlant; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; +import server.world.WorldServer; public class FeatureDoublePlant { @@ -15,7 +15,7 @@ public class FeatureDoublePlant this.type = type; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { boolean flag = false; diff --git a/common/src/common/worldgen/foliage/WorldGenBigMushroom.java b/server/src/server/worldgen/foliage/WorldGenBigMushroom.java similarity index 97% rename from common/src/common/worldgen/foliage/WorldGenBigMushroom.java rename to server/src/server/worldgen/foliage/WorldGenBigMushroom.java index dac6cef..b1bf20f 100755 --- a/common/src/common/worldgen/foliage/WorldGenBigMushroom.java +++ b/server/src/server/worldgen/foliage/WorldGenBigMushroom.java @@ -1,4 +1,4 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.block.Block; import common.block.BlockHugeMushroom; @@ -6,8 +6,8 @@ import common.init.Blocks; import common.material.Material; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenBigMushroom extends FeatureGenerator { @@ -25,7 +25,7 @@ public class WorldGenBigMushroom extends FeatureGenerator super(false); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { // if (this.mushroomType == null) // { diff --git a/common/src/common/worldgen/foliage/WorldGenCactus.java b/server/src/server/worldgen/foliage/WorldGenCactus.java similarity index 80% rename from common/src/common/worldgen/foliage/WorldGenCactus.java rename to server/src/server/worldgen/foliage/WorldGenCactus.java index f14ef17..74354e8 100755 --- a/common/src/common/worldgen/foliage/WorldGenCactus.java +++ b/server/src/server/worldgen/foliage/WorldGenCactus.java @@ -1,14 +1,14 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenCactus extends FeatureGenerator { - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { for (int i = 0; i < 10; ++i) { diff --git a/common/src/common/worldgen/foliage/WorldGenDeadBush.java b/server/src/server/worldgen/foliage/WorldGenDeadBush.java similarity index 82% rename from common/src/common/worldgen/foliage/WorldGenDeadBush.java rename to server/src/server/worldgen/foliage/WorldGenDeadBush.java index 5b84123..05f2ba8 100755 --- a/common/src/common/worldgen/foliage/WorldGenDeadBush.java +++ b/server/src/server/worldgen/foliage/WorldGenDeadBush.java @@ -1,16 +1,16 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.block.Block; import common.init.Blocks; import common.material.Material; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenDeadBush extends FeatureGenerator { - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { Block block; diff --git a/common/src/common/worldgen/foliage/WorldGenFlowers.java b/server/src/server/worldgen/foliage/WorldGenFlowers.java similarity index 86% rename from common/src/common/worldgen/foliage/WorldGenFlowers.java rename to server/src/server/worldgen/foliage/WorldGenFlowers.java index f29cbb7..add8180 100755 --- a/common/src/common/worldgen/foliage/WorldGenFlowers.java +++ b/server/src/server/worldgen/foliage/WorldGenFlowers.java @@ -1,11 +1,11 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.block.BlockFlower; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenFlowers extends FeatureGenerator { @@ -23,7 +23,7 @@ public class WorldGenFlowers extends FeatureGenerator this.field_175915_b = p_175914_1_.getState().withProperty(p_175914_1_.getTypeProperty(), p_175914_2_); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { for (int i = 0; i < 64; ++i) { diff --git a/common/src/common/worldgen/foliage/WorldGenMelon.java b/server/src/server/worldgen/foliage/WorldGenMelon.java similarity index 76% rename from common/src/common/worldgen/foliage/WorldGenMelon.java rename to server/src/server/worldgen/foliage/WorldGenMelon.java index 7ae8427..c8e7319 100755 --- a/common/src/common/worldgen/foliage/WorldGenMelon.java +++ b/server/src/server/worldgen/foliage/WorldGenMelon.java @@ -1,14 +1,14 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenMelon extends FeatureGenerator { - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { for (int i = 0; i < 64; ++i) { diff --git a/common/src/common/worldgen/foliage/WorldGenMushroom.java b/server/src/server/worldgen/foliage/WorldGenMushroom.java similarity index 81% rename from common/src/common/worldgen/foliage/WorldGenMushroom.java rename to server/src/server/worldgen/foliage/WorldGenMushroom.java index f989bb2..740b3ae 100755 --- a/common/src/common/worldgen/foliage/WorldGenMushroom.java +++ b/server/src/server/worldgen/foliage/WorldGenMushroom.java @@ -1,10 +1,10 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.block.BlockBush; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenMushroom extends FeatureGenerator { @@ -15,7 +15,7 @@ public class WorldGenMushroom extends FeatureGenerator this.field_175908_a = p_i45633_1_; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { for (int i = 0; i < 64; ++i) { diff --git a/common/src/common/worldgen/foliage/WorldGenPumpkin.java b/server/src/server/worldgen/foliage/WorldGenPumpkin.java similarity index 80% rename from common/src/common/worldgen/foliage/WorldGenPumpkin.java rename to server/src/server/worldgen/foliage/WorldGenPumpkin.java index 8a9c2e6..457db07 100755 --- a/common/src/common/worldgen/foliage/WorldGenPumpkin.java +++ b/server/src/server/worldgen/foliage/WorldGenPumpkin.java @@ -1,16 +1,16 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.block.BlockPumpkin; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; import common.util.Facing; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenPumpkin extends FeatureGenerator { - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { for (int i = 0; i < 64; ++i) { diff --git a/common/src/common/worldgen/foliage/WorldGenReed.java b/server/src/server/worldgen/foliage/WorldGenReed.java similarity index 86% rename from common/src/common/worldgen/foliage/WorldGenReed.java rename to server/src/server/worldgen/foliage/WorldGenReed.java index 1c55cbd..459216e 100755 --- a/common/src/common/worldgen/foliage/WorldGenReed.java +++ b/server/src/server/worldgen/foliage/WorldGenReed.java @@ -1,15 +1,15 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.init.Blocks; import common.material.Material; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenReed extends FeatureGenerator { - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { for (int i = 0; i < 20; ++i) { diff --git a/common/src/common/worldgen/foliage/WorldGenShrub.java b/server/src/server/worldgen/foliage/WorldGenShrub.java similarity index 91% rename from common/src/common/worldgen/foliage/WorldGenShrub.java rename to server/src/server/worldgen/foliage/WorldGenShrub.java index 860c885..410b5c9 100755 --- a/common/src/common/worldgen/foliage/WorldGenShrub.java +++ b/server/src/server/worldgen/foliage/WorldGenShrub.java @@ -1,4 +1,4 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.block.Block; import common.block.BlockLeaves; @@ -7,8 +7,8 @@ import common.material.Material; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.tree.WorldGenBaseTree; +import server.world.WorldServer; +import server.worldgen.tree.WorldGenBaseTree; public class WorldGenShrub extends WorldGenBaseTree { @@ -22,7 +22,7 @@ public class WorldGenShrub extends WorldGenBaseTree this.leavesMetadata = leaves.withProperty(BlockLeaves.DECAY, Boolean.valueOf(false)); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { Block block; diff --git a/common/src/common/worldgen/foliage/WorldGenTallGrass.java b/server/src/server/worldgen/foliage/WorldGenTallGrass.java similarity index 86% rename from common/src/common/worldgen/foliage/WorldGenTallGrass.java rename to server/src/server/worldgen/foliage/WorldGenTallGrass.java index 9adca0d..804a853 100755 --- a/common/src/common/worldgen/foliage/WorldGenTallGrass.java +++ b/server/src/server/worldgen/foliage/WorldGenTallGrass.java @@ -1,4 +1,4 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.block.Block; import common.block.BlockTallGrass; @@ -7,8 +7,8 @@ import common.material.Material; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenTallGrass extends FeatureGenerator { @@ -19,7 +19,7 @@ public class WorldGenTallGrass extends FeatureGenerator this.tallGrassState = Blocks.tallgrass.getState().withProperty(BlockTallGrass.TYPE, p_i45629_1_); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { Block block; diff --git a/common/src/common/worldgen/foliage/WorldGenVines.java b/server/src/server/worldgen/foliage/WorldGenVines.java similarity index 87% rename from common/src/common/worldgen/foliage/WorldGenVines.java rename to server/src/server/worldgen/foliage/WorldGenVines.java index dfeb2bd..ff9f427 100755 --- a/common/src/common/worldgen/foliage/WorldGenVines.java +++ b/server/src/server/worldgen/foliage/WorldGenVines.java @@ -1,4 +1,4 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.block.BlockVine; import common.init.Blocks; @@ -6,12 +6,12 @@ import common.rng.Random; import common.util.BlockPos; import common.util.Facing; import common.world.State; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenVines extends FeatureGenerator { - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { for (; position.getY() < 128; position = position.up()) { diff --git a/common/src/common/worldgen/foliage/WorldGenWaterlily.java b/server/src/server/worldgen/foliage/WorldGenWaterlily.java similarity index 81% rename from common/src/common/worldgen/foliage/WorldGenWaterlily.java rename to server/src/server/worldgen/foliage/WorldGenWaterlily.java index a60117b..c5a7858 100755 --- a/common/src/common/worldgen/foliage/WorldGenWaterlily.java +++ b/server/src/server/worldgen/foliage/WorldGenWaterlily.java @@ -1,16 +1,16 @@ -package common.worldgen.foliage; +package server.worldgen.foliage; import common.block.BlockDirectional; import common.init.Blocks; import common.rng.Random; import common.util.BlockPos; import common.util.Facing; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public class WorldGenWaterlily extends FeatureGenerator { - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { for (int i = 0; i < 10; ++i) { diff --git a/common/src/common/worldgen/layer/GenLayer.java b/server/src/server/worldgen/layer/GenLayer.java similarity index 94% rename from common/src/common/worldgen/layer/GenLayer.java rename to server/src/server/worldgen/layer/GenLayer.java index 82c3c5b..a696537 100755 --- a/common/src/common/worldgen/layer/GenLayer.java +++ b/server/src/server/worldgen/layer/GenLayer.java @@ -1,6 +1,7 @@ -package common.worldgen.layer; +package server.worldgen.layer; -import common.biome.Biome; +import common.biome.BaseBiome; +import server.biome.Biome; public abstract class GenLayer { private long worldGenSeed; @@ -23,7 +24,7 @@ public abstract class GenLayer { } protected static boolean isSea(int id) { - return id == Biome.sea.id || id == Biome.frozenSea.id; + return id == BaseBiome.SEA.id || id == BaseBiome.FROZENSEA.id; } public GenLayer(long base) { diff --git a/common/src/common/worldgen/layer/GenLayerAddAreas.java b/server/src/server/worldgen/layer/GenLayerAddAreas.java similarity index 99% rename from common/src/common/worldgen/layer/GenLayerAddAreas.java rename to server/src/server/worldgen/layer/GenLayerAddAreas.java index f5913b0..757a2b7 100755 --- a/common/src/common/worldgen/layer/GenLayerAddAreas.java +++ b/server/src/server/worldgen/layer/GenLayerAddAreas.java @@ -1,4 +1,4 @@ -package common.worldgen.layer; +package server.worldgen.layer; public class GenLayerAddAreas extends GenLayer { diff --git a/common/src/common/worldgen/layer/GenLayerAddExtra.java b/server/src/server/worldgen/layer/GenLayerAddExtra.java similarity index 90% rename from common/src/common/worldgen/layer/GenLayerAddExtra.java rename to server/src/server/worldgen/layer/GenLayerAddExtra.java index e9a2cc0..67444a6 100755 --- a/common/src/common/worldgen/layer/GenLayerAddExtra.java +++ b/server/src/server/worldgen/layer/GenLayerAddExtra.java @@ -1,13 +1,13 @@ -package common.worldgen.layer; +package server.worldgen.layer; -import common.biome.Biome; +import common.biome.BaseBiome; public class GenLayerAddExtra extends GenLayer { private final int[] biomes; private final int rarity; - public GenLayerAddExtra(long base, GenLayer parent, Biome[] biomes, int rarity) + public GenLayerAddExtra(long base, GenLayer parent, BaseBiome[] biomes, int rarity) { super(base); this.parent = parent; diff --git a/common/src/common/worldgen/layer/GenLayerAddSea.java b/server/src/server/worldgen/layer/GenLayerAddSea.java similarity index 92% rename from common/src/common/worldgen/layer/GenLayerAddSea.java rename to server/src/server/worldgen/layer/GenLayerAddSea.java index 4e21a0c..67123e3 100755 --- a/common/src/common/worldgen/layer/GenLayerAddSea.java +++ b/server/src/server/worldgen/layer/GenLayerAddSea.java @@ -1,6 +1,6 @@ -package common.worldgen.layer; +package server.worldgen.layer; -import common.biome.Biome; +import common.biome.BaseBiome; public class GenLayerAddSea extends GenLayer { @@ -60,7 +60,7 @@ public class GenLayerAddSea extends GenLayer this.initChunkSeed((long)(areaX + j1), (long)(areaY + i1)); if (k2 == 0 && this.nextInt(this.rarity) == 0) { - aint1[j1 + i1 * areaWidth] = l2 > 1 ? Biome.frozenSea.id : Biome.sea.id; + aint1[j1 + i1 * areaWidth] = l2 > 1 ? BaseBiome.FROZENSEA.id : BaseBiome.SEA.id; } else { diff --git a/common/src/common/worldgen/layer/GenLayerAddSnow.java b/server/src/server/worldgen/layer/GenLayerAddSnow.java similarity index 98% rename from common/src/common/worldgen/layer/GenLayerAddSnow.java rename to server/src/server/worldgen/layer/GenLayerAddSnow.java index de257dc..5b7b07a 100755 --- a/common/src/common/worldgen/layer/GenLayerAddSnow.java +++ b/server/src/server/worldgen/layer/GenLayerAddSnow.java @@ -1,4 +1,4 @@ -package common.worldgen.layer; +package server.worldgen.layer; public class GenLayerAddSnow extends GenLayer { diff --git a/common/src/common/worldgen/layer/GenLayerBase.java b/server/src/server/worldgen/layer/GenLayerBase.java similarity index 95% rename from common/src/common/worldgen/layer/GenLayerBase.java rename to server/src/server/worldgen/layer/GenLayerBase.java index bd1403d..f0c596e 100755 --- a/common/src/common/worldgen/layer/GenLayerBase.java +++ b/server/src/server/worldgen/layer/GenLayerBase.java @@ -1,4 +1,4 @@ -package common.worldgen.layer; +package server.worldgen.layer; public class GenLayerBase extends GenLayer { diff --git a/common/src/common/worldgen/layer/GenLayerBiome.java b/server/src/server/worldgen/layer/GenLayerBiome.java similarity index 83% rename from common/src/common/worldgen/layer/GenLayerBiome.java rename to server/src/server/worldgen/layer/GenLayerBiome.java index e4a58e6..ca2fc39 100755 --- a/common/src/common/worldgen/layer/GenLayerBiome.java +++ b/server/src/server/worldgen/layer/GenLayerBiome.java @@ -1,17 +1,17 @@ -package common.worldgen.layer; +package server.worldgen.layer; -import common.biome.Biome; +import common.biome.BaseBiome; public class GenLayerBiome extends GenLayer { - private final Biome[] hot; - private final Biome[] medium; - private final Biome[] cold; - private final Biome[] frost; + private final BaseBiome[] hot; + private final BaseBiome[] medium; + private final BaseBiome[] cold; + private final BaseBiome[] frost; private final int def; private final int fixed; - public GenLayerBiome(long base, GenLayer parent, Biome[] hot, Biome[] medium, Biome[] cold, Biome[] frost, Biome def, boolean fixed) + public GenLayerBiome(long base, GenLayer parent, BaseBiome[] hot, BaseBiome[] medium, BaseBiome[] cold, BaseBiome[] frost, BaseBiome def, boolean fixed) { super(base); this.parent = parent; diff --git a/common/src/common/worldgen/layer/GenLayerBiomeEdge.java b/server/src/server/worldgen/layer/GenLayerBiomeEdge.java similarity index 79% rename from common/src/common/worldgen/layer/GenLayerBiomeEdge.java rename to server/src/server/worldgen/layer/GenLayerBiomeEdge.java index f3653f7..41abf0c 100755 --- a/common/src/common/worldgen/layer/GenLayerBiomeEdge.java +++ b/server/src/server/worldgen/layer/GenLayerBiomeEdge.java @@ -1,7 +1,8 @@ -package common.worldgen.layer; +package server.worldgen.layer; -import common.biome.Biome; -import common.biome.Temperature; +import common.biome.BaseBiome; +import server.biome.Biome; +import server.biome.Temperature; public class GenLayerBiomeEdge extends GenLayer { @@ -27,45 +28,45 @@ public class GenLayerBiomeEdge extends GenLayer this.initChunkSeed((long)(j + areaX), (long)(i + areaY)); int k = aint[j + 1 + (i + 1) * (areaWidth + 2)]; - if (!this.replaceBiomeEdgeIfNecessary(aint, aint1, j, i, areaWidth, k, Biome.extremeHills.id, Biome.extremeHillsEdge.id) && /* !this.replaceBiomeEdge(aint, aint1, j, i, areaWidth, k, Biome.mesaPlateau_F.id, Biome.mesa.id) && !this.replaceBiomeEdge(aint, aint1, j, i, areaWidth, k, Biome.mesaPlateau.id, Biome.mesa.id) && */ !this.replaceBiomeEdge(aint, aint1, j, i, areaWidth, k, Biome.megaTaiga.id, Biome.taiga.id)) + if (!this.replaceBiomeEdgeIfNecessary(aint, aint1, j, i, areaWidth, k, BaseBiome.EXTREMEHILLS.id, BaseBiome.EXTREMEHILLSEDGE.id) && /* !this.replaceBiomeEdge(aint, aint1, j, i, areaWidth, k, Biome.mesaPlateau_F.id, Biome.mesa.id) && !this.replaceBiomeEdge(aint, aint1, j, i, areaWidth, k, Biome.mesaPlateau.id, Biome.mesa.id) && */ !this.replaceBiomeEdge(aint, aint1, j, i, areaWidth, k, BaseBiome.MEGATAIGA.id, BaseBiome.TAIGA.id)) { - if (k == Biome.desert.id) + if (k == BaseBiome.DESERT.id) { int l1 = aint[j + 1 + (i + 1 - 1) * (areaWidth + 2)]; int i2 = aint[j + 1 + 1 + (i + 1) * (areaWidth + 2)]; int j2 = aint[j + 1 - 1 + (i + 1) * (areaWidth + 2)]; int k2 = aint[j + 1 + (i + 1 + 1) * (areaWidth + 2)]; - if (l1 != Biome.icePlains.id && i2 != Biome.icePlains.id && j2 != Biome.icePlains.id && k2 != Biome.icePlains.id) + if (l1 != BaseBiome.ICEPLAINS.id && i2 != BaseBiome.ICEPLAINS.id && j2 != BaseBiome.ICEPLAINS.id && k2 != BaseBiome.ICEPLAINS.id) { aint1[j + i * areaWidth] = k; } else { - aint1[j + i * areaWidth] = Biome.extremeHillsPlus.id; + aint1[j + i * areaWidth] = BaseBiome.EXTREMEHILLSPLUS.id; } } - else if (k == Biome.swampland.id) + else if (k == BaseBiome.SWAMPLAND.id) { int l = aint[j + 1 + (i + 1 - 1) * (areaWidth + 2)]; int i1 = aint[j + 1 + 1 + (i + 1) * (areaWidth + 2)]; int j1 = aint[j + 1 - 1 + (i + 1) * (areaWidth + 2)]; int k1 = aint[j + 1 + (i + 1 + 1) * (areaWidth + 2)]; - if (l != Biome.desert.id && i1 != Biome.desert.id && j1 != Biome.desert.id && k1 != Biome.desert.id && l != Biome.coldTaiga.id && i1 != Biome.coldTaiga.id && j1 != Biome.coldTaiga.id && k1 != Biome.coldTaiga.id && l != Biome.icePlains.id && i1 != Biome.icePlains.id && j1 != Biome.icePlains.id && k1 != Biome.icePlains.id) + if (l != BaseBiome.DESERT.id && i1 != BaseBiome.DESERT.id && j1 != BaseBiome.DESERT.id && k1 != BaseBiome.DESERT.id && l != BaseBiome.COLDTAIGA.id && i1 != BaseBiome.COLDTAIGA.id && j1 != BaseBiome.COLDTAIGA.id && k1 != BaseBiome.COLDTAIGA.id && l != BaseBiome.ICEPLAINS.id && i1 != BaseBiome.ICEPLAINS.id && j1 != BaseBiome.ICEPLAINS.id && k1 != BaseBiome.ICEPLAINS.id) { - if (l != Biome.jungle.id && k1 != Biome.jungle.id && i1 != Biome.jungle.id && j1 != Biome.jungle.id) + if (l != BaseBiome.JUNGLE.id && k1 != BaseBiome.JUNGLE.id && i1 != BaseBiome.JUNGLE.id && j1 != BaseBiome.JUNGLE.id) { aint1[j + i * areaWidth] = k; } else { - aint1[j + i * areaWidth] = Biome.jungleEdge.id; + aint1[j + i * areaWidth] = BaseBiome.JUNGLEEDGE.id; } } else { - aint1[j + i * areaWidth] = Biome.plains.id; + aint1[j + i * areaWidth] = BaseBiome.PLAINS.id; } } else diff --git a/common/src/common/worldgen/layer/GenLayerEdge.java b/server/src/server/worldgen/layer/GenLayerEdge.java similarity index 99% rename from common/src/common/worldgen/layer/GenLayerEdge.java rename to server/src/server/worldgen/layer/GenLayerEdge.java index dda413d..26600a3 100755 --- a/common/src/common/worldgen/layer/GenLayerEdge.java +++ b/server/src/server/worldgen/layer/GenLayerEdge.java @@ -1,4 +1,4 @@ -package common.worldgen.layer; +package server.worldgen.layer; public class GenLayerEdge extends GenLayer { diff --git a/common/src/common/worldgen/layer/GenLayerFuzzyZoom.java b/server/src/server/worldgen/layer/GenLayerFuzzyZoom.java similarity index 94% rename from common/src/common/worldgen/layer/GenLayerFuzzyZoom.java rename to server/src/server/worldgen/layer/GenLayerFuzzyZoom.java index d38e3de..6db73ee 100755 --- a/common/src/common/worldgen/layer/GenLayerFuzzyZoom.java +++ b/server/src/server/worldgen/layer/GenLayerFuzzyZoom.java @@ -1,4 +1,4 @@ -package common.worldgen.layer; +package server.worldgen.layer; public class GenLayerFuzzyZoom extends GenLayerZoom { diff --git a/common/src/common/worldgen/layer/GenLayerHills.java b/server/src/server/worldgen/layer/GenLayerHills.java similarity index 72% rename from common/src/common/worldgen/layer/GenLayerHills.java rename to server/src/server/worldgen/layer/GenLayerHills.java index e8c4318..832f2c8 100755 --- a/common/src/common/worldgen/layer/GenLayerHills.java +++ b/server/src/server/worldgen/layer/GenLayerHills.java @@ -1,6 +1,6 @@ -package common.worldgen.layer; +package server.worldgen.layer; -import common.biome.Biome; +import common.biome.BaseBiome; import common.log.Log; public class GenLayerHills extends GenLayer @@ -8,7 +8,7 @@ public class GenLayerHills extends GenLayer private GenLayer field_151628_d; private final int def; - public GenLayerHills(long p_i45479_1_, GenLayer p_i45479_3_, GenLayer p_i45479_4_, Biome def) + public GenLayerHills(long p_i45479_1_, GenLayer p_i45479_3_, GenLayer p_i45479_4_, BaseBiome def) { super(p_i45479_1_); this.parent = p_i45479_3_; @@ -42,7 +42,7 @@ public class GenLayerHills extends GenLayer if (k != 0 && l >= 2 && (l - 2) % 29 == 1 && k < 128) { - if (Biome.getBiome(k + 128) != null) + if (BaseBiome.getBiome(k + 128) != null) { aint2[j + i * areaWidth] = k + 128; } @@ -59,86 +59,86 @@ public class GenLayerHills extends GenLayer { int i1 = k; - if (k == Biome.desert.id) + if (k == BaseBiome.DESERT.id) { - i1 = Biome.desertHills.id; + i1 = BaseBiome.DESERTHILLS.id; } - else if (k == Biome.forest.id) + else if (k == BaseBiome.FOREST.id) { - i1 = Biome.forestHills.id; + i1 = BaseBiome.FORESTHILLS.id; } - else if (k == Biome.birchForest.id) + else if (k == BaseBiome.BIRCHFOREST.id) { - i1 = Biome.birchForestHills.id; + i1 = BaseBiome.BIRCHFORESTHILLS.id; } - else if (k == Biome.roofedForest.id) + else if (k == BaseBiome.ROOFEDFOREST.id) { - i1 = Biome.plains.id; + i1 = BaseBiome.PLAINS.id; } - else if (k == Biome.taiga.id) + else if (k == BaseBiome.TAIGA.id) { - i1 = Biome.taigaHills.id; + i1 = BaseBiome.TAIGAHILLS.id; } - else if (k == Biome.megaTaiga.id) + else if (k == BaseBiome.MEGATAIGA.id) { - i1 = Biome.megaTaigaHills.id; + i1 = BaseBiome.MEGATAIGAHILLS.id; } - else if (k == Biome.coldTaiga.id) + else if (k == BaseBiome.COLDTAIGA.id) { - i1 = Biome.coldTaigaHills.id; + i1 = BaseBiome.COLDTAIGAHILLS.id; } - else if (k == Biome.plains.id) + else if (k == BaseBiome.PLAINS.id) { if (this.nextInt(3) == 0) { - i1 = Biome.forestHills.id; + i1 = BaseBiome.FORESTHILLS.id; } else { - i1 = Biome.forest.id; + i1 = BaseBiome.FOREST.id; } } - else if (k == Biome.icePlains.id) + else if (k == BaseBiome.ICEPLAINS.id) { - i1 = Biome.iceMountains.id; + i1 = BaseBiome.ICEMOUNTAINS.id; } - else if (k == Biome.jungle.id) + else if (k == BaseBiome.JUNGLE.id) { - i1 = Biome.jungleHills.id; + i1 = BaseBiome.JUNGLEHILLS.id; } - else if (k == Biome.none.id) + else if (k == BaseBiome.NONE.id) { i1 = this.def; } - else if (k == Biome.extremeHills.id) + else if (k == BaseBiome.EXTREMEHILLS.id) { - i1 = Biome.extremeHillsPlus.id; + i1 = BaseBiome.EXTREMEHILLSPLUS.id; } - else if (k == Biome.savanna.id) + else if (k == BaseBiome.SAVANNA.id) { - i1 = Biome.savannaPlateau.id; + i1 = BaseBiome.SAVANNAPLATEAU.id; } // else if (canBeNearby(k, Biome.mesaPlateau_F.id)) // { // i1 = Biome.mesa.id; // } - else if (k == Biome.sea.id && this.nextInt(3) == 0) + else if (k == BaseBiome.SEA.id && this.nextInt(3) == 0) { int j1 = this.nextInt(2); if (j1 == 0) { - i1 = Biome.plains.id; + i1 = BaseBiome.PLAINS.id; } else { - i1 = Biome.forest.id; + i1 = BaseBiome.FOREST.id; } } if (flag && i1 != k) { - if (Biome.getBiome(i1 + 128) != null) + if (BaseBiome.getBiome(i1 + 128) != null) { i1 += 128; } diff --git a/common/src/common/worldgen/layer/GenLayerRemoveEmpty.java b/server/src/server/worldgen/layer/GenLayerRemoveEmpty.java similarity index 98% rename from common/src/common/worldgen/layer/GenLayerRemoveEmpty.java rename to server/src/server/worldgen/layer/GenLayerRemoveEmpty.java index ef77ef2..ec07585 100755 --- a/common/src/common/worldgen/layer/GenLayerRemoveEmpty.java +++ b/server/src/server/worldgen/layer/GenLayerRemoveEmpty.java @@ -1,4 +1,4 @@ -package common.worldgen.layer; +package server.worldgen.layer; public class GenLayerRemoveEmpty extends GenLayer { diff --git a/common/src/common/worldgen/layer/GenLayerRiver.java b/server/src/server/worldgen/layer/GenLayerRiver.java similarity index 92% rename from common/src/common/worldgen/layer/GenLayerRiver.java rename to server/src/server/worldgen/layer/GenLayerRiver.java index 1bf51e0..0ea31ff 100755 --- a/common/src/common/worldgen/layer/GenLayerRiver.java +++ b/server/src/server/worldgen/layer/GenLayerRiver.java @@ -1,6 +1,6 @@ -package common.worldgen.layer; +package server.worldgen.layer; -import common.biome.Biome; +import common.biome.BaseBiome; public class GenLayerRiver extends GenLayer { @@ -39,7 +39,7 @@ public class GenLayerRiver extends GenLayer } else { - aint1[j1 + i1 * areaWidth] = Biome.river.id; + aint1[j1 + i1 * areaWidth] = BaseBiome.RIVER.id; } } } diff --git a/common/src/common/worldgen/layer/GenLayerRiverInit.java b/server/src/server/worldgen/layer/GenLayerRiverInit.java similarity index 96% rename from common/src/common/worldgen/layer/GenLayerRiverInit.java rename to server/src/server/worldgen/layer/GenLayerRiverInit.java index 04bd0e8..4bb9ed2 100755 --- a/common/src/common/worldgen/layer/GenLayerRiverInit.java +++ b/server/src/server/worldgen/layer/GenLayerRiverInit.java @@ -1,4 +1,4 @@ -package common.worldgen.layer; +package server.worldgen.layer; public class GenLayerRiverInit extends GenLayer { diff --git a/common/src/common/worldgen/layer/GenLayerRiverMix.java b/server/src/server/worldgen/layer/GenLayerRiverMix.java similarity index 81% rename from common/src/common/worldgen/layer/GenLayerRiverMix.java rename to server/src/server/worldgen/layer/GenLayerRiverMix.java index 0796530..8f34f59 100755 --- a/common/src/common/worldgen/layer/GenLayerRiverMix.java +++ b/server/src/server/worldgen/layer/GenLayerRiverMix.java @@ -1,6 +1,6 @@ -package common.worldgen.layer; +package server.worldgen.layer; -import common.biome.Biome; +import common.biome.BaseBiome; public class GenLayerRiverMix extends GenLayer { @@ -8,7 +8,7 @@ public class GenLayerRiverMix extends GenLayer private GenLayer riverPatternGeneratorChain; private final int def; - public GenLayerRiverMix(long p_i2129_1_, GenLayer p_i2129_3_, GenLayer p_i2129_4_, Biome def) + public GenLayerRiverMix(long p_i2129_1_, GenLayer p_i2129_3_, GenLayer p_i2129_4_, BaseBiome def) { super(p_i2129_1_); this.biomePatternGeneratorChain = p_i2129_3_; @@ -39,23 +39,23 @@ public class GenLayerRiverMix extends GenLayer for (int i = 0; i < areaWidth * areaHeight; ++i) { - if(biome[i] == Biome.none.id) + if(biome[i] == BaseBiome.NONE.id) { out[i] = this.def; } - else if(biome[i] == Biome.sea.id || biome[i] == Biome.frozenSea.id) + else if(biome[i] == BaseBiome.SEA.id || biome[i] == BaseBiome.FROZENSEA.id) { out[i] = biome[i]; } - else if (river[i] == Biome.river.id) + else if (river[i] == BaseBiome.RIVER.id) { - if (biome[i] == Biome.icePlains.id) + if (biome[i] == BaseBiome.ICEPLAINS.id) { - out[i] = Biome.frozenRiver.id; + out[i] = BaseBiome.FROZENRIVER.id; } else // if (biome[i] != Biome.mushroomPlains.id && biome[i] != Biome.mushroomPlainsEdge.id) { - out[i] = Biome.river.id; + out[i] = BaseBiome.RIVER.id; } // else // { diff --git a/common/src/common/worldgen/layer/GenLayerShore.java b/server/src/server/worldgen/layer/GenLayerShore.java similarity index 86% rename from common/src/common/worldgen/layer/GenLayerShore.java rename to server/src/server/worldgen/layer/GenLayerShore.java index c3936aa..a51e8c1 100755 --- a/common/src/common/worldgen/layer/GenLayerShore.java +++ b/server/src/server/worldgen/layer/GenLayerShore.java @@ -1,7 +1,8 @@ -package common.worldgen.layer; +package server.worldgen.layer; -import common.biome.Biome; -import common.biome.BiomeJungle; +import common.biome.BaseBiome; +import server.biome.Biome; +import server.biome.BiomeJungle; public class GenLayerShore extends GenLayer { @@ -56,19 +57,19 @@ public class GenLayerShore extends GenLayer } else { - data[j + i * width] = Biome.beach.id; + data[j + i * width] = BaseBiome.BEACH.id; } } else { - data[j + i * width] = Biome.jungleEdge.id; + data[j + i * width] = BaseBiome.JUNGLEEDGE.id; } } - else if (id != Biome.extremeHills.id && id != Biome.extremeHillsPlus.id && id != Biome.extremeHillsEdge.id) + else if (id != BaseBiome.EXTREMEHILLS.id && id != BaseBiome.EXTREMEHILLSPLUS.id && id != BaseBiome.EXTREMEHILLSEDGE.id) { if (biome != null && biome.allowColdBeach) { - this.putBeach(pre, data, j, i, width, id, Biome.coldBeach.id); + this.putBeach(pre, data, j, i, width, id, BaseBiome.COLDBEACH.id); } else // if (id != Biome.mesa.id && id != Biome.mesaPlateau_F.id) // { @@ -85,7 +86,7 @@ public class GenLayerShore extends GenLayer } else { - data[j + i * width] = Biome.beach.id; + data[j + i * width] = BaseBiome.BEACH.id; } } else @@ -119,7 +120,7 @@ public class GenLayerShore extends GenLayer } else { - this.putBeach(pre, data, j, i, width, id, Biome.stoneBeach.id); + this.putBeach(pre, data, j, i, width, id, BaseBiome.STONEBEACH.id); } } } @@ -153,7 +154,8 @@ public class GenLayerShore extends GenLayer private boolean canNBJungle(int id) { - return Biome.getBiome(id) != null && Biome.getBiome(id).getBiomeClass() == BiomeJungle.class ? true : id == Biome.jungleEdge.id || id == Biome.jungle.id || id == Biome.jungleHills.id || id == Biome.forest.id || id == Biome.taiga.id || isSea(id); + Biome biome = Biome.getBiome(id); + return biome != null && biome.getBiomeClass() == BiomeJungle.class ? true : id == BaseBiome.JUNGLEEDGE.id || id == BaseBiome.JUNGLE.id || id == BaseBiome.JUNGLEHILLS.id || id == BaseBiome.FOREST.id || id == BaseBiome.TAIGA.id || isSea(id); } // private boolean canNBMesa(int id) diff --git a/common/src/common/worldgen/layer/GenLayerSmooth.java b/server/src/server/worldgen/layer/GenLayerSmooth.java similarity index 98% rename from common/src/common/worldgen/layer/GenLayerSmooth.java rename to server/src/server/worldgen/layer/GenLayerSmooth.java index d67a516..e071367 100755 --- a/common/src/common/worldgen/layer/GenLayerSmooth.java +++ b/server/src/server/worldgen/layer/GenLayerSmooth.java @@ -1,4 +1,4 @@ -package common.worldgen.layer; +package server.worldgen.layer; public class GenLayerSmooth extends GenLayer { diff --git a/common/src/common/worldgen/layer/GenLayerVoronoiZoom.java b/server/src/server/worldgen/layer/GenLayerVoronoiZoom.java similarity index 99% rename from common/src/common/worldgen/layer/GenLayerVoronoiZoom.java rename to server/src/server/worldgen/layer/GenLayerVoronoiZoom.java index c53921c..f58e306 100755 --- a/common/src/common/worldgen/layer/GenLayerVoronoiZoom.java +++ b/server/src/server/worldgen/layer/GenLayerVoronoiZoom.java @@ -1,4 +1,4 @@ -package common.worldgen.layer; +package server.worldgen.layer; public class GenLayerVoronoiZoom extends GenLayer { diff --git a/common/src/common/worldgen/layer/GenLayerZoom.java b/server/src/server/worldgen/layer/GenLayerZoom.java similarity index 98% rename from common/src/common/worldgen/layer/GenLayerZoom.java rename to server/src/server/worldgen/layer/GenLayerZoom.java index 72ef702..0b9d45c 100755 --- a/common/src/common/worldgen/layer/GenLayerZoom.java +++ b/server/src/server/worldgen/layer/GenLayerZoom.java @@ -1,4 +1,4 @@ -package common.worldgen.layer; +package server.worldgen.layer; public class GenLayerZoom extends GenLayer { diff --git a/common/src/common/worldgen/layer/IntCache.java b/server/src/server/worldgen/layer/IntCache.java similarity index 98% rename from common/src/common/worldgen/layer/IntCache.java rename to server/src/server/worldgen/layer/IntCache.java index e275dc7..e9ac30a 100755 --- a/common/src/common/worldgen/layer/IntCache.java +++ b/server/src/server/worldgen/layer/IntCache.java @@ -1,4 +1,4 @@ -package common.worldgen.layer; +package server.worldgen.layer; import java.util.List; diff --git a/server/src/server/worldgen/structure/MapGenScatteredFeature.java b/server/src/server/worldgen/structure/MapGenScatteredFeature.java index e8caba9..f731099 100755 --- a/server/src/server/worldgen/structure/MapGenScatteredFeature.java +++ b/server/src/server/worldgen/structure/MapGenScatteredFeature.java @@ -3,14 +3,14 @@ package server.worldgen.structure; import java.util.Arrays; import java.util.List; -import common.biome.Biome; +import common.biome.BaseBiome; import common.rng.Random; import common.util.BlockPos; import server.world.WorldServer; public class MapGenScatteredFeature extends MapGenStructure { - private static final List biomelist = Arrays.asList(new Biome[] {Biome.desert, Biome.desertHills, Biome.jungle, Biome.jungleHills, Biome.swampland}); + private static final List biomelist = Arrays.asList(BaseBiome.DESERT, BaseBiome.DESERTHILLS, BaseBiome.JUNGLE, BaseBiome.JUNGLEHILLS, BaseBiome.SWAMPLAND); private static final int MAX_DISTANCE = 32; private static final int MIN_DISTANCE = 8; @@ -44,14 +44,14 @@ public class MapGenScatteredFeature extends MapGenStructure if (i == k && j == l) { - Biome biomegenbase = this.worldObj.getBiomeGenerator().getBiomeGenerator(new BlockPos(i * 16 + 8, 0, j * 16 + 8), null); + BaseBiome biomegenbase = this.worldObj.getBiomeGenerator().getBiomeGenerator(new BlockPos(i * 16 + 8, 0, j * 16 + 8), null); if (biomegenbase == null) { return false; } - for (Biome biomegenbase1 : biomelist) + for (BaseBiome biomegenbase1 : biomelist) { if (biomegenbase == biomegenbase1) { @@ -92,16 +92,16 @@ public class MapGenScatteredFeature extends MapGenStructure public Start(WorldServer worldIn, Random p_i2060_2_, int p_i2060_3_, int p_i2060_4_) { super(p_i2060_3_, p_i2060_4_); - Biome biomegenbase = worldIn.getBiomeGenForCoords(new BlockPos(p_i2060_3_ * 16 + 8, 0, p_i2060_4_ * 16 + 8)); + BaseBiome biomegenbase = worldIn.getBiomeGenForCoords(new BlockPos(p_i2060_3_ * 16 + 8, 0, p_i2060_4_ * 16 + 8)); - if (biomegenbase != Biome.jungle && biomegenbase != Biome.jungleHills) + if (biomegenbase != BaseBiome.JUNGLE && biomegenbase != BaseBiome.JUNGLEHILLS) { - if (biomegenbase == Biome.swampland) + if (biomegenbase == BaseBiome.SWAMPLAND) { StructureScattered.SwampHut componentscatteredfeaturepieces$swamphut = new StructureScattered.SwampHut(p_i2060_2_, p_i2060_3_ * 16, p_i2060_4_ * 16); this.components.add(componentscatteredfeaturepieces$swamphut); } - else if (biomegenbase == Biome.desert || biomegenbase == Biome.desertHills) + else if (biomegenbase == BaseBiome.DESERT || biomegenbase == BaseBiome.DESERTHILLS) { StructureScattered.DesertPyramid componentscatteredfeaturepieces$desertpyramid = new StructureScattered.DesertPyramid(p_i2060_2_, p_i2060_3_ * 16, p_i2060_4_ * 16); this.components.add(componentscatteredfeaturepieces$desertpyramid); diff --git a/server/src/server/worldgen/structure/MapGenStructure.java b/server/src/server/worldgen/structure/MapGenStructure.java index 82aca60..dc911fe 100755 --- a/server/src/server/worldgen/structure/MapGenStructure.java +++ b/server/src/server/worldgen/structure/MapGenStructure.java @@ -10,25 +10,17 @@ import common.rng.Random; import common.util.BlockPos; import common.util.ChunkPos; import common.util.LongHashMap; -import common.world.AWorldServer; import common.world.World; -import common.worldgen.ChunkPrimer; -import common.worldgen.caves.MapGenBase; import server.world.WorldServer; import server.world.WorldServer.WorldSavedData; +import server.worldgen.ChunkPrimer; +import server.worldgen.caves.MapGenBase; public abstract class MapGenStructure extends MapGenBase { private WorldSavedData structureData; protected Map structureMap = Maps.newHashMap(); - protected WorldServer worldObj; - public void generate(AWorldServer worldIn, int x, int z, ChunkPrimer chunkPrimerIn) - { - this.worldObj = (WorldServer)worldIn; - super.generate(worldIn, x, z, chunkPrimerIn); - } - public abstract String getStructureName(); /** diff --git a/server/src/server/worldgen/structure/MapGenVillage.java b/server/src/server/worldgen/structure/MapGenVillage.java index e6119f8..396d5a3 100755 --- a/server/src/server/worldgen/structure/MapGenVillage.java +++ b/server/src/server/worldgen/structure/MapGenVillage.java @@ -3,7 +3,7 @@ package server.worldgen.structure; import java.util.List; import java.util.Set; -import common.biome.Biome; +import common.biome.BaseBiome; import common.collect.Sets; import common.nbt.NBTTagCompound; import common.rng.Random; @@ -11,7 +11,7 @@ import server.world.WorldServer; public class MapGenVillage extends MapGenStructure { - public static final Set villageSpawnBiomes = Sets.newHashSet(Biome.plains, Biome.desert, Biome.savanna); + public static final Set villageSpawnBiomes = Sets.newHashSet(BaseBiome.PLAINS, BaseBiome.DESERT, BaseBiome.SAVANNA); /** World terrain type, 0 for normal, 1 for flat map */ private int terrainType; diff --git a/server/src/server/worldgen/structure/StructureBridge.java b/server/src/server/worldgen/structure/StructureBridge.java index 4dc4aa8..309a567 100755 --- a/server/src/server/worldgen/structure/StructureBridge.java +++ b/server/src/server/worldgen/structure/StructureBridge.java @@ -10,8 +10,8 @@ import common.tileentity.TileEntity; import common.tileentity.TileEntityMobSpawner; import common.util.BlockPos; import common.util.Facing; -import common.worldgen.LootConstants; import server.world.WorldServer; +import server.worldgen.LootConstants; public class StructureBridge diff --git a/server/src/server/worldgen/structure/StructureMineshaft.java b/server/src/server/worldgen/structure/StructureMineshaft.java index e3a08d5..d7a0fd9 100755 --- a/server/src/server/worldgen/structure/StructureMineshaft.java +++ b/server/src/server/worldgen/structure/StructureMineshaft.java @@ -17,8 +17,8 @@ import common.tileentity.TileEntityMobSpawner; import common.util.BlockPos; import common.util.Facing; import common.world.State; -import common.worldgen.LootConstants; import server.world.WorldServer; +import server.worldgen.LootConstants; public class StructureMineshaft diff --git a/server/src/server/worldgen/structure/StructureScattered.java b/server/src/server/worldgen/structure/StructureScattered.java index 6a667d2..8723035 100755 --- a/server/src/server/worldgen/structure/StructureScattered.java +++ b/server/src/server/worldgen/structure/StructureScattered.java @@ -17,8 +17,8 @@ import common.nbt.NBTTagCompound; import common.rng.Random; import common.util.BlockPos; import common.util.Facing; -import common.worldgen.LootConstants; import server.world.WorldServer; +import server.worldgen.LootConstants; public class StructureScattered { diff --git a/server/src/server/worldgen/structure/StructureStronghold.java b/server/src/server/worldgen/structure/StructureStronghold.java index ad13933..101d358 100755 --- a/server/src/server/worldgen/structure/StructureStronghold.java +++ b/server/src/server/worldgen/structure/StructureStronghold.java @@ -16,8 +16,8 @@ import common.tileentity.TileEntity; import common.tileentity.TileEntityMobSpawner; import common.util.BlockPos; import common.util.Facing; -import common.worldgen.LootConstants; import server.world.WorldServer; +import server.worldgen.LootConstants; public class StructureStronghold diff --git a/server/src/server/worldgen/structure/StructureVillage.java b/server/src/server/worldgen/structure/StructureVillage.java index 810a4f6..7d00750 100755 --- a/server/src/server/worldgen/structure/StructureVillage.java +++ b/server/src/server/worldgen/structure/StructureVillage.java @@ -3,7 +3,7 @@ package server.worldgen.structure; import java.util.Iterator; import java.util.List; -import common.biome.Biome; +import common.biome.BaseBiome; import common.block.Block; import common.block.BlockLog; import common.block.BlockSandStone; @@ -23,8 +23,8 @@ import common.util.BlockPos; import common.util.Facing; import common.world.State; import common.worldgen.BiomeGenerator; -import common.worldgen.LootConstants; import server.world.WorldServer; +import server.worldgen.LootConstants; public class StructureVillage @@ -1430,8 +1430,8 @@ public class StructureVillage this.biomeGen = genIn; this.structureVillageWeightedPieceList = p_i2104_6_; this.terrainType = p_i2104_7_; - Biome biomegenbase = genIn.getBiomeGenerator(new BlockPos(p_i2104_4_, 0, p_i2104_5_), Biome.DEF_BIOME); - this.inDesert = biomegenbase == Biome.desert || biomegenbase == Biome.desertHills; + BaseBiome biomegenbase = genIn.getBiomeGenerator(new BlockPos(p_i2104_4_, 0, p_i2104_5_), BaseBiome.DEF_BIOME); + this.inDesert = biomegenbase == BaseBiome.DESERT || biomegenbase == BaseBiome.DESERTHILLS; this.func_175846_a(this.inDesert); } diff --git a/common/src/common/worldgen/tree/WorldGenBaseTree.java b/server/src/server/worldgen/tree/WorldGenBaseTree.java similarity index 95% rename from common/src/common/worldgen/tree/WorldGenBaseTree.java rename to server/src/server/worldgen/tree/WorldGenBaseTree.java index 83768cc..c5cacd0 100755 --- a/common/src/common/worldgen/tree/WorldGenBaseTree.java +++ b/server/src/server/worldgen/tree/WorldGenBaseTree.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import common.block.Block; import common.block.BlockCocoa; @@ -11,7 +11,7 @@ import common.rng.Random; import common.util.BlockPos; import common.util.Facing; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class WorldGenBaseTree extends WorldGenTree { @@ -42,7 +42,7 @@ public class WorldGenBaseTree extends WorldGenTree this.vinesGrow = vines; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { int i = rand.zrange(3) + this.minTreeHeight; boolean flag = true; @@ -233,17 +233,17 @@ public class WorldGenBaseTree extends WorldGenTree } } - private void func_181652_a(AWorldServer p_181652_1_, int p_181652_2_, BlockPos p_181652_3_, Facing p_181652_4_) + private void func_181652_a(WorldServer p_181652_1_, int p_181652_2_, BlockPos p_181652_3_, Facing p_181652_4_) { this.setBlockAndNotifyAdequately(p_181652_1_, p_181652_3_, Blocks.cocoa.getState().withProperty(BlockCocoa.AGE, p_181652_2_).withProperty(BlockCocoa.FACING, p_181652_4_)); } - private void func_181651_a(AWorldServer p_181651_1_, BlockPos p_181651_2_, PropertyBool p_181651_3_) + private void func_181651_a(WorldServer p_181651_1_, BlockPos p_181651_2_, PropertyBool p_181651_3_) { this.setBlockAndNotifyAdequately(p_181651_1_, p_181651_2_, Blocks.vine.getState().withProperty(p_181651_3_, Boolean.valueOf(true))); } - private void func_181650_b(AWorldServer p_181650_1_, BlockPos p_181650_2_, PropertyBool p_181650_3_) + private void func_181650_b(WorldServer p_181650_1_, BlockPos p_181650_2_, PropertyBool p_181650_3_) { this.func_181651_a(p_181650_1_, p_181650_2_, p_181650_3_); int i = 4; diff --git a/common/src/common/worldgen/tree/WorldGenBigTree.java b/server/src/server/worldgen/tree/WorldGenBigTree.java similarity index 98% rename from common/src/common/worldgen/tree/WorldGenBigTree.java rename to server/src/server/worldgen/tree/WorldGenBigTree.java index 91f5588..ad648bb 100755 --- a/common/src/common/worldgen/tree/WorldGenBigTree.java +++ b/server/src/server/worldgen/tree/WorldGenBigTree.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import java.util.List; @@ -12,7 +12,7 @@ import common.rng.Random; import common.util.BlockPos; import common.util.ExtMath; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class WorldGenBigTree extends WorldGenTree { @@ -20,7 +20,7 @@ public class WorldGenBigTree extends WorldGenTree private final State logBase; private Random rand; - private AWorldServer world; + private WorldServer world; private BlockPos basePos = BlockPos.ORIGIN; private int heightLimit; private int height; @@ -322,7 +322,7 @@ public class WorldGenBigTree extends WorldGenTree this.leafDistanceLimit = 5; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { this.world = worldIn; this.basePos = position; diff --git a/common/src/common/worldgen/tree/WorldGenBirch.java b/server/src/server/worldgen/tree/WorldGenBirch.java similarity index 96% rename from common/src/common/worldgen/tree/WorldGenBirch.java rename to server/src/server/worldgen/tree/WorldGenBirch.java index eb4da07..0659ee8 100755 --- a/common/src/common/worldgen/tree/WorldGenBirch.java +++ b/server/src/server/worldgen/tree/WorldGenBirch.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import common.block.Block; import common.block.BlockLeaves; @@ -7,7 +7,7 @@ import common.material.Material; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class WorldGenBirch extends WorldGenTree { @@ -23,7 +23,7 @@ public class WorldGenBirch extends WorldGenTree this.useExtraRandomHeight = extra; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { int i = rand.zrange(3) + 5; diff --git a/common/src/common/worldgen/tree/WorldGenDarkOak.java b/server/src/server/worldgen/tree/WorldGenDarkOak.java similarity index 94% rename from common/src/common/worldgen/tree/WorldGenDarkOak.java rename to server/src/server/worldgen/tree/WorldGenDarkOak.java index 27d5298..09f1126 100755 --- a/common/src/common/worldgen/tree/WorldGenDarkOak.java +++ b/server/src/server/worldgen/tree/WorldGenDarkOak.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import common.block.Block; import common.block.BlockLeaves; @@ -8,7 +8,7 @@ import common.rng.Random; import common.util.BlockPos; import common.util.Facing; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class WorldGenDarkOak extends WorldGenTree { @@ -22,7 +22,7 @@ public class WorldGenDarkOak extends WorldGenTree super(notify); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { int i = rand.zrange(3) + rand.zrange(2) + 6; int j = position.getX(); @@ -161,7 +161,7 @@ public class WorldGenDarkOak extends WorldGenTree } } - private boolean func_181638_a(AWorldServer p_181638_1_, BlockPos p_181638_2_, int p_181638_3_) + private boolean func_181638_a(WorldServer p_181638_1_, BlockPos p_181638_2_, int p_181638_3_) { int i = p_181638_2_.getX(); int j = p_181638_2_.getY(); @@ -197,7 +197,7 @@ public class WorldGenDarkOak extends WorldGenTree return true; } - private void func_181639_b(AWorldServer p_181639_1_, BlockPos p_181639_2_) + private void func_181639_b(WorldServer p_181639_1_, BlockPos p_181639_2_) { if (this.canBeReplaced(p_181639_1_.getState(p_181639_2_).getBlock())) { @@ -205,7 +205,7 @@ public class WorldGenDarkOak extends WorldGenTree } } - private void func_150526_a(AWorldServer worldIn, int p_150526_2_, int p_150526_3_, int p_150526_4_) + private void func_150526_a(WorldServer worldIn, int p_150526_2_, int p_150526_3_, int p_150526_4_) { BlockPos blockpos = new BlockPos(p_150526_2_, p_150526_3_, p_150526_4_); Block block = worldIn.getState(blockpos).getBlock(); diff --git a/common/src/common/worldgen/tree/WorldGenHugeTree.java b/server/src/server/worldgen/tree/WorldGenHugeTree.java similarity index 89% rename from common/src/common/worldgen/tree/WorldGenHugeTree.java rename to server/src/server/worldgen/tree/WorldGenHugeTree.java index d13cdf6..c5d50f1 100755 --- a/common/src/common/worldgen/tree/WorldGenHugeTree.java +++ b/server/src/server/worldgen/tree/WorldGenHugeTree.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import common.block.Block; import common.block.BlockLeaves; @@ -7,7 +7,7 @@ import common.material.Material; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public abstract class WorldGenHugeTree extends WorldGenTree { @@ -42,7 +42,7 @@ public abstract class WorldGenHugeTree extends WorldGenTree return i; } - private boolean func_175926_c(AWorldServer worldIn, BlockPos p_175926_2_, int p_175926_3_) + private boolean func_175926_c(WorldServer worldIn, BlockPos p_175926_2_, int p_175926_3_) { boolean flag = true; @@ -81,7 +81,7 @@ public abstract class WorldGenHugeTree extends WorldGenTree } } - private boolean func_175927_a(BlockPos p_175927_1_, AWorldServer worldIn) + private boolean func_175927_a(BlockPos p_175927_1_, WorldServer worldIn) { BlockPos blockpos = p_175927_1_.down(); Block block = worldIn.getState(blockpos).getBlock(); @@ -100,12 +100,12 @@ public abstract class WorldGenHugeTree extends WorldGenTree } } - protected boolean func_175929_a(AWorldServer worldIn, Random p_175929_2_, BlockPos p_175929_3_, int p_175929_4_) + protected boolean func_175929_a(WorldServer worldIn, Random p_175929_2_, BlockPos p_175929_3_, int p_175929_4_) { return this.func_175926_c(worldIn, p_175929_3_, p_175929_4_) && this.func_175927_a(p_175929_3_, worldIn); } - protected void func_175925_a(AWorldServer worldIn, BlockPos p_175925_2_, int p_175925_3_) + protected void func_175925_a(WorldServer worldIn, BlockPos p_175925_2_, int p_175925_3_) { int i = p_175925_3_ * p_175925_3_; @@ -130,7 +130,7 @@ public abstract class WorldGenHugeTree extends WorldGenTree } } - protected void func_175928_b(AWorldServer worldIn, BlockPos p_175928_2_, int p_175928_3_) + protected void func_175928_b(WorldServer worldIn, BlockPos p_175928_2_, int p_175928_3_) { int i = p_175928_3_ * p_175928_3_; diff --git a/common/src/common/worldgen/tree/WorldGenJungle.java b/server/src/server/worldgen/tree/WorldGenJungle.java similarity index 92% rename from common/src/common/worldgen/tree/WorldGenJungle.java rename to server/src/server/worldgen/tree/WorldGenJungle.java index cd68e7a..1edd2d4 100755 --- a/common/src/common/worldgen/tree/WorldGenJungle.java +++ b/server/src/server/worldgen/tree/WorldGenJungle.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import common.block.BlockVine; import common.init.Blocks; @@ -7,7 +7,7 @@ import common.rng.Random; import common.util.BlockPos; import common.util.ExtMath; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class WorldGenJungle extends WorldGenHugeTree { @@ -16,7 +16,7 @@ public class WorldGenJungle extends WorldGenHugeTree super(p_i46448_1_, p_i46448_2_, p_i46448_3_, p_i46448_4_, p_i46448_5_); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { int i = this.func_150533_a(rand); @@ -113,7 +113,7 @@ public class WorldGenJungle extends WorldGenHugeTree } } - private void func_181632_a(AWorldServer p_181632_1_, Random p_181632_2_, BlockPos p_181632_3_, PropertyBool p_181632_4_) + private void func_181632_a(WorldServer p_181632_1_, Random p_181632_2_, BlockPos p_181632_3_, PropertyBool p_181632_4_) { if (p_181632_2_.zrange(3) > 0 && p_181632_1_.isAirBlock(p_181632_3_)) { @@ -121,7 +121,7 @@ public class WorldGenJungle extends WorldGenHugeTree } } - private void func_175930_c(AWorldServer worldIn, BlockPos p_175930_2_, int p_175930_3_) + private void func_175930_c(WorldServer worldIn, BlockPos p_175930_2_, int p_175930_3_) { int i = 2; diff --git a/common/src/common/worldgen/tree/WorldGenPine.java b/server/src/server/worldgen/tree/WorldGenPine.java similarity index 89% rename from common/src/common/worldgen/tree/WorldGenPine.java rename to server/src/server/worldgen/tree/WorldGenPine.java index b4ffb5c..4c90945 100755 --- a/common/src/common/worldgen/tree/WorldGenPine.java +++ b/server/src/server/worldgen/tree/WorldGenPine.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import common.block.Block; import common.block.BlockDirt; @@ -8,7 +8,7 @@ import common.rng.Random; import common.util.BlockPos; import common.util.ExtMath; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class WorldGenPine extends WorldGenHugeTree { @@ -23,7 +23,7 @@ public class WorldGenPine extends WorldGenHugeTree this.useBaseHeight = p_i45457_2_; } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { int i = this.func_150533_a(rand); @@ -73,7 +73,7 @@ public class WorldGenPine extends WorldGenHugeTree } } - private void func_150541_c(AWorldServer worldIn, int p_150541_2_, int p_150541_3_, int p_150541_4_, int p_150541_5_, Random p_150541_6_) + private void func_150541_c(WorldServer worldIn, int p_150541_2_, int p_150541_3_, int p_150541_4_, int p_150541_5_, Random p_150541_6_) { int i = p_150541_6_.zrange(5) + (this.useBaseHeight ? this.baseHeight : 3); int j = 0; @@ -87,7 +87,7 @@ public class WorldGenPine extends WorldGenHugeTree } } - public void finish(AWorldServer worldIn, Random p_180711_2_, BlockPos p_180711_3_) + public void finish(WorldServer worldIn, Random p_180711_2_, BlockPos p_180711_3_) { this.func_175933_b(worldIn, p_180711_3_.west().north()); this.func_175933_b(worldIn, p_180711_3_.east(2).north()); @@ -107,7 +107,7 @@ public class WorldGenPine extends WorldGenHugeTree } } - private void func_175933_b(AWorldServer worldIn, BlockPos p_175933_2_) + private void func_175933_b(WorldServer worldIn, BlockPos p_175933_2_) { for (int i = -2; i <= 2; ++i) { @@ -121,7 +121,7 @@ public class WorldGenPine extends WorldGenHugeTree } } - private void func_175934_c(AWorldServer worldIn, BlockPos p_175934_2_) + private void func_175934_c(WorldServer worldIn, BlockPos p_175934_2_) { for (int i = 2; i >= -3; --i) { diff --git a/common/src/common/worldgen/tree/WorldGenSavanna.java b/server/src/server/worldgen/tree/WorldGenSavanna.java similarity index 96% rename from common/src/common/worldgen/tree/WorldGenSavanna.java rename to server/src/server/worldgen/tree/WorldGenSavanna.java index c9f37cd..c348cca 100755 --- a/common/src/common/worldgen/tree/WorldGenSavanna.java +++ b/server/src/server/worldgen/tree/WorldGenSavanna.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import common.block.Block; import common.block.BlockLeaves; @@ -8,7 +8,7 @@ import common.rng.Random; import common.util.BlockPos; import common.util.Facing; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class WorldGenSavanna extends WorldGenTree { @@ -23,7 +23,7 @@ public class WorldGenSavanna extends WorldGenTree super(p_i45463_1_); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { int i = rand.zrange(3) + rand.zrange(3) + 5; boolean flag = true; @@ -202,12 +202,12 @@ public class WorldGenSavanna extends WorldGenTree } } - private void func_181642_b(AWorldServer p_181642_1_, BlockPos p_181642_2_) + private void func_181642_b(WorldServer p_181642_1_, BlockPos p_181642_2_) { this.setBlockAndNotifyAdequately(p_181642_1_, p_181642_2_, field_181643_a); } - private void func_175924_b(AWorldServer worldIn, BlockPos p_175924_2_) + private void func_175924_b(WorldServer worldIn, BlockPos p_175924_2_) { Material material = worldIn.getState(p_175924_2_).getBlock().getMaterial(); diff --git a/common/src/common/worldgen/tree/WorldGenSwamp.java b/server/src/server/worldgen/tree/WorldGenSwamp.java similarity index 96% rename from common/src/common/worldgen/tree/WorldGenSwamp.java rename to server/src/server/worldgen/tree/WorldGenSwamp.java index ea77f4c..f8ff143 100755 --- a/common/src/common/worldgen/tree/WorldGenSwamp.java +++ b/server/src/server/worldgen/tree/WorldGenSwamp.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import common.block.Block; import common.block.BlockLeaves; @@ -9,7 +9,7 @@ import common.properties.PropertyBool; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class WorldGenSwamp extends WorldGenTree { @@ -24,7 +24,7 @@ public class WorldGenSwamp extends WorldGenTree super(false); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { int i; @@ -186,7 +186,7 @@ public class WorldGenSwamp extends WorldGenTree } } - private void func_181647_a(AWorldServer p_181647_1_, BlockPos p_181647_2_, PropertyBool p_181647_3_) + private void func_181647_a(WorldServer p_181647_1_, BlockPos p_181647_2_, PropertyBool p_181647_3_) { State iblockstate = Blocks.vine.getState().withProperty(p_181647_3_, Boolean.valueOf(true)); this.setBlockAndNotifyAdequately(p_181647_1_, p_181647_2_, iblockstate); diff --git a/common/src/common/worldgen/tree/WorldGenTaiga1.java b/server/src/server/worldgen/tree/WorldGenTaiga1.java similarity index 96% rename from common/src/common/worldgen/tree/WorldGenTaiga1.java rename to server/src/server/worldgen/tree/WorldGenTaiga1.java index c9a2b45..a3fed91 100755 --- a/common/src/common/worldgen/tree/WorldGenTaiga1.java +++ b/server/src/server/worldgen/tree/WorldGenTaiga1.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import common.block.Block; import common.block.BlockLeaves; @@ -7,7 +7,7 @@ import common.material.Material; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class WorldGenTaiga1 extends WorldGenTree { @@ -22,7 +22,7 @@ public class WorldGenTaiga1 extends WorldGenTree super(false); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { int i = rand.zrange(5) + 7; int j = i - rand.zrange(2) - 3; diff --git a/common/src/common/worldgen/tree/WorldGenTaiga2.java b/server/src/server/worldgen/tree/WorldGenTaiga2.java similarity index 97% rename from common/src/common/worldgen/tree/WorldGenTaiga2.java rename to server/src/server/worldgen/tree/WorldGenTaiga2.java index 10f3ec1..681bd4f 100755 --- a/common/src/common/worldgen/tree/WorldGenTaiga2.java +++ b/server/src/server/worldgen/tree/WorldGenTaiga2.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import common.block.Block; import common.block.BlockLeaves; @@ -7,7 +7,7 @@ import common.material.Material; import common.rng.Random; import common.util.BlockPos; import common.world.State; -import common.world.AWorldServer; +import server.world.WorldServer; public class WorldGenTaiga2 extends WorldGenTree { @@ -22,7 +22,7 @@ public class WorldGenTaiga2 extends WorldGenTree super(p_i2025_1_); } - public boolean generate(AWorldServer worldIn, Random rand, BlockPos position) + public boolean generate(WorldServer worldIn, Random rand, BlockPos position) { int i = rand.zrange(4) + 6; int j = 1 + rand.zrange(2); diff --git a/common/src/common/worldgen/tree/WorldGenTree.java b/server/src/server/worldgen/tree/WorldGenTree.java similarity index 79% rename from common/src/common/worldgen/tree/WorldGenTree.java rename to server/src/server/worldgen/tree/WorldGenTree.java index 4ea8b65..964385a 100755 --- a/common/src/common/worldgen/tree/WorldGenTree.java +++ b/server/src/server/worldgen/tree/WorldGenTree.java @@ -1,4 +1,4 @@ -package common.worldgen.tree; +package server.worldgen.tree; import common.block.Block; import common.block.BlockLog; @@ -7,8 +7,8 @@ import common.init.Blocks; import common.material.Material; import common.rng.Random; import common.util.BlockPos; -import common.world.AWorldServer; -import common.worldgen.FeatureGenerator; +import server.world.WorldServer; +import server.worldgen.FeatureGenerator; public abstract class WorldGenTree extends FeatureGenerator { @@ -27,11 +27,11 @@ public abstract class WorldGenTree extends FeatureGenerator { } - public void finish(AWorldServer worldIn, Random random, BlockPos pos) + public void finish(WorldServer worldIn, Random random, BlockPos pos) { } - protected void setBaseBlock(AWorldServer worldIn, BlockPos pos) + protected void setBaseBlock(WorldServer worldIn, BlockPos pos) { if (worldIn.getState(pos) != worldIn.dimension.getTop()) {