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

ModelPortableBarrel.java 文件源码 项目:BetterChests 阅读 20 收藏 0 点赞 0 评论 0
@Override
public void render(ItemStack stack, float patrtialTicks) {
    GlStateManager.pushMatrix();
    RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
    renderItem.renderItem(stack, parent);
    InventoryBPortableBarrel barrel = BlocksItemsBetterChests.betterportablebarrel.getInventoryFor(stack, null);
    if (barrel != null && barrel.getChestPart().isItemSet()) {
        InventoryPartBarrel part = barrel.getChestPart();
        GlStateManager.pushMatrix();
        GlStateManager.translate(0, 0, -0.05);
        GlStateManager.scale(0.8, 0.8, 0.8);

        renderItem.renderItem(part.getDummy(), TransformType.FIXED);

        GlStateManager.enableBlend();
        GlStateManager.popMatrix();
    }
    GlStateManager.popMatrix();
}
ClientEventListener.java 文件源码 项目:BetterChests 阅读 25 收藏 0 点赞 0 评论 0
@SubscribeEvent
public void renderPlayer(RenderPlayerEvent.Post event) {
    EntityPlayer player = event.getEntityPlayer();

    ItemStack bag = getBagInInv(player);

    if (!bag.isEmpty()) {
        GL11.glPushMatrix();

        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        GL11.glTranslatef(0.0F, 17 * ONE_PIXEL, 0.0F);
        GL11.glRotatef( - player.renderYawOffset, 0.0F, 1.0F, 0.0F);
        GL11.glTranslatef(0.0F, 0.0F, -4 * ONE_PIXEL);
        if (player.isSneaking()) {
            GL11.glTranslatef(0, -5 * ONE_PIXEL, 0);
            GL11.glRotatef(28.6F, 1.0F, 0.0F, 0.0F);
            GL11.glTranslatef(0, 0, -3 * ONE_PIXEL);
        }

        Minecraft.getMinecraft().getRenderItem().renderItem(bag, TransformType.FIXED);
        GL11.glPopMatrix();
    }
}
DevNullItemOverride.java 文件源码 项目:OpenBlocks 阅读 19 收藏 0 点赞 0 评论 0
@Override
public IBakedModel handleItemState(IBakedModel originalModel, ItemStack stack, World world, EntityLivingBase entity) {
    final Pair<ItemStack, Integer> r = ItemDevNull.getContents(stack);
    final int depth = Math.max(1, r.getRight());

    if (depth >= ItemDevNull.STACK_LIMIT)
        return emptyFrameModels2d.get(ItemDevNull.STACK_LIMIT);

    final int modelId = depth - 1;
    final ItemStack innerStack = r.getLeft();
    if (innerStack.isEmpty())
        return emptyFrameModels2d.get(modelId);

    final IBakedModel innerModel = getItemModel(innerStack, world, entity);

    final ModelKey key = new ModelKey(innerModel, modelId, innerStack.getCount(), TransformType.NONE);
    return wrappedModelCache.getUnchecked(key).getLeft();
}
PathModel.java 文件源码 项目:OpenBlocks 阅读 16 收藏 0 点赞 0 评论 0
@Override
public IBakedModel bake(IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter) {
    final Map<TransformType, Matrix4f> transforms = extractInventoryTransforms(state, format, bakedTextureGetter);

    List<TextureAtlasSprite> textures = Lists.newArrayList();
    Optional<TextureAtlasSprite> maybeParticle = Optional.empty();

    for (Map.Entry<String, TextureAtlasSprite> e : this.textures.bakeWithKeys(bakedTextureGetter).entrySet()) {
        if (e.getKey().equals("particle")) {
            maybeParticle = Optional.of(e.getValue());
        } else {
            textures.add(e.getValue());
        }
    }

    final TextureAtlasSprite missing = bakedTextureGetter.apply(TextureMap.LOCATION_MISSING_TEXTURE);
    final TextureAtlasSprite particle = maybeParticle.orElse(missing);

    if (textures.isEmpty()) textures.add(missing);

    return new Baked(particle, textures, format, transforms);
}
PathModel.java 文件源码 项目:OpenBlocks 阅读 18 收藏 0 点赞 0 评论 0
private static Map<TransformType, Matrix4f> extractInventoryTransformsFromState(IModelState state) {
    final Map<TransformType, Matrix4f> output = Maps.newHashMap();
    for (TransformType type : TransformType.values()) {
        Matrix4f mat = null;
        final Optional<TRSRTransformation> maybeTransform = state.apply(Optional.of(type));
        if (maybeTransform.isPresent()) {
            final TRSRTransformation transform = maybeTransform.get();
            if (!transform.equals(TRSRTransformation.identity())) {
                mat = TRSRTransformation.blockCornerToCenter(transform).getMatrix();
            }
        }

        output.put(type, mat);
    }
    return output;
}
MultiLayerModel.java 文件源码 项目:OpenModsLib 阅读 26 收藏 0 点赞 0 评论 0
public MultiLayerBakedModel(Map<BlockRenderLayer, IBakedModel> models, IBakedModel base, IBakedModel missing, ImmutableMap<TransformType, TRSRTransformation> cameraTransforms) {
    super(base, cameraTransforms);
    this.models = ImmutableMap.copyOf(models);
    this.missing = missing;

    final List<BakedQuad> quads = Lists.newArrayList();

    for (BlockRenderLayer layer : BlockRenderLayer.values()) {
        final IBakedModel model = models.get(layer);
        if (model != null) {
            buildQuadsForLayer(quads, model);
        }
    }

    this.quads = ImmutableList.copyOf(quads);
}
PerspectiveAwareModel.java 文件源码 项目:OpenModsLib 阅读 25 收藏 0 点赞 0 评论 0
@Override
public IBakedModel bake(final IModelState state, final VertexFormat format, final Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter) {
    final Map<TransformType, IBakedModel> bakedModels = Maps.transformValues(models, location -> bakeModel(location, state, format, bakedTextureGetter));

    IModel missing = ModelLoaderRegistry.getMissingModel();
    IBakedModel bakedMissing = missing.bake(missing.getDefaultState(), format, bakedTextureGetter);

    final IBakedModel bakedBase;
    if (base.isPresent()) {
        bakedBase = bakeModel(base.get(), state, format, bakedTextureGetter);
    } else {
        bakedBase = bakedMissing;
    }

    return new PerspectiveAwareBakedModel(
            bakedModels,
            bakedBase,
            PerspectiveMapWrapper.getTransforms(state));
}
MagnetLayer.java 文件源码 项目:EnderIO 阅读 28 收藏 0 点赞 0 评论 0
@Override
public void doRenderLayer(@Nonnull RenderPlayer renderPlayer, EntityEquipmentSlot equipmentSlot, @Nonnull ItemStack piece,
    @Nonnull AbstractClientPlayer entitylivingbaseIn, float p_177141_2_, float p_177141_3_, float partialTicks, float p_177141_5_, float p_177141_6_,
    float p_177141_7_, float scale) {
  if (equipmentSlot != null) {
    return;
  }

  GlStateManager.pushMatrix();

  if (entitylivingbaseIn.isSneaking()) {
    GlStateManager.translate(0.0F, 0.2F, 0.0F);
  }

  renderPlayer.getMainModel().bipedHead.postRender(0.0625F);
  GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);

  GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
  GlStateManager.scale(0.75f, 0.9f, 2);
  GlStateManager.translate(0.0F, 2.7f * 0.0625F, .49 * 0.0625F);

  Minecraft.getMinecraft().getItemRenderer().renderItem(entitylivingbaseIn, piece, TransformType.NONE);

  GlStateManager.popMatrix();
}
ModelProgrammingPuzzle.java 文件源码 项目:pnc-repressurized 阅读 20 收藏 0 点赞 0 评论 0
public BakedProgrammingPuzzle(ModelProgrammingPuzzle parent, ImmutableList<BakedQuad> quads,
                              TextureAtlasSprite particle, VertexFormat format,
                              ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> transforms,
                              Map<String, IBakedModel> cache) {
    this.quads = quads;
    this.particle = particle;
    this.format = format;
    this.parent = parent;
    this.transforms = transforms;
    this.cache = cache;
    this.overridesList = new PuzzleOverrideList(Collections.emptyList(), this);
}
TESRDankNullDock.java 文件源码 项目:DankNull 阅读 28 收藏 0 点赞 0 评论 0
public static CCModelState block() {
    ImmutableMap.Builder<TransformType, TRSRTransformation> defaultBlockBuilder = ImmutableMap.builder();
    defaultBlockBuilder.put(TransformType.GUI, TransformUtils.get(0, 0, 0, 30, 225, 0, 0.625f));
    defaultBlockBuilder.put(TransformType.GROUND, TransformUtils.get(0, 3, 0, 0, 0, 0, 0.25f));
    defaultBlockBuilder.put(TransformType.FIXED, TransformUtils.get(0, 0, 5, 90, 0, 0, 0.75f));
    defaultBlockBuilder.put(TransformType.THIRD_PERSON_RIGHT_HAND, TransformUtils.get(0, 2.5f, 3f, 75, 45, 0, 0.375f));
    defaultBlockBuilder.put(TransformType.THIRD_PERSON_LEFT_HAND, TransformUtils.leftify(TransformUtils.get(0, 2.5f, 3F, 75, 45, 0, 0.375f)));
    defaultBlockBuilder.put(TransformType.FIRST_PERSON_RIGHT_HAND, TransformUtils.get(0, 4f, 0, 0, 45, 0, 0.4f));
    defaultBlockBuilder.put(TransformType.FIRST_PERSON_LEFT_HAND, TransformUtils.get(0, 4f, 0, 0, 225, 0, 0.4f));
    return new CCModelState(defaultBlockBuilder.build());
}


问题


面经


文章

微信
公众号

扫码关注公众号