Fix arm positioning (final)

This commit is contained in:
Sollace 2018-08-17 12:32:32 +02:00
parent 3f99784f4f
commit 2752bdcc4c

View file

@ -29,6 +29,7 @@ import net.minecraft.client.renderer.entity.layers.LayerArrow;
import net.minecraft.client.resources.DefaultPlayerSkin; import net.minecraft.client.resources.DefaultPlayerSkin;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.EnumHandSide;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import java.util.Map; import java.util.Map;
@ -81,11 +82,9 @@ public class RenderPonyPlayer extends RenderPlayer implements IRenderPony<Abstra
}.register(ISkull.PLAYER); }.register(ISkull.PLAYER);
protected final RenderPony<AbstractClientPlayer> renderPony = new RenderPony<>(this); protected final RenderPony<AbstractClientPlayer> renderPony = new RenderPony<>(this);
private final RenderPlayer renderPlayer;
public RenderPonyPlayer(RenderManager manager, boolean useSmallArms, ModelWrapper model) { public RenderPonyPlayer(RenderManager manager, boolean useSmallArms, ModelWrapper model) {
super(manager, useSmallArms); super(manager, useSmallArms);
renderPlayer = new RenderPlayer(manager, useSmallArms);
mainModel = renderPony.setPonyModel(model); mainModel = renderPony.setPonyModel(model);
@ -142,12 +141,27 @@ public class RenderPonyPlayer extends RenderPlayer implements IRenderPony<Abstra
@Override @Override
public final void renderRightArm(AbstractClientPlayer player) { public final void renderRightArm(AbstractClientPlayer player) {
renderPlayer.renderRightArm(player); renderArm(player, EnumHandSide.RIGHT);
} }
@Override @Override
public final void renderLeftArm(AbstractClientPlayer player) { public final void renderLeftArm(AbstractClientPlayer player) {
renderPlayer.renderLeftArm(player); renderArm(player, EnumHandSide.LEFT);
}
protected void renderArm(AbstractClientPlayer player, EnumHandSide side) {
renderPony.updateModel(player);
bindEntityTexture(player);
GlStateManager.pushMatrix();
GlStateManager.translate(side == EnumHandSide.LEFT ? 0.2 : -0.2, -0.65, 0);
if (side == EnumHandSide.LEFT) {
super.renderLeftArm(player);
} else {
super.renderRightArm(player);
}
GlStateManager.popMatrix();
} }
@Override @Override