aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/australia/world
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/australia/world')
-rw-r--r--src/Java/gtPlusPlus/australia/world/AustraliaPortalPosition.java14
-rw-r--r--src/Java/gtPlusPlus/australia/world/AustraliaTeleporterDimensionMod.java470
-rw-r--r--src/Java/gtPlusPlus/australia/world/AustraliaWorldChunkManager.java257
-rw-r--r--src/Java/gtPlusPlus/australia/world/AustraliaWorldGenerator.java142
-rw-r--r--src/Java/gtPlusPlus/australia/world/AustraliaWorldProvider.java80
-rw-r--r--src/Java/gtPlusPlus/australia/world/AustraliaWorldType.java59
6 files changed, 0 insertions, 1022 deletions
diff --git a/src/Java/gtPlusPlus/australia/world/AustraliaPortalPosition.java b/src/Java/gtPlusPlus/australia/world/AustraliaPortalPosition.java
deleted file mode 100644
index 865c0c3bb2..0000000000
--- a/src/Java/gtPlusPlus/australia/world/AustraliaPortalPosition.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package gtPlusPlus.australia.world;
-
-import net.minecraft.util.ChunkCoordinates;
-
-public class AustraliaPortalPosition extends ChunkCoordinates {
- public long field_85087_d;
- final AustraliaTeleporterDimensionMod field_85088_e;
-
- public AustraliaPortalPosition(AustraliaTeleporterDimensionMod gladesTeleporter, int par2, int par3, int par4, long par5) {
- super(par2, par3, par4);
- this.field_85088_e = gladesTeleporter;
- this.field_85087_d = par5;
- }
-} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/australia/world/AustraliaTeleporterDimensionMod.java b/src/Java/gtPlusPlus/australia/world/AustraliaTeleporterDimensionMod.java
deleted file mode 100644
index 4ad693263e..0000000000
--- a/src/Java/gtPlusPlus/australia/world/AustraliaTeleporterDimensionMod.java
+++ /dev/null
@@ -1,470 +0,0 @@
-package gtPlusPlus.australia.world;
-
-import java.util.*;
-
-import net.minecraft.entity.Entity;
-import net.minecraft.init.Blocks;
-import net.minecraft.util.*;
-import net.minecraft.world.ChunkCoordIntPair;
-import net.minecraft.world.Teleporter;
-import net.minecraft.world.WorldServer;
-import gtPlusPlus.australia.dimension.Dimension_Australia;
-
-public class AustraliaTeleporterDimensionMod extends Teleporter {
-
- private final WorldServer worldServerInstance;
- /**
- * A private Random() function in Teleporter
- */
- private final Random random;
- /**
- * Stores successful portal placement locations for rapid lookup.
- */
- private final LongHashMap destinationCoordinateCache = new LongHashMap();
- /**
- * A list of valid keys for the destinationCoordainteCache. These are
- * based on the X & Z of the players initial location.
- */
- @SuppressWarnings("rawtypes")
- private final List destinationCoordinateKeys = new ArrayList();
-
- public AustraliaTeleporterDimensionMod(WorldServer par1WorldServer) {
- super(par1WorldServer);
- this.worldServerInstance = par1WorldServer;
- this.random = new Random(par1WorldServer.getSeed());
- }
-
- /**
- * Place an entity in a nearby portal, creating one if necessary.
- */
- @Override
- public void placeInPortal(Entity par1Entity, double par2, double par4, double par6, float par8) {
- if (this.worldServerInstance.provider.dimensionId != 1) {
- if (!this.placeInExistingPortal(par1Entity, par2, par4, par6, par8)) {
- this.makePortal(par1Entity);
- this.placeInExistingPortal(par1Entity, par2, par4, par6, par8);
- }
- }
- else {
- int i = MathHelper.floor_double(par1Entity.posX);
- int j = MathHelper.floor_double(par1Entity.posY) - 1;
- int k = MathHelper.floor_double(par1Entity.posZ);
- byte b0 = 1;
- byte b1 = 0;
-
- for (int l = -2; l <= 2; ++l) {
- for (int i1 = -2; i1 <= 2; ++i1) {
- for (int j1 = -1; j1 < 3; ++j1) {
- int k1 = i + i1 * b0 + l * b1;
- int l1 = j + j1;
- int i2 = k + i1 * b1 - l * b0;
- boolean flag = j1 < 0;
- this.worldServerInstance.setBlock(k1, l1, i2, flag ? Dimension_Australia.blockPortalFrame : Blocks.air);
- }
- }
- }
-
- par1Entity.setLocationAndAngles(i, j, k, par1Entity.rotationYaw, 0.0F);
- par1Entity.motionX = par1Entity.motionY = par1Entity.motionZ = 0.0D;
- }
- }
-
- /**
- * Place an entity in a nearby portal which already exists.
- */
- @Override
- public boolean placeInExistingPortal(Entity par1Entity, double par2, double par4, double par6, float par8) {
- short short1 = 128;
- double d3 = -1.0D;
- int i = 0;
- int j = 0;
- int k = 0;
- int l = MathHelper.floor_double(par1Entity.posX);
- int i1 = MathHelper.floor_double(par1Entity.posZ);
- long j1 = ChunkCoordIntPair.chunkXZ2Int(l, i1);
- boolean flag = true;
- double d7;
- int l3;
-
- if (this.destinationCoordinateCache.containsItem(j1)) {
- Teleporter.PortalPosition portalposition = (Teleporter.PortalPosition) this.destinationCoordinateCache
- .getValueByKey(j1);
- d3 = 0.0D;
- i = portalposition.posX;
- j = portalposition.posY;
- k = portalposition.posZ;
- portalposition.lastUpdateTime = this.worldServerInstance.getTotalWorldTime();
- flag = false;
- }
- else {
- for (l3 = l - short1; l3 <= l + short1; ++l3) {
- double d4 = l3 + 0.5D - par1Entity.posX;
-
- for (int l1 = i1 - short1; l1 <= i1 + short1; ++l1) {
- double d5 = l1 + 0.5D - par1Entity.posZ;
-
- for (int i2 = this.worldServerInstance.getActualHeight() - 1; i2 >= 0; --i2) {
- if (this.worldServerInstance.getBlock(l3, i2, l1) == Dimension_Australia.portalBlock) {
- while (this.worldServerInstance.getBlock(l3, i2 - 1, l1) == Dimension_Australia.portalBlock) {
- --i2;
- }
-
- d7 = i2 + 0.5D - par1Entity.posY;
- double d8 = d4 * d4 + d7 * d7 + d5 * d5;
-
- if (d3 < 0.0D || d8 < d3) {
- d3 = d8;
- i = l3;
- j = i2;
- k = l1;
- }
- }
- }
- }
- }
- }
-
- if (d3 >= 0.0D) {
- if (flag) {
- this.destinationCoordinateCache.add(j1,
- new Teleporter.PortalPosition(i, j, k, this.worldServerInstance.getTotalWorldTime()));
- this.destinationCoordinateKeys.add(Long.valueOf(j1));
- }
-
- double d11 = i + 0.5D;
- double d6 = j + 0.5D;
- d7 = k + 0.5D;
- int i4 = -1;
-
- if (this.worldServerInstance.getBlock(i - 1, j, k) == Dimension_Australia.portalBlock) {
- i4 = 2;
- }
-
- if (this.worldServerInstance.getBlock(i + 1, j, k) == Dimension_Australia.portalBlock) {
- i4 = 0;
- }
-
- if (this.worldServerInstance.getBlock(i, j, k - 1) == Dimension_Australia.portalBlock) {
- i4 = 3;
- }
-
- if (this.worldServerInstance.getBlock(i, j, k + 1) == Dimension_Australia.portalBlock) {
- i4 = 1;
- }
-
- int j2 = par1Entity.getTeleportDirection();
-
- if (i4 > -1) {
- int k2 = Direction.rotateLeft[i4];
- int l2 = Direction.offsetX[i4];
- int i3 = Direction.offsetZ[i4];
- int j3 = Direction.offsetX[k2];
- int k3 = Direction.offsetZ[k2];
- boolean flag1 = !this.worldServerInstance.isAirBlock(i + l2 + j3, j, k + i3 + k3)
- || !this.worldServerInstance.isAirBlock(i + l2 + j3, j + 1, k + i3 + k3);
- boolean flag2 = !this.worldServerInstance.isAirBlock(i + l2, j, k + i3)
- || !this.worldServerInstance.isAirBlock(i + l2, j + 1, k + i3);
-
- if (flag1 && flag2) {
- i4 = Direction.rotateOpposite[i4];
- k2 = Direction.rotateOpposite[k2];
- l2 = Direction.offsetX[i4];
- i3 = Direction.offsetZ[i4];
- j3 = Direction.offsetX[k2];
- k3 = Direction.offsetZ[k2];
- l3 = i - j3;
- d11 -= j3;
- int k1 = k - k3;
- d7 -= k3;
- flag1 = !this.worldServerInstance.isAirBlock(l3 + l2 + j3, j, k1 + i3 + k3)
- || !this.worldServerInstance.isAirBlock(l3 + l2 + j3, j + 1, k1 + i3 + k3);
- flag2 = !this.worldServerInstance.isAirBlock(l3 + l2, j, k1 + i3)
- || !this.worldServerInstance.isAirBlock(l3 + l2, j + 1, k1 + i3);
- }
-
- float f1 = 0.5F;
- float f2 = 0.5F;
-
- if (!flag1 && flag2) {
- f1 = 1.0F;
- }
- else if (flag1 && !flag2) {
- f1 = 0.0F;
- }
- else if (flag1 && flag2) {
- f2 = 0.0F;
- }
-
- d11 += j3 * f1 + f2 * l2;
- d7 += k3 * f1 + f2 * i3;
- float f3 = 0.0F;
- float f4 = 0.0F;
- float f5 = 0.0F;
- float f6 = 0.0F;
-
- if (i4 == j2) {
- f3 = 1.0F;
- f4 = 1.0F;
- }
- else if (i4 == Direction.rotateOpposite[j2]) {
- f3 = -1.0F;
- f4 = -1.0F;
- }
- else if (i4 == Direction.rotateRight[j2]) {
- f5 = 1.0F;
- f6 = -1.0F;
- }
- else {
- f5 = -1.0F;
- f6 = 1.0F;
- }
-
- double d9 = par1Entity.motionX;
- double d10 = par1Entity.motionZ;
- par1Entity.motionX = d9 * f3 + d10 * f6;
- par1Entity.motionZ = d9 * f5 + d10 * f4;
- par1Entity.rotationYaw = par8 - j2 * 90 + i4 * 90;
- }
- else {
- par1Entity.motionX = par1Entity.motionY = par1Entity.motionZ = 0.0D;
- }
-
- par1Entity.setLocationAndAngles(d11, d6, d7, par1Entity.rotationYaw, par1Entity.rotationPitch);
- return true;
- }
- else {
- return false;
- }
- }
-
- @Override
- public boolean makePortal(Entity par1Entity) {
- byte b0 = 16;
- double d0 = -1.0D;
- int i = MathHelper.floor_double(par1Entity.posX);
- int j = MathHelper.floor_double(par1Entity.posY);
- int k = MathHelper.floor_double(par1Entity.posZ);
- int l = i;
- int i1 = j;
- int j1 = k;
- int k1 = 0;
- int l1 = this.random.nextInt(4);
- int i2;
- double d1;
- double d2;
- int k2;
- int i3;
- int k3;
- int j3;
- int i4;
- int l3;
- int k4;
- int j4;
- int i5;
- int l4;
- double d3;
- double d4;
-
- for (i2 = i - b0; i2 <= i + b0; ++i2) {
- d1 = i2 + 0.5D - par1Entity.posX;
-
- for (k2 = k - b0; k2 <= k + b0; ++k2) {
- d2 = k2 + 0.5D - par1Entity.posZ;
- label274:
-
- for (i3 = this.worldServerInstance.getActualHeight() - 1; i3 >= 0; --i3) {
- if (this.worldServerInstance.isAirBlock(i2, i3, k2)) {
- while (i3 > 0 && this.worldServerInstance.isAirBlock(i2, i3 - 1, k2)) {
- --i3;
- }
-
- for (j3 = l1; j3 < l1 + 4; ++j3) {
- k3 = j3 % 2;
- l3 = 1 - k3;
-
- if (j3 % 4 >= 2) {
- k3 = -k3;
- l3 = -l3;
- }
-
- for (i4 = 0; i4 < 3; ++i4) {
- for (j4 = 0; j4 < 4; ++j4) {
- for (k4 = -1; k4 < 4; ++k4) {
- l4 = i2 + (j4 - 1) * k3 + i4 * l3;
- i5 = i3 + k4;
- int j5 = k2 + (j4 - 1) * l3 - i4 * k3;
-
- if (k4 < 0
- && !this.worldServerInstance.getBlock(l4, i5, j5).getMaterial()
- .isSolid()
- || k4 >= 0 && !this.worldServerInstance.isAirBlock(l4, i5, j5)) {
- continue label274;
- }
- }
- }
- }
-
- d4 = i3 + 0.5D - par1Entity.posY;
- d3 = d1 * d1 + d4 * d4 + d2 * d2;
-
- if (d0 < 0.0D || d3 < d0) {
- d0 = d3;
- l = i2;
- i1 = i3;
- j1 = k2;
- k1 = j3 % 4;
- }
- }
- }
- }
- }
- }
-
- if (d0 < 0.0D) {
- for (i2 = i - b0; i2 <= i + b0; ++i2) {
- d1 = i2 + 0.5D - par1Entity.posX;
-
- for (k2 = k - b0; k2 <= k + b0; ++k2) {
- d2 = k2 + 0.5D - par1Entity.posZ;
- label222:
-
- for (i3 = this.worldServerInstance.getActualHeight() - 1; i3 >= 0; --i3) {
- if (this.worldServerInstance.isAirBlock(i2, i3, k2)) {
- while (i3 > 0 && this.worldServerInstance.isAirBlock(i2, i3 - 1, k2)) {
- --i3;
- }
-
- for (j3 = l1; j3 < l1 + 2; ++j3) {
- k3 = j3 % 2;
- l3 = 1 - k3;
-
- for (i4 = 0; i4 < 4; ++i4) {
- for (j4 = -1; j4 < 4; ++j4) {
- k4 = i2 + (i4 - 1) * k3;
- l4 = i3 + j4;
- i5 = k2 + (i4 - 1) * l3;
-
- if (j4 < 0
- && !this.worldServerInstance.getBlock(k4, l4, i5).getMaterial()
- .isSolid()
- || j4 >= 0 && !this.worldServerInstance.isAirBlock(k4, l4, i5)) {
- continue label222;
- }
- }
- }
-
- d4 = i3 + 0.5D - par1Entity.posY;
- d3 = d1 * d1 + d4 * d4 + d2 * d2;
-
- if (d0 < 0.0D || d3 < d0) {
- d0 = d3;
- l = i2;
- i1 = i3;
- j1 = k2;
- k1 = j3 % 2;
- }
- }
- }
- }
- }
- }
- }
-
- int k5 = l;
- int j2 = i1;
- k2 = j1;
- int l5 = k1 % 2;
- int l2 = 1 - l5;
-
- if (k1 % 4 >= 2) {
- l5 = -l5;
- l2 = -l2;
- }
-
- boolean flag;
-
- if (d0 < 0.0D) {
- if (i1 < 70) {
- i1 = 70;
- }
-
- if (i1 > this.worldServerInstance.getActualHeight() - 10) {
- i1 = this.worldServerInstance.getActualHeight() - 10;
- }
-
- j2 = i1;
-
- for (i3 = -1; i3 <= 1; ++i3) {
- for (j3 = 1; j3 < 3; ++j3) {
- for (k3 = -1; k3 < 3; ++k3) {
- l3 = k5 + (j3 - 1) * l5 + i3 * l2;
- i4 = j2 + k3;
- j4 = k2 + (j3 - 1) * l2 - i3 * l5;
- flag = k3 < 0;
- this.worldServerInstance.setBlock(l3, i4, j4, flag ? Dimension_Australia.blockPortalFrame : Blocks.air);
- }
- }
- }
- }
-
- for (i3 = 0; i3 < 4; ++i3) {
- for (j3 = 0; j3 < 4; ++j3) {
- for (k3 = -1; k3 < 4; ++k3) {
- l3 = k5 + (j3 - 1) * l5;
- i4 = j2 + k3;
- j4 = k2 + (j3 - 1) * l2;
- flag = j3 == 0 || j3 == 3 || k3 == -1 || k3 == 3;
- this.worldServerInstance.setBlock(l3, i4, j4, flag ? Dimension_Australia.blockPortalFrame : Dimension_Australia.portalBlock, 0, 2);
- }
- }
-
- for (j3 = 0; j3 < 4; ++j3) {
- for (k3 = -1; k3 < 4; ++k3) {
- l3 = k5 + (j3 - 1) * l5;
- i4 = j2 + k3;
- j4 = k2 + (j3 - 1) * l2;
- this.worldServerInstance.notifyBlocksOfNeighborChange(l3, i4, j4,
- this.worldServerInstance.getBlock(l3, i4, j4));
- }
- }
- }
-
- return true;
- }
-
- /**
- * called periodically to remove out-of-date portal locations from the
- * cache list. Argument par1 is a WorldServer.getTotalWorldTime() value.
- */
- @Override
- public void removeStalePortalLocations(long par1) {
- if (par1 % 100L == 0L) {
- @SuppressWarnings("rawtypes")
- Iterator iterator = this.destinationCoordinateKeys.iterator();
- long j = par1 - 600L;
-
- while (iterator.hasNext()) {
- Long olong = (Long) iterator.next();
- Teleporter.PortalPosition portalposition = (Teleporter.PortalPosition) this.destinationCoordinateCache
- .getValueByKey(olong.longValue());
-
- if (portalposition == null || portalposition.lastUpdateTime < j) {
- iterator.remove();
- this.destinationCoordinateCache.remove(olong.longValue());
- }
- }
- }
- }
-
- public class PortalPosition extends ChunkCoordinates {
- /**
- * The worldtime at which this PortalPosition was last verified
- */
- public long lastUpdateTime;
-
- public PortalPosition(int par2, int par3, int par4, long par5) {
- super(par2, par3, par4);
- this.lastUpdateTime = par5;
- }
- }
-} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/australia/world/AustraliaWorldChunkManager.java b/src/Java/gtPlusPlus/australia/world/AustraliaWorldChunkManager.java
deleted file mode 100644
index f0bd35a8b9..0000000000
--- a/src/Java/gtPlusPlus/australia/world/AustraliaWorldChunkManager.java
+++ /dev/null
@@ -1,257 +0,0 @@
-package gtPlusPlus.australia.world;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-import net.minecraft.crash.CrashReport;
-import net.minecraft.crash.CrashReportCategory;
-import net.minecraft.util.ReportedException;
-import net.minecraft.world.ChunkPosition;
-import net.minecraft.world.World;
-import net.minecraft.world.WorldType;
-import net.minecraft.world.biome.BiomeCache;
-import net.minecraft.world.biome.BiomeGenBase;
-import net.minecraft.world.biome.WorldChunkManager;
-import net.minecraft.world.gen.layer.GenLayer;
-import net.minecraft.world.gen.layer.IntCache;
-import gtPlusPlus.australia.biome.GenLayerAustralia;
-
-public class AustraliaWorldChunkManager extends WorldChunkManager {
-
- private GenLayer genBiomes;
- /** A GenLayer containing the indices into BiomeGenBase.biomeList[] */
- private GenLayer biomeIndexLayer;
- /** The BiomeCache object for this world. */
- private BiomeCache biomeCache;
- /** A list of biomes that the player can spawn in. */
- private List<BiomeGenBase> biomesToSpawnIn;
-
- @SuppressWarnings({ "rawtypes" })
- public AustraliaWorldChunkManager() {
- this.biomeCache = new BiomeCache(this);
- this.biomesToSpawnIn = new ArrayList();
- this.biomesToSpawnIn.addAll(allowedBiomes); // TODO
- }
-
- public AustraliaWorldChunkManager(long seed, WorldType worldType) {
- this();
- // i changed this to my GenLayerDarkWorld
- GenLayer[] agenlayer = GenLayerAustralia.makeTheWorld(seed, worldType);
-
- agenlayer = getModdedBiomeGenerators(worldType, seed, agenlayer);
- this.genBiomes = agenlayer[0];
- this.biomeIndexLayer = agenlayer[1];
-
-
-
- }
-
- public AustraliaWorldChunkManager(World world) {
- this(world.getSeed(), world.getWorldInfo().getTerrainType());
-
- }
-
- /**
- * Gets the list of valid biomes for the player to spawn in.
- */
- @Override
- public List<BiomeGenBase> getBiomesToSpawnIn() {
- return this.biomesToSpawnIn;
- }
-
- /**
- * Returns a list of rainfall values for the specified blocks. Args:
- * listToReuse, x, z, width, length.
- */
- @Override
- public float[] getRainfall(float[] listToReuse, int x, int z, int width, int length) {
- IntCache.resetIntCache();
-
- if ((listToReuse == null) || (listToReuse.length < width * length)) {
- listToReuse = new float[width * length];
- }
- int[] aint = this.biomeIndexLayer.getInts(x, z, width, length);
- for (int i1 = 0; i1 < width * length; i1++) {
- try
- {
- float f = BiomeGenBase.getBiome(aint[i1]).getIntRainfall() / 65536.0F;
- if (f > 1.0F) {
- f = 1.0F;
- }
- listToReuse[i1] = f;
- }
- catch (Throwable throwable)
- {
- CrashReport crashreport = CrashReport.makeCrashReport(throwable, "Invalid Biome id");
- CrashReportCategory crashreportcategory = crashreport.makeCategory("DownfallBlock");
- crashreportcategory.addCrashSection("biome id", Integer.valueOf(i1));
- crashreportcategory.addCrashSection("downfalls[] size", Integer.valueOf(listToReuse.length));
- crashreportcategory.addCrashSection("x", Integer.valueOf(x));
- crashreportcategory.addCrashSection("z", Integer.valueOf(z));
- crashreportcategory.addCrashSection("w", Integer.valueOf(width));
- crashreportcategory.addCrashSection("h", Integer.valueOf(length));
- throw new ReportedException(crashreport);
- }
- }
- return listToReuse;
- }
-
- /**
- * Return an adjusted version of a given temperature based on the y
- * height
- */
- @Override
- @SideOnly(Side.CLIENT)
- public float getTemperatureAtHeight(float par1, int par2) {
- return par1;
- }
-
- /**
- * Returns an array of biomes for the location input.
- */
- @Override
- public BiomeGenBase[] getBiomesForGeneration(BiomeGenBase[] par1ArrayOfBiomeGenBase, int par2, int par3, int par4, int par5) {
- IntCache.resetIntCache();
-
- if ((par1ArrayOfBiomeGenBase == null) || (par1ArrayOfBiomeGenBase.length < par4 * par5)) {
- par1ArrayOfBiomeGenBase = new BiomeGenBase[par4 * par5];
- }
- int[] aint = this.genBiomes.getInts(par2, par3, par4, par5);
- try
- {
- for (int i = 0; i < par4 * par5; i++) {
- par1ArrayOfBiomeGenBase[i] = BiomeGenBase.getBiome(aint[i]);
- }
- return par1ArrayOfBiomeGenBase;
- }
- catch (Throwable throwable)
- {
- CrashReport crashreport = CrashReport.makeCrashReport(throwable, "Invalid Biome id");
- CrashReportCategory crashreportcategory = crashreport.makeCategory("RawBiomeBlock");
- crashreportcategory.addCrashSection("biomes[] size", Integer.valueOf(par1ArrayOfBiomeGenBase.length));
- crashreportcategory.addCrashSection("x", Integer.valueOf(par2));
- crashreportcategory.addCrashSection("z", Integer.valueOf(par3));
- crashreportcategory.addCrashSection("w", Integer.valueOf(par4));
- crashreportcategory.addCrashSection("h", Integer.valueOf(par5));
- throw new ReportedException(crashreport);
- }
-
- }
-
- /**
- * Returns biomes to use for the blocks and loads the other data like
- * temperature and humidity onto the WorldChunkManager Args:
- * oldBiomeList, x, z, width, depth
- */
- @Override
- public BiomeGenBase[] loadBlockGeneratorData(BiomeGenBase[] oldBiomeList, int x, int z, int width, int depth) {
- return this.getBiomeGenAt(oldBiomeList, x, z, width, depth, true);
- }
-
- /**
- * Return a list of biomes for the specified blocks. Args: listToReuse,
- * x, y, width, length, cacheFlag (if false, don't check biomeCache to
- * avoid infinite loop in BiomeCacheBlock)
- */
- @Override
- public BiomeGenBase[] getBiomeGenAt(BiomeGenBase[] listToReuse, int x, int y, int width, int length, boolean cacheFlag) {
- IntCache.resetIntCache();
- if ((listToReuse == null) || (listToReuse.length < width * length)) {
- listToReuse = new BiomeGenBase[width * length];
- }
- if ((cacheFlag) && (width == 16) && (length == 16) && ((x & 0xF) == 0) && ((y & 0xF) == 0))
- {
- BiomeGenBase[] abiomegenbase1 = this.biomeCache.getCachedBiomes(x, y);
- System.arraycopy(abiomegenbase1, 0, listToReuse, 0, width * length);
- return listToReuse;
- }
- int[] aint = this.biomeIndexLayer.getInts(x, y, width, length);
- for (int i = 0; i < width * length; i++) {
- listToReuse[i] = BiomeGenBase.getBiome(aint[i]);
- }
- return listToReuse;
- }
-
- /**
- * checks given Chunk's Biomes against List of allowed ones
- */
- @Override
- @SuppressWarnings("rawtypes")
- public boolean areBiomesViable(int x, int y, int z, List par4List) {
- IntCache.resetIntCache();
- int l = x - z >> 2;
- int i1 = y - z >> 2;
- int j1 = x + z >> 2;
- int k1 = y + z >> 2;
- int l1 = j1 - l + 1;
- int i2 = k1 - i1 + 1;
- int[] aint = this.genBiomes.getInts(l, i1, l1, i2);
- try
- {
- for (int j2 = 0; j2 < l1 * i2; j2++)
- {
- BiomeGenBase biomegenbase = BiomeGenBase.getBiome(aint[j2]);
- if (!par4List.contains(biomegenbase)) {
- return false;
- }
- }
- return true;
- }
- catch (Throwable throwable)
- {
- CrashReport crashreport = CrashReport.makeCrashReport(throwable, "Invalid Biome id");
- CrashReportCategory crashreportcategory = crashreport.makeCategory("Layer");
- crashreportcategory.addCrashSection("Layer", this.genBiomes.toString());
- crashreportcategory.addCrashSection("x", Integer.valueOf(x));
- crashreportcategory.addCrashSection("z", Integer.valueOf(y));
- crashreportcategory.addCrashSection("radius", Integer.valueOf(z));
- crashreportcategory.addCrashSection("allowed", par4List);
- throw new ReportedException(crashreport);
- }
- }
-
- /**
- * Finds a valid position within a range, that is in one of the listed
- * biomes. Searches {par1,par2} +-par3 blocks. Strongly favors positive
- * y positions.
- */
- @Override
- @SuppressWarnings("rawtypes")
- public ChunkPosition findBiomePosition(int p_150795_1_, int p_150795_2_, int p_150795_3_, List p_150795_4_, Random p_150795_5_) {
- IntCache.resetIntCache();
- int l = p_150795_1_ - p_150795_3_ >> 2;
- int i1 = p_150795_2_ - p_150795_3_ >> 2;
- int j1 = p_150795_1_ + p_150795_3_ >> 2;
- int k1 = p_150795_2_ + p_150795_3_ >> 2;
- int l1 = j1 - l + 1;
- int i2 = k1 - i1 + 1;
- int[] aint = this.genBiomes.getInts(l, i1, l1, i2);
- ChunkPosition chunkposition = null;
- int j2 = 0;
- for (int k2 = 0; k2 < l1 * i2; k2++)
- {
- int l2 = l + k2 % l1 << 2;
- int i3 = i1 + k2 / l1 << 2;
- BiomeGenBase biomegenbase = BiomeGenBase.getBiome(aint[k2]);
- if ((p_150795_4_.contains(biomegenbase)) && ((chunkposition == null) || (p_150795_5_.nextInt(j2 + 1) == 0)))
- {
- chunkposition = new ChunkPosition(l2, 0, i3);
- j2++;
- }
- }
- return chunkposition;
- }
-
- /**
- * Calls the WorldChunkManager's biomeCache.cleanupCache()
- */
- @Override
- public void cleanupCache() {
- this.biomeCache.cleanupCache();
- }
-
-} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/australia/world/AustraliaWorldGenerator.java b/src/Java/gtPlusPlus/australia/world/AustraliaWorldGenerator.java
deleted file mode 100644
index 93112bb30f..0000000000
--- a/src/Java/gtPlusPlus/australia/world/AustraliaWorldGenerator.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package gtPlusPlus.australia.world;
-
-import cpw.mods.fml.common.IWorldGenerator;
-import gtPlusPlus.api.interfaces.IGeneratorWorld;
-import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.api.objects.data.AutoMap;
-import gtPlusPlus.australia.GTplusplus_Australia;
-import gtPlusPlus.australia.gen.map.MapGenExtendedVillage;
-import gtPlusPlus.australia.gen.map.component.ComponentHut.WorldHandlerHut;
-import gtPlusPlus.australia.gen.map.component.ComponentShack.WorldHandlerShack;
-import gtPlusPlus.core.lib.CORE;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Random;
-import net.minecraft.world.ChunkCoordIntPair;
-import net.minecraft.world.World;
-import net.minecraft.world.biome.BiomeGenBase;
-import net.minecraft.world.chunk.IChunkProvider;
-
-public class AustraliaWorldGenerator implements IWorldGenerator {
- private LinkedList<ChunkCoordIntPair> structuresList = new LinkedList<ChunkCoordIntPair>();
- //private final WorldHandlerCoven covenGen;
- //private final WorldHandlerWickerMan wickerManGen;
- private final WorldHandlerShack shackGen;
- private final WorldHandlerHut hutGen;
- private final List<IGeneratorWorld> generators;
- private int midX;
- private int midZ;
- int field_82665_g;
- int field_82666_h = 8;
-
- public static final AutoMap<Integer> SHACK_ALLOWED_BIOMES = new AutoMap<Integer>();
- public static final AutoMap<Integer> HUT_ALLOWED_BIOMES = new AutoMap<Integer>();
- public static final AutoMap<Integer> ALLOWED_BIOMES = new AutoMap<Integer>();
-
- public AustraliaWorldGenerator() {
-
- SHACK_ALLOWED_BIOMES.put(GTplusplus_Australia.Australian_Plains_Biome.biomeID);
- SHACK_ALLOWED_BIOMES.put(GTplusplus_Australia.Australian_Forest_Biome.biomeID);
- HUT_ALLOWED_BIOMES.put(GTplusplus_Australia.Australian_Desert_Biome_3.biomeID);
- HUT_ALLOWED_BIOMES.put(GTplusplus_Australia.Australian_Outback_Biome.biomeID);
-
- ALLOWED_BIOMES.put(GTplusplus_Australia.Australian_Plains_Biome.biomeID);
- ALLOWED_BIOMES.put(GTplusplus_Australia.Australian_Forest_Biome.biomeID);
- ALLOWED_BIOMES.put(GTplusplus_Australia.Australian_Desert_Biome_3.biomeID);
- ALLOWED_BIOMES.put(GTplusplus_Australia.Australian_Outback_Biome.biomeID);
-
-
- this.shackGen = new WorldHandlerShack(3);
- this.hutGen = new WorldHandlerHut(5);
-
- //IGeneratorWorld goblinHut = new WorldHandlerClonedStructure(ComponentGoblinHut.class, 1.0D, 400, 7, 7, 7);
- this.generators = Arrays
- .asList(new IGeneratorWorld[] { this.shackGen, this.hutGen });
-
- this.field_82665_g = (8 + Math.max(gtPlusPlus.core.util.math.MathUtils.randInt(/*Config.instance().worldGenFrequency*/32, 64), 1));
-
- this.midX = 0;
- this.midZ = 0;
- for (IGeneratorWorld gen : this.generators) {
- this.midX = Math.max(this.midX, gen.getExtentX() / 2);
- this.midZ = Math.max(this.midZ, gen.getExtentZ() / 2);
- }
- }
-
- public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator,
- IChunkProvider chunkProvider) {
- if (world.provider.dimensionId == CORE.AUSTRALIA_ID) {
- generateOverworld(world, world.rand, chunkX * 16, chunkZ * 16);
- }
- }
-
- private void generateOverworld(World world, Random random, int x, int z) {
- boolean gen = false;
- try {
- if (ALLOWED_BIOMES.containsValue(Integer.valueOf(world.getBiomeGenForCoords(x + this.midX, z + this.midZ).biomeID))) {
- Collections.shuffle(this.generators, random);
- for (IGeneratorWorld generator : this.generators) {
- boolean canGenerate = false;
-
- if (generator instanceof WorldHandlerShack) {
- if (SHACK_ALLOWED_BIOMES.containsValue(Integer.valueOf(world.getBiomeGenForCoords(x + this.midX, z + this.midZ).biomeID))) {
- canGenerate = true;
- }
- }
- else if (generator instanceof WorldHandlerHut) {
- if (HUT_ALLOWED_BIOMES.containsValue(Integer.valueOf(world.getBiomeGenForCoords(x + this.midX, z + this.midZ).biomeID))) {
- canGenerate = true;
- }
- }
-
- if (canGenerate) {
- //Logger.WORLD("Running World Generator on Australia.");
- boolean a1, a2;
- a1 = generator.generate(world, random, x, z);
- a2 = nonInRange(world, x, z, generator.getRange());
- //Logger.INFO("A1: "+a1+" | A2: "+a2);
- if (a1 && a2) {
- this.structuresList.add(new ChunkCoordIntPair(x, z));
- gen = true;
- //Logger.INFO("Generated a structure");
- break;
- }
- }
- }
- }
- }
- catch (Throwable t) {
- t.printStackTrace();
- }
- }
-
- protected boolean nonInRange(World worldObj, int x, int z, int range) {
- int par1 = x / 16;
- int par2 = z / 16;
-
- int k = par1;
- int l = par2;
- if (par1 < 0) {
- par1 -= this.field_82665_g - 1;
- }
- if (par2 < 0) {
- par2 -= this.field_82665_g - 1;
- }
- int i1 = par1 / this.field_82665_g;
- int j1 = par2 / this.field_82665_g;
- Random random = worldObj.setRandomSeed(i1, j1, 10387312);
- i1 *= this.field_82665_g;
- j1 *= this.field_82665_g;
- i1 += random.nextInt(this.field_82665_g - this.field_82666_h);
- j1 += random.nextInt(this.field_82665_g - this.field_82666_h);
-
- return (k == i1) && (l == j1);
- }
-
- public void initiate() {
- this.structuresList.clear();
- }
-}
diff --git a/src/Java/gtPlusPlus/australia/world/AustraliaWorldProvider.java b/src/Java/gtPlusPlus/australia/world/AustraliaWorldProvider.java
deleted file mode 100644
index af1ca90cc9..0000000000
--- a/src/Java/gtPlusPlus/australia/world/AustraliaWorldProvider.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package gtPlusPlus.australia.world;
-
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-import net.minecraft.util.Vec3;
-import net.minecraft.world.WorldProvider;
-import net.minecraft.world.WorldType;
-import net.minecraft.world.chunk.IChunkProvider;
-import gtPlusPlus.australia.chunk.ChunkProviderAustralia;
-import gtPlusPlus.australia.dimension.Dimension_Australia;
-
-public class AustraliaWorldProvider extends WorldProvider {
-
- @Override
- public void registerWorldChunkManager() {
- this.worldChunkMgr = new AustraliaWorldChunkManager(this.worldObj.getSeed(), WorldType.LARGE_BIOMES);
- this.isHellWorld = false;
- this.hasNoSky = false;
- this.dimensionId = Dimension_Australia.DIMID;
- }
-
- @Override
- public float getSunBrightness(float par1) {
- return (par1*2F);
- }
-
- @Override
- public float getStarBrightness(float par1) {
- return (par1*5F);
- }
-
- @SideOnly(Side.CLIENT)
- public Vec3 getFogColor(float par1, float par2)
- {
- return Vec3.createVectorHelper(0.8D, 0.8D, 0.8D);
- }
-
- @Override
- public IChunkProvider createChunkGenerator() {
- return new ChunkProviderAustralia(this.worldObj, this.worldObj.getSeed() - 15726L);
- }
-
- public boolean isSurfaceWorld()
- {
- return true;
- }
-
- public boolean canCoordinateBeSpawn(int par1, int par2)
- {
- return false;
- }
-
- public boolean canRespawnHere()
- {
- return true;
- }
-
- @SideOnly(Side.CLIENT)
- public boolean doesXZShowFog(int par1, int par2)
- {
- return false;
- }
-
- public String getDimensionName()
- {
- return "Australia";
- }
-
- protected void generateLightBrightnessTable()
- {
- float f = 0.5F;
- for (int i = 0; i <= 15; i++)
- {
- float f1 = 1.0F - i / 15.0F;
- this.lightBrightnessTable[i] = ((1.0F - f1) / (f1 * 3.0F + 1.0F) * (1.0F - f) + f);
- }
- }
-
-} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/australia/world/AustraliaWorldType.java b/src/Java/gtPlusPlus/australia/world/AustraliaWorldType.java
deleted file mode 100644
index e8c8af4f76..0000000000
--- a/src/Java/gtPlusPlus/australia/world/AustraliaWorldType.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package gtPlusPlus.australia.world;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import net.minecraft.world.WorldType;
-
-public class AustraliaWorldType extends WorldType{
-
- public AustraliaWorldType(String name) {
- super(name);
- }
-
- public AustraliaWorldType(int p_i1959_1_, String p_i1959_2_){
- this("test");
- try {
- //System.out.println(Arrays.toString(getClass().getSuperclass().getMethods()));
- Method m = getClass().getSuperclass().getDeclaredMethod("WorldType", new Class<?>[]{});
- m.setAccessible(true);
- m.invoke(this, p_i1959_1_, p_i1959_2_, 0);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public AustraliaWorldType(int p_i1960_1_, String p_i1960_2_, int p_i1960_3_){
- this("test2");
- try {
- //System.out.println(Arrays.toString(getClass().getSuperclass().getMethods()));
- Method m = getClass().getSuperclass().getDeclaredMethod("WorldType", new Class<?>[]{});
- m.setAccessible(true);
- m.invoke(this, p_i1960_1_, p_i1960_2_, p_i1960_3_);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- }
-
- private WorldType getMC(){
- try {
- Constructor<WorldType> c = WorldType.class.getDeclaredConstructor();
- c.setAccessible(true); // solution
- return c.newInstance();
-
- // production code should handle these exceptions more gracefully
- } catch (InvocationTargetException x) {
- x.printStackTrace();
- } catch (NoSuchMethodException x) {
- x.printStackTrace();
- } catch (InstantiationException x) {
- x.printStackTrace();
- } catch (IllegalAccessException x) {
- x.printStackTrace();
- }
- return null;
- }
-}
-