mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-13 03:07:34 +00:00
13 files changed
+106
-64
No files matched your search
@@ -46,6 +46,7 @@ public class DataDisplay {
|
||||
public int showName = 0;
|
||||
|
||||
public int modelType = 0;
|
||||
public boolean x64texture = false;
|
||||
|
||||
public boolean disableLivingAnimation = false;
|
||||
|
||||
@@ -184,7 +185,6 @@ public class DataDisplay {
|
||||
|
||||
if(prevSkinType != skinType || !texture.equals(prevTexture))
|
||||
npc.textureLocation = null;
|
||||
npc.textureGlowLocation = null;
|
||||
npc.textureCloakLocation = null;
|
||||
npc.updateHitbox();
|
||||
}
|
||||
|
||||
@@ -90,7 +90,6 @@ 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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -129,12 +129,14 @@ 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();
|
||||
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
|
||||
));
|
||||
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
|
||||
));
|
||||
}
|
||||
}
|
||||
else if(textfield.id == 11){
|
||||
display.title = textfield.getText();
|
||||
|
||||
@@ -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[]{"Default","Steve64","Alex"}, this.npc.display.modelType));
|
||||
addButton(new GuiNpcButton(250, guiLeft + 50, y += 22, 50, 20, new String[]{"Steve","Alex"}, this.npc.display.modelType/2));
|
||||
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<String> 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<String> 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,7 +231,6 @@ 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){
|
||||
@@ -247,10 +246,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));
|
||||
}
|
||||
@@ -271,21 +270,18 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol
|
||||
// New Button for Changing Models
|
||||
// URL Swapper
|
||||
if(button.id == 250){
|
||||
if(npc.display.modelType == 0){
|
||||
npc.display.modelType = button.displayString.equals("Alex") ? 2 : 1;
|
||||
|
||||
if(npc.display.modelType == 1){
|
||||
if (npc.display.skinType == 2){
|
||||
npc.display.skinType = 3;
|
||||
}
|
||||
npc.display.modelType = 1;
|
||||
}
|
||||
else if(npc.display.modelType == 1){
|
||||
npc.display.modelType = 2;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
if (npc.display.skinType == 3){
|
||||
npc.display.skinType = 2;
|
||||
}
|
||||
npc.display.modelType = 0;
|
||||
}
|
||||
npc.textureLocation = null;
|
||||
}
|
||||
|
||||
if(button.id == 8){
|
||||
@@ -339,7 +335,6 @@ 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){
|
||||
|
||||
@@ -129,7 +129,6 @@ 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){
|
||||
|
||||
@@ -194,7 +194,7 @@ public class ModelMPM extends ModelNPCMale{
|
||||
}
|
||||
|
||||
// Steve 64x32
|
||||
public ModelMPM(float par1) {
|
||||
public ModelMPM(float par1, int alexArms) {
|
||||
|
||||
super(par1);
|
||||
isArmor = par1 > 0;
|
||||
@@ -219,14 +219,24 @@ 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);
|
||||
|
||||
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);
|
||||
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.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.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.bipedRightLeg = new ModelScaleRenderer(this, 0, 16);
|
||||
this.bipedRightLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, par1);
|
||||
|
||||
@@ -48,6 +48,9 @@ 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) {
|
||||
@@ -112,6 +115,9 @@ 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 {
|
||||
@@ -312,6 +318,9 @@ 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 {
|
||||
|
||||
@@ -29,7 +29,7 @@ public class RenderCustomNpc extends RenderNPCHumanMale{
|
||||
|
||||
// Default Renderer
|
||||
public RenderCustomNpc() {
|
||||
super(new ModelMPM(0), new ModelMPM(1), new ModelMPM(0.5f));
|
||||
super(new ModelMPM(0,0), new ModelMPM(1,0), new ModelMPM(0.5f,0));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -37,6 +37,10 @@ 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);
|
||||
@@ -115,13 +119,28 @@ public class RenderNPCHumanMale extends RenderNPCInterface
|
||||
EntityCustomNpc test = (EntityCustomNpc) npc;
|
||||
if(test.modelData.entityClass == null){
|
||||
int modelVal = npc.display.modelType;
|
||||
if(modelVal == 1){
|
||||
if(modelVal == 1 && npc.display.x64texture){
|
||||
this.mainModel = steve64;
|
||||
this.modelBipedMain = steve64;
|
||||
}
|
||||
else if(modelVal == 2){
|
||||
this.mainModel = alex;
|
||||
this.modelBipedMain = alex;
|
||||
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;
|
||||
}
|
||||
else{
|
||||
((EntityCustomNpc) npc).modelData.bodywear = 0;
|
||||
|
||||
@@ -22,6 +22,7 @@ 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;
|
||||
@@ -221,6 +222,9 @@ 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 {
|
||||
@@ -230,7 +234,12 @@ public class RenderNPCInterface extends RenderLiving{
|
||||
}
|
||||
}
|
||||
|
||||
this.bindTexture(overlayData.getLocation());
|
||||
if (overlayData.getLocation().getResourcePath().isEmpty())
|
||||
continue;
|
||||
|
||||
try {
|
||||
this.bindTexture(overlayData.getLocation());
|
||||
} catch (Exception e) { continue; }
|
||||
|
||||
// Overlay & Glow
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
@@ -340,13 +349,12 @@ 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();
|
||||
|
||||
@@ -355,15 +363,17 @@ public class RenderNPCInterface extends RenderLiving{
|
||||
int totalWidth = bufferedimage.getWidth();
|
||||
int totalHeight = bufferedimage.getHeight();
|
||||
|
||||
if (totalHeight > 32) {
|
||||
bufferedimage = bufferedimage.getSubimage(0, 0, totalWidth, 32);
|
||||
|
||||
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);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
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 {
|
||||
if (inputstream != null) {
|
||||
|
||||
@@ -128,7 +128,6 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti
|
||||
public List<EntityLivingBase> interactingEntities = new ArrayList<EntityLivingBase>();
|
||||
|
||||
public ResourceLocation textureLocation = null;
|
||||
public ResourceLocation textureGlowLocation = null;
|
||||
public ResourceLocation textureCloakLocation = null;
|
||||
|
||||
public EnumAnimation currentAnimation = EnumAnimation.NONE;
|
||||
|
||||
@@ -73,14 +73,14 @@ public class ScriptNpc<T extends EntityNPCInterface> extends ScriptLiving<T> imp
|
||||
}
|
||||
|
||||
/**
|
||||
* @param modelType The modelType of the NPC. 0: Steve, 1: Steve64, 2: Alex
|
||||
* @param modelType The modelType of the NPC. 0: Steve, 1: Alex
|
||||
*/
|
||||
public void setModelType(int modelType){
|
||||
if(modelType > 2)
|
||||
modelType = 2;
|
||||
if(modelType > 1)
|
||||
modelType = 1;
|
||||
else if(modelType < 0)
|
||||
modelType = 0;
|
||||
npc.display.modelType = modelType;
|
||||
npc.display.modelType = modelType + 1;
|
||||
npc.script.clientNeedsUpdate = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user