BlockModelRenderer.java 文件源码

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

项目:Backmemed 作者:
private void renderQuadsSmooth(IBlockAccess p_renderQuadsSmooth_1_, IBlockState p_renderQuadsSmooth_2_, BlockPos p_renderQuadsSmooth_3_, VertexBuffer p_renderQuadsSmooth_4_, List<BakedQuad> p_renderQuadsSmooth_5_, RenderEnv p_renderQuadsSmooth_6_)
{
    float[] afloat = p_renderQuadsSmooth_6_.getQuadBounds();
    BitSet bitset = p_renderQuadsSmooth_6_.getBoundsFlags();
    BlockModelRenderer.AmbientOcclusionFace blockmodelrenderer$ambientocclusionface = p_renderQuadsSmooth_6_.getAoFace();
    Vec3d vec3d = p_renderQuadsSmooth_2_.func_191059_e(p_renderQuadsSmooth_1_, p_renderQuadsSmooth_3_);
    double d0 = (double)p_renderQuadsSmooth_3_.getX() + vec3d.xCoord;
    double d1 = (double)p_renderQuadsSmooth_3_.getY() + vec3d.yCoord;
    double d2 = (double)p_renderQuadsSmooth_3_.getZ() + vec3d.zCoord;
    int i = 0;

    for (int j = p_renderQuadsSmooth_5_.size(); i < j; ++i)
    {
        BakedQuad bakedquad = (BakedQuad)p_renderQuadsSmooth_5_.get(i);
        this.fillQuadBounds(p_renderQuadsSmooth_2_, bakedquad.getVertexData(), bakedquad.getFace(), afloat, bitset);
        blockmodelrenderer$ambientocclusionface.updateVertexBrightness(p_renderQuadsSmooth_1_, p_renderQuadsSmooth_2_, p_renderQuadsSmooth_3_, bakedquad.getFace(), afloat, bitset);

        if (p_renderQuadsSmooth_4_.isMultiTexture())
        {
            p_renderQuadsSmooth_4_.addVertexData(bakedquad.getVertexDataSingle());
            p_renderQuadsSmooth_4_.putSprite(bakedquad.getSprite());
        }
        else
        {
            p_renderQuadsSmooth_4_.addVertexData(bakedquad.getVertexData());
        }

        p_renderQuadsSmooth_4_.putBrightness4(blockmodelrenderer$ambientocclusionface.vertexBrightness[0], blockmodelrenderer$ambientocclusionface.vertexBrightness[1], blockmodelrenderer$ambientocclusionface.vertexBrightness[2], blockmodelrenderer$ambientocclusionface.vertexBrightness[3]);

        if (bakedquad.shouldApplyDiffuseLighting())
        {
            float f = FaceBakery.getFaceBrightness(bakedquad.getFace());
            float[] afloat1 = blockmodelrenderer$ambientocclusionface.vertexColorMultiplier;
            afloat1[0] *= f;
            afloat1 = blockmodelrenderer$ambientocclusionface.vertexColorMultiplier;
            afloat1[1] *= f;
            afloat1 = blockmodelrenderer$ambientocclusionface.vertexColorMultiplier;
            afloat1[2] *= f;
            afloat1 = blockmodelrenderer$ambientocclusionface.vertexColorMultiplier;
            afloat1[3] *= f;
        }

        int l = CustomColors.getColorMultiplier(bakedquad, p_renderQuadsSmooth_2_, p_renderQuadsSmooth_1_, p_renderQuadsSmooth_3_, p_renderQuadsSmooth_6_);

        if (!bakedquad.hasTintIndex() && l == -1)
        {
            p_renderQuadsSmooth_4_.putColorMultiplier(blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[0], blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[0], blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[0], 4);
            p_renderQuadsSmooth_4_.putColorMultiplier(blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[1], blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[1], blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[1], 3);
            p_renderQuadsSmooth_4_.putColorMultiplier(blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[2], blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[2], blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[2], 2);
            p_renderQuadsSmooth_4_.putColorMultiplier(blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[3], blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[3], blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[3], 1);
        }
        else
        {
            int k = l;

            if (l == -1)
            {
                k = this.blockColors.colorMultiplier(p_renderQuadsSmooth_2_, p_renderQuadsSmooth_1_, p_renderQuadsSmooth_3_, bakedquad.getTintIndex());
            }

            if (EntityRenderer.anaglyphEnable)
            {
                k = TextureUtil.anaglyphColor(k);
            }

            float f1 = (float)(k >> 16 & 255) / 255.0F;
            float f2 = (float)(k >> 8 & 255) / 255.0F;
            float f3 = (float)(k & 255) / 255.0F;
            p_renderQuadsSmooth_4_.putColorMultiplier(blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[0] * f1, blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[0] * f2, blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[0] * f3, 4);
            p_renderQuadsSmooth_4_.putColorMultiplier(blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[1] * f1, blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[1] * f2, blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[1] * f3, 3);
            p_renderQuadsSmooth_4_.putColorMultiplier(blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[2] * f1, blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[2] * f2, blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[2] * f3, 2);
            p_renderQuadsSmooth_4_.putColorMultiplier(blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[3] * f1, blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[3] * f2, blockmodelrenderer$ambientocclusionface.vertexColorMultiplier[3] * f3, 1);
        }

        p_renderQuadsSmooth_4_.putPosition(d0, d1, d2);
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号