Initial update for 1.8.9

- liteloader doesn't work yet so can't test.
This commit is contained in:
Matthew Messinger 2016-03-01 00:33:09 -05:00
parent 4f448be9b6
commit 53be604f85
16 changed files with 95 additions and 132 deletions

View file

@ -11,30 +11,27 @@ buildscript {
} }
} }
dependencies { dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.0-SNAPSHOT' classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT'
classpath 'org.spongepowered:mixingradle:0.3-SNAPSHOT' classpath 'org.spongepowered:mixingradle:0.4-SNAPSHOT'
} }
} }
plugins {
id 'mnm.gradle.ap-ide' version '1.0.2'
}
ext.revision = 200 ext.revision = 210
apply plugin: 'net.minecraftforge.gradle.tweaker-client' apply plugin: 'net.minecraftforge.gradle.tweaker-client'
apply plugin: 'org.spongepowered.mixin' apply plugin: 'org.spongepowered.mixin'
archivesBaseName = "MineLittlePony" archivesBaseName = "MineLittlePony"
group = 'com.brohoof.minelp' group = 'com.brohoof.minelp'
version = '1.8' version = '1.8.9'
ext.startClass = 'com.mumfrey.liteloader.debug.Start' ext.startClass = 'com.mumfrey.liteloader.debug.Start'
minecraft { minecraft {
version = "1.8" version = "1.8.9"
mappings = 'stable_18' mappings = 'stable_20'
runDir = 'run' runDir = 'run'
replace '@VERSION@',project.version replace '@VERSION@',project.version
tweakClass = 'com.mumfrey.liteloader.launch.LiteLoaderTweaker' tweakClass = 'com.mumfrey.liteloader.launch.LiteLoaderTweaker'
} }
sourceSets { sourceSets {
def deps = [ def deps = [
@ -88,8 +85,8 @@ repositories{
dependencies { dependencies {
// compile project('LiteLoader') // compile project('LiteLoader')
deobfCompile '1:liteloader:1.8-SNAPSHOT' // deobfCompile '1:liteloader:1.8.9-SNAPSHOT'
compile 'org.spongepowered:mixin:0.5.2-SNAPSHOT' compile 'org.spongepowered:mixin:0.5.3-SNAPSHOT'
compile 'org.ow2.asm:asm-debug-all:5.0.3' compile 'org.ow2.asm:asm-debug-all:5.0.3'
compile 'net.minecraft:launchwrapper:1.12' compile 'net.minecraft:launchwrapper:1.12'
} }
@ -98,6 +95,7 @@ jar {
from sourceSets.findAll { it.name != 'api' }*.output from sourceSets.findAll { it.name != 'api' }*.output
extension 'litemod' extension 'litemod'
appendix "mc$minecraft.version"
} }
mixin { mixin {
defaultObfuscationEnv notch defaultObfuscationEnv notch

View file

@ -78,6 +78,7 @@ import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.WorldRenderer;
import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.texture.DynamicTexture; import net.minecraft.client.renderer.texture.DynamicTexture;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
@ -479,12 +480,12 @@ public class GuiSkins extends GuiScreen implements IUploadCompleteCallback, IOpe
} }
this.mc.getTextureManager().bindTexture(cubemapTextures[cubeSide]); this.mc.getTextureManager().bindTexture(cubemapTextures[cubeSide]);
wr.startDrawingQuads(); // wr.setColorRGBA_I(0xffffff, 255 / (blendPass + 1));
wr.setColorRGBA_I(0xffffff, 255 / (blendPass + 1)); wr.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
wr.addVertexWithUV(-1.0D, -1.0D, 1.0D, 0.0D, 0.0D); wr.pos(-1.0D, -1.0D, 1.0D).tex(0.0D, 0.0D).endVertex();
wr.addVertexWithUV(1.0D, -1.0D, 1.0D, 1.0D, 0.0D); wr.pos(1.0D, -1.0D, 1.0D).tex(1.0D, 0.0D).endVertex();
wr.addVertexWithUV(1.0D, 1.0D, 1.0D, 1.0D, 1.0D); wr.pos(1.0D, 1.0D, 1.0D).tex(1.0D, 1.0D).endVertex();
wr.addVertexWithUV(-1.0D, 1.0D, 1.0D, 0.0D, 1.0D); wr.pos(-1.0D, 1.0D, 1.0D).tex(0.0D, 1.0D).endVertex();
tessellator.draw(); tessellator.draw();
popMatrix(); popMatrix();
} }
@ -510,16 +511,16 @@ public class GuiSkins extends GuiScreen implements IUploadCompleteCallback, IOpe
colorMask(true, true, true, false); colorMask(true, true, true, false);
Tessellator tessellator = Tessellator.getInstance(); Tessellator tessellator = Tessellator.getInstance();
WorldRenderer wr = tessellator.getWorldRenderer(); WorldRenderer wr = tessellator.getWorldRenderer();
wr.startDrawingQuads(); wr.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
byte blurPasses = 4; byte blurPasses = 4;
for (int blurPass = 0; blurPass < blurPasses; ++blurPass) { for (int blurPass = 0; blurPass < blurPasses; ++blurPass) {
wr.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F / (blurPass + 1)); // wr.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F / (blurPass + 1));
float var7 = (blurPass - blurPasses / 2) / 256.0F; float var7 = (blurPass - blurPasses / 2) / 256.0F;
wr.addVertexWithUV(this.width, this.height, this.zLevel, 0.0F + var7, 0.0D); wr.pos(this.width, this.height, this.zLevel).tex(0.0F + var7, 0.0D).endVertex();
wr.addVertexWithUV(this.width, 0.0D, this.zLevel, 1.0F + var7, 0.0D); wr.pos(this.width, 0.0D, this.zLevel).tex(1.0F + var7, 0.0D).endVertex();
wr.addVertexWithUV(0.0D, 0.0D, this.zLevel, 1.0F + var7, 1.0D); wr.pos(0.0D, 0.0D, this.zLevel).tex(1.0F + var7, 1.0D).endVertex();
wr.addVertexWithUV(0.0D, this.height, this.zLevel, 0.0F + var7, 1.0D); wr.pos(0.0D, this.height, this.zLevel).tex(0.0F + var7, 1.0D).endVertex();
} }
tessellator.draw(); tessellator.draw();
@ -541,17 +542,17 @@ public class GuiSkins extends GuiScreen implements IUploadCompleteCallback, IOpe
viewport(0, 0, this.mc.displayWidth, this.mc.displayHeight); viewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
Tessellator tessellator = Tessellator.getInstance(); Tessellator tessellator = Tessellator.getInstance();
WorldRenderer wr = tessellator.getWorldRenderer(); WorldRenderer wr = tessellator.getWorldRenderer();
wr.startDrawingQuads(); wr.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
float aspect = this.width > this.height ? 120.0F / this.width : 120.0F / this.height; float aspect = this.width > this.height ? 120.0F / this.width : 120.0F / this.height;
float uSample = this.height * aspect / 256.0F; float uSample = this.height * aspect / 256.0F;
float vSample = this.width * aspect / 256.0F; float vSample = this.width * aspect / 256.0F;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
wr.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F); // wr.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
wr.addVertexWithUV(0.0D, this.height, this.zLevel, 0.5F - uSample, 0.5F + vSample); wr.pos(0.0D, this.height, this.zLevel).tex(0.5F - uSample, 0.5F + vSample).endVertex();
wr.addVertexWithUV(this.width, this.height, this.zLevel, 0.5F - uSample, 0.5F - vSample); wr.pos(this.width, this.height, this.zLevel).tex(0.5F - uSample, 0.5F - vSample).endVertex();
wr.addVertexWithUV(this.width, 0.0D, this.zLevel, 0.5F + uSample, 0.5F - vSample); wr.pos(this.width, 0.0D, this.zLevel).tex(0.5F + uSample, 0.5F - vSample).endVertex();
wr.addVertexWithUV(0.0D, 0.0D, this.zLevel, 0.5F + uSample, 0.5F + vSample); wr.pos(0.0D, 0.0D, this.zLevel).tex(0.5F + uSample, 0.5F + vSample).endVertex();
tessellator.draw(); tessellator.draw();
return true; return true;
} }

