mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-12 02:37:27 +00:00
MorePlayerModels Support for Overlays
This commit is contained in:
1 parent
564f494b73
commit
9fd715a3f8
3 files changed
+37
-7
No files matched your search
@@ -167,10 +167,6 @@ public class ClientEventHandler {
|
||||
public void pre(RenderPlayerEvent.Pre event){
|
||||
if(!(event.entity instanceof AbstractClientPlayer))
|
||||
return;
|
||||
|
||||
renderCNPCPlayer.modelBipedMain = event.renderer.modelBipedMain;
|
||||
renderCNPCPlayer.modelArmor = event.renderer.modelArmor;
|
||||
renderCNPCPlayer.modelArmorChestplate = event.renderer.modelArmorChestplate;
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@@ -186,6 +182,10 @@ public class ClientEventHandler {
|
||||
} catch (ClassNotFoundException ignored) {}
|
||||
|
||||
if (!(event.renderer instanceof RenderCNPCPlayer)) {
|
||||
renderCNPCPlayer.mainModel = event.renderer.mainModel;
|
||||
renderCNPCPlayer.modelBipedMain = event.renderer.modelBipedMain;
|
||||
renderCNPCPlayer.modelArmor = event.renderer.modelArmor;
|
||||
renderCNPCPlayer.modelArmorChestplate = event.renderer.modelArmorChestplate;
|
||||
renderCNPCPlayer.tempRenderPartialTicks = event.partialRenderTick;
|
||||
double d0 = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double) event.partialRenderTick - RenderManager.renderPosX;
|
||||
double d1 = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) event.partialRenderTick - RenderManager.renderPosY;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package noppes.npcs.client.renderer;
|
||||
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.Minecraft;
|
||||
@@ -18,6 +19,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
import noppes.npcs.client.ClientCacheHandler;
|
||||
import noppes.npcs.client.model.ModelMPM;
|
||||
import noppes.npcs.controllers.data.SkinOverlay;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.util.glu.Project;
|
||||
@@ -26,6 +28,7 @@ import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class RenderCNPCPlayer extends RenderPlayer {
|
||||
public static boolean hasMPM = false;
|
||||
public Minecraft mc = Minecraft.getMinecraft();
|
||||
public RenderCNPCHand itemRenderer = new RenderCNPCHand(mc);
|
||||
public float tempRenderPartialTicks;
|
||||
@@ -41,6 +44,9 @@ public class RenderCNPCPlayer extends RenderPlayer {
|
||||
this.modelArmorChestplate = new ModelBiped(1.0F);
|
||||
this.modelArmor = new ModelBiped(0.5F);
|
||||
this.setRenderManager(RenderManager.instance);
|
||||
|
||||
if(Loader.isModLoaded("moreplayermodels"))
|
||||
hasMPM = true;
|
||||
}
|
||||
|
||||
private boolean preRenderOverlay(SkinOverlay overlayData, EntityPlayer player) {
|
||||
@@ -105,7 +111,7 @@ public class RenderCNPCPlayer extends RenderPlayer {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderModel(EntityLivingBase entity, float p_77036_2_, float p_77036_3_, float p_77036_4_, float p_77036_5_, float p_77036_6_, float p_77036_7_) {
|
||||
protected void renderModel(EntityLivingBase entity, float par2, float par3, float par4, float par5, float par6, float par7) {
|
||||
EntityPlayer player = (EntityPlayer) entity;
|
||||
if (!entity.isInvisible())
|
||||
{
|
||||
@@ -121,7 +127,11 @@ public class RenderCNPCPlayer extends RenderPlayer {
|
||||
if (!this.preRenderOverlay(overlayData, player))
|
||||
continue;
|
||||
|
||||
this.modelBipedMain.render(entity, p_77036_2_, p_77036_3_, p_77036_4_, p_77036_5_, p_77036_6_, p_77036_7_);
|
||||
if(hasMPM)
|
||||
renderMorePlayerModel(true);
|
||||
this.modelBipedMain.render(entity, par2, par3, par4, par5, par6, par7);
|
||||
if(hasMPM)
|
||||
renderMorePlayerModel(false);
|
||||
postRenderOverlay();
|
||||
}
|
||||
}
|
||||
@@ -309,6 +319,26 @@ public class RenderCNPCPlayer extends RenderPlayer {
|
||||
}
|
||||
}
|
||||
|
||||
public void renderMorePlayerModel(boolean setField){
|
||||
Class<?> ModelMPMClass = null;
|
||||
Field isArmor = null;
|
||||
|
||||
try {
|
||||
ModelMPMClass = Class.forName("noppes.mpm.client.model.ModelMPM");
|
||||
isArmor = ModelMPMClass.getDeclaredField("isArmor");
|
||||
} catch (Exception ignored) {}
|
||||
|
||||
// Assuming this.modelBipedMain is an instance of ModelMPM
|
||||
if (ModelMPMClass != null && ModelMPMClass.isInstance(this.modelBipedMain)) {
|
||||
try {
|
||||
// Set isArmor field to false
|
||||
if (isArmor != null) {
|
||||
isArmor.setBoolean(this.modelBipedMain, setField);
|
||||
}
|
||||
} catch (IllegalAccessException ignored) {}
|
||||
}
|
||||
}
|
||||
|
||||
public void renderDBCModel(RenderPlayerEvent.Specials.Post event) {
|
||||
EntityPlayer player = event.entityPlayer;
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ public abstract class MixinEntityRenderer {
|
||||
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
if (ClientEventHandler.hasOverlays(player)) {
|
||||
GL11.glPushMatrix();
|
||||
ClientEventHandler.renderCNPCPlayer.renderHand(p_78476_1_,0);
|
||||
ClientEventHandler.renderCNPCSelf.renderHand(p_78476_1_,0);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user