DimDoors/StevenDimDoors/mod_pocketDim/world/PocketProvider.java

127 lines
3 KiB
Java
Raw Normal View History

2013-06-02 03:43:56 +02:00
package StevenDimDoors.mod_pocketDim.world;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.Vec3;
import net.minecraft.world.WorldProvider;
import net.minecraft.world.biome.WorldChunkManagerHell;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraftforge.client.IRenderHandler;
import net.minecraftforge.common.DimensionManager;
import StevenDimDoors.mod_pocketDim.CloudRenderBlank;
import StevenDimDoors.mod_pocketDim.DDProperties;
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
import StevenDimDoors.mod_pocketDim.core.PocketManager;
import StevenDimDoors.mod_pocketDim.ticking.MonolithSpawner;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PocketProvider extends WorldProvider
{
private DDProperties properties;
private MonolithSpawner spawner;
@SuppressWarnings("unused") // ?
private IRenderHandler skyRenderer;
public PocketProvider()
{
this.hasNoSky = true;
this.skyRenderer = new PocketSkyProvider();
this.spawner = mod_pocketDim.spawner;
this.properties = mod_pocketDim.properties;
}
2013-05-27 14:10:07 +02:00
@Override
protected void registerWorldChunkManager()
{
super.worldChunkMgr = new WorldChunkManagerHell(mod_pocketDim.pocketBiome, 1, 1);
}
@Override
public String getSaveFolder()
{
return (dimensionId == 0 ? null : "DimensionalDoors/pocketDimID" + dimensionId);
}
@Override
public Vec3 getSkyColor(Entity cameraEntity, float partialTicks)
{
setCloudRenderer( new CloudRenderBlank());
return this.worldObj.getWorldVec3Pool().getVecFromPool(0d, 0d, 0d);
}
@SideOnly(Side.CLIENT)
@Override
public Vec3 getFogColor(float par1, float par2)
{
return this.worldObj.getWorldVec3Pool().getVecFromPool(0d, 0d, 0d);
}
@Override
public double getHorizon()
{
return worldObj.getHeight();
}
@Override
public IChunkProvider createChunkGenerator()
{
return new PocketGenerator(worldObj, dimensionId, false, spawner);
}
@Override
public boolean canSnowAt(int x, int y, int z)
{
return false;
}
@Override
public boolean canBlockFreeze(int x, int y, int z, boolean byWater)
{
return false;
}
@Override
public String getDimensionName()
{
//TODO: This should be a proper name. We need to show people proper names for things whenever possible.
//The question is whether this should be "Pocket Dimension" or "Pocket Dimension #" -- I'm not going to change
//it out of concern that it could break something. ~SenseiKiwi
return "PocketDim " + this.dimensionId;
}
@Override
public int getRespawnDimension(EntityPlayerMP player)
{
2013-05-31 08:17:05 +02:00
int respawnDim;
if (properties.LimboEnabled)
{
respawnDim = properties.LimboDimensionID;
}
2013-06-02 07:46:31 +02:00
else
{
respawnDim = PocketManager.getDimensionData(this.dimensionId).root().id();
2013-05-31 08:17:05 +02:00
}
if (DimensionManager.getWorld(respawnDim) == null)
2013-05-31 08:17:05 +02:00
{
DimensionManager.initDimension(respawnDim);
}
2013-05-31 08:17:05 +02:00
return respawnDim;
}
@Override
public boolean canRespawnHere()
{
return false;
}
@Override
public int getActualHeight()
{
return 256;
}
}