View file

@ -1,6 +1,9 @@
package com.voxelmodpack.hdskins.gui; package com.voxelmodpack.hdskins.gui;
import static net.minecraft.client.renderer.GlStateManager.*; import static net.minecraft.client.renderer.GlStateManager.popAttrib;
import static net.minecraft.client.renderer.GlStateManager.popMatrix;
import static net.minecraft.client.renderer.GlStateManager.pushMatrix;
import static net.minecraft.client.renderer.GlStateManager.scale;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@ -8,24 +11,21 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelPlayer; import net.minecraft.client.model.ModelPlayer;
import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.client.renderer.entity.RenderLiving;
import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
public class RenderPlayerModel extends RenderLiving { public class RenderPlayerModel<M extends EntityPlayerModel> extends RenderLiving<M> {
public RenderPlayerModel(RenderManager renderer) { public RenderPlayerModel(RenderManager renderer) {
super(renderer, new ModelPlayer(0, false), 0.0F); super(renderer, new ModelPlayer(0, false), 0.0F);
} }
@Override @Override
protected ResourceLocation getEntityTexture(Entity var1) { protected ResourceLocation getEntityTexture(M var1) {
return ((EntityPlayerModel) var1).getSkinTexture(); return var1.getSkinTexture();
} }
@Override @Override
protected boolean canRenderName(EntityLivingBase targetEntity) { protected boolean canRenderName(M targetEntity) {
if (Minecraft.getMinecraft().thePlayer != null) { if (Minecraft.getMinecraft().thePlayer != null) {
return super.canRenderName(targetEntity); return super.canRenderName(targetEntity);
} }
@ -33,7 +33,7 @@ public class RenderPlayerModel extends RenderLiving {
} }
@Override @Override
protected boolean setBrightness(EntityLivingBase entitylivingbaseIn, float partialTicks, boolean p_177092_3_) { protected boolean setBrightness(M entitylivingbaseIn, float partialTicks, boolean p_177092_3_) {
if (Minecraft.getMinecraft().theWorld != null) { if (Minecraft.getMinecraft().theWorld != null) {
return super.setBrightness(entitylivingbaseIn, partialTicks, p_177092_3_); return super.setBrightness(entitylivingbaseIn, partialTicks, p_177092_3_);
} }
@ -41,24 +41,24 @@ public class RenderPlayerModel extends RenderLiving {
} }
@Override @Override
public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) { public void doRender(EntityPlayerModel par1Entity, double par2, double par4, double par6, float par8, float par9) {
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
this.doRender((EntityLiving) par1Entity, par2, par4, par6, par8, par9); this.doRender(par1Entity, par2, par4, par6, par8, par9);
popAttrib(); popAttrib();
pushMatrix(); pushMatrix();
scale(1.0F, -1.0F, 1.0F); scale(1.0F, -1.0F, 1.0F);
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
this.doRender((EntityLiving) par1Entity, par2, par4, par6, par8, par9); this.doRender(par1Entity, par2, par4, par6, par8, par9);
popAttrib(); popAttrib();
popMatrix(); popMatrix();
} }
@Override @Override
protected void preRenderCallback(EntityLivingBase par1EntityLiving, float par2) { protected void preRenderCallback(M par1EntityLiving, float par2) {
this.renderCloak((EntityPlayerModel) par1EntityLiving, par2); this.renderCloak(par1EntityLiving, par2);
} }
protected void renderCloak(EntityPlayerModel entity, float par2) { protected void renderCloak(M entity, float par2) {
super.preRenderCallback(entity, par2); super.preRenderCallback(entity, par2);
} }
} }

View file

@ -13,11 +13,12 @@ import com.voxelmodpack.hdskins.HDSkinManager;
import net.minecraft.client.renderer.tileentity.TileEntitySkullRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySkullRenderer;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntitySkull;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
@Mixin(TileEntitySkullRenderer.class) @Mixin(TileEntitySkullRenderer.class)
public abstract class MixinSkullRenderer extends TileEntitySpecialRenderer { public abstract class MixinSkullRenderer extends TileEntitySpecialRenderer<TileEntitySkull> {
@Inject(method = "renderSkull", @Inject(method = "renderSkull",
at = @At( at = @At(

View file

@ -52,7 +52,7 @@ public class LiteModHDSkinsMod implements HDSkinsMod {
@Override @Override
public void onInitCompleted(Minecraft minecraft, LiteLoader loader) { public void onInitCompleted(Minecraft minecraft, LiteLoader loader) {
ModUtilities.addRenderer(EntityPlayerModel.class, new RenderPlayerModel(minecraft.getRenderManager())); ModUtilities.addRenderer(EntityPlayerModel.class, new RenderPlayerModel<EntityPlayerModel>(minecraft.getRenderManager()));
} }
@Override @Override

View file

@ -72,12 +72,12 @@ public class MineLittlePony {
} }
if (this.config.zombies) { if (this.config.zombies) {
ModUtilities.addRenderer(EntityZombie.class, new RenderPonyZombie(rm)); ModUtilities.addRenderer(EntityZombie.class, new RenderPonyZombie<EntityZombie>(rm));
MineLPLogger.info("Zombies are now ponies."); MineLPLogger.info("Zombies are now ponies.");
} }
if (this.config.pigzombies) { if (this.config.pigzombies) {
ModUtilities.addRenderer(EntityPigZombie.class, new RenderPonyZombie(rm)); ModUtilities.addRenderer(EntityPigZombie.class, new RenderPonyZombie<EntityPigZombie>(rm));
MineLPLogger.info("Zombie pigmen are now ponies."); MineLPLogger.info("Zombie pigmen are now ponies.");
} }

View file

@ -33,7 +33,7 @@ public class Pony {
public Pony(AbstractClientPlayer player) { public Pony(AbstractClientPlayer player) {
this.textureResourceLocation = player.getLocationSkin(); this.textureResourceLocation = player.getLocationSkin();
MineLPLogger.debug("+ Initialising new pony #%d for player %s (%s) with resource location %s.", this.ponyId, MineLPLogger.debug("+ Initialising new pony #%d for player %s (%s) with resource location %s.", this.ponyId,
player.getCommandSenderName(), player.getUniqueID(), this.textureResourceLocation); player.getName(), player.getUniqueID(), this.textureResourceLocation);
this.checkSkin(this.textureResourceLocation); this.checkSkin(this.textureResourceLocation);
} }

View file

@ -3,29 +3,26 @@ package com.brohoof.minelittlepony.hdskins.gui;
import com.brohoof.minelittlepony.MineLittlePony; import com.brohoof.minelittlepony.MineLittlePony;
import com.brohoof.minelittlepony.Pony; import com.brohoof.minelittlepony.Pony;
import com.brohoof.minelittlepony.model.PlayerModel; import com.brohoof.minelittlepony.model.PlayerModel;
import com.voxelmodpack.hdskins.gui.EntityPlayerModel;
import com.voxelmodpack.hdskins.gui.RenderPlayerModel; import com.voxelmodpack.hdskins.gui.RenderPlayerModel;
import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.EntityLivingBase;
public class RenderPonyModel extends RenderPlayerModel { public class RenderPonyModel extends RenderPlayerModel<EntityPonyModel> {
public RenderPonyModel(RenderManager renderer) { public RenderPonyModel(RenderManager renderer) {
super(renderer); super(renderer);
} }
@Override @Override
protected void renderModel(EntityLivingBase par1EntityLivingBase, float par2, float par3, float par4, float par5, float par6, float par7) { protected void renderModel(EntityPonyModel playermodel, float par2, float par3, float par4, float par5, float par6, float par7) {
this.bindEntityTexture(par1EntityLivingBase); this.bindEntityTexture(playermodel);
EntityPlayerModel playerModelEntity = (EntityPlayerModel) par1EntityLivingBase; Pony thePony = MineLittlePony.getInstance().getManager().getPonyFromResourceRegistry(this.getEntityTexture(playermodel));
Pony thePony = MineLittlePony.getInstance().getManager().getPonyFromResourceRegistry(this.getEntityTexture(playerModelEntity));
thePony.checkSkin(); thePony.checkSkin();
// TODO small arms // TODO small arms
PlayerModel pm = thePony.getModel(true, false); PlayerModel pm = thePony.getModel(true, false);
this.mainModel = pm.getModel(); this.mainModel = pm.getModel();
pm.apply(thePony.metadata); pm.apply(thePony.metadata);
this.mainModel.render(par1EntityLivingBase, par2, par3, par4, par5, par6, par7); this.mainModel.render(playermodel, par2, par3, par4, par5, par6, par7);
} }
} }

View file

@ -27,13 +27,12 @@ import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.client.renderer.entity.RendererLivingEntity; import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.client.renderer.entity.layers.LayerArrow; import net.minecraft.client.renderer.entity.layers.LayerArrow;
import net.minecraft.entity.Entity;
import net.minecraft.item.EnumAction; import net.minecraft.item.EnumAction;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
@Mixin(RenderPlayer.class) @Mixin(RenderPlayer.class)
public abstract class MixinRenderPlayer extends RendererLivingEntity implements IRenderPony { public abstract class MixinRenderPlayer extends RendererLivingEntity<AbstractClientPlayer> implements IRenderPony {
private static final String RenderManager = "Lnet/minecraft/client/renderer/entity/RenderManager;"; private static final String RenderManager = "Lnet/minecraft/client/renderer/entity/RenderManager;";
private static final String AbstractClientPlayer = "Lnet/minecraft/client/entity/AbstractClientPlayer;"; private static final String AbstractClientPlayer = "Lnet/minecraft/client/entity/AbstractClientPlayer;";
@ -152,16 +151,12 @@ public abstract class MixinRenderPlayer extends RendererLivingEntity implements
this.playerModel.apply(thePony.metadata); this.playerModel.apply(thePony.metadata);
} }
private ResourceLocation getEntityTexture(AbstractClientPlayer player) { @Override
public ResourceLocation getEntityTexture(AbstractClientPlayer player) {
Pony thePony = MineLittlePony.getInstance().getManager().getPonyFromResourceRegistry(player); Pony thePony = MineLittlePony.getInstance().getManager().getPonyFromResourceRegistry(player);
return thePony.getTextureResourceLocation(); return thePony.getTextureResourceLocation();
} }
@Override
public final ResourceLocation getEntityTexture(Entity entity) {
return this.getEntityTexture((AbstractClientPlayer) entity);
}
private PlayerModel getModel(AbstractClientPlayer player) { private PlayerModel getModel(AbstractClientPlayer player) {
ResourceLocation skin = getEntityTexture(player); ResourceLocation skin = getEntityTexture(player);
Pony thePony = MineLittlePony.getInstance().getManager().getPonyFromResourceRegistry(skin); Pony thePony = MineLittlePony.getInstance().getManager().getPonyFromResourceRegistry(skin);

View file

@ -12,13 +12,10 @@ import com.brohoof.minelittlepony.renderer.layer.LayerPonySkull;
import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.client.renderer.entity.RenderLiving;
import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving implements IRenderPony { public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving<T> implements IRenderPony {
protected AbstractPonyModel mobModel; protected AbstractPonyModel mobModel;
protected PlayerModel playerModel; protected PlayerModel playerModel;
@ -35,7 +32,7 @@ public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving
} }
@Override @Override
public void doRender(Entity entity, double xPosition, double yPosition, double zPosition, float yaw, public void doRender(T entity, double xPosition, double yPosition, double zPosition, float yaw,
float partialTicks) { float partialTicks) {
double yOrigin = yPosition; double yOrigin = yPosition;
if (entity.isSneaking()) { if (entity.isSneaking()) {
@ -47,19 +44,8 @@ public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving
this.playerModel.getModel().heldItemRight = 0; this.playerModel.getModel().heldItemRight = 0;
} }
protected abstract ResourceLocation getEntityTexture(T var1);
@SuppressWarnings("unchecked")
@Override @Override
protected final ResourceLocation getEntityTexture(Entity var1) { protected void preRenderCallback(T entitylivingbaseIn, float partialTickTime) {
return this.getEntityTexture((T) var1);
}
protected void preRenderCallback(T entity, float partick) {}
@SuppressWarnings("unchecked")
@Override
protected final void preRenderCallback(EntityLivingBase entitylivingbaseIn, float partialTickTime) {
ItemStack heldItem = entitylivingbaseIn.getHeldItem(); ItemStack heldItem = entitylivingbaseIn.getHeldItem();
this.playerModel.getModel().heldItemRight = heldItem == null ? 0 : 1; this.playerModel.getModel().heldItemRight = heldItem == null ? 0 : 1;
@ -75,18 +61,6 @@ public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving
if (MineLittlePony.getConfig().showscale) { if (MineLittlePony.getConfig().showscale) {
this.shadowSize = 0.4F; this.shadowSize = 0.4F;
} }
preRenderCallback((T) entitylivingbaseIn, partialTickTime);
}
protected void rotateCorpse(T entity, float xPosition, float yPosition, float zPosition) {
super.rotateCorpse(entity, xPosition, yPosition, zPosition);
}
@SuppressWarnings("unchecked")
@Override
protected final void rotateCorpse(EntityLivingBase entity, float xPosition, float yPosition, float zPosition) {
this.rotateCorpse((T) entity, xPosition, yPosition, zPosition);
} }
@Override @Override

View file

@ -29,6 +29,7 @@ public class RenderPonySkeleton extends RenderPonyMob<EntitySkeleton> {
@Override @Override
protected void preRenderCallback(EntitySkeleton skeleton, float partialTicks) { protected void preRenderCallback(EntitySkeleton skeleton, float partialTicks) {
super.preRenderCallback(skeleton, partialTicks);
if (skeleton.getSkeletonType() == 1) { if (skeleton.getSkeletonType() == 1) {
GlStateManager.scale(1.2F, 1.2F, 1.2F); GlStateManager.scale(1.2F, 1.2F, 1.2F);
} }

View file

@ -14,14 +14,14 @@ import net.minecraft.entity.monster.EntityPigZombie;
import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
public class RenderPonyZombie extends RenderPonyMob<EntityZombie> { public class RenderPonyZombie<Zombie extends EntityZombie> extends RenderPonyMob<Zombie> {
public RenderPonyZombie(RenderManager rendermanager) { public RenderPonyZombie(RenderManager rendermanager) {
super(rendermanager, PMAPI.zombie); super(rendermanager, PMAPI.zombie);
} }
@Override @Override
protected void preRenderCallback(EntityZombie entity, float partick) { protected void preRenderCallback(Zombie entity, float partick) {
Random rand = new Random(entity.getUniqueID().hashCode()); Random rand = new Random(entity.getUniqueID().hashCode());
// 50-50 chance for gender // 50-50 chance for gender
@ -64,7 +64,7 @@ public class RenderPonyZombie extends RenderPonyMob<EntityZombie> {
} }
@Override @Override
protected void rotateCorpse(EntityZombie zombie, float xPosition, float yPosition, float zPosition) { protected void rotateCorpse(Zombie zombie, float xPosition, float yPosition, float zPosition) {
super.rotateCorpse(zombie, xPosition, yPosition, zPosition); super.rotateCorpse(zombie, xPosition, yPosition, zPosition);
if (zombie.isConverting()) { if (zombie.isConverting()) {
yPosition += (float) (Math.cos(zombie.ticksExisted * 3.25D) * Math.PI * 0.25D); yPosition += (float) (Math.cos(zombie.ticksExisted * 3.25D) * Math.PI * 0.25D);
@ -72,7 +72,7 @@ public class RenderPonyZombie extends RenderPonyMob<EntityZombie> {
} }
@Override @Override
protected ResourceLocation getEntityTexture(EntityZombie zombie) { protected ResourceLocation getEntityTexture(Zombie zombie) {
return zombie instanceof EntityPigZombie ? PonyManager.PIGMAN return zombie instanceof EntityPigZombie ? PonyManager.PIGMAN
: (zombie.isVillager() ? PonyManager.ZOMBIE_VILLAGER : (zombie.isVillager() ? PonyManager.ZOMBIE_VILLAGER
: PonyManager.ZOMBIE); : PonyManager.ZOMBIE);

View file

@ -14,8 +14,8 @@ import com.brohoof.minelittlepony.renderer.IRenderPony;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType; import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType;
import net.minecraft.client.renderer.block.model.ItemTransformVec3f;
import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.entity.RendererLivingEntity; import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.client.renderer.entity.layers.LayerHeldItem; import net.minecraft.client.renderer.entity.layers.LayerHeldItem;
@ -30,12 +30,12 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class LayerHeldPonyItem implements LayerRenderer { public class LayerHeldPonyItem implements LayerRenderer<EntityLivingBase> {
private final RendererLivingEntity livingPonyEntity; private final RendererLivingEntity<? extends EntityLivingBase> livingPonyEntity;
private LayerHeldItem held; private LayerHeldItem held;
public LayerHeldPonyItem(RendererLivingEntity livingPony) { public LayerHeldPonyItem(RendererLivingEntity<? extends EntityLivingBase> livingPony) {
this.livingPonyEntity = livingPony; this.livingPonyEntity = livingPony;
this.held = new LayerHeldItem(livingPony); this.held = new LayerHeldItem(livingPony);
} }
@ -111,7 +111,7 @@ public class LayerHeldPonyItem implements LayerRenderer {
float green = (glowColor >> 8 & 255) / 255.0F; float green = (glowColor >> 8 & 255) / 255.0F;
float blue = (glowColor & 255) / 255.0F; float blue = (glowColor & 255) / 255.0F;
float alpha = 0.2F; float alpha = 0.2F;
// disableLighting(); // disableLighting();
enableBlend(); enableBlend();
blendFunc(GL11.GL_CONSTANT_COLOR, 1); blendFunc(GL11.GL_CONSTANT_COLOR, 1);
GL14.glBlendColor(red, green, blue, alpha); GL14.glBlendColor(red, green, blue, alpha);
@ -119,7 +119,8 @@ public class LayerHeldPonyItem implements LayerRenderer {
scale(2, 2, 2); scale(2, 2, 2);
applyTransform(model.getItemCameraTransforms().thirdPerson); model.getItemCameraTransforms().applyTransform(ItemCameraTransforms.TransformType.THIRD_PERSON);
applyTransform(model.getItemCameraTransforms(), TransformType.THIRD_PERSON);
RenderItem renderItem = Minecraft.getMinecraft().getRenderItem(); RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
scale(1.1, 1.1, 1.1); scale(1.1, 1.1, 1.1);
if (model.isGui3d()) { if (model.isGui3d()) {
@ -174,14 +175,7 @@ public class LayerHeldPonyItem implements LayerRenderer {
return ibakedmodel; return ibakedmodel;
} }
// Copied from RenderItem private void applyTransform(ItemCameraTransforms camera, TransformType type) {
//@formatter:off camera.applyTransform(type);
private void applyTransform(ItemTransformVec3f transform) {
translate(transform.translation.x + RenderItem.debugItemOffsetX, transform.translation.y + RenderItem.debugItemOffsetY, transform.translation.z + RenderItem.debugItemOffsetZ);
rotate(transform.rotation.y + RenderItem.debugItemRotationOffsetY, 0.0F, 1.0F, 0.0F);
rotate(transform.rotation.x + RenderItem.debugItemRotationOffsetX, 1.0F, 0.0F, 0.0F);
rotate(transform.rotation.z + RenderItem.debugItemRotationOffsetZ, 0.0F, 0.0F, 1.0F);
scale(transform.scale.x + RenderItem.debugItemScaleX, transform.scale.y + RenderItem.debugItemScaleY, transform.scale.z + RenderItem.debugItemScaleZ);
} }
//@formatter:on
} }

View file

@ -25,18 +25,18 @@ import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
public class LayerPonyArmor implements LayerRenderer { public class LayerPonyArmor implements LayerRenderer<EntityLivingBase> {
private static final ResourceLocation ENCHANTED_ITEM_GLINT_RES = new ResourceLocation("textures/misc/enchanted_item_glint.png"); private static final ResourceLocation ENCHANTED_ITEM_GLINT_RES = new ResourceLocation("textures/misc/enchanted_item_glint.png");
private static final Map<String, ResourceLocation> HUMAN_ARMORS = Maps.newHashMap(); private static final Map<String, ResourceLocation> HUMAN_ARMORS = Maps.newHashMap();
private static final Map<ResourceLocation, ResourceLocation> PONY_ARMORS = Maps.newHashMap(); private static final Map<ResourceLocation, ResourceLocation> PONY_ARMORS = Maps.newHashMap();
private RendererLivingEntity renderer; private RendererLivingEntity<? extends EntityLivingBase> renderer;
private LayerBipedArmor humanArmor; private LayerBipedArmor humanArmor;
private PlayerModel pony; private PlayerModel pony;
public LayerPonyArmor(RendererLivingEntity entity) { public LayerPonyArmor(RendererLivingEntity<? extends EntityLivingBase> entity) {
this.renderer = entity; this.renderer = entity;
this.humanArmor = new LayerBipedArmor(entity); this.humanArmor = new LayerBipedArmor(entity);
} }

View file

@ -1,6 +1,10 @@
package com.brohoof.minelittlepony.renderer.layer; package com.brohoof.minelittlepony.renderer.layer;
import static net.minecraft.client.renderer.GlStateManager.*; import static net.minecraft.client.renderer.GlStateManager.popMatrix;
import static net.minecraft.client.renderer.GlStateManager.pushMatrix;
import static net.minecraft.client.renderer.GlStateManager.rotate;
import static net.minecraft.client.renderer.GlStateManager.scale;
import static net.minecraft.client.renderer.GlStateManager.translate;
import com.brohoof.minelittlepony.PonySize; import com.brohoof.minelittlepony.PonySize;
import com.brohoof.minelittlepony.model.PlayerModel; import com.brohoof.minelittlepony.model.PlayerModel;
@ -12,26 +16,19 @@ import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.client.renderer.entity.RendererLivingEntity; import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.client.renderer.entity.layers.LayerCape; import net.minecraft.client.renderer.entity.layers.LayerCape;
import net.minecraft.client.renderer.entity.layers.LayerRenderer; import net.minecraft.client.renderer.entity.layers.LayerRenderer;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EnumPlayerModelParts; import net.minecraft.entity.player.EnumPlayerModelParts;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
public class LayerPonyCape implements LayerRenderer { public class LayerPonyCape implements LayerRenderer<AbstractClientPlayer> {
private RendererLivingEntity renderer; private RendererLivingEntity<? extends AbstractClientPlayer> renderer;
private LayerCape cape; private LayerCape cape;
public LayerPonyCape(RendererLivingEntity entity) { public LayerPonyCape(RendererLivingEntity<? extends AbstractClientPlayer> entity) {
renderer = entity; renderer = entity;
this.cape = new LayerCape((RenderPlayer) entity); this.cape = new LayerCape((RenderPlayer) entity);
} }
@Override
public void doRenderLayer(EntityLivingBase entity, float p2, float p3, float ticks, float p5, float p6, float p7,
float scale) {
doRenderLayer((AbstractClientPlayer) entity, p2, p3, ticks, p5, p6, p7, scale);
}
public void doRenderLayer(AbstractClientPlayer clientPlayer, float p2, float p3, float ticks, float p5, float p6, public void doRenderLayer(AbstractClientPlayer clientPlayer, float p2, float p3, float ticks, float p5, float p6,
float p7, float scale) { float p7, float scale) {
PlayerModel model = ((IRenderPony) renderer).getPony(); PlayerModel model = ((IRenderPony) renderer).getPony();

View file

@ -1,6 +1,11 @@
package com.brohoof.minelittlepony.renderer.layer; package com.brohoof.minelittlepony.renderer.layer;
import static net.minecraft.client.renderer.GlStateManager.*; import static net.minecraft.client.renderer.GlStateManager.color;
import static net.minecraft.client.renderer.GlStateManager.popMatrix;
import static net.minecraft.client.renderer.GlStateManager.pushMatrix;
import static net.minecraft.client.renderer.GlStateManager.rotate;
import static net.minecraft.client.renderer.GlStateManager.scale;
import static net.minecraft.client.renderer.GlStateManager.translate;
import com.brohoof.minelittlepony.PonySize; import com.brohoof.minelittlepony.PonySize;
import com.brohoof.minelittlepony.model.AbstractPonyModel; import com.brohoof.minelittlepony.model.AbstractPonyModel;
@ -26,11 +31,11 @@ import net.minecraft.nbt.NBTUtil;
import net.minecraft.tileentity.TileEntitySkull; import net.minecraft.tileentity.TileEntitySkull;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
public class LayerPonySkull implements LayerRenderer { public class LayerPonySkull implements LayerRenderer<EntityLivingBase> {
private RendererLivingEntity renderer; private RendererLivingEntity<? extends EntityLivingBase> renderer;
public LayerPonySkull(RendererLivingEntity renderPony) { public LayerPonySkull(RendererLivingEntity<? extends EntityLivingBase> renderPony) {
this.renderer = renderPony; this.renderer = renderPony;
} }