Перейти к содержанию

Слои#

Создадим класс LayerQuiver.

public class LayerQuiver implements LayerRenderer<EntityPlayer> {
   @Override
   public void doRenderLayer(EntityPlayer player, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) {
       GlStateManager.pushMatrix();
       //Позиция предмета
       GlStateManager.translate(0, 0.25F, 0.15F);
       //Вращение предмета
       GlStateManager.rotate(180F, 0, 0, 20);
       //Размеры предмета
       GlStateManager.scale(0.85F, 0.85F, 0.85F);

       //Условие: Если игрок присел, то мы меняем положение нашего колчана.
       if (player.isSneaking()) {
           GlStateManager.rotate(-30F, 1, 0, 0);
           GlStateManager.translate(0, -0.155F, 0.04F);
       }

       //Рендер предмета(обычный из Minecraft)
       Minecraft.getMinecraft().getRenderItem().renderItem(new ItemStack(ItemsRegister.QUIVER), player, ItemCameraTransforms.TransformType.FIXED, false);
       GlStateManager.popMatrix();
   }

   @Override
   public boolean shouldCombineTextures() {
       return false;
   }
}

Создадим класс LayersRegister.

public class LayersRegister {
    public static void register() {
        setLayer(new LayerQuiver());
    }

    private static void setLayer(final LayerRenderer layer) {
        Minecraft.getMinecraft().getRenderManager().getSkinMap().get("default").addLayer(layer);
        Minecraft.getMinecraft().getRenderManager().getSkinMap().get("slim").addLayer(layer);
    }
}

Перейдём в ClientProxy и добавим в метод init такой код:

LayersRegister.register();

Заходим в игру и переключаемся на вид от третьего лица и видим, что за спиной у нас колчан. (Это может быть не только колчан, но и что-то другое, зависит от вашего выбора)

Колчан