biome fixes + refactoring, blackened
This commit is contained in:
parent
6d912ae7ac
commit
1834c26b72
41 changed files with 296 additions and 328 deletions
|
@ -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
|
||||
|
|
|
@ -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<String, Biome> BIOME_ID_MAP = Maps.<String, Biome>newHashMap();
|
||||
|
||||
public abstract class Biome {
|
||||
private static final Biome[] BIOMES = new Biome[256];
|
||||
|
||||
public static final Biome none = (new BiomeNone(0)).setBiomeName("none", "<Keins>");
|
||||
|
||||
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<Biome.RngSpawn> mobs = new WeightedList<Biome.RngSpawn>();
|
||||
protected final WeightedList<RngSpawn> mobs = new WeightedList<RngSpawn>();
|
||||
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<Biome.RngSpawn> 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<RngSpawn> 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<Biome.RngSpawn> getSpawnableList()
|
||||
public WeightedList<RngSpawn> 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 <? extends EntityLiving > entityClass;
|
||||
public int minGroupCount;
|
||||
public int maxGroupCount;
|
||||
|
||||
public RngSpawn(Class <? extends EntityLiving > 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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,6 @@ public class BiomeBeach extends Biome
|
|||
this.cactiPerChunk = 0;
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> mobs) {
|
||||
}
|
||||
}
|
||||
|
|
17
java/src/game/biome/BiomeBlackened.java
Normal file
17
java/src/game/biome/BiomeBlackened.java
Normal file
|
@ -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<RngSpawn> mobs) {
|
||||
}
|
||||
}
|
|
@ -22,7 +22,7 @@ public class BiomeChaos extends Biome
|
|||
this.fillerBlock = Blocks.obsidian.getState();
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> mobs) {
|
||||
for(Class<? extends Entity> clazz : EntityRegistry.getAllClasses()) {
|
||||
if(EntityLiving.class.isAssignableFrom(clazz))
|
||||
mobs.add(new RngSpawn((Class<? extends EntityLiving>)clazz, 1, 1, 8));
|
||||
|
|
|
@ -21,7 +21,7 @@ public class BiomeDesert extends Biome
|
|||
this.generateLakes = false;
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> mobs) {
|
||||
}
|
||||
|
||||
public void decorate(WorldServer worldIn, Random rand, BlockPos pos)
|
||||
|
|
|
@ -13,7 +13,7 @@ public class BiomeExterminated extends Biome {
|
|||
this.fillerBlock = Blocks.air.getState();
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> mobs) {
|
||||
}
|
||||
|
||||
public void decorate(WorldServer worldIn, Random rand, BlockPos pos) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<Biome.RngSpawn> 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<RngSpawn> 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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> 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
|
||||
|
|
|
@ -16,7 +16,7 @@ public class BiomeMoon extends Biome {
|
|||
this.fillerBlock = Blocks.moon_rock.getState();
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> mobs) {
|
||||
}
|
||||
|
||||
public void decorate(WorldServer worldIn, Random rand, BlockPos pos) {
|
||||
|
|
|
@ -17,7 +17,7 @@ public class BiomeMushroom extends Biome
|
|||
this.topBlock = Blocks.mycelium.getState();
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> mobs) {
|
||||
mobs.add(new Biome.RngSpawn(EntityMooshroom.class, 8, 4, 8));
|
||||
protected void addMobs(WeightedList<RngSpawn> mobs) {
|
||||
mobs.add(new RngSpawn(EntityMooshroom.class, 8, 4, 8));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> 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();
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ public class BiomeNone extends Biome {
|
|||
this.fillerBlock = Blocks.air.getState();
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ public class BiomeSnow extends Biome
|
|||
this.topBlock = Blocks.snow.getState();
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,8 +15,8 @@ public class BiomeSnowLand extends Biome
|
|||
this.mushroomsPerChunk = -1;
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> 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<RngSpawn> mobs) {
|
||||
mobs.add(new RngSpawn(EntitySheep.class, 50, 4, 4));
|
||||
mobs.add(new RngSpawn(EntitySpirit.class, 10, 1, 1));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ public class BiomeSpace extends Biome
|
|||
this.fillerBlock = Blocks.air.getState();
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> mobs) {
|
||||
}
|
||||
|
||||
public void decorate(WorldServer worldIn, Random rand, BlockPos pos)
|
||||
|
|
|
@ -17,6 +17,6 @@ public class BiomeStoneBeach extends Biome
|
|||
this.cactiPerChunk = 0;
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> mobs) {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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_);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,12 +39,12 @@ public class BiomeTian extends Biome
|
|||
this.treesPerChunk = 1;
|
||||
}
|
||||
|
||||
protected void addMobs(WeightedList<Biome.RngSpawn> mobs) {
|
||||
protected void addMobs(WeightedList<RngSpawn> 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)
|
||||
|
|
|
@ -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<Biome.RngSpawn> mobs) {
|
||||
mobs.add(new Biome.RngSpawn(EntitySquid.class, 10, 4, 4));
|
||||
protected void addMobs(WeightedList<RngSpawn> 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;
|
||||
}
|
||||
}
|
||||
|
|
17
java/src/game/biome/RngSpawn.java
Normal file
17
java/src/game/biome/RngSpawn.java
Normal file
|
@ -0,0 +1,17 @@
|
|||
package game.biome;
|
||||
|
||||
import game.entity.types.EntityLiving;
|
||||
import game.rng.RngItem;
|
||||
|
||||
public class RngSpawn extends RngItem {
|
||||
public final Class<? extends EntityLiving> type;
|
||||
public final int min;
|
||||
public final int max;
|
||||
|
||||
public RngSpawn(Class<? extends EntityLiving> type, int weight, int min, int max) {
|
||||
super(weight);
|
||||
this.type = type;
|
||||
this.min = min;
|
||||
this.max = max;
|
||||
}
|
||||
}
|
28
java/src/game/biome/Scaling.java
Normal file
28
java/src/game/biome/Scaling.java
Normal file
|
@ -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;
|
||||
}
|
||||
}
|
5
java/src/game/biome/Temperature.java
Normal file
5
java/src/game/biome/Temperature.java
Normal file
|
@ -0,0 +1,5 @@
|
|||
package game.biome;
|
||||
|
||||
public enum Temperature {
|
||||
SEA, COLD, MEDIUM, WARM;
|
||||
}
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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<Biome.RngSpawn> list = biome.getSpawnableList();
|
||||
WeightedList<RngSpawn> 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();
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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<Biome.RngSpawn> getSpawnTypes(BlockPos pos) {
|
||||
private WeightedList<RngSpawn> 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<Biome.RngSpawn> list = this.getSpawnTypes(pos);
|
||||
return list != null && !list.isEmpty() ? (Biome.RngSpawn)list.pick(this.rand) : null;
|
||||
public RngSpawn getSpawnListEntryForTypeAt(BlockPos pos) {
|
||||
WeightedList<RngSpawn> list = this.getSpawnTypes(pos);
|
||||
return list != null && !list.isEmpty() ? (RngSpawn)list.pick(this.rand) : null;
|
||||
}
|
||||
|
||||
public boolean canCreatureTypeSpawnHere(Biome.RngSpawn spawnListEntry, BlockPos pos) {
|
||||
WeightedList<Biome.RngSpawn> list = this.getSpawnTypes(pos);
|
||||
public boolean canCreatureTypeSpawnHere(RngSpawn spawnListEntry, BlockPos pos) {
|
||||
WeightedList<RngSpawn> list = this.getSpawnTypes(pos);
|
||||
return list != null && !list.isEmpty() ? list.contains(spawnListEntry) : false;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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<Biome.RngSpawn> MAGEHUT_MOBS = new WeightedList<Biome.RngSpawn>(new Biome.RngSpawn(EntityMage.class, 1, 1, 1));
|
||||
public static final WeightedList<Biome.RngSpawn> FORTRESS_MOBS = new WeightedList<Biome.RngSpawn>(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<RngSpawn> MAGEHUT_MOBS = new WeightedList<RngSpawn>(new RngSpawn(EntityMage.class, 1, 1, 1));
|
||||
public static final WeightedList<RngSpawn> FORTRESS_MOBS = new WeightedList<RngSpawn>(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));
|
||||
}
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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)];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue