161 lines
No EOL
3.9 KiB
Java
161 lines
No EOL
3.9 KiB
Java
package StevenDimDoors.mod_pocketDim;
|
|
|
|
import net.minecraft.entity.Entity;
|
|
import net.minecraft.entity.player.EntityPlayerMP;
|
|
import net.minecraft.util.ChunkCoordinates;
|
|
import net.minecraft.util.Vec3;
|
|
import net.minecraft.world.EnumGameType;
|
|
import net.minecraft.world.WorldProvider;
|
|
import net.minecraft.world.biome.BiomeGenBase;
|
|
import net.minecraft.world.chunk.IChunkProvider;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
|
|
public class LimboProvider extends WorldProvider
|
|
{
|
|
|
|
@Override
|
|
public String getDimensionName() {
|
|
// TODO Auto-generated method stub
|
|
return "Limbo";
|
|
}
|
|
|
|
public int exitXCoord;
|
|
public int exitYCoord;
|
|
public int exitZCoord;
|
|
public int exitDimID;
|
|
public LimboProvider()
|
|
{
|
|
this.hasNoSky=true;
|
|
// super.setAllowedSpawnTypes(false, false);
|
|
|
|
}
|
|
public boolean canRespawnHere()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
public boolean canSnowAt(int x, int y, int z)
|
|
{
|
|
return false;
|
|
}
|
|
@Override
|
|
protected void generateLightBrightnessTable()
|
|
{
|
|
float modifier = 0.0F;
|
|
|
|
for (int steps = 0; steps <= 15; ++steps)
|
|
{
|
|
float var3 = 1.0F - (float)steps / 15.0F;
|
|
this.lightBrightnessTable[steps] = ((0.0F + var3) / (var3 * 3.0F + 1.0F) * (1.0F - modifier) + modifier)*3;
|
|
// System.out.println( this.lightBrightnessTable[steps]+"light");
|
|
}
|
|
}
|
|
|
|
public void setAllowedSpawnTypes(boolean allowHostile, boolean allowPeaceful)
|
|
{
|
|
super.setAllowedSpawnTypes(false, false);
|
|
|
|
}
|
|
|
|
public float calculateCelestialAngle(long par1, float par3)
|
|
{
|
|
int var4 = (int)(par1 % 24000L);
|
|
float var5 = ((float)var4 + par3) / 24000.0F - 0.25F;
|
|
|
|
if (var5 < 0.0F)
|
|
{
|
|
++var5;
|
|
}
|
|
|
|
if (var5 > 1.0F)
|
|
{
|
|
--var5;
|
|
}
|
|
|
|
float var6 = var5;
|
|
var5 = 1.0F - (float)((Math.cos((double)var5 * Math.PI) + 1.0D) / 2.0D);
|
|
var5 = var6 + (var5 - var6) / 3.0F;
|
|
return 0;
|
|
}
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public int getMoonPhase(long par1, float par3)
|
|
{
|
|
return 4;
|
|
}
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
@Override
|
|
public String getSaveFolder()
|
|
{
|
|
return (dimensionId == 0 ? null : "DimensionalDoors/Limbo" + dimensionId);
|
|
}
|
|
|
|
public boolean canCoordinateBeSpawn(int par1, int par2)
|
|
{
|
|
int var3 = this.worldObj.getFirstUncoveredBlock(par1, par2);
|
|
return var3 == mod_pocketDim.blockLimboID;
|
|
}
|
|
@Override
|
|
public double getHorizon()
|
|
{
|
|
return worldObj.getHeight()/4-800;
|
|
}
|
|
public Vec3 getSkyColor(Entity cameraEntity, float partialTicks)
|
|
{
|
|
setCloudRenderer( new CloudRenderBlank());
|
|
return this.worldObj.getWorldVec3Pool().getVecFromPool((double)0, (double)0, (double)0);
|
|
|
|
}
|
|
@SideOnly(Side.CLIENT)
|
|
@Override
|
|
public Vec3 getFogColor(float par1, float par2)
|
|
{
|
|
return this.worldObj.getWorldVec3Pool().getVecFromPool((double).2, (double).2, (double).2);
|
|
|
|
}
|
|
public int getRespawnDimension(EntityPlayerMP player)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public IChunkProvider createChunkGenerator()
|
|
{
|
|
return new LimboGenerator(worldObj, 45);
|
|
}
|
|
public boolean canBlockFreeze(int x, int y, int z, boolean byWater)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public ChunkCoordinates getRandomizedSpawnPoint()
|
|
{
|
|
ChunkCoordinates var5 = new ChunkCoordinates(this.worldObj.getSpawnPoint());
|
|
|
|
boolean isAdventure = worldObj.getWorldInfo().getGameType() == EnumGameType.ADVENTURE;
|
|
int spawnFuzz = 10000;
|
|
int spawnFuzzHalf = spawnFuzz / 2;
|
|
|
|
{
|
|
var5.posX += this.worldObj.rand.nextInt(spawnFuzz) - spawnFuzzHalf;
|
|
var5.posZ += this.worldObj.rand.nextInt(spawnFuzz) - spawnFuzzHalf;
|
|
var5.posY = 700;
|
|
}
|
|
|
|
return var5;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} |