21612161+
21622162+ public boolean generateAt(World world, int x, int z) {
21632163+ if (!this.generateOnGrid(x, z, 16, 8, SALT)) return false;
2164- + Biome biome = world.getBiomeSource().getBiomeGenAt (x * 16 + 8, z * 16 + 8);
2164+ + Biome biome = world.getBiomeSource().getBiome (x * 16 + 8, z * 16 + 8);
21652165+ return VALID_BIOMES.contains(biome) && this.rand.nextInt(5) == 0;
21662166+ }
21672167+
43494349+ new RandomReplaceTarget(
43504350+ Block.web.blockID, -1,
43514351+ 0, 0,
4352- + 1 .0F / 4 .0F
4352+ + 2 .0F / 3 .0F
43534353+ )
43544354+ ));
43554355+
73347334+ MapColor mapColor;
73357335+ int depth = 2;
73367336+ if (!(biomeSource instanceof LayeredBiomeSource)) {
7337- + Biome biome = biomeSource.getBiomeGenAt (wx, wz);
7337+ + Biome biome = biomeSource.getBiome (wx, wz);
73387338+ mapColor = (
73397339+ biome == Biome.ocean ? MapColor.waterColor
73407340+ : biome == Biome.beach ? MapColor.sandColor
80378037+ public final Array2D<Biome> biomes = new Array2D<>(Biome[]::new, 16, 16);
80388038+
80398039+ public CachedBiomeRegion(BiomeSource biomeSource, int x, int z) {
8040- + biomeSource.loadBlockGeneratorData (this.biomes.getArray(), x << 4, z << 4, 16, 16);
8040+ + biomeSource.generateBiomes (this.biomes.getArray(), x << 4, z << 4, 16, 16);
80418041+ if (biomeSource instanceof ClimaticBiomeSource) {
80428042+ ((ClimaticBiomeSource) biomeSource).blockGeneratorData = this.biomes.getArray();
80438043+ }
1350413504 public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
1350513505--- /dev/null
1350613506+++ net/minecraft/game/world/terrain/generate/structure/AbandonedShackStructure.java
13507- @@ -1,0 +1,37 @@
13507+ @@ -1,0 +1,34 @@
1350813508+package net.minecraft.game.world.terrain.generate.structure;
1350913509+
1351013510+import net.minecraft.game.world.World;
1352513525+ }
1352613526+
1352713527+ public List<StructurePlacement> buildStructure(int x, int z) {
13528- + int y = 48 + this.rand.nextInt(32);
13529- + if (this.worldObj.getBiomeAt(x, z) == Biome.ocean) {
13530- + y -= 16;
13531- + }
13528+ + int y = 32 + this.rand.nextInt(32);
1353213529+
1353313530+ StructurePlacement start = new StructurePlacement(
1353413531+ Structure.STRUCTURE_LIST.get("abandoned_shack.room_" + this.rand.nextInt(6)),
1674116738+ if (chunk != null) {
1674216739+ return chunk.getBiome(x & 15, z & 15, this.dimension.biomeSource);
1674316740+ }
16744- + return this.dimension.biomeSource.getBiomeGenAt (x, z);
16741+ + return this.dimension.biomeSource.getBiome (x, z);
1674516742+ }
1674616743+
1674716744+ public BiomeSource getBiomeSource() {
2169221689+ this.climateLayer = layers[5];
2169321690+ }
2169421691+
21695- + public NoiseSettings[] loadNoiseSettingsData (NoiseSettings[] noiseSettings, int x, int z, int width, int length) {
21692+ + public NoiseSettings[] generateNoiseSettings (NoiseSettings[] noiseSettings, int x, int z, int width, int length) {
2169621693+ if (noiseSettings == null || noiseSettings.length < width * length) {
2169721694+ noiseSettings = new NoiseSettings[width * length];
2169821695+ }
2170421701+ double noiseRes = LayerPerlinNoise.RESOLUTION;
2170521702+ double edgeRes = LayerFillEdge.RESOLUTION;
2170621703+
21707- + this.noiseBiomeData = this.loadBlockGeneratorData (this.noiseBiomeData, bx, bz, bwidth, blength);
21704+ + this.noiseBiomeData = this.generateBiomes (this.noiseBiomeData, bx, bz, bwidth, blength);
2170821705+
2170921706+ for (int xx = 0; xx < width; xx++) {
2171021707+ for (int zz = 0; zz < length; zz++) {
2172621723+ return noiseSettings;
2172721724+ }
2172821725+
21729- + public Biome[] loadBlockGeneratorData (Biome[] biomes, int x, int z, int width, int length) {
21726+ + public Biome[] generateBiomes (Biome[] biomes, int x, int z, int width, int length) {
2173021727+ if(biomes == null || biomes.length < width * length) {
2173121728+ biomes = new Biome[width * length];
2173221729+ }
2892028917 }
2892128918
2892228919 public TileEntity getChunkBlockTileEntity(int var1, int var2, int var3) {
28923- @@ -443,45 +557,58 @@
28920+ @@ -443,45 +557,56 @@
2892428921 var4.yCoord = var2;
2892528922 var4.zCoord = this.zPosition * 16 + var3;
2892628923 if(this.getBlockID(var1, var2, var3) != 0 && Block.blocksList[this.getBlockID(var1, var2, var3)] instanceof ContainerBlock) {
2894428941- if(var5 != null) {
2894528942- var5.invalidate();
2894628943- }
28947- - }
28948- -
2894928944+ TileEntity var5 = this.chunkTileEntityMap.remove(var4);
2895028945+ if (var5 == null) return;
2895128946+
2896028955+
2896128956+ if (var5 == tileEntity) {
2896228957+ this.chunkTileEntityMap.remove(var4);
28963- + }
28964- + if (var5 != null) {
2896528958+ var5.invalidate();
28966- + }
28959+ }
28960+ -
2896728961 }
2896828962
2896928963 public void onChunkLoad() {
2899928993 }
2900028994
2900128995 }
29002- @@ -493,21 +620 ,14 @@
28996+ @@ -493,21 +618 ,14 @@
2900328997 public void getEntitiesWithinAABBForEntity(Entity var1, AxisAlignedBB var2, List var3) {
2900428998 int var4 = MathHelper.floor((var2.minY - 2.0D) / 16.0D);
2900528999 int var5 = MathHelper.floor((var2.maxY + 2.0D) / 16.0D);
2902729021 }
2902829022 }
2902929023 }
29030- @@ -517,21 +637 ,14 @@
29024+ @@ -517,21 +635 ,14 @@
2903129025 public void getEntitiesOfTypeWithinAABB(Class var1, AxisAlignedBB var2, List var3) {
2903229026 int var4 = MathHelper.floor((var2.minY - 2.0D) / 16.0D);
2903329027 int var5 = MathHelper.floor((var2.maxY + 2.0D) / 16.0D);
2905529049 }
2905629050 }
2905729051 }
29058- @@ -664,10 +777 ,46 @@
29052+ @@ -664,10 +775 ,46 @@
2905929053 }
2906029054
2906129055 public boolean isEmpty() {
@@ -29074,13 +29068,13 @@
2907429068+
2907529069+ public Biome getBiome(int x, int z, BiomeSource biomeSource) {
2907629070+ if (x < 0 || x > 15 || z < 0 || z > 15) {
29077- + return biomeSource.getBiomeGenAt ((xPosition << 4) + x, (zPosition << 4) + z);
29071+ + return biomeSource.getBiome ((xPosition << 4) + x, (zPosition << 4) + z);
2907829072+ }
2907929073+
2908029074+ int i = blockBiomeArray[x << 4 | z] & 0xff;
2908129075+
2908229076+ if (i == 255) {
29083- + Biome biomegenbase = biomeSource.getBiomeGenAt ((xPosition << 4) + x, (zPosition << 4) + z);
29077+ + Biome biomegenbase = biomeSource.getBiome ((xPosition << 4) + x, (zPosition << 4) + z);
2908429078+ i = biomegenbase.id;
2908529079+ blockBiomeArray[x << 4 | z] = (byte)(i & 0xff);
2908629080+ }
3398633980 this.rand.setSeed((long)var1 * 341873128712L + (long)var2 * 132897987541L);
3398733981 byte[] var3 = new byte[-Short.MIN_VALUE];
3398833982- Chunk var4 = new Chunk(this.worldObj, var3, var1, var2);
33989- this.biomesForGeneration = this.worldObj.getBiomeSource().loadBlockGeneratorData(this.biomesForGeneration, var1 * 16, var2 * 16, 16, 16);
33983+ - this.biomesForGeneration = this.worldObj.getBiomeSource().loadBlockGeneratorData(this.biomesForGeneration, var1 * 16, var2 * 16, 16, 16);
3399033984- double[] var5 = this.worldObj.getBiomeSource().temperature;
3399133985- this.generateTerrain(var1, var2, var3, this.biomesForGeneration, var5);
33986+ + this.biomesForGeneration = this.worldObj.getBiomeSource().generateBiomes(this.biomesForGeneration, var1 * 16, var2 * 16, 16, 16);
3399233987+ this.generateTerrain(var1, var2, var3, this.biomesForGeneration, null);
3399333988 this.generateSurface(var1, var2, var3, this.biomesForGeneration);
3399433989 this.caves.generate(this, this.worldObj, var1, var2, var3);
3569435689+ new LootItem<>(Item.bread, 0, 1, 3, 0.5F),
3569535690+ new LootItem<>(Block.cobblestone.getItem(), 0, 1, 20, 0.5F),
3569635691+ new LootChoice<>(
35697- + 0.5F ,
35698- + new LootItem<>(Item.flimsyPacers),
35692+ + 1.0F / 3.0F ,
35693+ + new LootItem<>(Item.flimsyPacers),
3569935694+ new LootItem<>(Item.knightsGrip)
3570035695+ )
3570135696+ );
4488344878+ if (chunk.worldObj.dimension.worldType != 0) return;
4488444879+
4488544880+ IntList sectionKeys = new IntArrayList(chunk.sections.keySet());
44886- + sectionKeys.sort((a, b) -> - Integer.compare(a, b));
44881+ + sectionKeys.sort((a, b) -> Integer.compare(a, b));
4488744882+
4488844883+ for (int sectionKey : sectionKeys) {
4488944884+ ChunkSection section = chunk.sections.remove(sectionKey);
@@ -53152,20 +53147,20 @@
5315253147+ return region;
5315353148+ }
5315453149+
53155- + public Biome getBiomeGenAt (int x, int z) {
53150+ + public Biome getBiome (int x, int z) {
5315653151+ return this.getCachedBiomeRegion(x >> 4, z >> 4).getBiome(x & 15, z & 15);
5315753152+ }
5315853153+
53159- + public Biome[] getBlockGeneratorData (int var1, int var2, int var3, int var4) {
53160- + this.blockGeneratorData = this.loadBlockGeneratorData (this.blockGeneratorData, var1, var2, var3, var4);
53154+ + public Biome[] getBiomes (int var1, int var2, int var3, int var4) {
53155+ + this.blockGeneratorData = this.generateBiomes (this.blockGeneratorData, var1, var2, var3, var4);
5316153156+ return this.blockGeneratorData;
5316253157+ }
5316353158+
53164- + public NoiseSettings[] loadNoiseSettingsData (NoiseSettings[] noiseSettings, int x, int z, int width, int length) {
53159+ + public NoiseSettings[] generateNoiseSettings (NoiseSettings[] noiseSettings, int x, int z, int width, int length) {
5316553160+ return noiseSettings;
5316653161+ }
5316753162+
53168- + public abstract Biome[] loadBlockGeneratorData (Biome[] biomes, int x, int z, int width, int length);
53163+ + public abstract Biome[] generateBiomes (Biome[] biomes, int x, int z, int width, int length);
5316953164+}
5317053165--- net/minecraft/server/cli/ConsoleLogFormatter.java
5317153166+++ net/minecraft/server/cli/ConsoleLogFormatter.java
5459154586+ final int NSR = NOISE_SAMPLE_RANGE;
5459254587+ final int NSA = NOISE_SAMPLE_AREA;
5459354588+
54594- + this.biomesForGeneration = this.worldObj.getBiomeSource().loadBlockGeneratorData (this.biomesForGeneration, var1 * 16, var2 * 16, 16, 16);
54595- + this.noiseSettingsForGeneration = this.worldObj.getBiomeSource().loadNoiseSettingsData (this.noiseSettingsForGeneration, var1 * 4 - NSR, var2 * 4 - NSR, NSA, NSA);
54589+ + this.biomesForGeneration = this.worldObj.getBiomeSource().generateBiomes (this.biomesForGeneration, var1 * 16, var2 * 16, 16, 16);
54590+ + this.noiseSettingsForGeneration = this.worldObj.getBiomeSource().generateNoiseSettings (this.noiseSettingsForGeneration, var1 * 4 - NSR, var2 * 4 - NSR, NSA, NSA);
5459654591+ Arrays.fill(this.maxHeights, Integer.MIN_VALUE);
5459754592+ this.generate2DInfo();
5459854593+ this.generateSurfaceTerrain(var3);
5789057885+import java.util.stream.Stream;
5789157886+
5789257887+public class SharedConstants {
57893- + public static final String SHORT_VERSION = "1.0-a10.1 ";
57888+ + public static final String SHORT_VERSION = "1.0-a10.2 ";
5789457889+ public static final String VERSION = "Minecraft Diverge " + SHORT_VERSION;
5789557890+ public static final int PROTOCOL_VERSION = 810300006;
5789657891+
5850958504 }
5851058505 }
5851158506
58512- @@ -674,7 +758,7 @@
58507+ @@ -674,11 +758,11 @@
5851358508 double var13 = var3.lastTickPosZ + (var3.posZ - var3.lastTickPosZ) * (double)var1;
5851458509 int var15 = MathHelper.floor(var11);
5851558510 byte var16 = 5;
5851858513 var16 = 10;
5851958514 }
5852058515
58516+ - Biome[] var17 = var4.getBiomeSource().getBlockGeneratorData(var5 - var16, var7 - var16, var16 * 2 + 1, var16 * 2 + 1);
58517+ + Biome[] var17 = var4.getBiomeSource().getBiomes(var5 - var16, var7 - var16, var16 * 2 + 1, var16 * 2 + 1);
58518+ int var18 = 0;
58519+
58520+ int var19;
5852158521@@ -742,7 +826,7 @@
5852258522 }
5852358523
5984659846+}
5984759847--- net/minecraft/game/world/biome/ClimaticBiomeSource.java
5984859848+++ net/minecraft/game/world/biome/ClimaticBiomeSource.java
59849- @@ -2,38 +2,68 @@
59849+ @@ -2,42 +2,72 @@
5985059850
5985159851 import java.util.Random;
5985259852 import net.minecraft.game.world.World;
5992959929+ return this.remapTemperature(this.temperature[0] * this.temperatureRange + this.temperatureOffset);
5993059930 }
5993159931
59932- public Biome[] getBlockGeneratorData(int var1, int var2, int var3, int var4) {
59932+ - public Biome[] getBlockGeneratorData(int var1, int var2, int var3, int var4) {
59933+ - this.blockGeneratorData = this.loadBlockGeneratorData(this.blockGeneratorData, var1, var2, var3, var4);
59934+ + public Biome[] getBiomes(int var1, int var2, int var3, int var4) {
59935+ + this.blockGeneratorData = this.generateBiomes(this.blockGeneratorData, var1, var2, var3, var4);
59936+ return this.blockGeneratorData;
59937+ }
59938+
5993359939@@ -46,17 +76,17 @@
5993459940 var1 = new double[var4 * var5];
5993559941 }
@@ -59954,10 +59960,12 @@
5995459960 if(var15 < 0.0D) {
5995559961 var15 = 0.0D;
5995659962 }
59957- @@ -74,25 +104,53 @@
59963+ @@ -73,26 +103,54 @@
59964+ return var1;
5995859965 }
5995959966
59960- public Biome[] loadBlockGeneratorData(Biome[] var1, int var2, int var3, int var4, int var5) {
59967+ - public Biome[] loadBlockGeneratorData(Biome[] var1, int var2, int var3, int var4, int var5) {
59968+ + public Biome[] generateBiomes(Biome[] var1, int var2, int var3, int var4, int var5) {
5996159969+ return this.loadBlockGeneratorData(var1, var2, var3, var4, var5, 1.0D);
5996259970+ }
5996359971+
6335063358+ return super.getName() + "." + var1.getItemDamage();
6335163359 }
6335263360 }
63361+ --- net/minecraft/game/world/biome/SingleBiomeSource.java
63362+ +++ net/minecraft/game/world/biome/SingleBiomeSource.java
63363+ @@ -18,7 +18,7 @@
63364+ return this.biome;
63365+ }
63366+
63367+ - public Biome getBiomeGenAt(int var1, int var2) {
63368+ + public Biome getBiome(int var1, int var2) {
63369+ return this.biome;
63370+ }
63371+
63372+ @@ -26,8 +26,8 @@
63373+ return this.singleTemperature;
63374+ }
63375+
63376+ - public Biome[] getBlockGeneratorData(int var1, int var2, int var3, int var4) {
63377+ - this.blockGeneratorData = this.loadBlockGeneratorData(this.blockGeneratorData, var1, var2, var3, var4);
63378+ + public Biome[] getBiomes(int var1, int var2, int var3, int var4) {
63379+ + this.blockGeneratorData = this.generateBiomes(this.blockGeneratorData, var1, var2, var3, var4);
63380+ return this.blockGeneratorData;
63381+ }
63382+
63383+ @@ -40,7 +40,7 @@
63384+ return var1;
63385+ }
63386+
63387+ - public Biome[] loadBlockGeneratorData(Biome[] var1, int var2, int var3, int var4, int var5) {
63388+ + public Biome[] generateBiomes(Biome[] var1, int var2, int var3, int var4, int var5) {
63389+ if(var1 == null || var1.length < var4 * var5) {
63390+ var1 = new Biome[var4 * var5];
63391+ }
6335363392--- /dev/null
6335463393+++ net/minecraft/game/item/loot/LootItem.java
6335563394@@ -1,0 +1,66 @@
0 commit comments