diff --git a/java/src/game/Game.java b/java/src/game/Game.java index ce2ee7c..8c01bcc 100755 --- a/java/src/game/Game.java +++ b/java/src/game/Game.java @@ -1721,7 +1721,7 @@ public class Game implements IThreadListener { + String.format("%.3f", this.theWorld.getCelestialAngle(1.0f)); } - float temp = this.theWorld.getTempOffset() + (biome != null ? biome.getFloatTemperature(blockpos) : 0.0f); + float temp = this.theWorld.getTempOffset() + (biome != null ? biome.getTemperature(blockpos) : 0.0f); long ticked = System.currentTimeMillis() - this.lastTicked; return diff --git a/java/src/game/biome/Biome.java b/java/src/game/biome/Biome.java index 07cc861..b5269e3 100755 --- a/java/src/game/biome/Biome.java +++ b/java/src/game/biome/Biome.java @@ -27,13 +27,11 @@ import game.entity.npc.EntityMage; import game.entity.npc.EntitySlime; import game.entity.npc.EntityUndead; import game.entity.npc.EntityZombie; -import game.entity.types.EntityLiving; import game.init.Blocks; import game.log.Log; import game.material.Material; import game.rng.PerlinGen; import game.rng.Random; -import game.rng.RngItem; import game.rng.WeightedList; import game.util.ExtMath; import game.world.BlockPos; @@ -60,84 +58,64 @@ import game.worldgen.tree.WorldGenBigTree; import game.worldgen.tree.WorldGenSwamp; import game.worldgen.tree.WorldGenTree; -public abstract class Biome -{ - protected static final Biome.Height height_Default = new Biome.Height(0.1F, 0.2F); - protected static final Biome.Height height_ShallowWaters = new Biome.Height(-0.5F, 0.0F); - protected static final Biome.Height height_Sea = new Biome.Height(-1.0F, 0.1F); - protected static final Biome.Height height_DeepSea = new Biome.Height(-1.8F, 0.1F); - protected static final Biome.Height height_LowPlains = new Biome.Height(0.125F, 0.05F); - protected static final Biome.Height height_MidPlains = new Biome.Height(0.2F, 0.2F); - protected static final Biome.Height height_LowHills = new Biome.Height(0.45F, 0.3F); - protected static final Biome.Height height_HighPlateaus = new Biome.Height(1.5F, 0.025F); - protected static final Biome.Height height_MidHills = new Biome.Height(1.0F, 0.5F); - protected static final Biome.Height height_Shores = new Biome.Height(0.0F, 0.025F); - protected static final Biome.Height height_RockyWaters = new Biome.Height(0.1F, 0.8F); - protected static final Biome.Height height_MidRockyPlains = new Biome.Height(0.2F, 0.3F); - protected static final Biome.Height height_PartiallySubmerged = new Biome.Height(-0.2F, 0.1F); - protected static final Biome.Height height_Varying = new Biome.Height(0.1F, 1.0F); - protected static final Biome.Height height_VaryingExtreme = new Biome.Height(1.0F, 2.0F); - - private static final Biome[] BIOMES = new Biome[256]; - public static final Map BIOME_ID_MAP = Maps.newHashMap(); - +public abstract class Biome { + private static final Biome[] BIOMES = new Biome[256]; + public static final Biome none = (new BiomeNone(0)).setBiomeName("none", ""); 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").setTemperatureLegacy(2.0F).setHumidity(0.0F).setHeight(height_LowPlains); - public static final Biome extremeHills = (new BiomeHills(3, false)).setColor(6316128).setBiomeName("extremeHills", "Extremes Bergland").setHeight(height_MidHills).setTemperatureLegacy(0.2F).setHumidity(0.3F); + 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").setTemperatureLegacy(0.25F).setHumidity(0.8F).setHeight(height_MidPlains); - public static final Biome swampland = (new BiomeSwamp(6)).setColor(522674).setBiomeName("swampland", "Sumpf").setHeight(height_PartiallySubmerged).setTemperatureLegacy(0.8F).setHumidity(0.9F); - public static final Biome river = (new BiomeWater(7, true)).setColor(255).setBiomeName("river", "Fluss").setHeight(height_ShallowWaters); + 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 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(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 frozenSea = (new BiomeWater(10, false)).setColor(9474208).setBiomeName("frozenSea", "Vereister See").setSnowy().setHeight(height_Sea).setTemperatureLegacy(0.0F).setHumidity(0.5F); - public static final Biome frozenRiver = (new BiomeWater(11, true)).setColor(10526975).setBiomeName("frozenRiver", "Vereister Fluss").setSnowy().setHeight(height_ShallowWaters).setTemperatureLegacy(0.0F).setHumidity(0.5F); - public static final Biome icePlains = (new BiomeSnow(12, false)).setColor(16777215).setBiomeName("icePlains", "Eisebene").setSnowy().setTemperatureLegacy(0.0F).setHumidity(0.5F).setHeight(height_LowPlains); - public static final Biome iceMountains = (new BiomeSnow(13, false)).setColor(10526880).setBiomeName("iceMountains", "Vereistes Bergland").setSnowy().setHeight(height_LowHills).setTemperatureLegacy(0.0F).setHumidity(0.5F); - public static final Biome mushroomPlains = (new BiomeMushroom(14)).setColor(16711935).setBiomeName("mushroomPlains", "Pilzland").setTemperatureLegacy(0.9F).setHumidity(1.0F).setHeight(height_MidRockyPlains); -// public static final Biome mushroomPlainsEdge = (new BiomeMushroom(15)).setColor(10486015).setBiomeName("mushroomPlainsEdge").setTemperatureLegacy(0.9F).setHumidity(1.0F).setHeight(height_Shores); - public static final Biome beach = (new BiomeBeach(16)).setColor(16440917).setBiomeName("beach", "Strand").setTemperatureLegacy(0.8F).setHumidity(0.4F).setHeight(height_Shores); - public static final Biome desertHills = (new BiomeDesert(17)).setColor(13786898).setBiomeName("desertHills", "Wüsten-Bergland").setTemperatureLegacy(2.0F).setHumidity(0.0F).setHeight(height_LowHills); - public static final Biome forestHills = (new BiomeForest(18, 0)).setColor(2250012).setBiomeName("forestHills", "Wald-Bergland").setHeight(height_LowHills); - public static final Biome taigaHills = (new BiomeTaiga(19, 0)).setColor(1456435).setBiomeName("taigaHills", "Taiga-Bergland").setTemperatureLegacy(0.25F).setHumidity(0.8F).setHeight(height_LowHills); - public static final Biome extremeHillsEdge = (new BiomeHills(20, true)).setColor(7501978).setBiomeName("extremeHillsEdge", "Extremes Bergland Gr.").setHeight(height_MidHills.attenuate()).setTemperatureLegacy(0.2F).setHumidity(0.3F); - public static final Biome jungle = (new BiomeJungle(21, false)).setColor(5470985).setBiomeName("jungle", "Urwald").setTemperatureLegacy(0.95F).setHumidity(0.9F); - public static final Biome jungleHills = (new BiomeJungle(22, false)).setColor(2900485).setBiomeName("jungleHills", "Urwald-Bergland").setTemperatureLegacy(0.95F).setHumidity(0.9F).setHeight(height_LowHills); - public static final Biome jungleEdge = (new BiomeJungle(23, true)).setColor(6458135).setBiomeName("jungleEdge", "Urwald Gr.").setTemperatureLegacy(0.95F).setHumidity(0.8F); - public static final Biome sea = (new BiomeWater(24, false)).setColor(112).setBiomeName("sea", "See").setHeight(height_Sea); - public static final Biome stoneBeach = (new BiomeStoneBeach(25)).setColor(10658436).setBiomeName("stoneBeach", "Steinstrand").setTemperatureLegacy(0.2F).setHumidity(0.3F).setHeight(height_RockyWaters); - public static final Biome coldBeach = (new BiomeBeach(26)).setColor(16445632).setBiomeName("coldBeach", "Vereister Strand").setTemperatureLegacy(0.05F).setHumidity(0.3F).setHeight(height_Shores).setSnowy(); + 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).setHeight(height_LowHills); + 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").setSnowy().setTemperatureLegacy(-0.5F).setHumidity(0.4F).setHeight(height_MidPlains); - public static final Biome coldTaigaHills = (new BiomeTaiga(31, 0)).setColor(2375478).setBiomeName("coldTaigaHills", "Vereistes Taiga-Bergland").setSnowy().setTemperatureLegacy(-0.5F).setHumidity(0.4F).setHeight(height_LowHills); - public static final Biome megaTaiga = (new BiomeTaiga(32, 1)).setColor(5858897).setBiomeName("megaTaiga", "Hohe Taiga").setTemperatureLegacy(0.3F).setHumidity(0.8F).setHeight(height_MidPlains); - public static final Biome megaTaigaHills = (new BiomeTaiga(33, 1)).setColor(4542270).setBiomeName("megaTaigaHills", "Hohes Taiga-Bergland").setTemperatureLegacy(0.3F).setHumidity(0.8F).setHeight(height_LowHills); - public static final Biome extremeHillsPlus = (new BiomeHills(34, true)).setColor(5271632).setBiomeName("extremeHillsPlus", "Extremes Bergland +").setHeight(height_MidHills).setTemperatureLegacy(0.2F).setHumidity(0.3F); - public static final Biome savanna = (new BiomeSavanna(35)).setColor(12431967).setBiomeName("savanna", "Savanne").setTemperature(28.0F).setHumidity(0.0F).setHeight(height_LowPlains); - public static final Biome savannaPlateau = (new BiomeSavanna(36)).setColor(10984804).setBiomeName("savannaPlateau", "Savannen-Plateau").setTemperature(20.0F).setHumidity(0.0F).setHeight(height_HighPlateaus); + 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 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").setHeight(height_HighPlateaus); - public static final Biome mesaPlateau = (new BiomeMesa(39, false, false)).setColor(13274213).setBiomeName("mesaPlateau", "Mesa-Plateau").setHeight(height_HighPlateaus); + 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 snowLand = (new BiomeSnowLand(40)).setColor(0xffffff).setBiomeName("snowLand", "Eisland").setSnowy().setHumidity(1.0F); - public static final Biome tian = (new BiomeTian(41)).setColor(0x808080).setBiomeName("tian", "Tian").setHumidity(0.8F).setHeight(height_Varying); - public static final Biome elvenForest = (new BiomeForest(42, 4)).setColor(0x059821).setBiomeName("elvenForest", "Elbenwald").setHumidity(0.9F); - 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).setHeight(height_MidHills); - public static final Biome soulPlains = (new BiomeHell(46, 1)).setColor(16711680).setBiomeName("soulPlains", "Seelenland").setHumidity(0.0F).setHeight(height_PartiallySubmerged); - public static final Biome ashLand = (new BiomeHell(47, 2)).setColor(16711680).setBiomeName("ashLand", "Verbrannt").setHumidity(0.0F).setHeight(height_LowPlains); -// public static final Biome star = (new BiomeStar(46)).setColor(0x000000).setBiomeName("star").setHumidity(0.0F); - public static final Biome moon = (new BiomeMoon(48)).setColor(0xa0a0a0).setBiomeName("moon", "Mondoberfläche").setHumidity(0.0F).setHeight(height_LowPlains); - public static final Biome chaos = (new BiomeChaos(49)).setColor(0xff00ff).setBiomeName("chaos", "Chaos").setHumidity(0.5F).setHeight(height_VaryingExtreme); -// public static final Biome magmaLands = (new BiomeHell(49, 1)).setColor(16711680).setBiomeName("magmaLands").setRainfall(0.0F).setHeight(height_PartiallySubmerged); + 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 DEF_BIOME = forest; protected static final PerlinGen TEMP_NOISE; @@ -149,7 +127,7 @@ public abstract class Biome public final int id; - protected final WeightedList mobs = new WeightedList(); + protected final WeightedList mobs = new WeightedList(); protected final WorldGenBaseTree worldGeneratorTrees = new WorldGenBaseTree(false); protected final WorldGenBigTree worldGeneratorBigTree = new WorldGenBigTree(false); protected final WorldGenSwamp worldGeneratorSwamp = new WorldGenSwamp(); @@ -170,15 +148,15 @@ public abstract class Biome public int color = 0x000000; public State topBlock = Blocks.grass.getState(); public State fillerBlock = Blocks.dirt.getState(); - public float minHeight = height_Default.rootHeight; - public float maxHeight = height_Default.variation; - public float temperature = 0.0F; - public float humidity = 0.5F; + public float depth = Scaling.VARYING_LOW.depth; + public float scale = Scaling.VARYING_LOW.scale; + protected float temperature = 0.0f; + protected float humidity = 50.0f; public int waterColor = 0xffffff; public boolean generateLakes = true; public boolean generateLiquids = true; - public boolean snowyGen = false; - public boolean waterGen = false; + public boolean allowColdBeach = false; + public boolean disallowBeach = false; protected int waterlilyPerChunk = 0; protected int treesPerChunk = 0; @@ -200,22 +178,22 @@ public abstract class Biome this.addMobs(this.mobs); } - protected void addMobs(WeightedList mobs) { - mobs.add(new Biome.RngSpawn(EntitySheep.class, 12, 4, 4)); - mobs.add(new Biome.RngSpawn(EntityRabbit.class, 10, 3, 10)); - mobs.add(new Biome.RngSpawn(EntityPig.class, 10, 4, 4)); - mobs.add(new Biome.RngSpawn(EntityChicken.class, 10, 4, 4)); - mobs.add(new Biome.RngSpawn(EntityCow.class, 8, 4, 4)); - mobs.add(new Biome.RngSpawn(EntityArachnoid.class, 100, 4, 4)); - mobs.add(new Biome.RngSpawn(EntityZombie.class, 100, 4, 4)); - mobs.add(new Biome.RngSpawn(EntityUndead.class, 100, 4, 4)); - mobs.add(new Biome.RngSpawn(EntityHaunter.class, 100, 4, 4)); - mobs.add(new Biome.RngSpawn(EntitySlime.class, 100, 4, 4)); + protected void addMobs(WeightedList mobs) { + mobs.add(new RngSpawn(EntitySheep.class, 12, 4, 4)); + mobs.add(new RngSpawn(EntityRabbit.class, 10, 3, 10)); + mobs.add(new RngSpawn(EntityPig.class, 10, 4, 4)); + mobs.add(new RngSpawn(EntityChicken.class, 10, 4, 4)); + mobs.add(new RngSpawn(EntityCow.class, 8, 4, 4)); + mobs.add(new RngSpawn(EntityArachnoid.class, 100, 4, 4)); + mobs.add(new RngSpawn(EntityZombie.class, 100, 4, 4)); + mobs.add(new RngSpawn(EntityUndead.class, 100, 4, 4)); + mobs.add(new RngSpawn(EntityHaunter.class, 100, 4, 4)); + mobs.add(new RngSpawn(EntitySlime.class, 100, 4, 4)); // mobs.add(new Biome.RngSpawn(EntityEnder....class, 10, 1, 4)); - mobs.add(new Biome.RngSpawn(EntityMage.class, 5, 1, 1)); - mobs.add(new Biome.RngSpawn(EntitySquid.class, 10, 4, 4)); - mobs.add(new Biome.RngSpawn(EntityBat.class, 10, 8, 8)); - mobs.add(new Biome.RngSpawn(EntityMouse.class, 10, 8, 8)); + mobs.add(new RngSpawn(EntityMage.class, 5, 1, 1)); + mobs.add(new RngSpawn(EntitySquid.class, 10, 4, 4)); + mobs.add(new RngSpawn(EntityBat.class, 10, 8, 8)); + mobs.add(new RngSpawn(EntityMouse.class, 10, 8, 8)); } public int getSkyColor() { @@ -230,14 +208,15 @@ public abstract class Biome return 0xffffffff; } - protected Biome setTemperatureLegacy(float temperatureIn) // TODO: away, begone!!! - { - return this.setTemperature(((temperatureIn - 0.15f) * 40.0f) - 14.0f); + public float getFactor() { + float f = this.humidity * 0.01f * ((this.temperature + 14.0f) / 40.0f + 0.15f); + return f > 1.0f ? 1.0f : f; } - protected Biome setTemperature(float temperatureIn) + // skycolor = ((temp + 14) / 40 + 0.15) / 3 + protected Biome setTemperature(float temp) { - this.temperature = temperatureIn; + this.temperature = temp; return this; } @@ -247,10 +226,15 @@ public abstract class Biome return this; } - protected final Biome setHeight(Biome.Height heights) + protected final Biome setScaling(Scaling scaling) { - this.minHeight = heights.rootHeight; - this.maxHeight = heights.variation; + return this.setScaling(scaling.depth, scaling.scale); + } + + protected final Biome setScaling(float depth, float scale) + { + this.depth = depth; + this.scale = scale; return this; } @@ -279,15 +263,15 @@ public abstract class Biome return rand.rarity(3) ? BlockFlower.EnumFlowerType.DANDELION : BlockFlower.EnumFlowerType.ROSE; } - protected Biome setSnowy() + protected Biome enableColdBeach() { - this.snowyGen = true; + this.allowColdBeach = true; return this; } - protected Biome setWater() + protected Biome disableBeach() { - this.waterGen = true; + this.disallowBeach = true; return this; } @@ -304,28 +288,22 @@ public abstract class Biome return this; } - public WeightedList getSpawnableList() + public WeightedList getMobs() { return this.mobs; } public boolean isHighHumidity() { - return this.humidity > 0.85F; + return this.humidity > 85.0f; } - - /** - * returns the chance a creature has to spawn. - */ - public float getSpawningChance() + + public float getMobGenChance() { return 0.1F; } - - /** - * Gets a floating point representation of this biome's temperature - */ - public final float getFloatTemperature(BlockPos pos) + + public final float getTemperature(BlockPos pos) { if (pos.getY() > 64) { @@ -575,23 +553,18 @@ public abstract class Biome public int getGrassColorAtPos(BlockPos pos) { - double d0 = (double)ExtMath.clampf((this.getFloatTemperature(pos) + 14.0f) / 40.0f + 0.15f, 0.0F, 1.0F); - double d1 = (double)ExtMath.clampf(this.humidity, 0.0F, 1.0F); + 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.getFloatTemperature(pos) + 14.0f) / 40.0f + 0.15f, 0.0F, 1.0F); - double d1 = (double)ExtMath.clampf(this.humidity, 0.0F, 1.0F); + 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 boolean isSnowyBiome() - { - return this.snowyGen; - } - + public void genTerrainBlocks(WorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { this.generateBiomeTerrain(worldIn, rand, chunkPrimerIn, x, z, noiseVal); @@ -648,7 +621,7 @@ public abstract class Biome if (j1 < i && (iblockstate == null || iblockstate.getBlock().getMaterial() == Material.air)) { - if (freeze && World.ABSOLUTE_ZERO + worldIn.getTempOffset() + this.getFloatTemperature(blockpos$mutableblockpos.set(x, j1, z)) <= 0.0F) + if (freeze && World.ABSOLUTE_ZERO + worldIn.getTempOffset() + this.getTemperature(blockpos$mutableblockpos.set(x, j1, z)) <= 0.0F) { iblockstate = Blocks.ice.getState(); } @@ -710,31 +683,26 @@ public abstract class Biome return biome == this ? true : (biome == null ? false : this.getBiomeClass() == biome.getBiomeClass()); } - public Biome.TempCategory getTempCategory() + public Temperature getTempCategory() { - return (double)this.temperature < -12.0 ? Biome.TempCategory.COLD : ((double)this.temperature < 20.0 ? Biome.TempCategory.MEDIUM : Biome.TempCategory.WARM); + return this.temperature < -12.0f ? Temperature.COLD : (this.temperature < 20.0f ? Temperature.MEDIUM : Temperature.WARM); } - - public static Biome[] getBiomeGenArray() - { - return BIOMES; - } - + public static Biome getBiome(int id) { - return getBiomeFromBiomeList(id, null); + return getBiome(id, null); } - public static Biome getBiomeFromBiomeList(int biomeId, Biome biome) + public static Biome getBiome(int id, Biome def) { - if (biomeId >= 0 && biomeId < BIOMES.length) + if (id >= 0 && id < BIOMES.length) { - Biome biomegenbase = BIOMES[biomeId]; - return biomegenbase == null ? biome : biomegenbase; + Biome biome = BIOMES[id]; + return biome == null ? def : biome; } else { - Log.JNI.warn("Biom-ID ist nicht im Bereich: " + biomeId + ", verwende " + DEF_BIOME.id + " (" + DEF_BIOME.name + ")"); + Log.JNI.warn("Biom-ID ist nicht im Bereich: " + id + ", verwende " + DEF_BIOME.id + " (" + DEF_BIOME.name + ")"); return DEF_BIOME; } } @@ -785,76 +753,19 @@ public abstract class Biome extremeHills.createMutation(); extremeHillsPlus.createMutation(); megaTaiga.createMutatedBiome(megaTaigaHills.id + 128).setBiomeName("redwoodTaigaHillsM", "Mammutbaumtaiga"); - - for (Biome biomegenbase : BIOMES) - { - if (biomegenbase != null) - { - if (BIOME_ID_MAP.containsKey(biomegenbase.name)) - { - throw new Error("Biom \"" + biomegenbase.name + "\" ist als ID " + ((Biome)BIOME_ID_MAP.get(biomegenbase.name)).id + " und " + biomegenbase.id + " definiert"); - } - - BIOME_ID_MAP.put(biomegenbase.name, biomegenbase); - } - } - + 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) { + 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); } } - - public static class Height - { - public float rootHeight; - public float variation; - - public Height(float rootHeightIn, float variationIn) - { - this.rootHeight = rootHeightIn; - this.variation = variationIn; - } - - public Biome.Height attenuate() - { - return new Biome.Height(this.rootHeight * 0.8F, this.variation * 0.6F); - } - } - - public static class RngSpawn extends RngItem - { - public Class entityClass; - public int minGroupCount; - public int maxGroupCount; - - public RngSpawn(Class entityclassIn, int weight, int groupCountMin, int groupCountMax) - { - super(weight); - this.entityClass = entityclassIn; - this.minGroupCount = groupCountMin; - this.maxGroupCount = groupCountMax; - } - -// public String toString() -// { -// return this.entityClass.getSimpleName() + "*(" + this.minGroupCount + "-" + this.maxGroupCount + "):" + this.weight; -// } - } - - public static enum TempCategory - { - SEA, - COLD, - MEDIUM, - WARM; - } } diff --git a/java/src/game/biome/BiomeBeach.java b/java/src/game/biome/BiomeBeach.java index e163173..982f2c6 100755 --- a/java/src/game/biome/BiomeBeach.java +++ b/java/src/game/biome/BiomeBeach.java @@ -16,6 +16,6 @@ public class BiomeBeach extends Biome this.cactiPerChunk = 0; } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { } } diff --git a/java/src/game/biome/BiomeBlackened.java b/java/src/game/biome/BiomeBlackened.java new file mode 100644 index 0000000..d21cbb3 --- /dev/null +++ b/java/src/game/biome/BiomeBlackened.java @@ -0,0 +1,17 @@ +package game.biome; + +import game.init.Blocks; +import game.rng.WeightedList; + +public class BiomeBlackened extends Biome { + public BiomeBlackened(int id) { + super(id); + this.topBlock = Blocks.blackened_soil.getState(); + this.fillerBlock = Blocks.blackened_dirt.getState(); + this.treesPerChunk = -999; + this.generateLakes = false; + } + + protected void addMobs(WeightedList mobs) { + } +} diff --git a/java/src/game/biome/BiomeChaos.java b/java/src/game/biome/BiomeChaos.java index ef74cfc..01203b9 100755 --- a/java/src/game/biome/BiomeChaos.java +++ b/java/src/game/biome/BiomeChaos.java @@ -22,7 +22,7 @@ public class BiomeChaos extends Biome this.fillerBlock = Blocks.obsidian.getState(); } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { for(Class clazz : EntityRegistry.getAllClasses()) { if(EntityLiving.class.isAssignableFrom(clazz)) mobs.add(new RngSpawn((Class)clazz, 1, 1, 8)); diff --git a/java/src/game/biome/BiomeDesert.java b/java/src/game/biome/BiomeDesert.java index fd832a6..895310a 100755 --- a/java/src/game/biome/BiomeDesert.java +++ b/java/src/game/biome/BiomeDesert.java @@ -21,7 +21,7 @@ public class BiomeDesert extends Biome this.generateLakes = false; } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { } public void decorate(WorldServer worldIn, Random rand, BlockPos pos) diff --git a/java/src/game/biome/BiomeExterminated.java b/java/src/game/biome/BiomeExterminated.java index 13aeb2f..076c215 100755 --- a/java/src/game/biome/BiomeExterminated.java +++ b/java/src/game/biome/BiomeExterminated.java @@ -13,7 +13,7 @@ public class BiomeExterminated extends Biome { this.fillerBlock = Blocks.air.getState(); } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { } public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { diff --git a/java/src/game/biome/BiomeForest.java b/java/src/game/biome/BiomeForest.java index b64b1ad..01a409c 100755 --- a/java/src/game/biome/BiomeForest.java +++ b/java/src/game/biome/BiomeForest.java @@ -65,17 +65,17 @@ public class BiomeForest extends Biome this.waterlilyPerChunk = 4; } - this.setTemperatureLegacy(0.7F).setHumidity(0.8F); + this.setTemperature(8.0f).setHumidity(80.0f); if (this.subType == 2) { this.setColor(3175492); - this.setTemperatureLegacy(0.6F).setHumidity(0.6F); + this.setTemperature(4.0f).setHumidity(60.0f); } if (this.subType == 0) { - this.mobs.add(new Biome.RngSpawn(EntityWolf.class, 5, 4, 4)); + this.mobs.add(new RngSpawn(EntityWolf.class, 5, 4, 4)); } if (this.subType == 3) @@ -84,11 +84,11 @@ public class BiomeForest extends Biome } if(this.subType != 4) { - this.mobs.add(new Biome.RngSpawn(EntityWoodElf.class, 3, 2, 6)); + this.mobs.add(new RngSpawn(EntityWoodElf.class, 3, 2, 6)); } else { - this.mobs.add(new Biome.RngSpawn(EntityWoodElf.class, 100, 4, 16)); - this.mobs.add(new Biome.RngSpawn(EntityElf.class, 12, 4, 16)); + this.mobs.add(new RngSpawn(EntityWoodElf.class, 100, 4, 16)); + this.mobs.add(new RngSpawn(EntityElf.class, 12, 4, 16)); } } @@ -205,14 +205,14 @@ public class BiomeForest extends Biome public int getGrassColorAtPos(BlockPos pos) { - return this.subType == 4 ? Colorizer.getGrassColor(1.0f, this.humidity) : + 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) : super.getFoliageColorAtPos(pos); + return this.subType == 4 ? Colorizer.getFoliageColor(1.0f, this.humidity * 0.01f) : super.getFoliageColorAtPos(pos); } protected Biome createMutatedBiome(final int id) @@ -220,7 +220,7 @@ public class BiomeForest extends Biome if (this.id == Biome.forest.id) { BiomeForest biomegenforest = new BiomeForest(id, 1); - biomegenforest.setHeight(new Biome.Height(this.minHeight, this.maxHeight + 0.2F)); + biomegenforest.setScaling(this.depth, this.scale + 0.2F); biomegenforest.setBiomeName("flowerForest", "Blumenwald"); biomegenforest.setColor(6976549); return biomegenforest; diff --git a/java/src/game/biome/BiomeHell.java b/java/src/game/biome/BiomeHell.java index d177684..8f4d3c3 100755 --- a/java/src/game/biome/BiomeHell.java +++ b/java/src/game/biome/BiomeHell.java @@ -34,8 +34,8 @@ public class BiomeHell extends Biome super(id); this.subtype = subtype; if(this.subtype == 0) { - this.mobs.add(new Biome.RngSpawn(EntityBloodElf.class, 10, 1, 2)); - this.mobs.add(new Biome.RngSpawn(EntityMetalhead.class, 1, 1, 1)); + this.mobs.add(new RngSpawn(EntityBloodElf.class, 10, 1, 2)); + this.mobs.add(new RngSpawn(EntityMetalhead.class, 1, 1, 1)); this.fireGen = new WorldGenFire(); this.glowStoneGen1 = new WorldGenGlowStone(); this.glowStoneGen2 = new WorldGenGlowStone(); @@ -46,8 +46,8 @@ public class BiomeHell extends Biome this.redMushroomGen = new WorldGenMushroom(Blocks.red_mushroom); } else { - this.mobs.add(new Biome.RngSpawn(EntityBloodElf.class, 50, 2, 10)); - this.mobs.add(new Biome.RngSpawn(EntityCultivator.class, 10, 1, 1)); + this.mobs.add(new RngSpawn(EntityBloodElf.class, 50, 2, 10)); + this.mobs.add(new RngSpawn(EntityCultivator.class, 10, 1, 1)); this.fireGen = null; this.glowStoneGen1 = null; this.glowStoneGen2 = null; @@ -67,10 +67,10 @@ public class BiomeHell extends Biome } } - protected void addMobs(WeightedList mobs) { - mobs.add(new Biome.RngSpawn(EntityFireDemon.class, 50, 4, 4)); - mobs.add(new Biome.RngSpawn(EntityTiefling.class, 100, 4, 4)); - mobs.add(new Biome.RngSpawn(EntityMagma.class, 1, 4, 4)); + protected void addMobs(WeightedList mobs) { + mobs.add(new RngSpawn(EntityFireDemon.class, 50, 4, 4)); + mobs.add(new RngSpawn(EntityTiefling.class, 100, 4, 4)); + mobs.add(new RngSpawn(EntityMagma.class, 1, 4, 4)); } public void decorate(WorldServer worldIn, Random rand, BlockPos pos) diff --git a/java/src/game/biome/BiomeHills.java b/java/src/game/biome/BiomeHills.java index 4a626f5..7f86b7b 100755 --- a/java/src/game/biome/BiomeHills.java +++ b/java/src/game/biome/BiomeHills.java @@ -91,7 +91,7 @@ public class BiomeHills extends Biome 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.setHeight(new Biome.Height(p_150633_1_.minHeight, p_150633_1_.maxHeight)); + this.setScaling(p_150633_1_.depth, p_150633_1_.scale); this.setTemperature(p_150633_1_.temperature); this.setHumidity(p_150633_1_.humidity); return this; diff --git a/java/src/game/biome/BiomeJungle.java b/java/src/game/biome/BiomeJungle.java index b4d6db7..ce45cb2 100755 --- a/java/src/game/biome/BiomeJungle.java +++ b/java/src/game/biome/BiomeJungle.java @@ -44,10 +44,10 @@ public class BiomeJungle extends Biome if (!edge) { - this.mobs.add(new Biome.RngSpawn(EntityOcelot.class, 2, 1, 1)); + this.mobs.add(new RngSpawn(EntityOcelot.class, 2, 1, 1)); } - this.mobs.add(new Biome.RngSpawn(EntityChicken.class, 10, 4, 4)); + this.mobs.add(new RngSpawn(EntityChicken.class, 10, 4, 4)); } public WorldGenTree genBigTreeChance(Random rand) diff --git a/java/src/game/biome/BiomeMesa.java b/java/src/game/biome/BiomeMesa.java index bca1a7b..edf1000 100755 --- a/java/src/game/biome/BiomeMesa.java +++ b/java/src/game/biome/BiomeMesa.java @@ -36,7 +36,7 @@ public class BiomeMesa extends Biome this.soil = soil; // this.setDisableRain(); // this.setTemperatureLegacy(2.0F).setHumidity(0.0F); - this.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(); @@ -53,7 +53,7 @@ public class BiomeMesa extends Biome } } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { } public WorldGenTree genBigTreeChance(Random rand) @@ -334,7 +334,7 @@ public class BiomeMesa extends Biome if (!bryce) { - mesa.setHeight(height_LowHills); + mesa.setScaling(Scaling.HILLS_LOW); mesa.setBiomeName(this.name + "M", this.display + " M"); } else diff --git a/java/src/game/biome/BiomeMoon.java b/java/src/game/biome/BiomeMoon.java index 4171d57..6a3baad 100755 --- a/java/src/game/biome/BiomeMoon.java +++ b/java/src/game/biome/BiomeMoon.java @@ -16,7 +16,7 @@ public class BiomeMoon extends Biome { this.fillerBlock = Blocks.moon_rock.getState(); } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { } public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { diff --git a/java/src/game/biome/BiomeMushroom.java b/java/src/game/biome/BiomeMushroom.java index 4968a3c..07ebec9 100755 --- a/java/src/game/biome/BiomeMushroom.java +++ b/java/src/game/biome/BiomeMushroom.java @@ -17,7 +17,7 @@ public class BiomeMushroom extends Biome this.topBlock = Blocks.mycelium.getState(); } - protected void addMobs(WeightedList mobs) { - mobs.add(new Biome.RngSpawn(EntityMooshroom.class, 8, 4, 8)); + protected void addMobs(WeightedList mobs) { + mobs.add(new RngSpawn(EntityMooshroom.class, 8, 4, 8)); } } diff --git a/java/src/game/biome/BiomeMutated.java b/java/src/game/biome/BiomeMutated.java index 026dc3f..95d4d93 100755 --- a/java/src/game/biome/BiomeMutated.java +++ b/java/src/game/biome/BiomeMutated.java @@ -25,7 +25,7 @@ public class BiomeMutated extends Biome this.temperature = biome.temperature; this.humidity = biome.humidity; this.waterColor = biome.waterColor; - this.snowyGen = biome.snowyGen; + this.allowColdBeach = biome.allowColdBeach; // this.enableRain = biome.enableRain; // this.mobs.clear(); this.mobs.addAll(biome.mobs); @@ -36,11 +36,11 @@ public class BiomeMutated extends Biome // this.npcs = new WeightedList(biome.npcs); // this.temperature = biome.temperature; // this.humidity = biome.humidity; - this.minHeight = biome.minHeight + 0.1F; - this.maxHeight = biome.maxHeight + 0.2F; + this.depth = biome.depth + 0.1F; + this.scale = biome.scale + 0.2F; } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { } public void decorate(WorldServer worldIn, Random rand, BlockPos pos) @@ -58,16 +58,9 @@ public class BiomeMutated extends Biome this.baseBiome.genTerrainBlocks(worldIn, rand, chunkPrimerIn, x, z, noiseVal); } -// public AlphaBiome getLegacy() { -// return this.baseBiome.getLegacy(); -// } - - /** - * returns the chance a creature has to spawn. - */ - public float getSpawningChance() + public float getMobGenChance() { - return this.baseBiome.getSpawningChance(); + return this.baseBiome.getMobGenChance(); } public WorldGenTree genBigTreeChance(Random rand) @@ -98,7 +91,7 @@ public class BiomeMutated extends Biome return this.baseBiome.isEqualTo(biome); } - public Biome.TempCategory getTempCategory() + public Temperature getTempCategory() { return this.baseBiome.getTempCategory(); } diff --git a/java/src/game/biome/BiomeNone.java b/java/src/game/biome/BiomeNone.java index 9e01d8a..bac124c 100755 --- a/java/src/game/biome/BiomeNone.java +++ b/java/src/game/biome/BiomeNone.java @@ -14,7 +14,7 @@ public class BiomeNone extends Biome { this.fillerBlock = Blocks.air.getState(); } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { } public void genTerrainBlocks(WorldServer worldIn, Random rand, ChunkPrimer chunkPrimerIn, int x, int z, double noiseVal) { @@ -23,7 +23,7 @@ public class BiomeNone extends Biome { public void decorate(WorldServer worldIn, Random rand, BlockPos pos) { } - public Biome.TempCategory getTempCategory() { - return Biome.TempCategory.SEA; + public Temperature getTempCategory() { + return Temperature.SEA; } } diff --git a/java/src/game/biome/BiomePlains.java b/java/src/game/biome/BiomePlains.java index bca4c87..35ee03b 100755 --- a/java/src/game/biome/BiomePlains.java +++ b/java/src/game/biome/BiomePlains.java @@ -23,9 +23,9 @@ public class BiomePlains extends Biome protected BiomePlains(int id) { super(id); - this.setTemperatureLegacy(0.8F).setHumidity(0.4F); - this.setHeight(height_LowPlains); - this.mobs.add(new Biome.RngSpawn(EntityHorse.class, 5, 2, 6)); + this.setTemperature(12.0f).setHumidity(40.0f); + this.setScaling(Scaling.PLAINS_LOW); + this.mobs.add(new RngSpawn(EntityHorse.class, 5, 2, 6)); this.treesPerChunk = -999; this.flowersPerChunk = 4; this.grassPerChunk = 10; diff --git a/java/src/game/biome/BiomeSavanna.java b/java/src/game/biome/BiomeSavanna.java index 44dae43..fd987cf 100755 --- a/java/src/game/biome/BiomeSavanna.java +++ b/java/src/game/biome/BiomeSavanna.java @@ -18,7 +18,7 @@ public class BiomeSavanna extends Biome protected BiomeSavanna(int id) { super(id); - this.mobs.add(new Biome.RngSpawn(EntityHorse.class, 1, 2, 6)); + this.mobs.add(new RngSpawn(EntityHorse.class, 1, 2, 6)); this.treesPerChunk = 1; this.flowersPerChunk = 4; this.grassPerChunk = 20; @@ -33,8 +33,8 @@ public class BiomeSavanna extends Biome { Biome biomegenbase = new BiomeSavanna.Mutated(p_180277_1_, this); biomegenbase.temperature = this.temperature == 28.0f ? 24.0f : 20.0f; - biomegenbase.minHeight = this.minHeight * 0.5F + 0.3F; - biomegenbase.maxHeight = this.maxHeight * 0.5F + 1.2F; + biomegenbase.depth = this.depth * 0.5F + 0.3F; + biomegenbase.scale = this.scale * 0.5F + 1.2F; return biomegenbase; } diff --git a/java/src/game/biome/BiomeSnow.java b/java/src/game/biome/BiomeSnow.java index 7af16ba..44767cf 100755 --- a/java/src/game/biome/BiomeSnow.java +++ b/java/src/game/biome/BiomeSnow.java @@ -24,7 +24,7 @@ public class BiomeSnow extends Biome this.topBlock = Blocks.snow.getState(); } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { } public void decorate(WorldServer worldIn, Random rand, BlockPos pos) @@ -56,9 +56,9 @@ public class BiomeSnow extends Biome protected Biome createMutatedBiome(int p_180277_1_) { - Biome biomegenbase = (new BiomeSnow(p_180277_1_, true)).setColor(13828095).setBiomeName(this.name + "Spikes", this.display + " + Spitzen").setSnowy().setTemperatureLegacy(0.0F).setHumidity(0.5F).setHeight(new Biome.Height(this.minHeight + 0.1F, this.maxHeight + 0.1F)); - biomegenbase.minHeight = this.minHeight + 0.3F; - biomegenbase.maxHeight = this.maxHeight + 0.4F; + 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); + biomegenbase.depth = this.depth + 0.3F; + biomegenbase.scale = this.scale + 0.4F; return biomegenbase; } } diff --git a/java/src/game/biome/BiomeSnowLand.java b/java/src/game/biome/BiomeSnowLand.java index 3ed69b6..8ad0d4a 100755 --- a/java/src/game/biome/BiomeSnowLand.java +++ b/java/src/game/biome/BiomeSnowLand.java @@ -15,8 +15,8 @@ public class BiomeSnowLand extends Biome this.mushroomsPerChunk = -1; } - protected void addMobs(WeightedList mobs) { - mobs.add(new Biome.RngSpawn(EntitySheep.class, 50, 4, 4)); - mobs.add(new Biome.RngSpawn(EntitySpirit.class, 10, 1, 1)); + protected void addMobs(WeightedList mobs) { + mobs.add(new RngSpawn(EntitySheep.class, 50, 4, 4)); + mobs.add(new RngSpawn(EntitySpirit.class, 10, 1, 1)); } } diff --git a/java/src/game/biome/BiomeSpace.java b/java/src/game/biome/BiomeSpace.java index 30d6bb2..67a3cf1 100755 --- a/java/src/game/biome/BiomeSpace.java +++ b/java/src/game/biome/BiomeSpace.java @@ -23,7 +23,7 @@ public class BiomeSpace extends Biome this.fillerBlock = Blocks.air.getState(); } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { } public void decorate(WorldServer worldIn, Random rand, BlockPos pos) diff --git a/java/src/game/biome/BiomeStoneBeach.java b/java/src/game/biome/BiomeStoneBeach.java index c387360..550a07b 100755 --- a/java/src/game/biome/BiomeStoneBeach.java +++ b/java/src/game/biome/BiomeStoneBeach.java @@ -17,6 +17,6 @@ public class BiomeStoneBeach extends Biome this.cactiPerChunk = 0; } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { } } diff --git a/java/src/game/biome/BiomeSwamp.java b/java/src/game/biome/BiomeSwamp.java index 6dd4f4a..c742d0a 100755 --- a/java/src/game/biome/BiomeSwamp.java +++ b/java/src/game/biome/BiomeSwamp.java @@ -28,8 +28,8 @@ public class BiomeSwamp extends Biome this.sandPerChunk = 0; this.grassPerChunk = 5; this.waterColor = 0xe0ffae; - this.mobs.add(new Biome.RngSpawn(EntitySlime.class, 1, 1, 1)); - this.setWater(); + this.mobs.add(new RngSpawn(EntitySlime.class, 1, 1, 1)); + this.disableBeach(); } public WorldGenTree genBigTreeChance(Random rand) diff --git a/java/src/game/biome/BiomeTaiga.java b/java/src/game/biome/BiomeTaiga.java index 8398b2e..f5b4b7e 100755 --- a/java/src/game/biome/BiomeTaiga.java +++ b/java/src/game/biome/BiomeTaiga.java @@ -30,7 +30,7 @@ public class BiomeTaiga extends Biome { super(id); this.field_150644_aH = p_i45385_2_; - this.mobs.add(new Biome.RngSpawn(EntityWolf.class, 8, 4, 4)); + this.mobs.add(new RngSpawn(EntityWolf.class, 8, 4, 4)); this.treesPerChunk = 10; if (p_i45385_2_ != 1 && p_i45385_2_ != 2) @@ -109,6 +109,6 @@ public class BiomeTaiga extends Biome protected Biome createMutatedBiome(int p_180277_1_) { - return this.id == Biome.megaTaiga.id ? (new BiomeTaiga(p_180277_1_, 2)).setColor(5858897).setBiomeName("megaSpruceTaiga", "Hohe Fichtentaiga").setTemperatureLegacy(0.25F).setHumidity(0.8F).setHeight(new Biome.Height(this.minHeight, this.maxHeight)) : super.createMutatedBiome(p_180277_1_); + 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_); } } diff --git a/java/src/game/biome/BiomeTian.java b/java/src/game/biome/BiomeTian.java index 947d9b1..1382e11 100755 --- a/java/src/game/biome/BiomeTian.java +++ b/java/src/game/biome/BiomeTian.java @@ -39,12 +39,12 @@ public class BiomeTian extends Biome this.treesPerChunk = 1; } - protected void addMobs(WeightedList mobs) { + protected void addMobs(WeightedList mobs) { // mobs.add(new Biome.RngSpawn(EntityHaunter.class, 50, 4, 4)); - mobs.add(new Biome.RngSpawn(EntityCultivator.class, 50, 1, 1)); - mobs.add(new Biome.RngSpawn(EntityRabbit.class, 10, 3, 10)); - mobs.add(new Biome.RngSpawn(EntityBat.class, 10, 8, 8)); - mobs.add(new Biome.RngSpawn(EntityMouse.class, 10, 8, 8)); + mobs.add(new RngSpawn(EntityCultivator.class, 50, 1, 1)); + mobs.add(new RngSpawn(EntityRabbit.class, 10, 3, 10)); + mobs.add(new RngSpawn(EntityBat.class, 10, 8, 8)); + mobs.add(new RngSpawn(EntityMouse.class, 10, 8, 8)); } public BlockFlower.EnumFlowerType pickRandomFlower(Random rand, BlockPos pos) diff --git a/java/src/game/biome/BiomeWater.java b/java/src/game/biome/BiomeWater.java index 5a1e9e4..6c68df8 100755 --- a/java/src/game/biome/BiomeWater.java +++ b/java/src/game/biome/BiomeWater.java @@ -9,14 +9,14 @@ public class BiomeWater extends Biome { public BiomeWater(int id, boolean river) { super(id); this.river = river; - this.setWater(); + this.disableBeach(); } - protected void addMobs(WeightedList mobs) { - mobs.add(new Biome.RngSpawn(EntitySquid.class, 10, 4, 4)); + protected void addMobs(WeightedList mobs) { + mobs.add(new RngSpawn(EntitySquid.class, 10, 4, 4)); } - public Biome.TempCategory getTempCategory() { - return this.river ? super.getTempCategory() : Biome.TempCategory.SEA; + public Temperature getTempCategory() { + return this.river ? super.getTempCategory() : Temperature.SEA; } } diff --git a/java/src/game/biome/RngSpawn.java b/java/src/game/biome/RngSpawn.java new file mode 100644 index 0000000..25ba373 --- /dev/null +++ b/java/src/game/biome/RngSpawn.java @@ -0,0 +1,17 @@ +package game.biome; + +import game.entity.types.EntityLiving; +import game.rng.RngItem; + +public class RngSpawn extends RngItem { + public final Class type; + public final int min; + public final int max; + + public RngSpawn(Class type, int weight, int min, int max) { + super(weight); + this.type = type; + this.min = min; + this.max = max; + } +} diff --git a/java/src/game/biome/Scaling.java b/java/src/game/biome/Scaling.java new file mode 100644 index 0000000..6629d78 --- /dev/null +++ b/java/src/game/biome/Scaling.java @@ -0,0 +1,28 @@ +package game.biome; + +public enum Scaling { + VARYING_LOW(0.1F, 0.2F), + VARYING_MEDIUM(0.1F, 1.0F), + VARYING_CHAOTIC(1.0F, 2.0F), + SEA_VARYING(0.1F, 0.8F), + SEA_SHORE(0.0F, 0.025F), + SEA_POND(-0.2F, 0.1F), + SEA_SHALLOW(-0.5F, 0.0F), + SEA_MEDIUM(-1.0F, 0.1F), + SEA_DEEP(-1.8F, 0.1F), + PLAINS_LOW(0.125F, 0.05F), + PLAINS_MEDIUM(0.2F, 0.2F), + PLAINS_VARYING(0.2F, 0.3F), + HILLS_LOW(0.45F, 0.3F), + HILLS_MEDIUM(0.8F, 0.3F), + HILLS_LARGE(1.0F, 0.5F), + HILLS_PLATEAU(1.5F, 0.025F); + + public final float depth; + public final float scale; + + private Scaling(float depth, float scale) { + this.depth = depth; + this.scale = scale; + } +} diff --git a/java/src/game/biome/Temperature.java b/java/src/game/biome/Temperature.java new file mode 100644 index 0000000..b9acbf2 --- /dev/null +++ b/java/src/game/biome/Temperature.java @@ -0,0 +1,5 @@ +package game.biome; + +public enum Temperature { + SEA, COLD, MEDIUM, WARM; +} diff --git a/java/src/game/init/UniverseRegistry.java b/java/src/game/init/UniverseRegistry.java index da0571e..033ea1b 100755 --- a/java/src/game/init/UniverseRegistry.java +++ b/java/src/game/init/UniverseRegistry.java @@ -528,9 +528,9 @@ public abstract class UniverseRegistry { .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) + .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.swampland, Biome.jungle, Biome.blackened) .setHotBiomes(Biome.desert, Biome.desert, Biome.desert, Biome.savanna, Biome.savanna, Biome.plains) .enableCavesRavines(Blocks.lava.getState()).setDungeons(8).setWorldFloor(Blocks.bedrock.getState()) .addLake(Blocks.water.getState(), null, Blocks.grass.getState(), 4, 0, 255, false) diff --git a/java/src/game/renderer/EntityRenderer.java b/java/src/game/renderer/EntityRenderer.java index a1c1584..2f63441 100755 --- a/java/src/game/renderer/EntityRenderer.java +++ b/java/src/game/renderer/EntityRenderer.java @@ -1147,7 +1147,7 @@ public class EntityRenderer { Biome biomegenbase = world.getBiomeGenForCoords(blockpos1); BlockPos blockpos2 = blockpos1.down(); Block block = world.getState(blockpos2).getBlock(); - float temp = World.ABSOLUTE_ZERO + world.getTempOffset() + biomegenbase.getFloatTemperature(blockpos1); + float temp = World.ABSOLUTE_ZERO + world.getTempOffset() + biomegenbase.getTemperature(blockpos1); if (blockpos1.getY() <= blockpos.getY() + i && blockpos1.getY() >= blockpos.getY() - i && /* biomegenbase.canRain() && */ temp > 0.0F) { @@ -1282,7 +1282,7 @@ public class EntityRenderer { { this.random.setSeed((long)(l1 * l1 * 3121 + l1 * 45238971 ^ k1 * k1 * 418711 + k1 * 13761)); blockpos$mutableblockpos.set(l1, k2, k1); - float f2 = World.ABSOLUTE_ZERO + world.getTempOffset() + biomegenbase.getFloatTemperature(blockpos$mutableblockpos); + float f2 = World.ABSOLUTE_ZERO + world.getTempOffset() + biomegenbase.getTemperature(blockpos$mutableblockpos); if(f2 >= 194.0f) { diff --git a/java/src/game/world/Spawner.java b/java/src/game/world/Spawner.java index e7dee6e..739cdd4 100755 --- a/java/src/game/world/Spawner.java +++ b/java/src/game/world/Spawner.java @@ -5,6 +5,7 @@ import java.util.Set; import game.collect.Sets; import game.biome.Biome; +import game.biome.RngSpawn; import game.block.Block; import game.entity.npc.EntityNPC; import game.entity.types.EntityLiving; @@ -102,7 +103,7 @@ public abstract class Spawner { int mx = x; int my = y; int mz = z; - Biome.RngSpawn entry = null; + RngSpawn entry = null; int cmax = 4; for(int m = 0; m < cmax; ++m) { mx += world.rand.zrange(mobSpread) - world.rand.zrange(mobSpread); @@ -118,13 +119,13 @@ public abstract class Spawner { if(entry == null) { break; } - cmax = m + entry.minGroupCount + world.rand.zrange(1 + entry.maxGroupCount - entry.minGroupCount); + cmax = m + entry.min + world.rand.zrange(1 + entry.max - entry.min); } if(world.canCreatureTypeSpawnHere(entry, mpos) - && canSpawnAt(EntityWaterMob.class.isAssignableFrom(entry.entityClass), world, mpos)) { + && canSpawnAt(EntityWaterMob.class.isAssignableFrom(entry.type), world, mpos)) { EntityLiving entity; try { - entity = entry.entityClass.getConstructor(World.class).newInstance(world); + entity = entry.type.getConstructor(World.class).newInstance(world); } catch(Exception e) { e.printStackTrace(); @@ -160,15 +161,15 @@ public abstract class Spawner { public static void generate(WorldServer world, Biome biome, int x, int z, int sx, int sz, Random rand) { int iters = 0; - while(rand.floatv() < biome.getSpawningChance()) { + while(rand.floatv() < biome.getMobGenChance()) { if(iters++ == 10) break; - WeightedList list = biome.getSpawnableList(); + WeightedList list = biome.getMobs(); if(list.isEmpty()) { continue; } - Biome.RngSpawn entry = list.pick(world.rand); - int count = entry.minGroupCount + rand.zrange(1 + entry.maxGroupCount - entry.minGroupCount); + RngSpawn entry = list.pick(world.rand); + int count = entry.min + rand.zrange(1 + entry.max - entry.min); Object data = null; int mx = x + rand.zrange(sx); int mz = z + rand.zrange(sz); @@ -178,10 +179,10 @@ public abstract class Spawner { boolean flag = false; for(int m = 0; !flag && m < 4; ++m) { BlockPos pos = world.getTopSolidOrLiquidBlock(new BlockPos(mx, 0, mz)); - if(canSpawnAt(EntityWaterMob.class.isAssignableFrom(entry.entityClass), world, pos)) { + if(canSpawnAt(EntityWaterMob.class.isAssignableFrom(entry.type), world, pos)) { EntityLiving entity; try { - entity = entry.entityClass.getConstructor(World.class).newInstance(world); + entity = entry.type.getConstructor(World.class).newInstance(world); } catch(Exception e) { e.printStackTrace(); diff --git a/java/src/game/world/World.java b/java/src/game/world/World.java index 56a2141..5c0e471 100755 --- a/java/src/game/world/World.java +++ b/java/src/game/world/World.java @@ -1556,7 +1556,7 @@ public abstract class World implements IWorldAccess { } public float getTemperatureK(BlockPos pos) { - return this.temp + this.getBiomeGenForCoords(pos).getFloatTemperature(pos); + return this.temp + this.getBiomeGenForCoords(pos).getTemperature(pos); } public float getTemperatureC(BlockPos pos) { diff --git a/java/src/game/world/WorldClient.java b/java/src/game/world/WorldClient.java index 3cbf887..0e01f13 100755 --- a/java/src/game/world/WorldClient.java +++ b/java/src/game/world/WorldClient.java @@ -764,7 +764,7 @@ public class WorldClient extends World float mult = ExtMath.clampf(ExtMath.cos(this.getCelestialAngle(partial) * (float)Math.PI * 2.0F) * 2.0F + 0.5F, 0.0F, 1.0F); if(this.dimension.getSkyColor() == 0xffffffff) { - float temp = ExtMath.clampf(((biome.getFloatTemperature(pos) + 14.0f) / 40.0f + 0.15f) / 3.0F, + float temp = ExtMath.clampf(((biome.getTemperature(pos) + 14.0f) / 40.0f + 0.15f) / 3.0F, -1.0F, 1.0F); Vec3 sky = new Vec3(hsvToRGB(0.62222224F - temp * 0.05F, 0.5F + temp * 0.1F, 1.0F)); vec = new Vec3(vec.xCoord * sky.xCoord * mult, vec.yCoord * sky.yCoord * mult, vec.zCoord * sky.zCoord * mult); diff --git a/java/src/game/world/WorldServer.java b/java/src/game/world/WorldServer.java index b5e2c34..4ae9610 100755 --- a/java/src/game/world/WorldServer.java +++ b/java/src/game/world/WorldServer.java @@ -19,6 +19,7 @@ import game.collect.Sets; import game.Server; import game.biome.Biome; +import game.biome.RngSpawn; import game.block.Block; import game.block.BlockDoor; import game.block.BlockEventData; @@ -465,23 +466,23 @@ public final class WorldServer extends World { return true; } - private WeightedList getSpawnTypes(BlockPos pos) { + private WeightedList getSpawnTypes(BlockPos pos) { Biome 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; else if(this.scatteredGen != null && this.scatteredGen.hasMageHut(pos)) return LootConstants.MAGEHUT_MOBS; - return biome.getSpawnableList(); + return biome.getMobs(); } - public Biome.RngSpawn getSpawnListEntryForTypeAt(BlockPos pos) { - WeightedList list = this.getSpawnTypes(pos); - return list != null && !list.isEmpty() ? (Biome.RngSpawn)list.pick(this.rand) : null; + public RngSpawn getSpawnListEntryForTypeAt(BlockPos pos) { + WeightedList list = this.getSpawnTypes(pos); + return list != null && !list.isEmpty() ? (RngSpawn)list.pick(this.rand) : null; } - public boolean canCreatureTypeSpawnHere(Biome.RngSpawn spawnListEntry, BlockPos pos) { - WeightedList list = this.getSpawnTypes(pos); + public boolean canCreatureTypeSpawnHere(RngSpawn spawnListEntry, BlockPos pos) { + WeightedList list = this.getSpawnTypes(pos); return list != null && !list.isEmpty() ? list.contains(spawnListEntry) : false; } diff --git a/java/src/game/worldgen/BiomeGenLayered.java b/java/src/game/worldgen/BiomeGenLayered.java index 5980b62..74f666d 100755 --- a/java/src/game/worldgen/BiomeGenLayered.java +++ b/java/src/game/worldgen/BiomeGenLayered.java @@ -176,18 +176,15 @@ 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.getBiomeFromBiomeList(aint[i], Biome.DEF_BIOME); - float f = biome.humidity * biome.temperature; - if(f > 1.0F) - f = 1.0F; - listToReuse[i] = (double)f; + Biome biome = Biome.getBiome(aint[i], Biome.DEF_BIOME); + listToReuse[i] = (double)biome.getFactor(); } } public void genFactors(double[] factors, int xPos, int zPos, int sizeX, int sizeZ) { IntCache.resetIntCache(); - if(true && sizeX == 16 && sizeZ == 16 && (xPos & 15) == 0 && (zPos & 15) == 0) { + if(sizeX == 16 && sizeZ == 16 && (xPos & 15) == 0 && (zPos & 15) == 0) { double[] cachedFacts = this.getBiomeCacheBlock(xPos, zPos).factors; System.arraycopy(cachedFacts, 0, factors, 0, sizeX * sizeZ); } @@ -195,11 +192,8 @@ 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.getBiomeFromBiomeList(aint[i], Biome.DEF_BIOME); - float f = biome.humidity * biome.temperature; - if(f > 1.0F) - f = 1.0F; - factors[i] = (double)f; + Biome biome = Biome.getBiome(aint[i], Biome.DEF_BIOME); + factors[i] = (double)biome.getFactor(); } } } @@ -210,7 +204,7 @@ public class BiomeGenLayered implements BiomeGenerator { int[] aint = this.genBiomes.getInts(x, z, width, height); for(int i = 0; i < width * height; ++i) { - biomes[i] = Biome.getBiomeFromBiomeList(aint[i], Biome.DEF_BIOME); + biomes[i] = Biome.getBiome(aint[i], Biome.DEF_BIOME); } } @@ -229,7 +223,7 @@ public class BiomeGenLayered implements BiomeGenerator { int[] aint = this.biomeIndexLayer.getInts(x, z, width, length); for(int i = 0; i < width * length; ++i) { - listToReuse[i] = Biome.getBiomeFromBiomeList(aint[i], Biome.DEF_BIOME); + listToReuse[i] = Biome.getBiome(aint[i], Biome.DEF_BIOME); } } } diff --git a/java/src/game/worldgen/BiomeGenSingle.java b/java/src/game/worldgen/BiomeGenSingle.java index 9518b6c..15462fc 100755 --- a/java/src/game/worldgen/BiomeGenSingle.java +++ b/java/src/game/worldgen/BiomeGenSingle.java @@ -42,6 +42,6 @@ public class BiomeGenSingle implements BiomeGenerator { } public void genFactors(double[] factors, int xPos, int zPos, int sizeX, int sizeZ) { - Arrays.fill(factors, 0, sizeX * sizeZ, this.biome.humidity * this.biome.temperature); + Arrays.fill(factors, 0, sizeX * sizeZ, this.biome.getFactor()); } } diff --git a/java/src/game/worldgen/GeneratorPerlin.java b/java/src/game/worldgen/GeneratorPerlin.java index 270fdf8..2b4ff2d 100755 --- a/java/src/game/worldgen/GeneratorPerlin.java +++ b/java/src/game/worldgen/GeneratorPerlin.java @@ -203,8 +203,8 @@ public class GeneratorPerlin implements ChunkGenerator for (int b = -range; b <= range; ++b) { Biome biome2 = this.biomes[u + a + 2 + (v + b + 2) * 10]; - float bmin = this.biomeDepthOffset + biome2.minHeight * this.biomeDepthWeight; - float bmax = this.biomeScaleOffset + biome2.maxHeight * this.biomeScaleWeight; + float bmin = this.biomeDepthOffset + biome2.depth * this.biomeDepthWeight; + float bmax = this.biomeScaleOffset + biome2.scale * this.biomeScaleWeight; if (this.amplification > 0.0F && bmin > 0.0F) { @@ -214,7 +214,7 @@ public class GeneratorPerlin implements ChunkGenerator float fact = PARABOLIC[a + 2 + (b + 2) * 5] / (bmin + 2.0F); - if (biome2.minHeight > biome.minHeight) + if (biome2.depth > biome.depth) { fact /= 2.0F; } diff --git a/java/src/game/worldgen/LootConstants.java b/java/src/game/worldgen/LootConstants.java index 0ba57dc..5eb0b1e 100755 --- a/java/src/game/worldgen/LootConstants.java +++ b/java/src/game/worldgen/LootConstants.java @@ -1,6 +1,6 @@ package game.worldgen; -import game.biome.Biome; +import game.biome.RngSpawn; import game.color.DyeColor; import game.entity.npc.EntityDarkMage; import game.entity.npc.EntityMage; @@ -95,8 +95,8 @@ 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 Biome.RngSpawn(EntityMage.class, 1, 1, 1)); - public static final WeightedList FORTRESS_MOBS = new WeightedList(new Biome.RngSpawn(EntityDarkMage.class, 10, 2, 3), - new Biome.RngSpawn(EntityTiefling.class, 5, 4, 4), new Biome.RngSpawn(EntityUndead.class, 10, 4, 4), - new Biome.RngSpawn(EntityMagma.class, 3, 4, 4)); + 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/java/src/game/worldgen/layer/GenLayerBiomeEdge.java b/java/src/game/worldgen/layer/GenLayerBiomeEdge.java index c7cbba3..9fd5068 100755 --- a/java/src/game/worldgen/layer/GenLayerBiomeEdge.java +++ b/java/src/game/worldgen/layer/GenLayerBiomeEdge.java @@ -1,6 +1,7 @@ package game.worldgen.layer; import game.biome.Biome; +import game.biome.Temperature; public class GenLayerBiomeEdge extends GenLayer { @@ -153,9 +154,9 @@ public class GenLayerBiomeEdge extends GenLayer if (biomegenbase != null && biomegenbase1 != null) { - Biome.TempCategory biomegenbase$tempcategory = biomegenbase.getTempCategory(); - Biome.TempCategory biomegenbase$tempcategory1 = biomegenbase1.getTempCategory(); - return biomegenbase$tempcategory == biomegenbase$tempcategory1 || biomegenbase$tempcategory == Biome.TempCategory.MEDIUM || biomegenbase$tempcategory1 == Biome.TempCategory.MEDIUM; + Temperature biomegenbase$tempcategory = biomegenbase.getTempCategory(); + Temperature biomegenbase$tempcategory1 = biomegenbase1.getTempCategory(); + return biomegenbase$tempcategory == biomegenbase$tempcategory1 || biomegenbase$tempcategory == Temperature.MEDIUM || biomegenbase$tempcategory1 == Temperature.MEDIUM; } else { diff --git a/java/src/game/worldgen/layer/GenLayerShore.java b/java/src/game/worldgen/layer/GenLayerShore.java index 51c7314..4e94d33 100755 --- a/java/src/game/worldgen/layer/GenLayerShore.java +++ b/java/src/game/worldgen/layer/GenLayerShore.java @@ -66,13 +66,13 @@ public class GenLayerShore extends GenLayer } else if (id != Biome.extremeHills.id && id != Biome.extremeHillsPlus.id && id != Biome.extremeHillsEdge.id) { - if (biome != null && biome.snowyGen) + if (biome != null && biome.allowColdBeach) { this.putBeach(pre, data, j, i, width, id, Biome.coldBeach.id); } else // if (id != Biome.mesa.id && id != Biome.mesaPlateau_F.id) // { - if (biome != null && !biome.waterGen) + if (biome != null && !biome.disallowBeach) { int l1 = pre[j + 1 + (i + 1 - 1) * (width + 2)]; int k2 = pre[j + 1 + 1 + (i + 1) * (width + 2)];