PlanetEventHandler.java 文件源码

java
阅读 29 收藏 0 点赞 0 评论 0

项目:AdvancedRocketry 作者:
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void fogColor(net.minecraftforge.client.event.EntityViewRenderEvent.FogColors event) {



    Block block = ActiveRenderInfo.getBlockAtEntityViewpoint(event.entity.worldObj, event.entity, (float)event.renderPartialTicks);
    if(block.getMaterial() == Material.water)
        return;

    DimensionProperties properties = DimensionManager.getInstance().getDimensionProperties(event.entity.dimension);
    if(properties != null) {
        float fog = properties.getAtmosphereDensityAtHeight(event.entity.posY);

        if(event.entity.worldObj.provider instanceof IPlanetaryProvider) {
            Vec3 color = event.entity.worldObj.provider.getSkyColor(event.entity, 0f);
            event.red = (float) Math.min(color.xCoord*1.4f,1f);
            event.green = (float) Math.min(color.yCoord*1.4f, 1f);
            event.blue = (float) Math.min(color.zCoord*1.4f, 1f);
        }

        if(endTime > 0) {
            double amt = (endTime - Minecraft.getMinecraft().theWorld.getTotalWorldTime()) / (double)duration;
            if(amt < 0) {
                endTime = 0;
            }
            else
                event.green = event.blue = event.red = (float)amt;

        } else {
            event.red *= fog;
            event.green *= fog;
            event.blue *= fog;
        }
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号