java类net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType的实例源码

ModelProgrammingPuzzle.java 文件源码 项目:pnc-repressurized 阅读 25 收藏 0 点赞 0 评论 0
@Override
public IBakedModel bake(IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter) {

    ImmutableMap<TransformType, TRSRTransformation> transformMap = PerspectiveMapWrapper.getTransforms(state);

    TRSRTransformation transform = state.apply(Optional.empty()).orElse(TRSRTransformation.identity());
    TextureAtlasSprite widgetSprite = bakedTextureGetter.apply(getWidgetTexture(widget));
    ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();

    int width = widget.getWidth() + (widget.getParameters() != null && widget.getParameters().length > 0 ? 10 : 0);
    int height = widget.getHeight() + (widget.hasStepOutput() ? 5 : 0);

    Pair<Double, Double> maxUV = widget.getMaxUV();
    int textureSize = widget.getTextureSize();
    float scale = 1F / (float) Math.max(maxUV.getLeft(), maxUV.getRight());
    float transX = 0;//maxUV.getLeft().floatValue();
    float transY = -1 + maxUV.getRight().floatValue();
    transform = transform.compose(new TRSRTransformation(new Vector3f(0, 0, 0), null, new Vector3f(scale, scale, 1), null));
    transform = transform.compose(new TRSRTransformation(new Vector3f(transX, transY, 0), null, new Vector3f(1, 1, 1), null));

    builder.add(ItemTextureQuadConverter.genQuad(format, transform, 0, 0, 16 * maxUV.getLeft().floatValue(), 16 * maxUV.getRight().floatValue(), NORTH_Z_BASE, widgetSprite, EnumFacing.NORTH, 0xffffffff));
    builder.add(ItemTextureQuadConverter.genQuad(format, transform, 0, 0, 16 * maxUV.getLeft().floatValue(), 16 * maxUV.getRight().floatValue(), SOUTH_Z_BASE, widgetSprite, EnumFacing.SOUTH, 0xffffffff));

    return new BakedProgrammingPuzzle(this, builder.build(), widgetSprite, format, Maps.immutableEnumMap(transformMap), Maps.newHashMap());
}
ModelSpellPage.java 文件源码 项目:Infernum 阅读 22 收藏 0 点赞 0 评论 0
@Override
public Pair<? extends IBakedModel, Matrix4f> handlePerspective(TransformType cameraTransformType) {
    if (baseSpellPageModel instanceof IPerspectiveAwareModel) {
        Matrix4f matrix4f = ((IPerspectiveAwareModel) baseSpellPageModel).handlePerspective(cameraTransformType)
                .getRight();
        return Pair.of(this, matrix4f);
    }
    ItemCameraTransforms itemCameraTransforms = baseSpellPageModel.getItemCameraTransforms();
    ItemTransformVec3f itemTransformVec3f = itemCameraTransforms.getTransform(cameraTransformType);
    TRSRTransformation tr = new TRSRTransformation(itemTransformVec3f);
    Matrix4f mat = null;
    if (tr != null) {
        mat = tr.getMatrix();
    }
    return Pair.of(this, mat);
}
ModelKnowledgeBook.java 文件源码 项目:Infernum 阅读 31 收藏 0 点赞 0 评论 0
@Override
public Pair<? extends IBakedModel, Matrix4f> handlePerspective(TransformType cameraTransformType) {
    if (baseKnowledgeBookModel instanceof IPerspectiveAwareModel) {
        Matrix4f matrix4f = ((IPerspectiveAwareModel) baseKnowledgeBookModel).handlePerspective(cameraTransformType)
                .getRight();
        return Pair.of(this, matrix4f);
    }
    ItemCameraTransforms itemCameraTransforms = baseKnowledgeBookModel.getItemCameraTransforms();
    ItemTransformVec3f itemTransformVec3f = itemCameraTransforms.getTransform(cameraTransformType);
    TRSRTransformation tr = new TRSRTransformation(itemTransformVec3f);
    Matrix4f mat = null;
    if (tr != null) {
        mat = tr.getMatrix();
    }
    return Pair.of(this, mat);
}
BakedModelKnowledgeBook.java 文件源码 项目:Infernum 阅读 23 收藏 0 点赞 0 评论 0
@Override
public Pair<? extends IBakedModel, Matrix4f> handlePerspective(TransformType cameraTransformType) {
    if (parentModel instanceof IPerspectiveAwareModel) {
        Matrix4f matrix4f = ((IPerspectiveAwareModel) parentModel).handlePerspective(cameraTransformType)
                .getRight();
        return Pair.of(this, matrix4f);
    }
    ItemCameraTransforms itemCameraTransforms = parentModel.getItemCameraTransforms();
    ItemTransformVec3f itemTransformVec3f = itemCameraTransforms.getTransform(cameraTransformType);
    TRSRTransformation tr = new TRSRTransformation(itemTransformVec3f);
    Matrix4f mat = null;
    if (tr != null) {
        mat = tr.getMatrix();
    }
    return Pair.of(this, mat);
}
BakedModelSpellPage.java 文件源码 项目:Infernum 阅读 23 收藏 0 点赞 0 评论 0
@Override
public Pair<? extends IBakedModel, Matrix4f> handlePerspective(TransformType cameraTransformType) {
    if (parentModel instanceof IPerspectiveAwareModel) {
        Matrix4f matrix4f = ((IPerspectiveAwareModel) parentModel).handlePerspective(cameraTransformType)
                .getRight();
        return Pair.of(this, matrix4f);
    }
    ItemCameraTransforms itemCameraTransforms = parentModel.getItemCameraTransforms();
    ItemTransformVec3f itemTransformVec3f = itemCameraTransforms.getTransform(cameraTransformType);
    TRSRTransformation tr = new TRSRTransformation(itemTransformVec3f);
    Matrix4f mat = null;
    if (tr != null) {
        mat = tr.getMatrix();
    }
    return Pair.of(this, mat);
}
TESRDankNullDock.java 文件源码 项目:DankNull 阅读 40 收藏 0 点赞 0 评论 0
@Override
public void renderItem(@Nonnull ItemStack stack, TransformType transformType) {
    if (Block.getBlockFromItem(stack.getItem()) == ModBlocks.DANKNULL_DOCK) {
        GuiUtils.bindTexture(DankTextures.DOCK_TEXTURE);
        GlStateManager.enableLighting();
        GlStateManager.rotate(180, 0, 0, 180);
        GlStateManager.translate(-0.5, -1.5, 0.5);
        MODEL.render(0.0625F);
        GlStateManager.translate(0.5, 1.5, -0.5);
        GlStateManager.disableLighting();
        GlStateManager.disableDepth();
        GlStateManager.enableBlend();
        GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
        renderDankNull(stack);
    }
}
DankNullRenderer.java 文件源码 项目:DankNull 阅读 24 收藏 0 点赞 0 评论 0
public void renderItem(ItemStack stack, IBakedModel model) {
    if (!stack.isEmpty()) {
        if (model.isBuiltInRenderer() && !(stack.getItem() instanceof ItemDankNullHolder)) {
            Minecraft.getMinecraft().getItemRenderer().renderItem(EasyMappings.player(), stack, ItemCameraTransforms.TransformType.NONE);
        }
        else {
            RenderModel.render(model, stack);
            if (stack.hasEffect()) {
                if ((stack.getItem() instanceof ItemDankNull)) {
                    if (!Options.superShine) {
                        GlintEffectRenderer.apply(model, stack.getItemDamage());
                    }
                    else {
                        GlintEffectRenderer.apply2(model, DankNullUtils.getColor(stack.getItemDamage(), false));
                    }
                }
                else {
                    GlintEffectRenderer.apply(model, -1);
                }
            }
        }
    }
}
InfusionRender.java 文件源码 项目:BetterBeginningsReborn 阅读 29 收藏 0 点赞 0 评论 0
private void renderIngredients(TileEntityInfusionRepair te, double x, double y, double z, float partialTicks)
   {
GlStateManager.pushMatrix();
IItemHandler itemHandler = CapUtils.getItemHandler(te);
for(int slot = 0; slot < 8; slot++)
{
    ItemStack stack = itemHandler.getStackInSlot(TileEntityInfusionRepair.SLOT_ENCH_ITEM + 1 + slot);
    Vec2f ingredientPos = ingredientPositions[slot];
    if(Prep1_11.isEmpty(stack)) continue;

    GlStateManager.pushMatrix();
    GlStateManager.translate(ingredientPos.x * PIXEL_SIZE, -0.15F, ingredientPos.y * PIXEL_SIZE);
    GlStateManager.scale(0.5F, 0.5F, 0.5F);
    GlStateManager.rotate(((mc.player.ticksExisted + partialTicks) * 60.0f) / 10.0F, 0.0F, 1.0F, 0.0F);
    mc.getRenderItem().renderItem(stack, TransformType.GROUND);
    GlStateManager.scale(1.0F, 1.0F, 1.0F);
    GlStateManager.popMatrix();
}
GlStateManager.popMatrix();
   }
