/******************************************************************************* * AbyssalCraft * Copyright (c) 2012 - 2017 Shinoow. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl-3.0.txt * * Contributors: * Shinoow - implementation ******************************************************************************/ package com.shinoow.abyssalcraft.common.world; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.Vec3d; import net.minecraft.world.DimensionType; import net.minecraft.world.WorldProvider; import net.minecraft.world.biome.BiomeProviderSingle; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.IChunkGenerator; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import com.shinoow.abyssalcraft.api.biome.ACBiomes; import com.shinoow.abyssalcraft.client.render.sky.ACSkyRenderer; import com.shinoow.abyssalcraft.lib.ACLib; public class WorldProviderAbyss extends WorldProvider { @Override public IChunkGenerator createChunkGenerator() { return new ChunkProviderAbyss(world, world.getSeed(), true); } @Override public void init() { biomeProvider = new BiomeProviderSingle(ACBiomes.abyssal_wastelands); setDimension(ACLib.abyssal_wasteland_id); hasNoSky = true; } @Override public boolean canRespawnHere() { return false; } /** * Creates the light to brightness table */ @Override protected void generateLightBrightnessTable() { float f = 0.25F; for (int i = 0; i <= 15; ++i) { float f1 = 1.0F - i / 15.0F; lightBrightnessTable[i] = (1.0F - f1) / (f1 * 3.0F + 1.0F) * (1.0F - f) + f; } } @Override public boolean canDoRainSnowIce(Chunk chunk) { return false; } @Override public boolean isSurfaceWorld() { return false; } @Override public float calculateCelestialAngle(long par1, float par3) { return 0.5F; } @Override @SideOnly(Side.CLIENT) public float[] calcSunriseSunsetColors(float par1, float par2) { return null; } @Override @SideOnly(Side.CLIENT) public boolean isSkyColored() { return true; } @Override public Vec3d getSkyColor(Entity cameraEntity, float partialTicks) { return new Vec3d(0, 4.5, 1.5); } @Override @SideOnly(Side.CLIENT) public float getCloudHeight() { return 8.0F; } @Override public String getSaveFolder() { return "Abyssal_Wasteland"; } @Override public int getAverageGroundLevel() { return 50; } @SideOnly(Side.CLIENT) @Override public net.minecraftforge.client.IRenderHandler getSkyRenderer() { return new ACSkyRenderer(new ResourceLocation("abyssalcraft:textures/environment/abyssal_wasteland_sky.png"), 0, 105, 45); } @Override public DimensionType getDimensionType() { return ACLib.THE_ABYSSAL_WASTELAND; } }