Fixed #297 alternating world save folders
Forge bypasses the dimension setter in Client side, unlike Server side. This is causing inconsistent behavior in SSP. We're now delaying retrieval of the celestial object to work around it.
This commit is contained in:
parent
028b85c43a
commit
990529fb65
3 changed files with 154 additions and 252 deletions
151
src/main/java/cr0s/warpdrive/world/AbstractWorldProvider.java
Normal file
151
src/main/java/cr0s/warpdrive/world/AbstractWorldProvider.java
Normal file
|
@ -0,0 +1,151 @@
|
|||
package cr0s.warpdrive.world;
|
||||
|
||||
import cr0s.warpdrive.Commons;
|
||||
import cr0s.warpdrive.data.CelestialObject;
|
||||
import cr0s.warpdrive.data.CelestialObjectManager;
|
||||
import cr0s.warpdrive.render.RenderBlank;
|
||||
import cr0s.warpdrive.render.RenderSpaceSky;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.WorldProvider;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public abstract class AbstractWorldProvider extends WorldProvider {
|
||||
|
||||
protected CelestialObject celestialObjectDimension = null;
|
||||
protected boolean isRemote;
|
||||
|
||||
protected void updateCelestialObject() throws RuntimeException {
|
||||
if (dimensionId == 0) {
|
||||
throw new RuntimeException("Critical error: you can't use a WorldProvider before settings its dimension id!");
|
||||
}
|
||||
if (celestialObjectDimension == null) {
|
||||
isRemote = FMLCommonHandler.instance().getEffectiveSide().isClient();
|
||||
celestialObjectDimension = CelestialObjectManager.get(isRemote, dimensionId, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSaveFolder() {
|
||||
updateCelestialObject();
|
||||
if (celestialObjectDimension == null) {
|
||||
throw new RuntimeException(String.format("Critical error: there's no celestial object defining %s dimension id %d, unable to proceed further",
|
||||
isRemote ? "client" : "server", dimensionId));
|
||||
}
|
||||
return celestialObjectDimension.id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDimensionName() {
|
||||
updateCelestialObject();
|
||||
if (celestialObjectDimension == null) {
|
||||
if (isRemote) {
|
||||
return String.format("DIM%d", dimensionId);
|
||||
} else {
|
||||
throw new RuntimeException(String.format("Critical error: there's no celestial object defining %s dimension id %d, unable to proceed further",
|
||||
"server", dimensionId));
|
||||
}
|
||||
}
|
||||
return celestialObjectDimension.id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCoordinateBeSpawn(int x, int z) {
|
||||
int y = worldObj.getTopSolidOrLiquidBlock(x, z);
|
||||
return y != 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChunkCoordinates getEntrancePortalLocation() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/*
|
||||
@Override
|
||||
public ChunkCoordinates getRandomizedSpawnPoint() {
|
||||
ChunkCoordinates position = new ChunkCoordinates(worldObj.getSpawnPoint());
|
||||
// boolean isAdventure = worldObj.getWorldInfo().getGameType() == EnumGameType.ADVENTURE;
|
||||
int spawnFuzz = 100;
|
||||
int spawnFuzzHalf = spawnFuzz / 2;
|
||||
{
|
||||
position.posX += worldObj.rand.nextInt(spawnFuzz) - spawnFuzzHalf;
|
||||
position.posZ += worldObj.rand.nextInt(spawnFuzz) - spawnFuzzHalf;
|
||||
position.posY = 200;
|
||||
}
|
||||
|
||||
if (worldObj.isAirBlock(position.posX, position.posY, position.posZ)) {
|
||||
worldObj.setBlock(position.posX, position.posY, position.posZ, Blocks.stone, 0, 2);
|
||||
worldObj.setBlock(position.posX + 1, position.posY + 1, position.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(position.posX + 1, position.posY + 2, position.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(position.posX - 1, position.posY + 1, position.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(position.posX - 1, position.posY + 2, position.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(position.posX, position.posY + 1, position.posZ + 1, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(position.posX, position.posY + 2, position.posZ + 1, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(position.posX, position.posY + 1, position.posZ - 1, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(position.posX, position.posY + 2, position.posZ - 1, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(position.posX, position.posY + 3, position.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(position.posX, position.posY, position.posZ, WarpDrive.blockAir, 15, 2);
|
||||
worldObj.setBlock(position.posX, position.posY + 1, position.posZ, WarpDrive.blockAir, 15, 2);
|
||||
}
|
||||
|
||||
return position;
|
||||
}
|
||||
/**/
|
||||
|
||||
// shared for getFogColor(), getStarBrightness()
|
||||
// @SideOnly(Side.CLIENT)
|
||||
protected static CelestialObject celestialObject = null;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public Vec3 getSkyColor(Entity cameraEntity, float partialTicks) {
|
||||
if (getCloudRenderer() == null) {
|
||||
setCloudRenderer(RenderBlank.getInstance());
|
||||
}
|
||||
if (getSkyRenderer() == null) {
|
||||
setSkyRenderer(RenderSpaceSky.getInstance());
|
||||
}
|
||||
|
||||
celestialObject = cameraEntity.worldObj == null ? null : CelestialObjectManager.get(
|
||||
cameraEntity.worldObj,
|
||||
MathHelper.floor_double(cameraEntity.posX), MathHelper.floor_double(cameraEntity.posZ));
|
||||
if (celestialObject == null) {
|
||||
return Vec3.createVectorHelper(1.0D, 0.0D, 0.0D);
|
||||
} else {
|
||||
return Vec3.createVectorHelper(celestialObject.backgroundColor.red, celestialObject.backgroundColor.green, celestialObject.backgroundColor.blue);
|
||||
}
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public Vec3 getFogColor(float celestialAngle, float par2) {
|
||||
final float factor = Commons.clamp(0.0F, 1.0F, MathHelper.cos(celestialAngle * (float) Math.PI * 2.0F) * 2.0F + 0.5F);
|
||||
|
||||
float red = celestialObject == null ? 0.0F : celestialObject.colorFog.red;
|
||||
float green = celestialObject == null ? 0.0F : celestialObject.colorFog.green;
|
||||
float blue = celestialObject == null ? 0.0F : celestialObject.colorFog.blue;
|
||||
float factorRed = celestialObject == null ? 0.0F : celestialObject.factorFog.red;
|
||||
float factorGreen = celestialObject == null ? 0.0F : celestialObject.factorFog.green;
|
||||
float factorBlue = celestialObject == null ? 0.0F : celestialObject.factorFog.blue;
|
||||
red *= factor * factorRed + (1.0F - factorRed );
|
||||
green *= factor * factorGreen + (1.0F - factorGreen);
|
||||
blue *= factor * factorBlue + (1.0F - factorBlue );
|
||||
return Vec3.createVectorHelper(red, green, blue);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public float getStarBrightness(float partialTicks) {
|
||||
if (celestialObject == null) {
|
||||
return 0.0F;
|
||||
}
|
||||
final float starBrightnessVanilla = super.getStarBrightness(partialTicks);
|
||||
return celestialObject.baseStarBrightness + celestialObject.vanillaStarBrightness * starBrightnessVanilla;
|
||||
}
|
||||
}
|
|
@ -1,21 +1,9 @@
|
|||
package cr0s.warpdrive.world;
|
||||
|
||||
import cr0s.warpdrive.Commons;
|
||||
import cr0s.warpdrive.WarpDrive;
|
||||
import cr0s.warpdrive.client.ClientProxy;
|
||||
import cr0s.warpdrive.data.CelestialObjectManager;
|
||||
import cr0s.warpdrive.data.CelestialObject;
|
||||
import cr0s.warpdrive.data.StarMapRegistry;
|
||||
import cr0s.warpdrive.render.RenderBlank;
|
||||
import cr0s.warpdrive.render.RenderSpaceSky;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.WorldProvider;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraft.world.biome.WorldChunkManagerHell;
|
||||
import net.minecraft.world.chunk.Chunk;
|
||||
|
@ -24,31 +12,13 @@ import net.minecraft.world.chunk.IChunkProvider;
|
|||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class HyperSpaceWorldProvider extends WorldProvider {
|
||||
|
||||
private CelestialObject celestialObjectDimension = null;
|
||||
public class HyperSpaceWorldProvider extends AbstractWorldProvider {
|
||||
|
||||
public HyperSpaceWorldProvider() {
|
||||
worldChunkMgr = new WorldChunkManagerHell(WarpDrive.spaceBiome, 0.0F);
|
||||
hasNoSky = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDimension(final int dimensionId) {
|
||||
super.setDimension(dimensionId);
|
||||
celestialObjectDimension = CelestialObjectManager.get(WarpDrive.proxy instanceof ClientProxy, dimensionId, 0, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSaveFolder() {
|
||||
return dimensionId == 0 ? null : (celestialObjectDimension == null ? "WarpDriveHyperSpace" + dimensionId : celestialObjectDimension.id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDimensionName() {
|
||||
return celestialObjectDimension == null ? "Hyperspace" + dimensionId : celestialObjectDimension.id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canRespawnHere() {
|
||||
return true;
|
||||
|
@ -99,74 +69,12 @@ public class HyperSpaceWorldProvider extends WorldProvider {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCoordinateBeSpawn(int x, int z) {
|
||||
int y = worldObj.getTopSolidOrLiquidBlock(x, z);
|
||||
return y != 0;
|
||||
}
|
||||
|
||||
// shared for getFogColor(), getStarBrightness()
|
||||
// @SideOnly(Side.CLIENT)
|
||||
private static CelestialObject celestialObject = null;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public Vec3 getSkyColor(Entity cameraEntity, float partialTicks) {
|
||||
if (getCloudRenderer() == null) {
|
||||
setCloudRenderer(RenderBlank.getInstance());
|
||||
}
|
||||
if (getSkyRenderer() == null) {
|
||||
setSkyRenderer(RenderSpaceSky.getInstance());
|
||||
}
|
||||
|
||||
celestialObject = cameraEntity.worldObj == null ? null : CelestialObjectManager.get(
|
||||
cameraEntity.worldObj,
|
||||
MathHelper.floor_double(cameraEntity.posX), MathHelper.floor_double(cameraEntity.posZ));
|
||||
if (celestialObject == null) {
|
||||
return Vec3.createVectorHelper(1.0D, 0.0D, 0.0D);
|
||||
} else {
|
||||
return Vec3.createVectorHelper(celestialObject.backgroundColor.red, celestialObject.backgroundColor.green, celestialObject.backgroundColor.blue);
|
||||
}
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public Vec3 getFogColor(float celestialAngle, float par2) {
|
||||
final float factor = Commons.clamp(0.0F, 1.0F, MathHelper.cos(celestialAngle * (float) Math.PI * 2.0F) * 2.0F + 0.5F);
|
||||
|
||||
float red = celestialObject == null ? 0.0F : celestialObject.colorFog.red;
|
||||
float green = celestialObject == null ? 0.0F : celestialObject.colorFog.green;
|
||||
float blue = celestialObject == null ? 0.0F : celestialObject.colorFog.blue;
|
||||
float factorRed = celestialObject == null ? 0.0F : celestialObject.factorFog.red;
|
||||
float factorGreen = celestialObject == null ? 0.0F : celestialObject.factorFog.green;
|
||||
float factorBlue = celestialObject == null ? 0.0F : celestialObject.factorFog.blue;
|
||||
red *= factor * factorRed + (1.0F - factorRed );
|
||||
green *= factor * factorGreen + (1.0F - factorGreen);
|
||||
blue *= factor * factorBlue + (1.0F - factorBlue );
|
||||
return Vec3.createVectorHelper(red, green, blue);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public float getStarBrightness(float partialTicks) {
|
||||
if (celestialObject == null) {
|
||||
return 0.0F;
|
||||
}
|
||||
final float starBrightnessVanilla = super.getStarBrightness(partialTicks);
|
||||
return celestialObject.baseStarBrightness + celestialObject.vanillaStarBrightness * starBrightnessVanilla;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public boolean isSkyColored() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChunkCoordinates getEntrancePortalLocation() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRespawnDimension(EntityPlayerMP player) {
|
||||
if (player == null || player.worldObj == null) {
|
||||
|
@ -186,36 +94,6 @@ public class HyperSpaceWorldProvider extends WorldProvider {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChunkCoordinates getRandomizedSpawnPoint() {
|
||||
ChunkCoordinates var5 = new ChunkCoordinates(worldObj.getSpawnPoint());
|
||||
// boolean isAdventure = worldObj.getWorldInfo().getGameType() == EnumGameType.ADVENTURE;
|
||||
int spawnFuzz = 100;
|
||||
int spawnFuzzHalf = spawnFuzz / 2;
|
||||
{
|
||||
var5.posX += worldObj.rand.nextInt(spawnFuzz) - spawnFuzzHalf;
|
||||
var5.posZ += worldObj.rand.nextInt(spawnFuzz) - spawnFuzzHalf;
|
||||
var5.posY = 200;
|
||||
}
|
||||
|
||||
if (worldObj.isAirBlock(var5.posX, var5.posY, var5.posZ)) {
|
||||
worldObj.setBlock(var5.posX, var5.posY, var5.posZ, Blocks.stone, 0, 2);
|
||||
worldObj.setBlock(var5.posX + 1, var5.posY + 1, var5.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX + 1, var5.posY + 2, var5.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX - 1, var5.posY + 1, var5.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX - 1, var5.posY + 2, var5.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX, var5.posY + 1, var5.posZ + 1, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX, var5.posY + 2, var5.posZ + 1, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX, var5.posY + 1, var5.posZ - 1, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX, var5.posY + 2, var5.posZ - 1, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX, var5.posY + 3, var5.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX, var5.posY, var5.posZ, WarpDrive.blockAir, 15, 2);
|
||||
worldObj.setBlock(var5.posX, var5.posY + 1, var5.posZ, WarpDrive.blockAir, 15, 2);
|
||||
}
|
||||
|
||||
return var5;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getWorldHasVoidParticles() {
|
||||
return false;
|
||||
|
|
|
@ -1,20 +1,9 @@
|
|||
package cr0s.warpdrive.world;
|
||||
|
||||
import cr0s.warpdrive.Commons;
|
||||
import cr0s.warpdrive.WarpDrive;
|
||||
import cr0s.warpdrive.client.ClientProxy;
|
||||
import cr0s.warpdrive.data.CelestialObjectManager;
|
||||
import cr0s.warpdrive.data.CelestialObject;
|
||||
import cr0s.warpdrive.data.StarMapRegistry;
|
||||
import cr0s.warpdrive.render.RenderBlank;
|
||||
import cr0s.warpdrive.render.RenderSpaceSky;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.WorldProvider;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraft.world.biome.WorldChunkManagerHell;
|
||||
import net.minecraft.world.chunk.Chunk;
|
||||
|
@ -23,31 +12,13 @@ import net.minecraft.world.chunk.IChunkProvider;
|
|||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class SpaceWorldProvider extends WorldProvider {
|
||||
|
||||
private CelestialObject celestialObjectDimension = null;
|
||||
public class SpaceWorldProvider extends AbstractWorldProvider {
|
||||
|
||||
public SpaceWorldProvider() {
|
||||
worldChunkMgr = new WorldChunkManagerHell(WarpDrive.spaceBiome, 0.0F);
|
||||
hasNoSky = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDimension(final int dimensionId) {
|
||||
super.setDimension(dimensionId);
|
||||
celestialObjectDimension = CelestialObjectManager.get(WarpDrive.proxy instanceof ClientProxy, dimensionId, 0, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSaveFolder() {
|
||||
return celestialObjectDimension == null ? "WarpDriveSpace" + dimensionId : celestialObjectDimension.id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDimensionName() {
|
||||
return celestialObjectDimension == null ? "Space" + dimensionId : celestialObjectDimension.id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canRespawnHere() {
|
||||
return true;
|
||||
|
@ -90,7 +61,7 @@ public class SpaceWorldProvider extends WorldProvider {
|
|||
|
||||
@Override
|
||||
protected void generateLightBrightnessTable() {
|
||||
float f = 0.0F; // 0.1F
|
||||
float f = 0.0F;
|
||||
|
||||
for (int i = 0; i <= 15; ++i) {
|
||||
float f1 = 1.0F - i / 15.0F;
|
||||
|
@ -98,74 +69,12 @@ public class SpaceWorldProvider extends WorldProvider {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCoordinateBeSpawn(int x, int z) {
|
||||
int y = worldObj.getTopSolidOrLiquidBlock(x, z);
|
||||
return y != 0;
|
||||
}
|
||||
|
||||
// shared for getFogColor(), getStarBrightness()
|
||||
// @SideOnly(Side.CLIENT)
|
||||
private static CelestialObject celestialObject = null;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public Vec3 getSkyColor(Entity cameraEntity, float partialTicks) {
|
||||
if (getCloudRenderer() == null) {
|
||||
setCloudRenderer(RenderBlank.getInstance());
|
||||
}
|
||||
if (getSkyRenderer() == null) {
|
||||
setSkyRenderer(RenderSpaceSky.getInstance());
|
||||
}
|
||||
|
||||
celestialObject = cameraEntity.worldObj == null ? null : CelestialObjectManager.get(
|
||||
cameraEntity.worldObj,
|
||||
MathHelper.floor_double(cameraEntity.posX), MathHelper.floor_double(cameraEntity.posZ));
|
||||
if (celestialObject == null) {
|
||||
return Vec3.createVectorHelper(0.0D, 0.0D, 0.0D);
|
||||
} else {
|
||||
return Vec3.createVectorHelper(celestialObject.backgroundColor.red, celestialObject.backgroundColor.green, celestialObject.backgroundColor.blue);
|
||||
}
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public Vec3 getFogColor(float celestialAngle, float par2) {
|
||||
final float factor = Commons.clamp(0.0F, 1.0F, MathHelper.cos(celestialAngle * (float) Math.PI * 2.0F) * 2.0F + 0.5F);
|
||||
|
||||
float red = celestialObject == null ? 0.0F : celestialObject.colorFog.red;
|
||||
float green = celestialObject == null ? 0.0F : celestialObject.colorFog.green;
|
||||
float blue = celestialObject == null ? 0.0F : celestialObject.colorFog.blue;
|
||||
float factorRed = celestialObject == null ? 0.0F : celestialObject.factorFog.red;
|
||||
float factorGreen = celestialObject == null ? 0.0F : celestialObject.factorFog.green;
|
||||
float factorBlue = celestialObject == null ? 0.0F : celestialObject.factorFog.blue;
|
||||
red *= factor * factorRed + (1.0F - factorRed );
|
||||
green *= factor * factorGreen + (1.0F - factorGreen);
|
||||
blue *= factor * factorBlue + (1.0F - factorBlue );
|
||||
return Vec3.createVectorHelper(red, green, blue);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public float getStarBrightness(float partialTicks) {
|
||||
if (celestialObject == null) {
|
||||
return 0.0F;
|
||||
}
|
||||
final float starBrightnessVanilla = super.getStarBrightness(partialTicks);
|
||||
return celestialObject.baseStarBrightness + celestialObject.vanillaStarBrightness * starBrightnessVanilla;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public boolean isSkyColored() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChunkCoordinates getEntrancePortalLocation() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRespawnDimension(EntityPlayerMP player) {
|
||||
if (player == null || player.worldObj == null) {
|
||||
|
@ -185,42 +94,6 @@ public class SpaceWorldProvider extends WorldProvider {
|
|||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
@Override
|
||||
public ChunkCoordinates getRandomizedSpawnPoint() {
|
||||
ChunkCoordinates var5 = new ChunkCoordinates(worldObj.getSpawnPoint());
|
||||
|
||||
//boolean isAdventure = worldObj.getWorldInfo().getGameType() == EnumGameType.ADVENTURE;
|
||||
int spawnFuzz = 1000;
|
||||
int spawnFuzzHalf = spawnFuzz / 2;
|
||||
|
||||
{
|
||||
var5.posX += worldObj.rand.nextInt(spawnFuzz) - spawnFuzzHalf;
|
||||
var5.posZ += worldObj.rand.nextInt(spawnFuzz) - spawnFuzzHalf;
|
||||
var5.posY = 200;
|
||||
}
|
||||
|
||||
if (worldObj.isAirBlock(var5.posX, var5.posY, var5.posZ)) {
|
||||
worldObj.setBlock(var5.posX, var5.posY, var5.posZ, Blocks.stone, 0, 2);
|
||||
|
||||
worldObj.setBlock(var5.posX + 1, var5.posY + 1, var5.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX + 1, var5.posY + 2, var5.posZ, Blocks.glass, 0, 2);
|
||||
|
||||
worldObj.setBlock(var5.posX - 1, var5.posY + 1, var5.posZ, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX - 1, var5.posY + 2, var5.posZ, Blocks.glass, 0, 2);
|
||||
|
||||
worldObj.setBlock(var5.posX, var5.posY + 1, var5.posZ + 1, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX, var5.posY + 2, var5.posZ + 1, Blocks.glass, 0, 2);
|
||||
|
||||
worldObj.setBlock(var5.posX, var5.posY + 1, var5.posZ - 1, Blocks.glass, 0, 2);
|
||||
worldObj.setBlock(var5.posX, var5.posY + 3, var5.posZ - 1, Blocks.glass, 0, 2);
|
||||
|
||||
// worldObj.setBlockWithNotify(var5.posX, var5.posY + 3, var5.posZ, Block.glass.blockID);
|
||||
}
|
||||
return var5;
|
||||
}
|
||||
/**/
|
||||
|
||||
@Override
|
||||
public boolean getWorldHasVoidParticles() {
|
||||
return false;
|
||||
|
|
Loading…
Reference in a new issue