WickerBasketRender.java 文件源码 项目:BetterBeginningsReborn 阅读 18 收藏 0 点赞 0 评论 0
@Override
   public void render(TileEntityWickerBasket te, double x, double y, double z, float partialTicks,
           int destroyStage, float alpha)
   {
rand.setSeed(te.getWorld().getSeed());
IItemHandler itemHandler = CapUtils.getItemHandler(te);
for(int slot = 0; slot < itemHandler.getSlots(); slot++)
{
    GlStateManager.pushMatrix();
    //Translate into the centre of the basket, above the bottom
    GlStateManager.translate(x + 0.5F, y + 0.2F + 0.075F * slot, z + 0.5F);
    GlStateManager.translate(getRandDisplacement(rand), 0.0F, getRandDisplacement(rand));
    GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
    GlStateManager.rotate(360.0F * rand.nextFloat(), 0.0F, 0.0F, 1.0F);
    GlStateManager.scale(0.8F, 0.8F, 0.8F);
    Minecraft.getMinecraft().getRenderItem().renderItem(itemHandler.getStackInSlot(slot), TransformType.FIXED);
    GlStateManager.popMatrix();
}
   }
MultiLayerModel.java 文件源码 项目:CustomWorldGen 阅读 26 收藏 0 点赞 0 评论 0
public MultiLayerBakedModel(ImmutableMap<Optional<BlockRenderLayer>, IBakedModel> models, IBakedModel missing, ImmutableMap<TransformType, TRSRTransformation> cameraTransforms)
{
    this.models = models;
    this.cameraTransforms = cameraTransforms;
    this.missing = missing;
    if(models.containsKey(Optional.absent()))
    {
        base = models.get(Optional.absent());
    }
    else
    {
        base = missing;
    }
    ImmutableMap.Builder<Optional<EnumFacing>, ImmutableList<BakedQuad>> quadBuilder = ImmutableMap.builder();
    quadBuilder.put(Optional.<EnumFacing>absent(), buildQuads(models, Optional.<EnumFacing>absent()));
    for(EnumFacing side: EnumFacing.values())
    {
        quadBuilder.put(Optional.of(side), buildQuads(models, Optional.of(side)));
    }
    quads = quadBuilder.build();
}
ItemLayerModel.java 文件源码 项目:CustomWorldGen 阅读 31 收藏 0 点赞 0 评论 0
public BakedItemModel(ImmutableList<BakedQuad> quads, TextureAtlasSprite particle, ImmutableMap<TransformType, TRSRTransformation> transforms, ItemOverrideList overrides, IBakedModel otherModel)
{
    this.quads = quads;
    this.particle = particle;
    this.transforms = transforms;
    this.overrides = overrides;
    if(otherModel != null)
    {
        this.otherModel = otherModel;
        this.isCulled = true;
    }
    else
    {
        ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();
        for(BakedQuad quad : quads)
        {
            if(quad.getFace() == EnumFacing.SOUTH)
            {
                builder.add(quad);
            }
        }
        this.otherModel = new BakedItemModel(builder.build(), particle, transforms, overrides, this);
        isCulled = false;
    }
}
ModelToolShardInner.java 文件源码 项目:BetterWithAddons 阅读 24 收藏 0 点赞 0 评论 0
@Override
public IBakedModel bake(IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter) {
    ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();
    Optional<TRSRTransformation> transform = state.apply(Optional.<IModelPart>absent());
    for(int i = 0; i < textures.size(); i++)
    {
        ResourceLocation tex = textures.get(i);
        if(tex.toString().equals("minecraft:missingno"))
            continue;
        TextureAtlasSprite sprite = bakedTextureGetter.apply(tex);

        String breakLocation = new ResourceLocation(Reference.MOD_ID,"items/breakmask").toString();
        TextureAtlasSprite breakTemplate = Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(breakLocation);

        builder.addAll(getQuadsForSprite(i, breakTemplate, sprite, format, transform));
        //builder.addAll(ItemTextureQuadConverter.convertTexture(format, transform, breakTemplate, sprite, NORTH_Z + Z_OFFSET * i, EnumFacing.NORTH, 0xffffffff));
       // builder.addAll(ItemTextureQuadConverter.convertTexture(format, transform, breakTemplate, sprite, SOUTH_Z - Z_OFFSET * i, EnumFacing.SOUTH, 0xffffffff));
    }
    TextureAtlasSprite particle = bakedTextureGetter.apply(textures.isEmpty() ? new ResourceLocation("missingno") : textures.get(0));
    ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> map = IPerspectiveAwareModel.MapWrapper.getTransforms(state);
    return new BakedItemModel(builder.build(), particle, map, null);
}
ModelToolShardInner.java 文件源码 项目:BetterWithAddons 阅读 26 收藏 0 点赞 0 评论 0
public BakedItemModel(ImmutableList<BakedQuad> quads, TextureAtlasSprite particle, ImmutableMap<TransformType, TRSRTransformation> transforms, IBakedModel otherModel) {
    this.quads = quads;
    this.particle = particle;
    this.transforms = transforms;
    if(otherModel != null)
    {
        this.otherModel = otherModel;
        this.isCulled = true;
    }
    else
    {
        ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();
        for(BakedQuad quad : quads)
        {
            if(quad.getFace() == EnumFacing.SOUTH)
            {
                builder.add(quad);
            }
        }
        this.otherModel = new BakedItemModel(builder.build(), particle, transforms, this);
        isCulled = false;
    }
}
Fixed3DBlockModel.java 文件源码 项目:CrystalMod 阅读 22 收藏 0 点赞 0 评论 0
/** Get the default transformations for inside inventories and third person */
    protected static ImmutableMap<TransformType, TRSRTransformation> getBlockTransforms() {
        ImmutableMap.Builder<TransformType, TRSRTransformation> builder = ImmutableMap.builder();

        // Copied from ForgeBlockStateV1
        /*builder.put(TransformType.THIRD_PERSON, TRSRTransformation.blockCenterToCorner(new TRSRTransformation(new Vector3f(0, 1.5f / 16, -2.75f / 16),
                TRSRTransformation.quatFromYXZDegrees(new Vector3f(10, -45, 170)), new Vector3f(0.375f, 0.375f, 0.375f), null)));
*/
        // Gui
        {
            Matrix4f rotationMatrix = new Matrix4f();
            rotationMatrix.setIdentity();
            rotationMatrix = rotateTowardsFace(EnumFacing.SOUTH, EnumFacing.EAST);

            Matrix4f result = new Matrix4f();
            result.setIdentity();
            // Multiply by the last matrix transformation FIRST
            result.mul(rotationMatrix);

            TRSRTransformation trsr = new TRSRTransformation(result);

            builder.put(TransformType.GUI, trsr);
        }

        return builder.build();
    }
