package com.bioxx.tfc2.world;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.DimensionType;
import net.minecraft.world.WorldProvider;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.chunk.IChunkGenerator;
import net.minecraft.world.storage.WorldInfo;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class WorldProviderPaths extends WorldProvider
{
@Override
public IChunkGenerator createChunkGenerator()
{
return new ChunkProviderPaths(worldObj, worldObj.getSeed(), false, "");
}
@Override
public boolean isSurfaceWorld()
{
return false;
}
@Override
public boolean canBlockFreeze(BlockPos pos, boolean byWater)
{
return false;
}
@Override
public boolean canSnowAt(BlockPos pos, boolean checkLight)
{
return false;
}
@Override
public double getHorizon()
{
return 1;
}
@Override
public Biome getBiomeForCoords(BlockPos pos)
{
return Biome.getBiome(1);
}
@Override
public boolean doesWaterVaporize()
{
return true;
}
@Override
public boolean getHasNoSky()
{
return true;
}
@Override
public boolean canDoLightning(net.minecraft.world.chunk.Chunk chunk)
{
return false;
}
@Override
public boolean canDoRainSnowIce(net.minecraft.world.chunk.Chunk chunk)
{
return false;
}
/**
* Returns a double value representing the Y value relative to the top of the map at which void fog is at its
* maximum. The default factor of 0.03125 relative to 256, for example, means the void fog will be at its maximum at
* (256*0.03125), or 8.
*/
@Override
@SideOnly(Side.CLIENT)
public double getVoidFogYFactor()
{
return 1.0;
}
/**
* Returns true if the given X,Z coordinate should show environmental fog.
*/
@Override
@SideOnly(Side.CLIENT)
public boolean doesXZShowFog(int x, int z)
{
return true;
}
@Override
public double getMovementFactor()
{
return 8.0;
}
@Override
public float calculateCelestialAngle(long p_76563_1_, float p_76563_3_)
{
return 0.5F;
}
@Override
public BlockPos getSpawnPoint()
{
WorldInfo info = this.worldObj.getWorldInfo();
return new BlockPos(info.getSpawnX(), info.getSpawnY(), info.getSpawnZ());
}
/**
* Return Vec3D with biome specific fog color
*/
@Override
@SideOnly(Side.CLIENT)
public Vec3d getFogColor(float p_76562_1_, float p_76562_2_)
{
return new Vec3d(0.02, 0.029, 0.029);
}
/**
* Creates the light to brightness table
*/
@Override
protected void generateLightBrightnessTable()
{
float f = 0.1F;
for (int i = 0; i <= 15; ++i)
{
float f1 = 1.0F - (float)i / 15.0F;
this.lightBrightnessTable[i] = (1.0F - f1) / (f1 * 3.0F + 1.0F) * (1.0F - f) + f;
}
}
@Override
public DimensionType getDimensionType()
{
return DimensionTFC.PATHS;
}
}