diff --git a/src/main/java/noppes/npcs/DataDisplay.java b/src/main/java/noppes/npcs/DataDisplay.java index 6a5582f2b..15dbe469a 100644 --- a/src/main/java/noppes/npcs/DataDisplay.java +++ b/src/main/java/noppes/npcs/DataDisplay.java @@ -46,7 +46,6 @@ public class DataDisplay { public int showName = 0; public int modelType = 0; - public boolean x64texture = false; public boolean disableLivingAnimation = false; @@ -185,6 +184,7 @@ public class DataDisplay { if(prevSkinType != skinType || !texture.equals(prevTexture)) npc.textureLocation = null; + npc.textureGlowLocation = null; npc.textureCloakLocation = null; npc.updateHitbox(); } diff --git a/src/main/java/noppes/npcs/client/EntityUtil.java b/src/main/java/noppes/npcs/client/EntityUtil.java index e8a9c7523..8da93fe43 100644 --- a/src/main/java/noppes/npcs/client/EntityUtil.java +++ b/src/main/java/noppes/npcs/client/EntityUtil.java @@ -90,6 +90,7 @@ public class EntityUtil { EntityNPCInterface target = (EntityNPCInterface) entity; target.textureLocation = npc.textureLocation; + target.textureGlowLocation = npc.textureGlowLocation; target.textureCloakLocation = npc.textureCloakLocation; target.display = npc.display; target.inventory = npc.inventory; diff --git a/src/main/java/noppes/npcs/client/gui/GuiNpcTextureOverlays.java b/src/main/java/noppes/npcs/client/gui/GuiNpcTextureOverlays.java index d0152dcd6..4a67adc62 100644 --- a/src/main/java/noppes/npcs/client/gui/GuiNpcTextureOverlays.java +++ b/src/main/java/noppes/npcs/client/gui/GuiNpcTextureOverlays.java @@ -77,7 +77,7 @@ public class GuiNpcTextureOverlays extends GuiNpcSelectionInterface{ public void elementClicked(){ if(dataTextures.contains(slot.selected) && slot.selected != null){ //npc.display.glowTexture = assets.getAsset(slot.selected); - //npc.textureGlowLocation = null; + npc.textureGlowLocation = null; npc.display.skinOverlayData.overlayList.put(0,new SkinOverlay( assets.getAsset(slot.selected), true, 1.0F, 1.0F, 0.0F, 0.0F, diff --git a/src/main/java/noppes/npcs/client/gui/mainmenu/GuiNpcDisplay.java b/src/main/java/noppes/npcs/client/gui/mainmenu/GuiNpcDisplay.java index 2c1621059..f6423f312 100644 --- a/src/main/java/noppes/npcs/client/gui/mainmenu/GuiNpcDisplay.java +++ b/src/main/java/noppes/npcs/client/gui/mainmenu/GuiNpcDisplay.java @@ -129,14 +129,12 @@ public class GuiNpcDisplay extends GuiNPCInterface2 implements ITextfieldListene display.cloakTexture = textfield.getText(); } else if(textfield.id == 9){ - //npc.textureGlowLocation = null; + npc.textureGlowLocation = null; //display.glowTexture = textfield.getText(); - if (!textfield.getText().isEmpty()) { - npc.display.skinOverlayData.overlayList.put(0, new SkinOverlay( - textfield.getText(), true, 1.0F, 1.0F, 0.0F, 0.0F, - 1.0F, 1.0F, 0.0F, 0.0F, 0.0F - )); - } + npc.display.skinOverlayData.overlayList.put(0,new SkinOverlay( + textfield.getText(), true, 1.0F, 1.0F, 0.0F, 0.0F, + 1.0F, 1.0F, 0.0F, 0.0F, 0.0F + )); } else if(textfield.id == 11){ display.title = textfield.getText(); diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java b/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java index 9c8f5c36d..82c5a76ef 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java @@ -110,25 +110,25 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol addButton(new GuiNpcButton(7, guiLeft + 50, y += 22, 50, 20, "selectServer.edit")); addLabel(new GuiNpcLabel(4, "Legs", guiLeft, y + 5, 0xFFFFFF)); - addButton(new GuiNpcButton(250, guiLeft + 50, y += 22, 50, 20, new String[]{"Steve","Alex"}, this.npc.display.modelType/2)); + addButton(new GuiNpcButton(250, guiLeft + 50, y += 22, 50, 20, new String[]{"Default","Steve64","Alex"}, this.npc.display.modelType)); addLabel(new GuiNpcLabel(250, "Model", guiLeft, y + 5, 0xFFFFFF)); - + addButton(new GuiNpcButton(44, guiLeft + 310, guiTop + 14, 80, 20, "Save Model")); addButton(new GuiNpcButton(45, guiLeft + 310, guiTop + 36, 80, 20, "Load Model")); - - + + } - + private void showPixelmonMenu(EntityLivingBase entity) { GuiCustomScroll scroll = new GuiCustomScroll(this, 0); scroll.setSize(120, 200); scroll.guiLeft = guiLeft; scroll.guiTop = guiTop + 20; addScroll(scroll); - + scroll.setList(PixelmonHelper.getPixelmonList()); scroll.setSelected(PixelmonHelper.getName(entity)); - + Minecraft.getMinecraft().thePlayer.sendChatMessage(PixelmonHelper.getName(entity)); } @@ -137,7 +137,7 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol if(entity instanceof EntityNPCInterface) return; int y = guiTop + 20; - + NBTTagCompound compound = getExtras(entity); Set keys = compound.func_150296_c(); int i = 0; @@ -159,7 +159,7 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol i++; addLabel(new GuiNpcLabel(100 + i, name, guiLeft, y + 5 + i * 22, 0xFFFFFF)); addButton(new GuiNpcButton(100 + i, guiLeft + 80, y + i * 22, 50, 20, new String[]{"gui.no","gui.yes"}, b)); - + mapped.put(i, name); } } @@ -169,7 +169,7 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol Method method = entity.getClass().getMethod("getBreedID"); breed = (Integer) method.invoke(entity); } catch (Exception e) { - + } i++; addLabel(new GuiNpcLabel(201, "Breed", guiLeft, y + 5 + i * 22, 0xFFFFFF)); @@ -186,18 +186,18 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol private NBTTagCompound getExtras(EntityLivingBase entity) { NBTTagCompound fake = new NBTTagCompound(); new EntityFakeLiving(entity.worldObj).writeEntityToNBT(fake); - + NBTTagCompound compound = new NBTTagCompound(); try{ entity.writeEntityToNBT(compound); } catch(Exception e){ - + } Set keys = fake.func_150296_c(); for(String name : keys) compound.removeTag(name); - + return compound; } @@ -221,7 +221,7 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol } else{ playerdata.setEntityClass(data.get(list.get(index))); - + EntityLivingBase entity = playerdata.getEntity(npc); if(entity != null){ RendererLivingEntity render = (RendererLivingEntity) RenderManager.instance.getEntityRenderObject(entity); @@ -231,6 +231,7 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol //npc.display.glowTexture = ""; npc.display.skinOverlayData.overlayList.remove(0); npc.textureLocation = null; + npc.textureGlowLocation = null; npc.updateHitbox(); } catch(Exception ex){ @@ -246,10 +247,10 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol playerdata.setEntityClass(data.get(list.get(index))); updateTexture(); - + initGui(); } - + if(button.id == 1){ this.mc.displayGuiScreen(new GuiEntitySelection(this, playerdata, npc)); } @@ -270,18 +271,21 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol // New Button for Changing Models // URL Swapper if(button.id == 250){ - npc.display.modelType = button.displayString.equals("Alex") ? 2 : 1; - - if(npc.display.modelType == 1){ + if(npc.display.modelType == 0){ if (npc.display.skinType == 2){ npc.display.skinType = 3; } - } else { + npc.display.modelType = 1; + } + else if(npc.display.modelType == 1){ + npc.display.modelType = 2; + } + else { if (npc.display.skinType == 3){ npc.display.skinType = 2; } + npc.display.modelType = 0; } - npc.textureLocation = null; } if(button.id == 8){ @@ -335,6 +339,7 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol //npc.display.glowTexture = ""; npc.display.skinOverlayData.overlayList.remove(0); npc.textureLocation = null; + npc.textureGlowLocation = null; npc.updateHitbox(); } catch(Exception ex){ diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiEntitySelection.java b/src/main/java/noppes/npcs/client/gui/model/GuiEntitySelection.java index 0e124d88e..15704114e 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiEntitySelection.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiEntitySelection.java @@ -129,6 +129,7 @@ public class GuiEntitySelection extends GuiNPCInterface //npc.display.glowTexture = ""; npc.display.skinOverlayData.overlayList.remove(0); npc.textureLocation = null; + npc.textureGlowLocation = null; npc.updateHitbox(); } catch(Exception ex){ diff --git a/src/main/java/noppes/npcs/client/model/ModelMPM.java b/src/main/java/noppes/npcs/client/model/ModelMPM.java index 01f251ac4..a4d158aa0 100644 --- a/src/main/java/noppes/npcs/client/model/ModelMPM.java +++ b/src/main/java/noppes/npcs/client/model/ModelMPM.java @@ -194,7 +194,7 @@ public class ModelMPM extends ModelNPCMale{ } // Steve 64x32 - public ModelMPM(float par1, int alexArms) { + public ModelMPM(float par1) { super(par1); isArmor = par1 > 0; @@ -219,24 +219,14 @@ public class ModelMPM extends ModelNPCMale{ this.bipedBody.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, par1); this.bipedBody.setRotationPoint(0.0F, 0.0F + par2, 0.0F); - if (alexArms == 0) { - this.bipedRightArm = new ModelScaleRenderer(this, 40, 16); - this.bipedRightArm.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, par1); - this.bipedRightArm.setRotationPoint(-5.0F, 2.0F + par2, 0.0F); + this.bipedRightArm = new ModelScaleRenderer(this, 40, 16); + this.bipedRightArm.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, par1); + this.bipedRightArm.setRotationPoint(-5.0F, 2.0F + par2, 0.0F); - this.bipedLeftArm = new ModelScaleRenderer(this, 40, 16); - this.bipedLeftArm.mirror = true; - this.bipedLeftArm.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, par1); - this.bipedLeftArm.setRotationPoint(5.0F, 2.0F + par2, 0.0F); - } else { - this.bipedRightArm = (new ModelScaleRenderer(this, 40, 16)); - this.bipedRightArm.addBox(-2.0F, -2.0F, -2.0F, 3, 12, 4, par1); - - this.bipedLeftArm = new ModelScaleRenderer(this, 40, 16); - this.bipedLeftArm.mirror = true; - this.bipedLeftArm.addBox(-1.0F, -2.0F, -2.0F, 3, 12, 4, par1); - this.bipedLeftArm.setRotationPoint(5.0F, 2.5F + par2, 0.0F); - } + this.bipedLeftArm = new ModelScaleRenderer(this, 40, 16); + this.bipedLeftArm.mirror = true; + this.bipedLeftArm.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, par1); + this.bipedLeftArm.setRotationPoint(5.0F, 2.0F + par2, 0.0F); this.bipedRightLeg = new ModelScaleRenderer(this, 0, 16); this.bipedRightLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, par1); diff --git a/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java b/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java index fe913ebe1..c8c005025 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java @@ -48,9 +48,6 @@ public class RenderCNPCPlayer extends RenderPlayer { private boolean preRenderOverlay(EntityPlayer player, ResourceLocation overlayLocation, boolean glow, float alpha, float size, float speedX, float speedY, float scaleX, float scaleY, float offsetX, float offsetY, float offsetZ) { - if (overlayLocation.getResourcePath().isEmpty()) - return false; - try { this.bindTexture(overlayLocation); } catch (Exception exception) { @@ -115,9 +112,6 @@ public class RenderCNPCPlayer extends RenderPlayer { { if (Client.skinOverlays.containsKey(player.getUniqueID())) { for (SkinOverlay overlayData : Client.skinOverlays.get(player.getUniqueID()).values()) { - if (overlayData.texture.isEmpty()) - continue; - if (overlayData.location == null) { overlayData.location = new ResourceLocation(overlayData.texture); } else { @@ -318,9 +312,6 @@ public class RenderCNPCPlayer extends RenderPlayer { if (Client.skinOverlays.containsKey(player.getUniqueID())) { for (SkinOverlay overlayData : Client.skinOverlays.get(player.getUniqueID()).values()) { - if (overlayData.texture.isEmpty()) - continue; - if (overlayData.location == null) { overlayData.location = new ResourceLocation(overlayData.texture); } else { diff --git a/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java b/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java index 22c619b99..51a0ff9aa 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java @@ -29,7 +29,7 @@ public class RenderCustomNpc extends RenderNPCHumanMale{ // Default Renderer public RenderCustomNpc() { - super(new ModelMPM(0,0), new ModelMPM(1,0), new ModelMPM(0.5f,0)); + super(new ModelMPM(0), new ModelMPM(1), new ModelMPM(0.5f)); } @Override diff --git a/src/main/java/noppes/npcs/client/renderer/RenderNPCHumanMale.java b/src/main/java/noppes/npcs/client/renderer/RenderNPCHumanMale.java index e0615c6c7..b2ef80bab 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderNPCHumanMale.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderNPCHumanMale.java @@ -37,10 +37,6 @@ public class RenderNPCHumanMale extends RenderNPCInterface protected final static ModelMPM steve64 = new ModelMPM(0, false); protected final static ModelMPM alex = new ModelMPM(0, true); - protected final static ModelMPM alex32mainmodel = new ModelMPM(0,1); - protected final static ModelMPM alex32armorChest = new ModelMPM(1,1); - protected final static ModelMPM alex32armor = new ModelMPM(0.5F,1); - public RenderNPCHumanMale(ModelNPCMale mainmodel, ModelNPCMale armorChest, ModelNPCMale armor) { super(mainmodel, 0.5F); @@ -119,28 +115,13 @@ public class RenderNPCHumanMale extends RenderNPCInterface EntityCustomNpc test = (EntityCustomNpc) npc; if(test.modelData.entityClass == null){ int modelVal = npc.display.modelType; - if(modelVal == 1 && npc.display.x64texture){ + if(modelVal == 1){ this.mainModel = steve64; this.modelBipedMain = steve64; } else if(modelVal == 2){ - if (npc.display.x64texture) { - this.mainModel = alex; - this.modelBipedMain = alex; - } else { - ((EntityCustomNpc) npc).modelData.bodywear = 0; - ((EntityCustomNpc) npc).modelData.armwear = 0; - ((EntityCustomNpc) npc).modelData.legwear = 0; - this.mainModel = alex32mainmodel; - this.modelBipedMain = alex32mainmodel; - } - } - else if(modelVal == 3){ - ((EntityCustomNpc) npc).modelData.bodywear = 0; - ((EntityCustomNpc) npc).modelData.armwear = 0; - ((EntityCustomNpc) npc).modelData.legwear = 0; - this.mainModel = alex32mainmodel; - this.modelBipedMain = alex32mainmodel; + this.mainModel = alex; + this.modelBipedMain = alex; } else{ ((EntityCustomNpc) npc).modelData.bodywear = 0; diff --git a/src/main/java/noppes/npcs/client/renderer/RenderNPCInterface.java b/src/main/java/noppes/npcs/client/renderer/RenderNPCInterface.java index 254c3ef16..74f428de9 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderNPCInterface.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderNPCInterface.java @@ -22,7 +22,6 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.boss.BossStatus; -import net.minecraft.util.ReportedException; import net.minecraft.util.ResourceLocation; import noppes.npcs.client.ImageDownloadAlt; import noppes.npcs.client.model.ModelMPM; @@ -222,9 +221,6 @@ public class RenderNPCInterface extends RenderLiving{ if (!npc.display.skinOverlayData.overlayList.isEmpty()) { for (ISkinOverlay overlayData : npc.display.skinOverlayData.overlayList.values()) { try { - if (overlayData.getTexture().isEmpty()) - continue; - if (overlayData.getLocation() == null) { overlayData.setLocation(new ResourceLocation(overlayData.getTexture())); } else { @@ -234,12 +230,7 @@ public class RenderNPCInterface extends RenderLiving{ } } - if (overlayData.getLocation().getResourcePath().isEmpty()) - continue; - - try { - this.bindTexture(overlayData.getLocation()); - } catch (Exception e) { continue; } + this.bindTexture(overlayData.getLocation()); // Overlay & Glow GL11.glEnable(GL11.GL_BLEND); @@ -349,12 +340,13 @@ public class RenderNPCInterface extends RenderLiving{ } private ResourceLocation adjustLocalTexture(EntityNPCInterface npc, ResourceLocation location) throws IOException { + if (npc.display.modelType != 0) { + return location; + } + InputStream inputstream = null; try { - TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); - texturemanager.deleteTexture(location); - IResource iresource = Minecraft.getMinecraft().getResourceManager().getResource(location); inputstream = iresource.getInputStream(); @@ -363,16 +355,14 @@ public class RenderNPCInterface extends RenderLiving{ int totalWidth = bufferedimage.getWidth(); int totalHeight = bufferedimage.getHeight(); - npc.display.x64texture = totalHeight > 32; - if (npc.display.x64texture) { - if (npc.display.modelType == 0 || npc.display.modelType == 3) { - bufferedimage = bufferedimage.getSubimage(0, 0, totalWidth, 32); - } - } + if (totalHeight > 32) { + bufferedimage = bufferedimage.getSubimage(0, 0, totalWidth, 32); - ImageDownloadAlt object = new ImageDownloadAlt(null, npc.display.texture, SkinManager.field_152793_a, new ImageBufferDownloadAlt(false)); - object.setBufferedImage(bufferedimage); - texturemanager.loadTexture(location, object); + TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); + ImageDownloadAlt object = new ImageDownloadAlt(null, npc.display.texture, SkinManager.field_152793_a, new ImageBufferDownloadAlt(false)); + object.setBufferedImage(bufferedimage); + texturemanager.loadTexture(location, object); + } return location; } finally { diff --git a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java index 904b11d15..9f7719377 100644 --- a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java +++ b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java @@ -128,6 +128,7 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti public List interactingEntities = new ArrayList(); public ResourceLocation textureLocation = null; + public ResourceLocation textureGlowLocation = null; public ResourceLocation textureCloakLocation = null; public EnumAnimation currentAnimation = EnumAnimation.NONE; diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java b/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java index ef258ed41..29074db9d 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java @@ -73,14 +73,14 @@ public class ScriptNpc extends ScriptLiving imp } /** - * @param modelType The modelType of the NPC. 0: Steve, 1: Alex + * @param modelType The modelType of the NPC. 0: Steve, 1: Steve64, 2: Alex */ public void setModelType(int modelType){ - if(modelType > 1) - modelType = 1; + if(modelType > 2) + modelType = 2; else if(modelType < 0) modelType = 0; - npc.display.modelType = modelType + 1; + npc.display.modelType = modelType; npc.script.clientNeedsUpdate = true; }