ItemRenderFlag.java 文件源码 项目:CrystalMod 阅读 19 收藏 0 点赞 0 评论 0
@Override
public void render(ItemStack stack) {
    TransformType type = lastTransform;
    GlStateManager.pushMatrix();
    GlStateManager.translate(0.5, 0.5, 0.5);
    GlStateManager.rotate(180, 1, 0, 0);
    if(type == TransformType.GUI){
        GlStateManager.translate(-1, -0.1, 0);
        GlStateManager.scale(0.8, 0.8, 0.8);
        GlStateManager.rotate(90, 0, 1, 0);
    }else if(type == TransformType.THIRD_PERSON_RIGHT_HAND){
        GlStateManager.rotate(90, 0, 1, 0);
        GlStateManager.rotate(80, -1, 0, 0);
        GlStateManager.rotate(-50, 0, 0, 1);
        GlStateManager.translate(-0.8, 0, 0.4);
    }else if(type == TransformType.GROUND || type == TransformType.FIRST_PERSON_RIGHT_HAND){
        GlStateManager.translate(-0.5, 0, 0.5);
        GlStateManager.rotate(-45, 0, 1, 0);
    }
    GlStateManager.translate(-0.5, -0.5, -0.5);
    int color = ItemNBTHelper.getInteger(stack, "FlagColor", Color.WHITE.getRGB());
    TagManager.getInstance().renderFlag(color, 90);
    Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
    GlStateManager.popMatrix();
}
RenderTileEntityCustomSpawner.java 文件源码 项目:CrystalMod 阅读 23 收藏 0 点赞 0 评论 0
public void renderSpawner(CustomSpawnerBaseLogic baseLogic, double x, double y, double z, float partialTicks) {
    Entity entity = baseLogic.getEntityForRenderer();

    if (entity != null)
    {
        EntityEssenceInstance<?> essence = ItemMobEssence.getEssence(baseLogic.getEntityNameToSpawn());
        if(essence == null){
            return;
        }
        if (baseLogic.powered) partialTicks = 0f;
        GlStateManager.pushMatrix();
        entity.setWorld(baseLogic.getSpawnerWorld());

        float f1 = 0.4375F * essence.getRenderScale(TransformType.NONE);
        GlStateManager.translate(0.0F, 0.4F, 0.0F);
        GlStateManager.rotate((float) (baseLogic.renderRotation1 + (baseLogic.renderRotation0 - baseLogic.renderRotation1) * partialTicks) * 10.0F, 0.0F, 1.0F, 0.0F);
        //GlStateManager.rotate(-30.0F, 1.0F, 0.0F, 0.0F);
        GlStateManager.translate(0.0F, -0.4F, 0.0F);
        GlStateManager.scale(f1, f1, f1);
        entity.setLocationAndAngles(x, y, z, 0.0F, 0.0F);
        Minecraft.getMinecraft().getRenderManager().doRenderEntity(entity, 0.0D, 0.0D, 0.0D, 0.0F, partialTicks, true);
        GlStateManager.popMatrix();
    }
}
BlueprintRender.java 文件源码 项目:Qbar 阅读 21 收藏 0 点赞 0 评论 0
@Override
public Pair<? extends IBakedModel, Matrix4f> handlePerspective(
        final ItemCameraTransforms.TransformType cameraTransformType)
{
    if (cameraTransformType.equals(TransformType.GUI))
    {
        return Pair.of(this,
                new TRSRTransformation(new Vector3f(0F, 0, 0F), null,
                        new Vector3f(0.625F * 1.5f, 0.625F * 1.5f, 0.625F * 1.5f),
                        TRSRTransformation.quatFromXYZ(0, (float) Math.PI, 0)).getMatrix());
    }
    return Pair.of(this,
            new TRSRTransformation(new Vector3f(0F, -.2F, 0F), null,
                    new Vector3f(0.625F / 2, 0.625F / 2, 0.625F / 2),
                    TRSRTransformation.quatFromXYZ((float) -Math.PI / 2, 0, 0)).getMatrix());
}
EnderTankItemRender.java 文件源码 项目:EnderStorage 阅读 18 收藏 0 点赞 0 评论 0
@Override
public void renderItem(ItemStack item, TransformType transformType) {
    GlStateManager.pushMatrix();
    CCRenderState ccrs = CCRenderState.instance();
    ccrs.reset();
    ccrs.pullLightmap();
    Frequency frequency = Frequency.readFromStack(item);
    FluidStack fluidStack = TankSynchroniser.getClientLiquid(frequency);
    RenderTileEnderTank.renderTank(ccrs, 2, 0F, frequency, 0, 0, 0, 0);
    if (fluidStack != null && RenderUtils.shouldRenderFluid(fluidStack)) {
        RenderTileEnderTank.renderLiquid(fluidStack, 0, 0, 0);
    }
    //Fixes issues with inventory rendering.
    //The Portal renderer modifies blend and disables it.
    //Vanillas inventory relies on the fact that items don't modify gl so it never bothers to set it again.
    GlStateManager.enableBlend();
    GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
    GlStateManager.popMatrix();
}
RenderExample.java 文件源码 项目:ISBRH 阅读 19 收藏 0 点赞 0 评论 0
@Override
public void renderInventoryBlock(ItemStack itemStack,
                                 TransformType transformType, int renderId) {

    BlockExample block = (BlockExample) Block.getBlockFromItem(itemStack.getItem());

    Tessellator tessellator = Tessellator.getInstance();
    SimpleBlockRender render = new SimpleBlockRender();
    render.worldRenderer = tessellator.getWorldRenderer();
    render.setRenderBounds(0.2F, 0.0F, 0.2F, 0.8F, 0.1F, 0.8F);
    this.renderInInventory(tessellator, render, block, transformType);

    render.setRenderBounds(0.45F, 0.1F, 0.45F, 0.55F, 0.8F, 0.55F);
    this.renderInInventory(tessellator, render, block, transformType);

    render.setRenderBounds(0.0F, 0.8F, 0.0F, 1F, 0.9F, 1F);
    this.renderInInventory(tessellator, render, block, transformType);

}
RenderExample.java 文件源码 项目:ISBRH 阅读 20 收藏 0 点赞 0 评论 0
private void renderInInventory(Tessellator tessellator,
                               SimpleBlockRender render, BlockExample block, TransformType transformType) {
    GlStateManager.translate(-0.5F, -0.5F, -0.5F);
    GlStateManager.pushMatrix();

    if (transformType.equals(TransformType.THIRD_PERSON)) {
        GlStateManager.scale(0.55F, 0.55F, 0.55F);
        GlStateManager.rotate(45, 1.0F, 0.0F, 0.0F);
        GlStateManager.rotate(180F, 0.0F, 0.0F, 1.0F);
        GlStateManager.translate(-1.4F, -1.9F, -1F);
    }

    render.renderInventoryStandardBlock(block, block.getDefaultState(), tessellator);
    GlStateManager.popMatrix();
    GlStateManager.translate(0.5F, 0.5F, 0.5F);
}
RenderItemISBRH.java 文件源码 项目:ISBRH 阅读 26 收藏 0 点赞 0 评论 0
@Override
protected void renderItemModelTransform(ItemStack stack, IBakedModel model,
        ItemCameraTransforms.TransformType cameraTransformType)
{
    this.textureManager.bindTexture(TextureMap.locationBlocksTexture);
    this.textureManager.getTexture(TextureMap.locationBlocksTexture)
            .setBlurMipmap(false, false);
    this.preTransform(stack);
    GlStateManager.enableRescaleNormal();
    GlStateManager.alphaFunc(516, 0.1F);
    GlStateManager.enableBlend();
    GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
    GlStateManager.pushMatrix();

    model = net.minecraftforge.client.ForgeHooksClient
            .handleCameraTransforms(model, cameraTransformType);

    renderItem(stack, model, cameraTransformType);
    GlStateManager.popMatrix();
    GlStateManager.disableRescaleNormal();
    GlStateManager.disableBlend();
    this.textureManager.bindTexture(TextureMap.locationBlocksTexture);
    this.textureManager.getTexture(TextureMap.locationBlocksTexture)
            .restoreLastBlurMipmap();
}
RenderItemISBRH.java 文件源码 项目:ISBRH 阅读 19 收藏 0 点赞 0 评论 0
@Override
public void renderItemIntoGUI(ItemStack stack, int x, int y)
{
    IBakedModel ibakedmodel = this.getItemModelMesher().getItemModel(stack);
    GlStateManager.pushMatrix();
    this.textureManager.bindTexture(TextureMap.locationBlocksTexture);
    this.textureManager.getTexture(TextureMap.locationBlocksTexture)
            .setBlurMipmap(false, false);
    GlStateManager.enableRescaleNormal();
    GlStateManager.enableAlpha();
    GlStateManager.alphaFunc(516, 0.1F);
    GlStateManager.enableBlend();
    GlStateManager.blendFunc(770, 771);
    GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
    setupGuiTransform(x, y, ibakedmodel.isGui3d());
    applyTransform(ibakedmodel.getItemCameraTransforms().gui);
    renderItem(stack, ibakedmodel, ItemCameraTransforms.TransformType.GUI);
    GlStateManager.disableAlpha();
    GlStateManager.disableRescaleNormal();
    GlStateManager.disableLighting();
    GlStateManager.popMatrix();
    this.textureManager.bindTexture(TextureMap.locationBlocksTexture);
    this.textureManager.getTexture(TextureMap.locationBlocksTexture)
            .restoreLastBlurMipmap();
}
HSOBJModelWrapper.java 文件源码 项目:Hard-Science 阅读 27 收藏 0 点赞 0 评论 0
@Override
public IBakedModel bake(IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter)
{
    ImmutableMap.Builder<TransformType, TRSRTransformation> builder = ImmutableMap.builder();

    // This is borked up for the 1st and 3rd person transforms - OBJ models not needed right now so setting aside
    // Qould normally not belong here - should register transforms at item creation time and then retrieve them here.

    builder.put(TransformType.FIRST_PERSON_RIGHT_HAND, getTransform(  0.250f, 1.000f,  0.000f, 000, -90,  25, 0.65f));
    builder.put(TransformType.FIRST_PERSON_LEFT_HAND,  getTransform( -0.250f, 1.000f,  0.000f, 000,  90, -25, 0.65f));

    builder.put(TransformType.THIRD_PERSON_RIGHT_HAND, getTransform(  0.000f, 0.000f,  0.000f, 000, 000, 000, 1.0f));
    builder.put(TransformType.THIRD_PERSON_LEFT_HAND,  getTransform(  0.000f, 0.000f,  0.000f, 000, 000, 000, 1.0f));

    builder.put(TransformType.FIXED,                   getTransform(  0.500f, 0.500f,  0.500f, 0, 180, 0,   0.9f));
    builder.put(TransformType.GUI,                     getTransform(  0.500f, 0.500f,  0.500f, 0, 0, 45,  1.0f));
    builder.put(TransformType.GROUND,                  getTransform(  0.500f, 0.400f,  0.500f, 0, 0, 0,     0.6f));


    IModelState perspectiveState = new SimpleModelState(builder.build());

    return wrapped.bake(perspectiveState, format, bakedTextureGetter);
}
ModelDescription.java 文件源码 项目:MCAnm 阅读 53 收藏 0 点赞 0 评论 0
private ImmutableMap<TransformType, TRSRTransformation> parseViewMapping(
        JsonObject parentObject,
        JsonDeserializationContext context) {
    if (!parentObject.has("transforms")) {
        return EMPTY_MAP;
    }
    JsonElement viewElement = parentObject.get("transforms");
    if (viewElement.isJsonPrimitive() && viewElement.getAsJsonPrimitive().isString()) {
        String viewString = viewElement.getAsString();
        ResourceLocation id = new ResourceLocation(viewString);
        return PREDEFINED_TRANSFORMS.getOrDefault(id, EMPTY_MAP);
    }
    if (viewElement.isJsonObject()) {
        JsonObject viewObject = viewElement.getAsJsonObject();

        return parseTransformObject(context, viewObject);
    }
    ImmutableMap.Builder<TransformType, TRSRTransformation> result = ImmutableMap.builder();
    TRSRTransformation onlyTransformation = context.deserialize(viewElement, TRSRTransformation.class);
    for (TransformType transformType : TransformType.values()) {
        result.put(transformType, onlyTransformation);
    }
    return result.build();
}
ModelDescription.java 文件源码 项目:MCAnm 阅读 25 收藏 0 点赞 0 评论 0
private ImmutableMap<TransformType, TRSRTransformation> parseTransformObject(
        JsonDeserializationContext context,
        JsonObject viewObject) {
    ListMultimap<String, JsonElement> transformEntries = MultimapBuilder.hashKeys().arrayListValues(1).build();
    for (Map.Entry<String, JsonElement> entry : viewObject.entrySet()) {
        transformEntries.put(entry.getKey().toUpperCase(Locale.ROOT), entry.getValue());
    }

    ImmutableMap.Builder<TransformType, TRSRTransformation> result = ImmutableMap.builder();
    for (TransformType transformType : TransformType.values()) {
        String transformName = transformType.name().toUpperCase(Locale.ROOT);
        List<JsonElement> entryList = transformEntries.get(transformName);
        if (entryList.isEmpty()) {
            continue;
        }
        if (entryList.size() > 1) {
            throw new JsonParseException("Two transform entries for " + transformName);
        }
        JsonElement onlyElement = entryList.get(0);
        result.put(transformType, context.deserialize(onlyElement, TRSRTransformation.class));
    }
    return result.build();
}
ModelLoader.java 文件源码 项目:MCAnm 阅读 25 收藏 0 点赞 0 评论 0
@Override
public Pair<? extends IBakedModel, Matrix4f> handlePerspective(TransformType cameraTransformType) {
    Matrix4f matr = new Matrix4f();
    matr.setIdentity();
    if (cameraTransformType == TransformType.THIRD_PERSON_RIGHT_HAND) {
        matr.setTranslation(new Vector3f(0.5f, 0.375f, 0.5f));
    }
    if (cameraTransformType == TransformType.THIRD_PERSON_LEFT_HAND) {
        matr.setTranslation(new Vector3f(-0.5f, 0.375f, 0.5f));
    }
    if (cameraTransformType == TransformType.FIRST_PERSON_RIGHT_HAND) {
        matr.setTranslation(new Vector3f(0.25f, 0, 0.5f));
    }
    if (cameraTransformType == TransformType.FIRST_PERSON_LEFT_HAND) {
        matr.setTranslation(new Vector3f(-0.75f, 0, 0.5f));
    }
    // Additional transformations
    TRSRTransformation tr = bakedState.apply(Optional.of(cameraTransformType)).orNull();
    if (tr != null && tr != TRSRTransformation.identity()) {
        matr.mul(tr.getMatrix(), matr);
    }
    return Pair.of(this, matr);
}
RenderExample.java 文件源码 项目:ISBRH 阅读 19 收藏 0 点赞 0 评论 0
@Override
public void renderInventoryBlock(ItemStack itemStack,
                                 TransformType transformType, int renderId) {

    BlockExample block = (BlockExample) Block.getBlockFromItem(itemStack.getItem());

    Tessellator tessellator = Tessellator.getInstance();
    SimpleBlockRender render = new SimpleBlockRender();
    render.worldRenderer = tessellator.getWorldRenderer();
    render.setRenderBounds(0.2F, 0.0F, 0.2F, 0.8F, 0.1F, 0.8F);
    this.renderInInventory(tessellator, render, block, transformType);

    render.setRenderBounds(0.45F, 0.1F, 0.45F, 0.55F, 0.8F, 0.55F);
    this.renderInInventory(tessellator, render, block, transformType);

    render.setRenderBounds(0.0F, 0.8F, 0.0F, 1F, 0.9F, 1F);
    this.renderInInventory(tessellator, render, block, transformType);

}
RenderExample.java 文件源码 项目:ISBRH 阅读 18 收藏 0 点赞 0 评论 0
private void renderInInventory(Tessellator tessellator,
                               SimpleBlockRender render, BlockExample block, TransformType transformType) {
    GlStateManager.translate(-0.5F, -0.5F, -0.5F);
    GlStateManager.pushMatrix();

    if (transformType.equals(TransformType.THIRD_PERSON)) {
        GlStateManager.scale(0.55F, 0.55F, 0.55F);
        GlStateManager.rotate(45, 1.0F, 0.0F, 0.0F);
        GlStateManager.rotate(180F, 0.0F, 0.0F, 1.0F);
        GlStateManager.translate(-1.4F, -1.9F, -1F);
    }

    render.renderInventoryStandardBlock(block, block.getDefaultState(), tessellator);
    GlStateManager.popMatrix();
    GlStateManager.translate(0.5F, 0.5F, 0.5F);
}
RenderItemISBRH.java 文件源码 项目:ISBRH 阅读 24 收藏 0 点赞 0 评论 0
@Override
protected void renderItemModelTransform(ItemStack stack, IBakedModel model,
        ItemCameraTransforms.TransformType cameraTransformType)
{
    this.textureManager.bindTexture(TextureMap.locationBlocksTexture);
    this.textureManager.getTexture(TextureMap.locationBlocksTexture)
            .setBlurMipmap(false, false);
    this.preTransform(stack);
    GlStateManager.enableRescaleNormal();
    GlStateManager.alphaFunc(516, 0.1F);
    GlStateManager.enableBlend();
    GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
    GlStateManager.pushMatrix();

    model = net.minecraftforge.client.ForgeHooksClient
            .handleCameraTransforms(model, cameraTransformType);

    renderItem(stack, model, cameraTransformType);
    GlStateManager.popMatrix();
    GlStateManager.disableRescaleNormal();
    GlStateManager.disableBlend();
    this.textureManager.bindTexture(TextureMap.locationBlocksTexture);
    this.textureManager.getTexture(TextureMap.locationBlocksTexture)
            .restoreLastBlurMipmap();
}
RenderItemISBRH.java 文件源码 项目:ISBRH 阅读 17 收藏 0 点赞 0 评论 0
@Override
public void renderItemIntoGUI(ItemStack stack, int x, int y)
{
    IBakedModel ibakedmodel = this.getItemModelMesher().getItemModel(stack);
    GlStateManager.pushMatrix();
    this.textureManager.bindTexture(TextureMap.locationBlocksTexture);
    this.textureManager.getTexture(TextureMap.locationBlocksTexture)
            .setBlurMipmap(false, false);
    GlStateManager.enableRescaleNormal();
    GlStateManager.enableAlpha();
    GlStateManager.alphaFunc(516, 0.1F);
    GlStateManager.enableBlend();
    GlStateManager.blendFunc(770, 771);
    GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
    setupGuiTransform(x, y, ibakedmodel.isGui3d());
    applyTransform(ibakedmodel.getItemCameraTransforms().gui);
    renderItem(stack, ibakedmodel, ItemCameraTransforms.TransformType.GUI);
    GlStateManager.disableAlpha();
    GlStateManager.disableRescaleNormal();
    GlStateManager.disableLighting();
    GlStateManager.popMatrix();
    this.textureManager.bindTexture(TextureMap.locationBlocksTexture);
    this.textureManager.getTexture(TextureMap.locationBlocksTexture)
            .restoreLastBlurMipmap();
}


问题


面经


文章

微信
公众号

扫码关注公众号