DimDoors/StevenDimDoors/mod_pocketDim/world/PocketProvider.java

131 lines
3.1 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 StevenDimDoors.mod_pocketDim.CloudRenderBlank;
import StevenDimDoors.mod_pocketDim.DDProperties;
import StevenDimDoors.mod_pocketDim.mod_pocketDim;
import StevenDimDoors.mod_pocketDim.helpers.dimHelper;
import StevenDimDoors.mod_pocketDim.ticking.MonolithSpawner;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PocketProvider extends WorldProvider
{
public int exitXCoord;
public int exitYCoord;
public int exitZCoord;
public int exitDimID;
public boolean hasNoSky = true;
2013-06-02 03:43:56 +02:00
public boolean isSavingSchematic= false;
public int dimToSave;
private DDProperties properties;
private MonolithSpawner spawner;
public PocketProvider()
{
this.hasNoSky = true;
this.spawner = mod_pocketDim.spawner;
this.properties = mod_pocketDim.properties;
}
2013-05-27 14:10:07 +02:00
@Override
protected void registerWorldChunkManager()
{
2013-05-27 14:10:07 +02:00
super.worldChunkMgr = new WorldChunkManagerHell(mod_pocketDim.pocketBiome,1,1);
//this.dimensionId = ConfigAtum.dimensionID;
}
@Override
public String getSaveFolder()
{
return (dimensionId == 0 ? null : "DimensionalDoors/pocketDimID" + dimensionId);
}
2013-06-02 03:43:56 +02:00
public void saveAsSchematic(int id)
{
this.isSavingSchematic=true;
this.dimensionId=id;
2013-06-02 03:43:56 +02:00
}
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)0, (double)0, (double)0);
}
@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;
}
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;
}
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 = dimHelper.instance.getDimData(this.dimensionId).exitDimLink.destDimID;
2013-05-31 08:17:05 +02:00
}
if (dimHelper.getWorld(respawnDim) == null)
2013-05-31 08:17:05 +02:00
{
dimHelper.initDimension(respawnDim);
}
2013-05-31 08:17:05 +02:00
return respawnDim;
}
public boolean canRespawnHere()
{
return false;
}
}