Revert "Revert "WORKING MODEL CHANGER!""

This reverts commit d2b5ce2880.
This commit is contained in:
KAMKEEL committed 2021-04-29 20:42:52 -04:00
1 parent 2afbdbf94d
commit ea1672a242
12 files changed
+81 -92

No files matched your search

+9 -7
View File
@@ -31,13 +31,13 @@ public class DataDisplay {
public int modelSize = 5;
public int showName = 0;
public int modelType = 0;
public boolean disableLivingAnimation = false;
public byte showBossBar = 0;
public byte squareTexture = 0;
public DataDisplay(EntityNPCInterface npc){
this.npc = npc;
String[] names = { "Noppes", "Noppes", "Noppes", "Noppes", "Atesson",
@@ -73,7 +73,7 @@ public class DataDisplay {
nbttagcompound.setString("CloakTexture", cloakTexture);
nbttagcompound.setString("GlowTexture", glowTexture);
nbttagcompound.setByte("UsingSkinUrl", skinType);
if (this.playerProfile != null)
{
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
@@ -82,13 +82,14 @@ public class DataDisplay {
}
nbttagcompound.setInteger("Size", modelSize);
nbttagcompound.setInteger("modelType", modelType);
nbttagcompound.setInteger("ShowName", showName);
nbttagcompound.setInteger("NpcVisible", visible);
nbttagcompound.setBoolean("NoLivingAnimation", disableLivingAnimation);
nbttagcompound.setByte("BossBar", showBossBar);
nbttagcompound.setByte("SquareTexture", squareTexture);
// nbttagcompound.setByte("SquareTexture", squareTexture);
return nbttagcompound;
}
@@ -117,14 +118,15 @@ public class DataDisplay {
cloakTexture = nbttagcompound.getString("CloakTexture");
glowTexture = nbttagcompound.getString("GlowTexture");
modelSize = ValueUtil.CorrectInt(nbttagcompound.getInteger("Size"), 1, 30);
modelSize = ValueUtil.CorrectInt(nbttagcompound.getInteger("Size"), 1, 40);
modelType = nbttagcompound.getInteger("modelType");
showName = nbttagcompound.getInteger("ShowName");
visible = nbttagcompound.getInteger("NpcVisible");
disableLivingAnimation = nbttagcompound.getBoolean("NoLivingAnimation");
showBossBar = nbttagcompound.getByte("BossBar");
squareTexture = nbttagcompound.getByte("SquareTexture");
// squareTexture = nbttagcompound.getByte("SquareTexture");
if(prevSkinType != skinType || !texture.equals(prevTexture))
npc.textureLocation = null;
@@ -76,8 +76,8 @@ public class GuiNpcDisplay extends GuiNPCInterface2 implements ITextfieldListene
this.addButton(new GuiNpcButton(5, guiLeft + 120, y, 50, 20, new String[]{"gui.yes","gui.no"}, display.disableLivingAnimation?1:0));
// Square Texture Button
addLabel(new GuiNpcLabel(300,"display.squareTexture", guiLeft + 230, y + 5));
this.addButton(new GuiNpcButton(300, guiLeft + 313, y, 50, 20, new String[]{"gui.no","gui.yes"}, display.squareTexture));
// addLabel(new GuiNpcLabel(300,"display.squareTexture", guiLeft + 230, y + 5));
// this.addButton(new GuiNpcButton(300, guiLeft + 313, y, 50, 20, new String[]{"gui.no","gui.yes"}, display.squareTexture));
y+=23;
addLabel(new GuiNpcLabel(7,"display.visible", guiLeft + 5, y + 5));
@@ -150,9 +150,9 @@ public class GuiNpcDisplay extends GuiNPCInterface2 implements ITextfieldListene
else if(button.id == 7){
display.visible = button.getValue();
}
else if(button.id == 300){
display.squareTexture = (byte)button.getValue();
}
// else if(button.id == 300){
// display.squareTexture = (byte)button.getValue();
// }
else if(button.id == 8){
NoppesUtil.openGUI(player, new GuiNpcTextureCloaks(npc, this));
}
@@ -42,7 +42,7 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol
private final String[] ignoredTags = {"CanBreakDoors", "Bred", "PlayerCreated", "Tame", "HasReproduced"};
private GuiNpcButton prev,next;
private GuiScreen parent;
private HashMap<Integer, String> mapped = new HashMap<Integer, String>();
@@ -54,7 +54,7 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol
for(Object name : mapping.keySet()){
Class<?> c = (Class<?>) mapping.get(name);
try {
if(!EntityCustomNpc.class.isAssignableFrom(c) && !EntityCustomNpc64.class.isAssignableFrom(c) && EntityLiving.class.isAssignableFrom(c) && c.getConstructor(new Class[] {World.class}) != null && !Modifier.isAbstract(c.getModifiers())){
if(!EntityCustomNpc.class.isAssignableFrom(c) && EntityLiving.class.isAssignableFrom(c) && c.getConstructor(new Class[] {World.class}) != null && !Modifier.isAbstract(c.getModifiers())){
if(RenderManager.instance.getEntityClassRenderObject(c) instanceof RendererLivingEntity)
data.put(name.toString(),c.asSubclass(EntityLivingBase.class));
}
@@ -111,6 +111,9 @@ 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));
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"));
@@ -265,6 +268,20 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol
if(button.id == 7){
this.mc.displayGuiScreen(new GuiModelLegs(this, npc));
}
// New Button for Changing Models
if(button.id == 250){
if(npc.display.modelType == 0){
npc.display.modelType = 1;
}
else if(npc.display.modelType == 1){
npc.display.modelType = 2;
}
else {
npc.display.modelType = 0;
}
}
if(button.id == 8){
this.mc.displayGuiScreen(new GuiModelScale(this, playerdata, npc));
}
@@ -46,8 +46,9 @@ public class GuiEntitySelection extends GuiNPCInterface
list.add("CustomNPC");
Collections.sort(list,String.CASE_INSENSITIVE_ORDER);
slot = new GuiNPCStringSlot(list,this,false,18);
if(playerdata.getEntityClass() != null)
slot.selected = (String) EntityList.classToStringMapping.get(playerdata.getEntityClass());
if(playerdata.getEntityClass() != null){
slot.selected = (String) EntityList.classToStringMapping.get(playerdata.getEntityClass());
}
else{
slot.selected = "CustomNPC";
}
@@ -121,6 +122,7 @@ public class GuiEntitySelection extends GuiNPCInterface
if(entity != null){
RendererLivingEntity render = (RendererLivingEntity) RenderManager.instance.getEntityRenderObject(entity);
npc.display.texture = NPCRendererHelper.getTexture(render,entity);
npc.display.modelType = 0;
}
else{
npc.display.texture = "customnpcs:textures/entity/humanmale/Steve.png";
@@ -67,7 +67,6 @@ public class GuiModelScale extends GuiModelInterface implements ISliderListener{
addButton(new GuiNpcButton(3, guiLeft + 110, y , 60, 20, "Edit"));
y += 24;
}
}
private void drawSlider(int y, ModelPartConfig config){
@@ -118,6 +118,7 @@ public class ModelMPM extends ModelNPCMale{
}
}
// Steve 64x64 and Alex 64x64
public ModelMPM(float par1, boolean arms) {
super(par1, true);
@@ -1,73 +0,0 @@
package noppes.npcs.client.model;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.MathHelper;
import noppes.npcs.ModelPartConfig;
import noppes.npcs.ModelPartData;
import noppes.npcs.client.ClientProxy;
import noppes.npcs.client.model.animation.AniCrawling;
import noppes.npcs.client.model.animation.AniHug;
import noppes.npcs.client.model.part.*;
import noppes.npcs.client.model.util.ModelPartInterface;
import noppes.npcs.client.model.util.ModelScaleRenderer;
import noppes.npcs.constants.EnumAnimation;
import noppes.npcs.constants.EnumJobType;
import noppes.npcs.entity.EntityCustomNpc;
import noppes.npcs.roles.JobPuppet;
import org.lwjgl.opengl.GL11;
import java.util.Random;
public class ModelMPM64 extends ModelMPM{
public EntityLivingBase entity;
public boolean isArmor;
public ModelMPM64(float par1) {
super(par1);
this.textureHeight = 64;
this.textureWidth = 64;
isArmor = par1 > 0;
float par2 = 0;
this.bipedCloak = new ModelRenderer(this, 0, 0);
this.bipedCloak.addBox(-5.0F, 0.0F, -1.0F, 10, 16, 1, par1);
this.bipedEars = new ModelRenderer(this, 24, 0);
this.bipedEars.addBox(-3.0F, -6.0F, -1.0F, 6, 6, 1, par1);
this.bipedHead = new ModelScaleRenderer(this, 0, 0);
this.bipedHead.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, par1);
this.bipedHead.setRotationPoint(0.0F, 0.0F + par2, 0.0F);
this.bipedHeadwear = new ModelScaleRenderer(this, 32, 0);
this.bipedHeadwear.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, par1 + 0.5F);
this.bipedHeadwear.setRotationPoint(0.0F, 0.0F + par2, 0.0F);
this.bipedBody = new ModelScaleRenderer(this, 16, 16);
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);
this.bipedLeftArm = new ModelScaleRenderer(this, 32, 48);
this.bipedLeftArm.mirror = false;
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);
this.bipedRightLeg.setRotationPoint(-1.9F, 12.0F + par2, 0.0F);
this.bipedLeftLeg = new ModelScaleRenderer(this, 16, 48);
this.bipedLeftLeg.mirror = false;
this.bipedLeftLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, par1);
this.bipedLeftLeg.setRotationPoint(1.9F, 12.0F + par2, 0.0F);
}
}
@@ -21,15 +21,19 @@ public class ModelNPCMale extends ModelBiped
public float animationTick;
public float dancingTicks;
public float randomFloat;
public ModelNPCMale(float f)
{
init(f, 0.0F);
randomFloat = f;
}
public ModelNPCMale(float f, boolean newSteve)
{
super(f, 0.0F, 64, 64);
init(f, 0.0F, true);
randomFloat = f;
}
@Override
@@ -2,6 +2,7 @@ package noppes.npcs.client.renderer;
import java.lang.reflect.Method;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.renderer.entity.NPCRendererHelper;
import net.minecraft.client.renderer.entity.RenderManager;
@@ -9,8 +10,10 @@ import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.boss.BossStatus;
import noppes.npcs.client.model.ModelMPM;
import noppes.npcs.client.model.util.ModelRenderPassHelper;
import noppes.npcs.constants.EnumStandingType;
import noppes.npcs.controllers.PixelmonHelper;
import noppes.npcs.entity.EntityCustomNpc;
import noppes.npcs.entity.EntityNPCInterface;
@@ -114,6 +117,13 @@ public class RenderCustomNpc extends RenderNPCHumanMale{
super.preRenderCallback(entityliving, f);
}
@Override
public void doRender(EntityLiving entityliving, double d, double d1, double d2, float f, float f1){
EntityNPCInterface npc = (EntityNPCInterface) entityliving;
super.doRender(entityliving, d, d1, d2, f, f1);
}
@Override
protected float handleRotationFloat(EntityLivingBase par1EntityLivingBase, float par2){
if(renderEntity != null){
@@ -36,8 +36,11 @@ import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type;
public class RenderNPCInterface extends RenderLiving{
public static long LastTextureTick = 0;
private ModelBase originalModel;
public RenderNPCInterface(ModelBase model, float f){
super(model, f);
this.originalModel = model;
}
protected void renderName(EntityNPCInterface npc, double d, double d1, double d2) {
@@ -216,6 +219,18 @@ public class RenderNPCInterface extends RenderLiving{
@Override
public void doRender(EntityLiving entityliving, double d, double d1, double d2, float f, float f1){
EntityNPCInterface npc = (EntityNPCInterface) entityliving;
int modelVal = npc.display.modelType;
if(modelVal == 0){
this.mainModel = this.originalModel;
}
else if(modelVal == 1){
this.mainModel = new ModelMPM(0, false);
}
else{
this.mainModel = new ModelMPM(0, true);
}
if(npc.isKilled() && npc.stats.hideKilledBody && npc.deathTime > 20){
return;
}
@@ -227,7 +242,7 @@ public class RenderNPCInterface extends RenderLiving{
}
super.doRender(entityliving, d, d1, d2, f, f1);
}
protected void renderModel(EntityLivingBase entityliving, float par2, float par3, float par4, float par5, float par6, float par7){
super.renderModel(entityliving, par2, par3, par4, par5, par6, par7);
EntityNPCInterface npc = (EntityNPCInterface) entityliving;
@@ -311,7 +326,7 @@ public class RenderNPCInterface extends RenderLiving{
}
npc.textureLocation = new ResourceLocation("skins/" + sb.toString());
if(npc.display.squareTexture == 1){ versionModel = true; }
// if(npc.display.squareTexture == 1){ versionModel = true; }
loadSkin(null, npc.textureLocation, npc.display.url, versionModel);
LastTextureTick = 0;
@@ -76,5 +76,6 @@ public class EntityCustomNpc extends EntityNPCInterface{
this.setPosition(posX, posY, posZ);
}
}
}
@@ -166,6 +166,7 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti
public long totalTicksAlive = 0;
private int taskCount = 1;
public int lastInteract = 0;
public Faction faction; //should only be used server side
private EntityAIRangedAttack aiRange;
@@ -1692,4 +1693,14 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti
public boolean shouldDismountInWater(Entity rider){
return false;
}
// Model Types: 0: Steve 64x32, 1: Steve 64x64, 2: Alex 64x64
public int getModelType()
{
return this.display.modelType;
}
public void setModelType(int val)
{
this.display.modelType = val;
}
}