Enable transparency on ponies' skins

This commit is contained in:
Sollace 2018-08-20 21:25:11 +02:00
parent 472e048d26
commit 446a38b2fc
4 changed files with 16 additions and 1 deletions

View file

@ -53,7 +53,6 @@ public class RenderPonyModel extends RenderPlayerModel<EntityPonyModel> implemen
if (renderingAsHuman) { if (renderingAsHuman) {
super.preRenderCallback(entity, ticks); super.preRenderCallback(entity, ticks);
} else { } else {
//GlStateManager.scale(1.1, 1.1, 1.1);
renderPony.preRenderCallback(entity, ticks); renderPony.preRenderCallback(entity, ticks);
GlStateManager.translate(0, 0, -entity.width / 2); // move us to the center of the shadow GlStateManager.translate(0, 0, -entity.width / 2); // move us to the center of the shadow

View file

@ -8,6 +8,8 @@ import com.minelittlepony.render.plane.PlaneRenderer;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
import org.lwjgl.opengl.GL11;
import static com.minelittlepony.model.PonyModelConstants.*; import static com.minelittlepony.model.PonyModelConstants.*;
public class SeaponyTail implements IModelPart { public class SeaponyTail implements IModelPart {
@ -54,9 +56,11 @@ public class SeaponyTail implements IModelPart {
@Override @Override
public void renderPart(float scale) { public void renderPart(float scale) {
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
GlStateManager.enableBlend(); GlStateManager.enableBlend();
tailBase.render(scale); tailBase.render(scale);
GlStateManager.disableBlend(); GlStateManager.disableBlend();
GlStateManager.popAttrib();
} }
} }

View file

@ -19,6 +19,16 @@ public class RenderPony<T extends EntityLivingBase> {
private IRenderPony<T> renderer; private IRenderPony<T> renderer;
public static void enableModelRenderProfile() {
GlStateManager.enableBlend();
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
GlStateManager.alphaFunc(516, 0.003921569F);
}
public static void disableModelRenderProfile() {
GlStateManager.disableBlend();
}
public RenderPony(IRenderPony<T> renderer) { public RenderPony(IRenderPony<T> renderer) {
this.renderer = renderer; this.renderer = renderer;
} }
@ -30,6 +40,7 @@ public class RenderPony<T extends EntityLivingBase> {
float s = getScaleFactor(); float s = getScaleFactor();
GlStateManager.scale(s, s, s); GlStateManager.scale(s, s, s);
enableModelRenderProfile();
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")

View file

@ -50,6 +50,7 @@ public class RenderPonyPlayer extends RenderPlayer implements IRenderPony<Abstra
@Override @Override
public void preRender(boolean transparency) { public void preRender(boolean transparency) {
GlStateManager.enableBlendProfile(GlStateManager.Profile.PLAYER_SKIN); GlStateManager.enableBlendProfile(GlStateManager.Profile.PLAYER_SKIN);
RenderPony.enableModelRenderProfile();
} }
@Override @Override