diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/gui/GLWindow.java b/src/hdskins/java/com/voxelmodpack/hdskins/gui/GLWindow.java index bb4d3e29..2d588808 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/gui/GLWindow.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/gui/GLWindow.java @@ -55,7 +55,7 @@ public class GLWindow extends DropTarget { /** * Destroys the current GLWindow context and restores default behaviour. */ - public static void dispose() { + public static synchronized void dispose() { if (instance != null) { instance.close(); } @@ -87,7 +87,7 @@ public class GLWindow extends DropTarget { return frame; } - private void open() throws LWJGLException { + private synchronized void open() throws LWJGLException { // Dimensions from LWJGL may have a non 1:1 scale on high DPI monitors. int x = getScaledPixelUnit(Display.getX()); int y = getScaledPixelUnit(Display.getY()); @@ -151,7 +151,7 @@ public class GLWindow extends DropTarget { ready = true; } - private void close() { + private synchronized void close() { closeRequested = true; try { diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/gui/RenderPlayerModel.java b/src/hdskins/java/com/voxelmodpack/hdskins/gui/RenderPlayerModel.java index 1b23270e..544eab00 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/gui/RenderPlayerModel.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/gui/RenderPlayerModel.java @@ -1,6 +1,7 @@ package com.voxelmodpack.hdskins.gui; import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped.ArmPose; import net.minecraft.client.model.ModelElytra; import net.minecraft.client.model.ModelPlayer; import net.minecraft.client.renderer.GlStateManager; @@ -99,6 +100,9 @@ public class RenderPlayerModel extends RenderLiving player.bipedLeftArmwear.isHidden = !parts.contains(EnumPlayerModelParts.LEFT_SLEEVE); player.bipedRightArmwear.isHidden = !parts.contains(EnumPlayerModelParts.RIGHT_SLEEVE); + player.leftArmPose = ArmPose.EMPTY; + player.rightArmPose = ArmPose.EMPTY; + GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); super.doRender(par1Entity, par2, par4, par6, par8, par9); popAttrib(); diff --git a/src/main/java/com/minelittlepony/hdskins/gui/GuiSkinsMineLP.java b/src/main/java/com/minelittlepony/hdskins/gui/GuiSkinsMineLP.java index cd146086..d529406d 100644 --- a/src/main/java/com/minelittlepony/hdskins/gui/GuiSkinsMineLP.java +++ b/src/main/java/com/minelittlepony/hdskins/gui/GuiSkinsMineLP.java @@ -29,7 +29,7 @@ public class GuiSkinsMineLP extends GuiSkins { private static final String[] panoramas = new String[] { - "minelp:textures/cubemap/sugurcubecorner_%d.png", + "minelp:textures/cubemap/sugarcubecorner_%d.png", "minelp:textures/cubemap/quillsandsofas_%d.png" }; diff --git a/src/main/java/com/minelittlepony/hdskins/gui/RenderPonyModel.java b/src/main/java/com/minelittlepony/hdskins/gui/RenderPonyModel.java index a1f83e99..21f8514d 100644 --- a/src/main/java/com/minelittlepony/hdskins/gui/RenderPonyModel.java +++ b/src/main/java/com/minelittlepony/hdskins/gui/RenderPonyModel.java @@ -6,6 +6,7 @@ import com.minelittlepony.model.capabilities.IModel; import com.minelittlepony.model.components.PonyElytra; import com.minelittlepony.model.player.PlayerModels; import com.minelittlepony.pony.data.Pony; +import com.minelittlepony.pony.data.PonyRace; import com.minelittlepony.render.layer.AbstractPonyLayer; import com.voxelmodpack.hdskins.gui.RenderPlayerModel; @@ -45,11 +46,15 @@ public class RenderPonyModel extends RenderPlayerModel { Pony thePony = MineLittlePony.getInstance().getManager().getPony(loc, slim); - if (thePony.getRace(false).isHuman()) { + PonyRace race = thePony.getRace(false); + + if (race.isHuman()) { return super.getEntityModel(playermodel); } - ModelWrapper pm = playermodel.wet ? PlayerModels.SEAPONY.getModel(slim) : thePony.getModel(true); + boolean canWet = playermodel.wet && (loc == playermodel.getBlankSkin() || race == PonyRace.SEAPONY); + + ModelWrapper pm = canWet ? PlayerModels.SEAPONY.getModel(slim) : thePony.getModel(true); pm.apply(thePony.getMetadata()); renderingAsHuman = false; @@ -77,7 +82,7 @@ public class RenderPonyModel extends RenderPlayerModel { ModelBase model = renderingAsHuman ? modelElytra : ponyElytra; if (!renderingAsHuman) { - GlStateManager.translate(0, ((IModel)getMainModel()).getModelOffsetY(), 0.125F); + GlStateManager.translate(0, ((IModel)getMainModel()).getRiderYOffset(), 0.125F); } model.setRotationAngles(move, swing, ticks, headYaw, headPitch, scale, entity); diff --git a/src/main/java/com/minelittlepony/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/model/AbstractPonyModel.java index a5ab4375..3474a6bc 100644 --- a/src/main/java/com/minelittlepony/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/model/AbstractPonyModel.java @@ -728,8 +728,18 @@ public abstract class AbstractPonyModel extends ModelPlayer implements IModel { } @Override - public float getModelOffsetY() { - return 0.25F; + public float getRiderYOffset() { + if (isChild()) { + return 1.05F; + } + + switch (getMetadata().getSize()) { + case NORMAL: return 0.4F; + case FOAL: return 1.05F; + case TALL: + case LARGE: + default: return 0.25F; + } } /** diff --git a/src/main/java/com/minelittlepony/model/capabilities/IModel.java b/src/main/java/com/minelittlepony/model/capabilities/IModel.java index 2281ac3a..12d2aec0 100644 --- a/src/main/java/com/minelittlepony/model/capabilities/IModel.java +++ b/src/main/java/com/minelittlepony/model/capabilities/IModel.java @@ -73,7 +73,7 @@ public interface IModel extends ICapitated { float getSwingAmount(); - float getModelOffsetY(); + float getRiderYOffset(); default boolean isWearing(PonyWearable wearable) { return getMetadata().isWearing(wearable); diff --git a/src/main/java/com/minelittlepony/model/ponies/ModelSeapony.java b/src/main/java/com/minelittlepony/model/ponies/ModelSeapony.java index 8227b4aa..188a52ab 100644 --- a/src/main/java/com/minelittlepony/model/ponies/ModelSeapony.java +++ b/src/main/java/com/minelittlepony/model/ponies/ModelSeapony.java @@ -133,7 +133,7 @@ public class ModelSeapony extends ModelUnicorn { } @Override - public float getModelOffsetY() { + public float getRiderYOffset() { return 1.05F; } diff --git a/src/main/java/com/minelittlepony/render/layer/LayerPonyElytra.java b/src/main/java/com/minelittlepony/render/layer/LayerPonyElytra.java index 91718757..0057df20 100644 --- a/src/main/java/com/minelittlepony/render/layer/LayerPonyElytra.java +++ b/src/main/java/com/minelittlepony/render/layer/LayerPonyElytra.java @@ -35,8 +35,9 @@ public class LayerPonyElytra extends AbstractPonyLay getRenderer().bindTexture(getElytraTexture(entity)); GlStateManager.pushMatrix(); - GlStateManager.translate(0, getPlayerModel().getModelOffsetY(), 0.125F); + GlStateManager.translate(0, getPlayerModel().getRiderYOffset(), 0.125F); getPlayerModel().transform(BodyPart.BODY); + modelElytra.setRotationAngles(move, swing, ticks, yaw, head, scale, entity); modelElytra.render(entity, move, swing, ticks, yaw, head, scale); diff --git a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_0.png b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_0.png index 81ab56de..9c4cbe1d 100644 Binary files a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_0.png and b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_0.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_1.png b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_1.png index 48f664c5..2acf2b06 100644 Binary files a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_1.png and b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_1.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_2.png b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_2.png index 8ee54ca3..40fa0875 100644 Binary files a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_2.png and b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_2.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_3.png b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_3.png index 02db61d7..3376c13c 100644 Binary files a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_3.png and b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_3.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_4.png b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_4.png index e71a66a8..242d0b9b 100644 Binary files a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_4.png and b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_4.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_5.png b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_5.png index 119ee2fd..580353a8 100644 Binary files a/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_5.png and b/src/main/resources/assets/minelp/textures/cubemap/quillsandsofas_5.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_0.png b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_0.png new file mode 100644 index 00000000..57440f5d Binary files /dev/null and b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_0.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_1.png b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_1.png new file mode 100644 index 00000000..fee99384 Binary files /dev/null and b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_1.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_2.png b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_2.png new file mode 100644 index 00000000..ba98a0f5 Binary files /dev/null and b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_2.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_3.png b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_3.png new file mode 100644 index 00000000..fb213e38 Binary files /dev/null and b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_3.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_4.png b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_4.png new file mode 100644 index 00000000..3eb42a64 Binary files /dev/null and b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_4.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_5.png b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_5.png new file mode 100644 index 00000000..ca00d10f Binary files /dev/null and b/src/main/resources/assets/minelp/textures/cubemap/sugarcubecorner_5.png differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_0.png b/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_0.png deleted file mode 100644 index f4b94621..00000000 Binary files a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_0.png and /dev/null differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_1.png b/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_1.png deleted file mode 100644 index 9f54b186..00000000 Binary files a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_1.png and /dev/null differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_2.png b/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_2.png deleted file mode 100644 index eb353c10..00000000 Binary files a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_2.png and /dev/null differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_3.png b/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_3.png deleted file mode 100644 index 8f399c0a..00000000 Binary files a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_3.png and /dev/null differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_4.png b/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_4.png deleted file mode 100644 index b5d6b270..00000000 Binary files a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_4.png and /dev/null differ diff --git a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_5.png b/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_5.png deleted file mode 100644 index 1829499b..00000000 Binary files a/src/main/resources/assets/minelp/textures/cubemap/sugurcubecorner_5.png and /dev/null differ