From f0b33cf913099a419184c17fd2f349db9f332fc2 Mon Sep 17 00:00:00 2001 From: "Luis C.M" <42545778+c0508383@users.noreply.github.com> Date: Fri, 17 Mar 2023 02:36:28 -0500 Subject: [PATCH] Moved model scale parts into a single ModelScale class, similar to ModelRotate. Added NPC model data interfaces to the API. --- .../noppes/npcs/VersionCompatibility.java | 1 + .../java/noppes/npcs/client/ClientProxy.java | 2 + .../npcs/client/controllers/Preset.java | 78 ++++++++-------- .../noppes/npcs/client/fx/EntityEnderFX.java | 2 +- .../client/gui/model/GuiEntitySelection.java | 2 +- .../npcs/client/gui/model/GuiModelArms.java | 2 +- .../npcs/client/gui/model/GuiModelBody.java | 2 +- .../npcs/client/gui/model/GuiModelColor.java | 2 +- .../npcs/client/gui/model/GuiModelHead.java | 2 +- .../npcs/client/gui/model/GuiModelLegs.java | 2 +- .../npcs/client/gui/model/GuiModelRotate.java | 5 +- .../npcs/client/gui/model/GuiModelScale.java | 30 +++--- .../npcs/client/gui/model/GuiPresetSave.java | 2 +- .../client/gui/model/GuiPresetSelection.java | 2 +- .../client/gui/util/GuiModelInterface.java | 2 +- .../noppes/npcs/client/model/ModelMPM.java | 18 ++-- .../npcs/client/model/part/ModelBeard.java | 4 +- .../npcs/client/model/part/ModelBreasts.java | 2 +- .../npcs/client/model/part/ModelClaws.java | 4 +- .../npcs/client/model/part/ModelEars.java | 4 +- .../npcs/client/model/part/ModelFin.java | 4 +- .../npcs/client/model/part/ModelHair.java | 4 +- .../npcs/client/model/part/ModelHorns.java | 4 +- .../npcs/client/model/part/ModelLegs.java | 6 +- .../npcs/client/model/part/ModelMohawk.java | 4 +- .../npcs/client/model/part/ModelSkirt.java | 4 +- .../npcs/client/model/part/ModelSnout.java | 4 +- .../npcs/client/model/part/ModelTail.java | 10 +- .../npcs/client/model/part/ModelWings.java | 4 +- .../client/model/util/ModelPartInterface.java | 4 +- .../client/model/util/ModelScaleRenderer.java | 6 +- .../client/renderer/RenderNPCHumanMale.java | 22 ++--- .../noppes/npcs/entity/EntityCustomNpc.java | 6 +- .../noppes/npcs/entity/EntityNPCGolem.java | 2 +- .../noppes/npcs/entity/EntityNpcCrystal.java | 2 +- .../noppes/npcs/entity/EntityNpcDragon.java | 2 +- .../noppes/npcs/entity/EntityNpcPony.java | 2 +- .../noppes/npcs/entity/EntityNpcSlime.java | 2 +- .../npcs/{ => entity/data}/ModelData.java | 2 +- .../{ => entity/data}/ModelDataShared.java | 92 +++++++++---------- .../npcs/{ => entity/data}/ModelPartData.java | 2 +- .../npcs/{ => entity/data}/ModelRotate.java | 47 +++++++++- .../{ => entity/data}/ModelRotatePart.java | 30 +++++- .../noppes/npcs/entity/data/ModelScale.java | 43 +++++++++ .../data/ModelScalePart.java} | 30 ++++-- .../npcs/entity/old/EntityNPCDwarfFemale.java | 10 +- .../npcs/entity/old/EntityNPCDwarfMale.java | 10 +- .../npcs/entity/old/EntityNPCElfFemale.java | 10 +- .../npcs/entity/old/EntityNPCElfMale.java | 10 +- .../npcs/entity/old/EntityNPCEnderman.java | 2 +- .../npcs/entity/old/EntityNPCFurryFemale.java | 12 +-- .../npcs/entity/old/EntityNPCFurryMale.java | 4 +- .../npcs/entity/old/EntityNPCHumanFemale.java | 10 +- .../npcs/entity/old/EntityNPCOrcFemale.java | 10 +- .../npcs/entity/old/EntityNPCOrcMale.java | 10 +- .../npcs/entity/old/EntityNPCVillager.java | 2 +- .../npcs/entity/old/EntityNpcEnderchibi.java | 8 +- .../entity/old/EntityNpcMonsterFemale.java | 10 +- .../npcs/entity/old/EntityNpcNagaFemale.java | 12 +-- .../npcs/entity/old/EntityNpcNagaMale.java | 4 +- .../npcs/entity/old/EntityNpcSkeleton.java | 2 +- .../java/noppes/npcs/roles/RoleCompanion.java | 32 +++---- .../npcs/scripted/entity/ScriptNpc.java | 31 ++++--- 63 files changed, 412 insertions(+), 283 deletions(-) rename src/main/java/noppes/npcs/{ => entity/data}/ModelData.java (97%) rename src/main/java/noppes/npcs/{ => entity/data}/ModelDataShared.java (71%) rename src/main/java/noppes/npcs/{ => entity/data}/ModelPartData.java (98%) rename src/main/java/noppes/npcs/{ => entity/data}/ModelRotate.java (64%) rename src/main/java/noppes/npcs/{ => entity/data}/ModelRotatePart.java (58%) create mode 100644 src/main/java/noppes/npcs/entity/data/ModelScale.java rename src/main/java/noppes/npcs/{ModelLimbConfig.java => entity/data/ModelScalePart.java} (67%) diff --git a/src/main/java/noppes/npcs/VersionCompatibility.java b/src/main/java/noppes/npcs/VersionCompatibility.java index b5e9121aa..fa63cb159 100644 --- a/src/main/java/noppes/npcs/VersionCompatibility.java +++ b/src/main/java/noppes/npcs/VersionCompatibility.java @@ -7,6 +7,7 @@ import net.minecraft.nbt.NBTTagList; import noppes.npcs.controllers.data.Line; import noppes.npcs.controllers.data.Lines; import noppes.npcs.entity.EntityNPCInterface; +import noppes.npcs.entity.data.ModelRotate; import java.util.Collection; import java.util.List; diff --git a/src/main/java/noppes/npcs/client/ClientProxy.java b/src/main/java/noppes/npcs/client/ClientProxy.java index 033af7f52..a67176e11 100644 --- a/src/main/java/noppes/npcs/client/ClientProxy.java +++ b/src/main/java/noppes/npcs/client/ClientProxy.java @@ -61,6 +61,8 @@ import noppes.npcs.constants.EnumGuiType; import noppes.npcs.containers.*; import noppes.npcs.controllers.data.PlayerData; import noppes.npcs.entity.*; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.items.ItemScripted; import org.lwjgl.input.Keyboard; import tconstruct.client.tabs.InventoryTabFactions; diff --git a/src/main/java/noppes/npcs/client/controllers/Preset.java b/src/main/java/noppes/npcs/client/controllers/Preset.java index 71f18bdaa..97c801ffa 100644 --- a/src/main/java/noppes/npcs/client/controllers/Preset.java +++ b/src/main/java/noppes/npcs/client/controllers/Preset.java @@ -1,8 +1,8 @@ package noppes.npcs.client.controllers; import net.minecraft.nbt.NBTTagCompound; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import java.util.HashMap; @@ -28,10 +28,10 @@ public class Preset { Preset preset = new Preset(); preset.name = "Elf Male"; preset.data = data; - data.legs.setScale(0.85f,1.15f); - data.arms.setScale(0.85f,1.15f); - data.body.setScale(0.85f,1.15f); - data.head.setScale(0.85f,0.95f); + data.modelScale.legs.setScale(0.85f,1.15f); + data.modelScale.arms.setScale(0.85f,1.15f); + data.modelScale.body.setScale(0.85f,1.15f); + data.modelScale.head.setScale(0.85f,0.95f); presets.put("elf male", preset); data = new ModelData(); @@ -39,20 +39,20 @@ public class Preset { preset.name = "Elf Female"; preset.data = data; data.breasts = 2; - data.legs.setScale(0.8f,1.05f); - data.arms.setScale(0.8f,1.05f); - data.body.setScale(0.8f,1.05f); - data.head.setScale(0.8f,0.85f); + data.modelScale.legs.setScale(0.8f,1.05f); + data.modelScale.arms.setScale(0.8f,1.05f); + data.modelScale.body.setScale(0.8f,1.05f); + data.modelScale.head.setScale(0.8f,0.85f); presets.put("elf female", preset); data = new ModelData(); preset = new Preset(); preset.name = "Dwarf Male"; preset.data = data; - data.legs.setScale(1.1f,0.7f, 0.9f); - data.arms.setScale(0.9f,0.7f); - data.body.setScale(1.2f, 0.7f, 1.5f); - data.head.setScale(0.85f,0.85f); + data.modelScale.legs.setScale(1.1f,0.7f, 0.9f); + data.modelScale.arms.setScale(0.9f,0.7f); + data.modelScale.body.setScale(1.2f, 0.7f, 1.5f); + data.modelScale.head.setScale(0.85f,0.85f); presets.put("dwarf male", preset); data = new ModelData(); @@ -60,20 +60,20 @@ public class Preset { preset.name = "Dwarf Female"; preset.data = data; data.breasts = 2; - data.legs.setScale(0.9f,0.65f); - data.arms.setScale(0.9f,0.65f); - data.body.setScale(1f, 0.65f, 1.1f); - data.head.setScale(0.85f,0.85f); + data.modelScale.legs.setScale(0.9f,0.65f); + data.modelScale.arms.setScale(0.9f,0.65f); + data.modelScale.body.setScale(1f, 0.65f, 1.1f); + data.modelScale.head.setScale(0.85f,0.85f); presets.put("dwarf female", preset); data = new ModelData(); preset = new Preset(); preset.name = "Orc Male"; preset.data = data; - data.legs.setScale(1.2f,1.05f); - data.arms.setScale(1.2f,1.05f); - data.body.setScale(1.4f, 1.1f, 1.5f); - data.head.setScale(1.2f,1.1f); + data.modelScale.legs.setScale(1.2f,1.05f); + data.modelScale.arms.setScale(1.2f,1.05f); + data.modelScale.body.setScale(1.4f, 1.1f, 1.5f); + data.modelScale.head.setScale(1.2f,1.1f); presets.put("orc male", preset); data = new ModelData(); @@ -81,9 +81,9 @@ public class Preset { preset.name = "Orc Female"; preset.data = data; data.breasts = 2; - data.legs.setScale(1.1f,1); - data.arms.setScale(1.1f,1); - data.body.setScale(1.1f, 1f, 1.25f); + data.modelScale.legs.setScale(1.1f,1); + data.modelScale.arms.setScale(1.1f,1); + data.modelScale.body.setScale(1.1f, 1f, 1.25f); presets.put("orc female", preset); data = new ModelData(); @@ -97,10 +97,10 @@ public class Preset { preset.name = "Human Female"; preset.data = data; data.breasts = 2; - data.head.setScale(0.95f,0.95f); - data.legs.setScale(0.92f,0.92f); - data.arms.setScale(0.80f,0.92f); - data.body.setScale(0.92f, 0.92f); + data.modelScale.head.setScale(0.95f,0.95f); + data.modelScale.legs.setScale(0.92f,0.92f); + data.modelScale.arms.setScale(0.80f,0.92f); + data.modelScale.body.setScale(0.92f, 0.92f); presets.put("human female", preset); data = new ModelData(); @@ -132,10 +132,10 @@ public class Preset { tail.setTexture("tail/tail1", 0); tail.color = 0xD9A64E; data.breasts = 2; - data.head.setScale(0.95f,0.95f); - data.legs.setScale(0.92f,0.92f); - data.arms.setScale(0.80f,0.92f); - data.body.setScale(0.92f, 0.92f); + data.modelScale.head.setScale(0.95f,0.95f); + data.modelScale.legs.setScale(0.92f,0.92f); + data.modelScale.arms.setScale(0.80f,0.92f); + data.modelScale.body.setScale(0.92f, 0.92f); presets.put("cat female", preset); data = new ModelData(); @@ -167,18 +167,18 @@ public class Preset { tail.setTexture("tail/tail2", 0); tail.color = 0x5E5855; data.breasts = 2; - data.head.setScale(0.95f,0.95f); - data.legs.setScale(0.92f,0.92f); - data.arms.setScale(0.80f,0.92f); - data.body.setScale(0.92f, 0.92f); + data.modelScale.head.setScale(0.95f,0.95f); + data.modelScale.legs.setScale(0.92f,0.92f); + data.modelScale.arms.setScale(0.80f,0.92f); + data.modelScale.body.setScale(0.92f, 0.92f); presets.put("wolf female", preset); data = new ModelData(); preset = new Preset(); preset.name = "Enderchibi"; preset.data = data; - data.legs.setScale(0.65f,0.75f); - data.arms.setScale(0.50f,1.45f); + data.modelScale.legs.setScale(0.65f,0.75f); + data.modelScale.arms.setScale(0.50f,1.45f); ModelPartData part = data.getOrCreatePart("particles"); part.setTexture("particle/type1", 1); part.color = 0xFF0000; diff --git a/src/main/java/noppes/npcs/client/fx/EntityEnderFX.java b/src/main/java/noppes/npcs/client/fx/EntityEnderFX.java index 9c630c4e7..11cdf2279 100644 --- a/src/main/java/noppes/npcs/client/fx/EntityEnderFX.java +++ b/src/main/java/noppes/npcs/client/fx/EntityEnderFX.java @@ -3,7 +3,7 @@ package noppes.npcs.client.fx; import net.minecraft.client.particle.EntityPortalFX; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.ResourceLocation; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.ClientProxy; import noppes.npcs.entity.EntityCustomNpc; import org.lwjgl.opengl.GL11; 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 40eaf34f5..223d2efc7 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiEntitySelection.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiEntitySelection.java @@ -8,7 +8,7 @@ import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RendererLivingEntity; import net.minecraft.entity.EntityList; import net.minecraft.entity.EntityLivingBase; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.client.EntityUtil; import noppes.npcs.client.gui.util.GuiNPCInterface; import noppes.npcs.client.gui.util.GuiNPCStringSlot; diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelArms.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelArms.java index 300379079..f56424d23 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelArms.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelArms.java @@ -2,7 +2,7 @@ package noppes.npcs.client.gui.model; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.gui.util.GuiModelInterface; import noppes.npcs.client.gui.util.GuiNpcButton; import noppes.npcs.client.gui.util.GuiNpcLabel; diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java index e1bb8c373..ca1f5c376 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java @@ -2,7 +2,7 @@ package noppes.npcs.client.gui.model; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.gui.util.GuiModelInterface; import noppes.npcs.client.gui.util.GuiNpcButton; import noppes.npcs.client.gui.util.GuiNpcLabel; diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelColor.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelColor.java index efe34d234..9bd4be172 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelColor.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelColor.java @@ -4,7 +4,7 @@ import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.resources.IResource; import net.minecraft.util.ResourceLocation; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.gui.util.GuiModelInterface; import noppes.npcs.client.gui.util.GuiNpcTextField; import noppes.npcs.client.gui.util.ITextfieldListener; diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java index e35836c34..8bab6b4dd 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java @@ -2,7 +2,7 @@ package noppes.npcs.client.gui.model; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.gui.util.GuiModelInterface; import noppes.npcs.client.gui.util.GuiNpcButton; import noppes.npcs.client.gui.util.GuiNpcLabel; diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java index e15775b62..0dfaf06a3 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java @@ -2,7 +2,7 @@ package noppes.npcs.client.gui.model; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.gui.util.GuiModelInterface; import noppes.npcs.client.gui.util.GuiNpcButton; import noppes.npcs.client.gui.util.GuiNpcLabel; diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelRotate.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelRotate.java index 92bbb48b8..1ca7e4635 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelRotate.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelRotate.java @@ -2,9 +2,8 @@ package noppes.npcs.client.gui.model; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; -import noppes.npcs.ModelData; -import noppes.npcs.ModelLimbConfig; -import noppes.npcs.ModelRotatePart; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelRotatePart; import noppes.npcs.client.gui.util.GuiModelInterface; import noppes.npcs.client.gui.util.GuiNpcButton; import noppes.npcs.client.gui.util.GuiNpcLabel; diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelScale.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelScale.java index 3ff91ebfc..b933d2c51 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelScale.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelScale.java @@ -2,8 +2,8 @@ package noppes.npcs.client.gui.model; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; -import noppes.npcs.ModelData; -import noppes.npcs.ModelLimbConfig; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelScalePart; import noppes.npcs.client.gui.util.*; import noppes.npcs.entity.EntityCustomNpc; @@ -32,7 +32,7 @@ public class GuiModelScale extends GuiModelInterface implements ISliderListener{ addLabel(new GuiNpcLabel(20, "Head", guiLeft + 55, y + 5, 0xFFFFFF)); if(type == 0){ - drawSlider(y, playerdata.head); + drawSlider(y, playerdata.modelScale.head); y += 88; } else{ @@ -42,7 +42,7 @@ public class GuiModelScale extends GuiModelInterface implements ISliderListener{ addLabel(new GuiNpcLabel(21, "Body", guiLeft + 55, y + 5, 0xFFFFFF)); if(type == 1){ - drawSlider(y, playerdata.body); + drawSlider(y, playerdata.modelScale.body); y += 88; } else{ @@ -52,7 +52,7 @@ public class GuiModelScale extends GuiModelInterface implements ISliderListener{ addLabel(new GuiNpcLabel(22, "Arms", guiLeft + 55, y + 5, 0xFFFFFF)); if(type == 2){ - drawSlider(y, playerdata.arms); + drawSlider(y, playerdata.modelScale.arms); y += 88; } else { @@ -62,7 +62,7 @@ public class GuiModelScale extends GuiModelInterface implements ISliderListener{ addLabel(new GuiNpcLabel(23, "Legs", guiLeft + 55, y + 5, 0xFFFFFF)); if(type == 3){ - drawSlider(y, playerdata.legs); + drawSlider(y, playerdata.modelScale.legs); y += 88; } else{ @@ -71,7 +71,7 @@ public class GuiModelScale extends GuiModelInterface implements ISliderListener{ } } - private void drawSlider(int y, ModelLimbConfig config){ + private void drawSlider(int y, ModelScalePart config){ y += 20; addLabel(new GuiNpcLabel(10, "Width", guiLeft - 25 + offset, y + 5, 0xFFFFFF)); scaleWidth = new GuiNpcSlider(this, 10, guiLeft + 50 + offset, y, config.scaleX - 0.5f); @@ -100,13 +100,13 @@ public class GuiModelScale extends GuiModelInterface implements ISliderListener{ } else{ // Resetting Type - ModelLimbConfig config = playerdata.head; + ModelScalePart config = playerdata.modelScale.head; if(type == 1) - config = playerdata.body; + config = playerdata.modelScale.body; else if(type == 2) - config = playerdata.arms; + config = playerdata.modelScale.arms; else if(type == 3) - config = playerdata.legs; + config = playerdata.modelScale.legs; if(btn.id == 170){ config.scaleX = 1.0f; @@ -143,13 +143,13 @@ public class GuiModelScale extends GuiModelInterface implements ISliderListener{ public void mouseDragged(GuiNpcSlider slider) { int percent = (int) (50 + slider.sliderValue * 100); slider.setString(percent + "%"); - ModelLimbConfig config = playerdata.head; + ModelScalePart config = playerdata.modelScale.head; if(type == 1) - config = playerdata.body; + config = playerdata.modelScale.body; else if(type == 2) - config = playerdata.arms; + config = playerdata.modelScale.arms; else if(type == 3) - config = playerdata.legs; + config = playerdata.modelScale.legs; if(slider.id == 10) config.scaleX = slider.sliderValue + 0.5f; diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiPresetSave.java b/src/main/java/noppes/npcs/client/gui/model/GuiPresetSave.java index a9e7b9f12..87ca3e954 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiPresetSave.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiPresetSave.java @@ -2,7 +2,7 @@ package noppes.npcs.client.gui.model; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.client.controllers.Preset; import noppes.npcs.client.controllers.PresetController; import noppes.npcs.client.gui.util.GuiNPCInterface; diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiPresetSelection.java b/src/main/java/noppes/npcs/client/gui/model/GuiPresetSelection.java index cf792e4d4..4bfa77a11 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiPresetSelection.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiPresetSelection.java @@ -8,7 +8,7 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.EntityLivingBase; import net.minecraft.nbt.NBTTagCompound; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.client.EntityUtil; import noppes.npcs.client.controllers.Preset; import noppes.npcs.client.controllers.PresetController; diff --git a/src/main/java/noppes/npcs/client/gui/util/GuiModelInterface.java b/src/main/java/noppes/npcs/client/gui/util/GuiModelInterface.java index 31c03f588..2087e41d2 100644 --- a/src/main/java/noppes/npcs/client/gui/util/GuiModelInterface.java +++ b/src/main/java/noppes/npcs/client/gui/util/GuiModelInterface.java @@ -6,7 +6,7 @@ import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.EntityLivingBase; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.client.EntityUtil; import noppes.npcs.entity.EntityCustomNpc; import org.lwjgl.input.Mouse; diff --git a/src/main/java/noppes/npcs/client/model/ModelMPM.java b/src/main/java/noppes/npcs/client/model/ModelMPM.java index a5004bd7d..42e4157ca 100644 --- a/src/main/java/noppes/npcs/client/model/ModelMPM.java +++ b/src/main/java/noppes/npcs/client/model/ModelMPM.java @@ -24,6 +24,8 @@ import noppes.npcs.controllers.data.Frame; import noppes.npcs.controllers.data.FramePart; import noppes.npcs.controllers.data.SkinOverlay; import noppes.npcs.entity.EntityCustomNpc; +import noppes.npcs.entity.data.ModelPartData; +import noppes.npcs.entity.data.ModelScalePart; import org.lwjgl.opengl.GL11; import java.util.HashMap; @@ -632,7 +634,7 @@ public class ModelMPM extends ModelNPCMale{ bipedRightArm.rotateAngleZ = (float) (Math.PI - 1f - Math.sin(entity.ticksExisted * 0.27f) * 0.5f ); } else if(isSneak){ - this.bipedBody.rotateAngleX = 0.5F / npc.modelData.body.scaleY; + this.bipedBody.rotateAngleX = 0.5F / npc.modelData.modelScale.body.scaleY; } AnimationData animationData = npc.display.animationData; @@ -736,7 +738,7 @@ public class ModelMPM extends ModelNPCMale{ float dancing = entity.ticksExisted / 4f; GL11.glTranslatef((float)Math.sin(dancing) * 0.075F, (float)Math.abs(Math.cos(dancing)) * 0.125F - 0.02F, (float)(-Math.abs(Math.cos(dancing))) * 0.075F); } - ModelLimbConfig head = entity.modelData.head; + ModelScalePart head = entity.modelData.modelScale.head; this.copyAnglesPivots(headwear,bipedHead); this.copyAnglesPivots(bipedHeadwear,bipedHead); @@ -772,7 +774,7 @@ public class ModelMPM extends ModelNPCMale{ GL11.glTranslatef((float)Math.sin(dancing) * 0.015F, 0.0F, 0.0F); } - ModelLimbConfig body = entity.modelData.body; + ModelScalePart body = entity.modelData.modelScale.body; // Hide Body ((ModelScaleRenderer)this.bipedBody).isHidden = entity.modelData.hideBody == 1; @@ -782,7 +784,7 @@ public class ModelMPM extends ModelNPCMale{ if(bipedBodywear.showModel && !bipedBodywear.isHidden){ if(entity.modelData.bodywear == 1 || isArmor){ - ((ModelScaleRenderer)this.bipedBodywear).setConfig(entity.modelData.body,x,y,z); + ((ModelScaleRenderer)this.bipedBodywear).setConfig(entity.modelData.modelScale.body,x,y,z); ((ModelScaleRenderer)this.bipedBodywear).render(f); } else if(entity.modelData.bodywear == 2){ @@ -792,7 +794,7 @@ public class ModelMPM extends ModelNPCMale{ this.bodywear.rotationPointX = bipedBodywear.rotationPointX; this.bodywear.rotationPointY = bipedBodywear.rotationPointY; this.bodywear.rotationPointZ = bipedBodywear.rotationPointZ; - this.bodywear.setConfig(entity.modelData.body,x,y,z); + this.bodywear.setConfig(entity.modelData.modelScale.body,x,y,z); this.bodywear.render(f); } } @@ -804,9 +806,9 @@ public class ModelMPM extends ModelNPCMale{ } public void renderArms(EntityCustomNpc entity, float f, boolean bo){ loadPlayerTexture(entity); - ModelLimbConfig arms = entity.modelData.arms; + ModelScalePart arms = entity.modelData.modelScale.arms; - float x = (1 - entity.modelData.body.scaleX) * 0.25f + (1 - arms.scaleX) * 0.075f; + float x = (1 - entity.modelData.modelScale.body.scaleX) * 0.25f + (1 - arms.scaleX) * 0.075f; float y = entity.modelData.getBodyY() + (1 - arms.scaleY) * -0.1f; float z = 0; @@ -883,7 +885,7 @@ public class ModelMPM extends ModelNPCMale{ } private void renderLegs(EntityCustomNpc entity, float f) { loadPlayerTexture(entity); - ModelLimbConfig legs = entity.modelData.legs; + ModelScalePart legs = entity.modelData.modelScale.legs; float x = (1 - legs.scaleX) * 0.125f; float y = entity.modelData.getLegsY(); diff --git a/src/main/java/noppes/npcs/client/model/part/ModelBeard.java b/src/main/java/noppes/npcs/client/model/part/ModelBeard.java index 420c5006e..794e7022e 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelBeard.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelBeard.java @@ -1,8 +1,8 @@ package noppes.npcs.client.model.part; import net.minecraft.entity.Entity; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.util.Model2DRenderer; import noppes.npcs.client.model.util.ModelPartInterface; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelBreasts.java b/src/main/java/noppes/npcs/client/model/part/ModelBreasts.java index 0e2b969a2..03dc236f6 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelBreasts.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelBreasts.java @@ -2,7 +2,7 @@ package noppes.npcs.client.model.part; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.util.Model2DRenderer; import noppes.npcs.client.model.util.ModelPartInterface; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelClaws.java b/src/main/java/noppes/npcs/client/model/part/ModelClaws.java index 3abef9802..88706cb0a 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelClaws.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelClaws.java @@ -1,7 +1,7 @@ package noppes.npcs.client.model.part; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.util.Model2DRenderer; import noppes.npcs.client.model.util.ModelPartInterface; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelEars.java b/src/main/java/noppes/npcs/client/model/part/ModelEars.java index 877b83950..c6152a250 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelEars.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelEars.java @@ -1,8 +1,8 @@ package noppes.npcs.client.model.part; import net.minecraft.client.model.ModelRenderer; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.util.Model2DRenderer; import noppes.npcs.client.model.util.ModelPartInterface; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelFin.java b/src/main/java/noppes/npcs/client/model/part/ModelFin.java index 42f715504..b3c74ccc3 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelFin.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelFin.java @@ -1,7 +1,7 @@ package noppes.npcs.client.model.part; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.util.Model2DRenderer; import noppes.npcs.client.model.util.ModelPartInterface; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelHair.java b/src/main/java/noppes/npcs/client/model/part/ModelHair.java index 4a4c12389..4e7d985ea 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelHair.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelHair.java @@ -2,8 +2,8 @@ package noppes.npcs.client.model.part; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.util.Model2DRenderer; import noppes.npcs.client.model.util.ModelPartInterface; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelHorns.java b/src/main/java/noppes/npcs/client/model/part/ModelHorns.java index 30c31ff73..ce5d81004 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelHorns.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelHorns.java @@ -2,8 +2,8 @@ package noppes.npcs.client.model.part; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.part.horns.ModelAntennasBack; import noppes.npcs.client.model.part.horns.ModelAntennasFront; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelLegs.java b/src/main/java/noppes/npcs/client/model/part/ModelLegs.java index 1ede81e50..0d87b4512 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelLegs.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelLegs.java @@ -3,7 +3,7 @@ package noppes.npcs.client.model.part; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.ClientProxy; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.part.legs.ModelDigitigradeLegs; @@ -294,8 +294,8 @@ public class ModelLegs extends ModelScaleRenderer{ spiderNeck.rotateAngleX = (float) (Math.PI / -8); } if(base.isSleeping(entity) || this.entity.currentAnimation == EnumAnimation.CRAWLING){ - rotationPointY = 12 * this.entity.modelData.legs.scaleY; - rotationPointZ = 15 * this.entity.modelData.legs.scaleY; + rotationPointY = 12 * this.entity.modelData.modelScale.legs.scaleY; + rotationPointZ = 15 * this.entity.modelData.modelScale.legs.scaleY; this.rotateAngleX = (float) (Math.PI / -2); } diff --git a/src/main/java/noppes/npcs/client/model/part/ModelMohawk.java b/src/main/java/noppes/npcs/client/model/part/ModelMohawk.java index 2d9b1e291..f66397bc9 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelMohawk.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelMohawk.java @@ -1,8 +1,8 @@ package noppes.npcs.client.model.part; import net.minecraft.entity.Entity; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.util.Model2DRenderer; import noppes.npcs.client.model.util.ModelPartInterface; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelSkirt.java b/src/main/java/noppes/npcs/client/model/part/ModelSkirt.java index b3489a624..42e7bf763 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelSkirt.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelSkirt.java @@ -3,8 +3,8 @@ package noppes.npcs.client.model.part; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.util.ModelPartInterface; import noppes.npcs.client.model.util.ModelPlaneRenderer; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelSnout.java b/src/main/java/noppes/npcs/client/model/part/ModelSnout.java index 6157cea71..d31abdd9f 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelSnout.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelSnout.java @@ -2,8 +2,8 @@ package noppes.npcs.client.model.part; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.util.ModelPartInterface; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelTail.java b/src/main/java/noppes/npcs/client/model/part/ModelTail.java index 87c3bad53..f8ddd87c6 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelTail.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelTail.java @@ -5,7 +5,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.ClientProxy; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.part.tails.*; @@ -87,18 +87,18 @@ public class ModelTail extends ModelScaleRenderer { if(this.entity.modelData.legParts.type == 2){ rotationPointY = 13f; - rotationPointZ = 14 * this.entity.modelData.legs.scaleZ; + rotationPointZ = 14 * this.entity.modelData.modelScale.legs.scaleZ; if(base.isSleeping(entity) || this.entity.currentAnimation == EnumAnimation.CRAWLING){ - rotationPointY = 12 + 16 * this.entity.modelData.legs.scaleZ; - rotationPointZ = 1f * this.entity.modelData.legs.scaleY; + rotationPointY = 12 + 16 * this.entity.modelData.modelScale.legs.scaleZ; + rotationPointZ = 1f * this.entity.modelData.modelScale.legs.scaleY; rotateAngleX = (float) (Math.PI / -4); } } else if(this.entity.modelData.legParts.type == 3){ rotationPointY = 8.6f; - rotationPointZ = 19 * this.entity.modelData.legs.scaleZ; + rotationPointZ = 19 * this.entity.modelData.modelScale.legs.scaleZ; } else{ rotationPointY = 11; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelWings.java b/src/main/java/noppes/npcs/client/model/part/ModelWings.java index f5eece043..ced9f8e83 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelWings.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelWings.java @@ -2,8 +2,8 @@ package noppes.npcs.client.model.part; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.util.Model2DRenderer; import noppes.npcs.client.model.util.ModelPartInterface; diff --git a/src/main/java/noppes/npcs/client/model/util/ModelPartInterface.java b/src/main/java/noppes/npcs/client/model/util/ModelPartInterface.java index b9651f217..fabc81710 100644 --- a/src/main/java/noppes/npcs/client/model/util/ModelPartInterface.java +++ b/src/main/java/noppes/npcs/client/model/util/ModelPartInterface.java @@ -4,8 +4,8 @@ import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.ResourceLocation; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.client.ClientProxy; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.entity.EntityCustomNpc; diff --git a/src/main/java/noppes/npcs/client/model/util/ModelScaleRenderer.java b/src/main/java/noppes/npcs/client/model/util/ModelScaleRenderer.java index cd2e6c90a..2e64ab9a5 100644 --- a/src/main/java/noppes/npcs/client/model/util/ModelScaleRenderer.java +++ b/src/main/java/noppes/npcs/client/model/util/ModelScaleRenderer.java @@ -5,7 +5,7 @@ import net.minecraft.client.model.ModelBox; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.Tessellator; -import noppes.npcs.ModelLimbConfig; +import noppes.npcs.entity.data.ModelScalePart; import org.lwjgl.opengl.GL11; public class ModelScaleRenderer extends ModelRenderer { @@ -15,7 +15,7 @@ public class ModelScaleRenderer extends ModelRenderer { /** The GL display list rendered by the Tessellator for this model */ public int displayList; - protected ModelLimbConfig config; + protected ModelScalePart config; public float x, y, z; @@ -28,7 +28,7 @@ public class ModelScaleRenderer extends ModelRenderer { this.setTextureOffset(par2, par3); } - public void setConfig(ModelLimbConfig config, float x, float y, float z){ + public void setConfig(ModelScalePart config, float x, float y, float z){ this.config = config; this.x = x; this.y = y; diff --git a/src/main/java/noppes/npcs/client/renderer/RenderNPCHumanMale.java b/src/main/java/noppes/npcs/client/renderer/RenderNPCHumanMale.java index abd10c726..927d09683 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderNPCHumanMale.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderNPCHumanMale.java @@ -145,17 +145,17 @@ public class RenderNPCHumanMale extends RenderNPCInterface modelArmorChestplate.heldItemRight = modelArmor.heldItemRight = modelBipedMain.heldItemRight = itemstack == null ? 0 : npc.hurtResistantTime > 0 ? 3 : 1; - modelArmorChestplate.heldItemLeft = modelArmor.heldItemLeft = modelBipedMain.heldItemLeft = + modelArmorChestplate.heldItemLeft = modelArmor.heldItemLeft = modelBipedMain.heldItemLeft = npc.getOffHand() == null ? 0 : npc.hurtResistantTime > 0 ? 3 : 1; - + modelArmorChestplate.isSneak = modelArmor.isSneak = modelBipedMain.isSneak = npc.isSneaking(); modelArmorChestplate.isSleeping = modelArmor.isSleeping = modelBipedMain.isSleeping = npc.isPlayerSleeping(); modelArmorChestplate.isDancing = modelArmor.isDancing = modelBipedMain.isDancing = npc.currentAnimation == EnumAnimation.DANCING; modelArmorChestplate.aimedBow = modelArmor.aimedBow = modelBipedMain.aimedBow = npc.currentAnimation == EnumAnimation.AIMING; - + modelArmorChestplate.isRiding = modelArmor.isRiding = modelBipedMain.isRiding = npc.isRiding(); - + double d3 = d1 - (double)npc.yOffset; if(npc.isSneaking()) { @@ -185,7 +185,7 @@ public class RenderNPCHumanMale extends RenderNPCInterface EntityCustomNpc cnpc = (EntityCustomNpc) npc; GL11.glTranslatef(0, cnpc.modelData.getBodyY(), 0); this.modelBipedMain.bipedHead.postRender(0.0625F); - GL11.glScalef(cnpc.modelData.head.scaleX, cnpc.modelData.head.scaleY, cnpc.modelData.head.scaleZ); + GL11.glScalef(cnpc.modelData.modelScale.head.scaleX, cnpc.modelData.modelScale.head.scaleY, cnpc.modelData.modelScale.head.scaleZ); } else this.modelBipedMain.bipedHead.postRender(0.0625F); @@ -218,8 +218,8 @@ public class RenderNPCHumanMale extends RenderNPCInterface float x = 0; if(npc instanceof EntityCustomNpc){ EntityCustomNpc cnpc = (EntityCustomNpc) npc; - y = (cnpc.modelData.arms.scaleY - 1) * 0.7f; - x = (1 - cnpc.modelData.body.scaleX) * 0.28f + (1 - cnpc.modelData.arms.scaleX) * 0.175f; + y = (cnpc.modelData.modelScale.arms.scaleY - 1) * 0.7f; + x = (1 - cnpc.modelData.modelScale.body.scaleX) * 0.28f + (1 - cnpc.modelData.modelScale.arms.scaleX) * 0.175f; GL11.glTranslatef(x, cnpc.modelData.getBodyY(), 0); } this.modelBipedMain.bipedRightArm.postRender(0.0625F); @@ -263,7 +263,7 @@ public class RenderNPCHumanMale extends RenderNPCInterface GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(0.0F, -0.125F, 0.0F); } - + if (npc.hurtResistantTime > 0 && npc.stats.resistances.playermelee > 1f) { GL11.glTranslatef(0.05F, 0.0F, -0.1F); @@ -309,7 +309,7 @@ public class RenderNPCHumanMale extends RenderNPCInterface } else renderManager.itemRenderer.renderItem(npc, itemstack2, 0); - + GL11.glPopMatrix(); } GL11.glColor4f(1, 1, 1, 1.0F); @@ -321,8 +321,8 @@ public class RenderNPCHumanMale extends RenderNPCInterface float x = 0; if(npc instanceof EntityCustomNpc){ EntityCustomNpc cnpc = (EntityCustomNpc) npc; - y = (cnpc.modelData.arms.scaleY - 1) * 0.7f; - x = (1 - cnpc.modelData.body.scaleX) * -0.28f + (1 - cnpc.modelData.arms.scaleX) * -0.175f; + y = (cnpc.modelData.modelScale.arms.scaleY - 1) * 0.7f; + x = (1 - cnpc.modelData.modelScale.body.scaleX) * -0.28f + (1 - cnpc.modelData.modelScale.arms.scaleX) * -0.175f; GL11.glTranslatef(x, cnpc.modelData.getBodyY(), 0); } this.modelBipedMain.bipedLeftArm.postRender(0.0625F); diff --git a/src/main/java/noppes/npcs/entity/EntityCustomNpc.java b/src/main/java/noppes/npcs/entity/EntityCustomNpc.java index 7fc3ca108..735be27ab 100644 --- a/src/main/java/noppes/npcs/entity/EntityCustomNpc.java +++ b/src/main/java/noppes/npcs/entity/EntityCustomNpc.java @@ -5,8 +5,8 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import noppes.npcs.CustomNpcs; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.VersionCompatibility; import noppes.npcs.client.EntityUtil; @@ -64,7 +64,7 @@ public class EntityCustomNpc extends EntityNPCFlying { public void updateHitbox() { Entity entity = modelData.getEntity(this); if(modelData == null || entity == null){ - baseHeight = 1.9f - modelData.getBodyY() + (modelData.head.scaleY - 1) / 2; + baseHeight = 1.9f - modelData.getBodyY() + (modelData.modelScale.head.scaleY - 1) / 2; super.updateHitbox(); } else{ diff --git a/src/main/java/noppes/npcs/entity/EntityNPCGolem.java b/src/main/java/noppes/npcs/entity/EntityNPCGolem.java index cb74d847a..8ae0c67c5 100644 --- a/src/main/java/noppes/npcs/entity/EntityNPCGolem.java +++ b/src/main/java/noppes/npcs/entity/EntityNPCGolem.java @@ -6,7 +6,7 @@ package noppes.npcs.entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.constants.EnumAnimation; // Referenced classes of package net.minecraft.src: diff --git a/src/main/java/noppes/npcs/entity/EntityNpcCrystal.java b/src/main/java/noppes/npcs/entity/EntityNpcCrystal.java index acc159443..de1c4aa1c 100644 --- a/src/main/java/noppes/npcs/entity/EntityNpcCrystal.java +++ b/src/main/java/noppes/npcs/entity/EntityNpcCrystal.java @@ -6,7 +6,7 @@ package noppes.npcs.entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; // Referenced classes of package net.minecraft.src: // EntityAnimal, Item, EntityPlayer, InventoryPlayer, diff --git a/src/main/java/noppes/npcs/entity/EntityNpcDragon.java b/src/main/java/noppes/npcs/entity/EntityNpcDragon.java index 45d49956c..64d23e282 100644 --- a/src/main/java/noppes/npcs/entity/EntityNpcDragon.java +++ b/src/main/java/noppes/npcs/entity/EntityNpcDragon.java @@ -3,7 +3,7 @@ package noppes.npcs.entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; public class EntityNpcDragon extends EntityNPCInterface{ public EntityNpcDragon(World world) diff --git a/src/main/java/noppes/npcs/entity/EntityNpcPony.java b/src/main/java/noppes/npcs/entity/EntityNpcPony.java index 7b8032421..b0e92cd10 100644 --- a/src/main/java/noppes/npcs/entity/EntityNpcPony.java +++ b/src/main/java/noppes/npcs/entity/EntityNpcPony.java @@ -3,7 +3,7 @@ package noppes.npcs.entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; public class EntityNpcPony extends EntityNPCInterface { diff --git a/src/main/java/noppes/npcs/entity/EntityNpcSlime.java b/src/main/java/noppes/npcs/entity/EntityNpcSlime.java index b2cf83ec0..a0cea00f9 100644 --- a/src/main/java/noppes/npcs/entity/EntityNpcSlime.java +++ b/src/main/java/noppes/npcs/entity/EntityNpcSlime.java @@ -2,7 +2,7 @@ package noppes.npcs.entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; public class EntityNpcSlime extends EntityNPCInterface{ public EntityNpcSlime(World world) diff --git a/src/main/java/noppes/npcs/ModelData.java b/src/main/java/noppes/npcs/entity/data/ModelData.java similarity index 97% rename from src/main/java/noppes/npcs/ModelData.java rename to src/main/java/noppes/npcs/entity/data/ModelData.java index 90eb41025..6f1c569b2 100644 --- a/src/main/java/noppes/npcs/ModelData.java +++ b/src/main/java/noppes/npcs/entity/data/ModelData.java @@ -1,4 +1,4 @@ -package noppes.npcs; +package noppes.npcs.entity.data; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/noppes/npcs/ModelDataShared.java b/src/main/java/noppes/npcs/entity/data/ModelDataShared.java similarity index 71% rename from src/main/java/noppes/npcs/ModelDataShared.java rename to src/main/java/noppes/npcs/entity/data/ModelDataShared.java index 2455aa461..bf5ae19d1 100644 --- a/src/main/java/noppes/npcs/ModelDataShared.java +++ b/src/main/java/noppes/npcs/entity/data/ModelDataShared.java @@ -1,18 +1,18 @@ -package noppes.npcs; +package noppes.npcs.entity.data; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.passive.EntityHorse; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import noppes.npcs.api.entity.data.IModelData; +import noppes.npcs.api.entity.data.IModelRotate; +import noppes.npcs.api.entity.data.IModelScale; import java.util.HashMap; -public class ModelDataShared{ - public ModelLimbConfig head = new ModelLimbConfig(); - public ModelLimbConfig arms = new ModelLimbConfig(); - public ModelLimbConfig body = new ModelLimbConfig(); - public ModelLimbConfig legs = new ModelLimbConfig(); +public class ModelDataShared implements IModelData { + public ModelScale modelScale = new ModelScale(); public boolean enableRotation = false; public ModelRotate rotation = new ModelRotate(); @@ -48,10 +48,7 @@ public class ModelDataShared{ if(entityClass != null) compound.setString("EntityClass", entityClass.getCanonicalName()); - compound.setTag("HeadConfig", head.writeToNBT()); - compound.setTag("BodyConfig", body.writeToNBT()); - compound.setTag("ArmsConfig", arms.writeToNBT()); - compound.setTag("LegsConfig", legs.writeToNBT()); + compound = this.modelScale.writeToNBT(compound); compound.setTag("LegParts", legParts.writeToNBT()); @@ -87,12 +84,9 @@ public class ModelDataShared{ } public void readFromNBT(NBTTagCompound compound){ - setEntityClass(compound.getString("EntityClass")); + setEntity(compound.getString("EntityClass")); - head.readFromNBT(compound.getCompoundTag("HeadConfig")); - body.readFromNBT(compound.getCompoundTag("BodyConfig")); - arms.readFromNBT(compound.getCompoundTag("ArmsConfig")); - legs.readFromNBT(compound.getCompoundTag("LegsConfig")); + this.modelScale.readFromNBT(compound); legParts.readFromNBT(compound.getCompoundTag("LegParts")); @@ -127,33 +121,6 @@ public class ModelDataShared{ this.parts = parts; } - - public void readPartsFromNBT(NBTTagCompound compound){ - legParts.readFromNBT(compound.getCompoundTag("LegParts")); - - HashMap parts = new HashMap(); - NBTTagList list = compound.getTagList("Parts", 10); - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound item = list.getCompoundTagAt(i); - ModelPartData part = new ModelPartData(); - part.readFromNBT(item); - parts.put(item.getString("PartName"), part); - } - this.parts = parts; - } - - private void setEntityClass(String string) { - entityClass = null; - entity = null; - try { - Class cls = Class.forName(string); - if (EntityLivingBase.class.isAssignableFrom(cls)) - entityClass = cls.asSubclass(EntityLivingBase.class); - - } catch (ClassNotFoundException e) { - - } - } public void setEntityClass(Class entityClass){ this.entityClass = entityClass; @@ -195,15 +162,46 @@ public class ModelDataShared{ public float getBodyY(){ if(legParts.type == 3) - return (0.9f - body.scaleY) * 0.75f + getLegsY(); + return (0.9f - modelScale.body.scaleY) * 0.75f + getLegsY(); if(legParts.type == 3) - return (0.5f - body.scaleY) * 0.75f + getLegsY(); - return (1 - body.scaleY) * 0.75f + getLegsY(); + return (0.5f - modelScale.body.scaleY) * 0.75f + getLegsY(); + return (1 - modelScale.body.scaleY) * 0.75f + getLegsY(); } public float getLegsY() { if(legParts.type == 3) - return (0.87f - legs.scaleY) * 1f; - return (1 - legs.scaleY) * 0.75f; + return (0.87f - modelScale.legs.scaleY); + return (1 - modelScale.legs.scaleY) * 0.75f; + } + + public void enableRotation(boolean enableRotation) { + this.enableRotation = enableRotation; + } + + public boolean enableRotation() { + return this.enableRotation; + } + + public IModelRotate getRotation() { + return this.rotation; + } + + public IModelScale getScale() { + return this.modelScale; + } + + public void setEntity(String string) { + entityClass = null; + entity = null; + try { + Class cls = Class.forName(string); + if (EntityLivingBase.class.isAssignableFrom(cls)) + entityClass = cls.asSubclass(EntityLivingBase.class); + + } catch (ClassNotFoundException ignored) {} + } + + public String getEntity() { + return entityClass == null ? null : entityClass.getName(); } } diff --git a/src/main/java/noppes/npcs/ModelPartData.java b/src/main/java/noppes/npcs/entity/data/ModelPartData.java similarity index 98% rename from src/main/java/noppes/npcs/ModelPartData.java rename to src/main/java/noppes/npcs/entity/data/ModelPartData.java index 2cbe59974..77db24599 100644 --- a/src/main/java/noppes/npcs/ModelPartData.java +++ b/src/main/java/noppes/npcs/entity/data/ModelPartData.java @@ -1,4 +1,4 @@ -package noppes.npcs; +package noppes.npcs.entity.data; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/noppes/npcs/ModelRotate.java b/src/main/java/noppes/npcs/entity/data/ModelRotate.java similarity index 64% rename from src/main/java/noppes/npcs/ModelRotate.java rename to src/main/java/noppes/npcs/entity/data/ModelRotate.java index 1dc07bf74..00f85ba69 100644 --- a/src/main/java/noppes/npcs/ModelRotate.java +++ b/src/main/java/noppes/npcs/entity/data/ModelRotate.java @@ -1,9 +1,11 @@ -package noppes.npcs; +package noppes.npcs.entity.data; import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.api.entity.data.IModelRotate; +import noppes.npcs.api.entity.data.IModelRotatePart; import noppes.npcs.util.ValueUtil; -public class ModelRotate { +public class ModelRotate implements IModelRotate { // Rotation public boolean whileStanding = true; public boolean whileAttacking = false; @@ -42,4 +44,45 @@ public class ModelRotate { lleg.readFromNBT(compound.getCompoundTag("PuppetLLeg")); } + public boolean whileStanding() { + return this.whileStanding; + } + + public void whileStanding(boolean whileStanding) { + this.whileStanding = whileStanding; + } + + public boolean whileAttacking() { + return this.whileAttacking; + } + + public void whileAttacking(boolean whileAttacking) { + this.whileAttacking = whileAttacking; + } + + public boolean whileMoving() { + return this.whileMoving; + } + + public void whileMoving(boolean whileMoving) { + this.whileMoving = whileMoving; + } + + public IModelRotatePart getPart(int part) { + switch (ValueUtil.CorrectInt(part,0,5)) { + case 0: + return head; + case 1: + return body; + case 2: + return larm; + case 3: + return rarm; + case 4: + return lleg; + case 5: + return rleg; + } + return null; + } } diff --git a/src/main/java/noppes/npcs/ModelRotatePart.java b/src/main/java/noppes/npcs/entity/data/ModelRotatePart.java similarity index 58% rename from src/main/java/noppes/npcs/ModelRotatePart.java rename to src/main/java/noppes/npcs/entity/data/ModelRotatePart.java index e8be64fd7..63598e023 100644 --- a/src/main/java/noppes/npcs/ModelRotatePart.java +++ b/src/main/java/noppes/npcs/entity/data/ModelRotatePart.java @@ -1,9 +1,10 @@ -package noppes.npcs; +package noppes.npcs.entity.data; import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.api.entity.data.IModelRotatePart; import noppes.npcs.util.ValueUtil; -public class ModelRotatePart { +public class ModelRotatePart implements IModelRotatePart { public float rotationX = 0f, rotationY = 0f, rotationZ = 0f; public boolean disabled = false; @@ -23,4 +24,29 @@ public class ModelRotatePart { rotationZ = ValueUtil.correctFloat(compound.getFloat("RotationZ"), -0.5f, 0.5f); } + public void setRotation(float x, float y, float z) { + this.rotationX = x; + this.rotationY = y; + this.rotationZ = z; + } + + public float getRotateX() { + return this.rotationX; + } + + public float getRotateY() { + return this.rotationY; + } + + public float getRotateZ() { + return this.rotationZ; + } + + public void disabled(boolean disabled) { + this.disabled = disabled; + } + + public boolean disabled() { + return this.disabled; + } } diff --git a/src/main/java/noppes/npcs/entity/data/ModelScale.java b/src/main/java/noppes/npcs/entity/data/ModelScale.java new file mode 100644 index 000000000..935e9fede --- /dev/null +++ b/src/main/java/noppes/npcs/entity/data/ModelScale.java @@ -0,0 +1,43 @@ +package noppes.npcs.entity.data; + +import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.api.entity.data.IModelScale; +import noppes.npcs.api.entity.data.IModelScalePart; +import noppes.npcs.util.ValueUtil; + +public class ModelScale implements IModelScale { + public ModelScalePart head = new ModelScalePart(); + public ModelScalePart body = new ModelScalePart(); + public ModelScalePart arms = new ModelScalePart(); + public ModelScalePart legs = new ModelScalePart(); + + public NBTTagCompound writeToNBT(NBTTagCompound compound) { + compound.setTag("HeadConfig", head.writeToNBT()); + compound.setTag("BodyConfig", body.writeToNBT()); + compound.setTag("ArmsConfig", arms.writeToNBT()); + compound.setTag("LegsConfig", legs.writeToNBT()); + return compound; + } + + public void readFromNBT(NBTTagCompound compound) { + head.readFromNBT(compound.getCompoundTag("HeadConfig")); + body.readFromNBT(compound.getCompoundTag("BodyConfig")); + arms.readFromNBT(compound.getCompoundTag("ArmsConfig")); + legs.readFromNBT(compound.getCompoundTag("LegsConfig")); + } + + @Override + public IModelScalePart getPart(int part) { + switch (ValueUtil.CorrectInt(part,0,3)) { + case 0: + return head; + case 1: + return body; + case 2: + return arms; + case 3: + return legs; + } + return null; + } +} diff --git a/src/main/java/noppes/npcs/ModelLimbConfig.java b/src/main/java/noppes/npcs/entity/data/ModelScalePart.java similarity index 67% rename from src/main/java/noppes/npcs/ModelLimbConfig.java rename to src/main/java/noppes/npcs/entity/data/ModelScalePart.java index aa334e916..63f8d9361 100644 --- a/src/main/java/noppes/npcs/ModelLimbConfig.java +++ b/src/main/java/noppes/npcs/entity/data/ModelScalePart.java @@ -1,19 +1,17 @@ -package noppes.npcs; +package noppes.npcs.entity.data; import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.api.entity.data.IModelScalePart; import noppes.npcs.util.ValueUtil; -public class ModelLimbConfig { - +public class ModelScalePart implements IModelScalePart { public float scaleX = 1, scaleY = 1, scaleZ = 1; - public boolean shared = false; public NBTTagCompound writeToNBT(){ NBTTagCompound compound = new NBTTagCompound(); compound.setFloat("ScaleX", scaleX); compound.setFloat("ScaleY", scaleY); compound.setFloat("ScaleZ", scaleZ); - compound.setBoolean("Shared", shared); return compound; } @@ -28,14 +26,26 @@ public class ModelLimbConfig { return "ScaleX: " + scaleX + " - ScaleY: " + scaleY + " - ScaleZ: " + scaleZ; } - public void setScale(float x, float y, float z) { - scaleX = x; - scaleY = y; - scaleZ = z; - } public void setScale(float x, float y) { scaleZ = scaleX = x; scaleY = y; } + public void setScale(float x, float y, float z) { + scaleX = ValueUtil.correctFloat(x, 0.5f, 1.5f); + scaleY = ValueUtil.correctFloat(y, 0.5f, 1.5f); + scaleZ = ValueUtil.correctFloat(z, 0.5f, 1.5f); + } + + public float getScaleX() { + return scaleX; + } + + public float getScaleY() { + return scaleY; + } + + public float getScaleZ() { + return scaleZ; + } } diff --git a/src/main/java/noppes/npcs/entity/old/EntityNPCDwarfFemale.java b/src/main/java/noppes/npcs/entity/old/EntityNPCDwarfFemale.java index 81dbbff3e..bcdef3828 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNPCDwarfFemale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNPCDwarfFemale.java @@ -6,7 +6,7 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -35,10 +35,10 @@ public class EntityNPCDwarfFemale extends EntityNPCInterface npc.readFromNBT(compound); ModelData data = npc.modelData; data.breasts = 2; - data.legs.setScale(0.8f,1.05f); - data.arms.setScale(0.8f,1.05f); - data.body.setScale(0.8f,1.05f); - data.head.setScale(0.8f,0.85f); + data.modelScale.legs.setScale(0.8f,1.05f); + data.modelScale.arms.setScale(0.8f,1.05f); + data.modelScale.body.setScale(0.8f,1.05f); + data.modelScale.head.setScale(0.8f,0.85f); worldObj.spawnEntityInWorld(npc); } super.onUpdate(); diff --git a/src/main/java/noppes/npcs/entity/old/EntityNPCDwarfMale.java b/src/main/java/noppes/npcs/entity/old/EntityNPCDwarfMale.java index de050923b..1771d58ab 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNPCDwarfMale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNPCDwarfMale.java @@ -6,7 +6,7 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -34,10 +34,10 @@ public class EntityNPCDwarfMale extends EntityNPCInterface EntityCustomNpc npc = new EntityCustomNpc(worldObj); npc.readFromNBT(compound); ModelData data = npc.modelData; - data.legs.setScale(1.1f,0.7f, 0.9f); - data.arms.setScale(0.9f,0.7f); - data.body.setScale(1.2f, 0.7f, 1.5f); - data.head.setScale(0.85f,0.85f); + data.modelScale.legs.setScale(1.1f,0.7f, 0.9f); + data.modelScale.arms.setScale(0.9f,0.7f); + data.modelScale.body.setScale(1.2f, 0.7f, 1.5f); + data.modelScale.head.setScale(0.85f,0.85f); worldObj.spawnEntityInWorld(npc); } super.onUpdate(); diff --git a/src/main/java/noppes/npcs/entity/old/EntityNPCElfFemale.java b/src/main/java/noppes/npcs/entity/old/EntityNPCElfFemale.java index ee56f2d1b..ccf1b572f 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNPCElfFemale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNPCElfFemale.java @@ -6,7 +6,7 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -37,10 +37,10 @@ public class EntityNPCElfFemale extends EntityNPCInterface npc.readFromNBT(compound); ModelData data = npc.modelData; data.breasts = 2; - data.legs.setScale(0.8f,1.05f); - data.arms.setScale(0.8f,1.05f); - data.body.setScale(0.8f,1.05f); - data.head.setScale(0.8f,0.85f); + data.modelScale.legs.setScale(0.8f,1.05f); + data.modelScale.arms.setScale(0.8f,1.05f); + data.modelScale.body.setScale(0.8f,1.05f); + data.modelScale.head.setScale(0.8f,0.85f); worldObj.spawnEntityInWorld(npc); } super.onUpdate(); diff --git a/src/main/java/noppes/npcs/entity/old/EntityNPCElfMale.java b/src/main/java/noppes/npcs/entity/old/EntityNPCElfMale.java index 0d56843da..cbd22b4ed 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNPCElfMale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNPCElfMale.java @@ -6,7 +6,7 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -36,10 +36,10 @@ public class EntityNPCElfMale extends EntityNPCInterface EntityCustomNpc npc = new EntityCustomNpc(worldObj); npc.readFromNBT(compound); ModelData data = npc.modelData; - data.legs.setScale(0.85f,1.15f); - data.arms.setScale(0.85f,1.15f); - data.body.setScale(0.85f,1.15f); - data.head.setScale(0.85f,0.95f); + data.modelScale.legs.setScale(0.85f,1.15f); + data.modelScale.arms.setScale(0.85f,1.15f); + data.modelScale.body.setScale(0.85f,1.15f); + data.modelScale.head.setScale(0.85f,0.95f); worldObj.spawnEntityInWorld(npc); } super.onUpdate(); diff --git a/src/main/java/noppes/npcs/entity/old/EntityNPCEnderman.java b/src/main/java/noppes/npcs/entity/old/EntityNPCEnderman.java index bfc85d14d..71748b8d9 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNPCEnderman.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNPCEnderman.java @@ -7,7 +7,7 @@ package noppes.npcs.entity.old; import net.minecraft.entity.monster.EntityEnderman; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.constants.EnumAnimation; import noppes.npcs.controllers.data.SkinOverlay; import noppes.npcs.entity.EntityCustomNpc; diff --git a/src/main/java/noppes/npcs/entity/old/EntityNPCFurryFemale.java b/src/main/java/noppes/npcs/entity/old/EntityNPCFurryFemale.java index 824a8c7d0..f3472d9df 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNPCFurryFemale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNPCFurryFemale.java @@ -6,8 +6,8 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -35,10 +35,10 @@ public class EntityNPCFurryFemale extends EntityNPCInterface npc.readFromNBT(compound); ModelData data = npc.modelData; data.breasts = 2; - data.head.setScale(0.95f,0.95f); - data.legs.setScale(0.92f,0.92f); - data.arms.setScale(0.80f,0.92f); - data.body.setScale(0.92f, 0.92f); + data.modelScale.head.setScale(0.95f,0.95f); + data.modelScale.legs.setScale(0.92f,0.92f); + data.modelScale.arms.setScale(0.80f,0.92f); + data.modelScale.body.setScale(0.92f, 0.92f); ModelPartData hair = data.getOrCreatePart("ears"); hair.playerTexture = true; ModelPartData snout = data.getOrCreatePart("snout"); diff --git a/src/main/java/noppes/npcs/entity/old/EntityNPCFurryMale.java b/src/main/java/noppes/npcs/entity/old/EntityNPCFurryMale.java index 78b6ad0c9..206e19d70 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNPCFurryMale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNPCFurryMale.java @@ -6,8 +6,8 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; diff --git a/src/main/java/noppes/npcs/entity/old/EntityNPCHumanFemale.java b/src/main/java/noppes/npcs/entity/old/EntityNPCHumanFemale.java index 80009c494..20e0f5629 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNPCHumanFemale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNPCHumanFemale.java @@ -6,7 +6,7 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -34,10 +34,10 @@ public class EntityNPCHumanFemale extends EntityNPCInterface npc.readFromNBT(compound); ModelData data = npc.modelData; data.breasts = 2; - data.head.setScale(0.95f,0.95f); - data.legs.setScale(0.92f,0.92f); - data.arms.setScale(0.80f,0.92f); - data.body.setScale(0.92f, 0.92f); + data.modelScale.head.setScale(0.95f,0.95f); + data.modelScale.legs.setScale(0.92f,0.92f); + data.modelScale.arms.setScale(0.80f,0.92f); + data.modelScale.body.setScale(0.92f, 0.92f); worldObj.spawnEntityInWorld(npc); } super.onUpdate(); diff --git a/src/main/java/noppes/npcs/entity/old/EntityNPCOrcFemale.java b/src/main/java/noppes/npcs/entity/old/EntityNPCOrcFemale.java index 53f3e4b02..bb5a73bcb 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNPCOrcFemale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNPCOrcFemale.java @@ -6,7 +6,7 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -34,10 +34,10 @@ public class EntityNPCOrcFemale extends EntityNPCInterface npc.readFromNBT(compound); ModelData data = npc.modelData; data.breasts = 2; - data.legs.setScale(0.9f,0.65f); - data.arms.setScale(0.9f,0.65f); - data.body.setScale(1f, 0.65f, 1.1f); - data.head.setScale(0.85f,0.85f); + data.modelScale.legs.setScale(0.9f,0.65f); + data.modelScale.arms.setScale(0.9f,0.65f); + data.modelScale.body.setScale(1f, 0.65f, 1.1f); + data.modelScale.head.setScale(0.85f,0.85f); worldObj.spawnEntityInWorld(npc); } super.onUpdate(); diff --git a/src/main/java/noppes/npcs/entity/old/EntityNPCOrcMale.java b/src/main/java/noppes/npcs/entity/old/EntityNPCOrcMale.java index 4ae4f68e4..5789b5c54 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNPCOrcMale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNPCOrcMale.java @@ -6,7 +6,7 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -34,10 +34,10 @@ public class EntityNPCOrcMale extends EntityNPCInterface EntityCustomNpc npc = new EntityCustomNpc(worldObj); npc.readFromNBT(compound); ModelData data = npc.modelData; - data.legs.setScale(1.2f,1.05f); - data.arms.setScale(1.2f,1.05f); - data.body.setScale(1.4f, 1.1f, 1.5f); - data.head.setScale(1.2f,1.1f); + data.modelScale.legs.setScale(1.2f,1.05f); + data.modelScale.arms.setScale(1.2f,1.05f); + data.modelScale.body.setScale(1.4f, 1.1f, 1.5f); + data.modelScale.head.setScale(1.2f,1.1f); worldObj.spawnEntityInWorld(npc); } super.onUpdate(); diff --git a/src/main/java/noppes/npcs/entity/old/EntityNPCVillager.java b/src/main/java/noppes/npcs/entity/old/EntityNPCVillager.java index 6d7f1aa47..13159a68f 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNPCVillager.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNPCVillager.java @@ -7,7 +7,7 @@ package noppes.npcs.entity.old; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; diff --git a/src/main/java/noppes/npcs/entity/old/EntityNpcEnderchibi.java b/src/main/java/noppes/npcs/entity/old/EntityNpcEnderchibi.java index 83923b2b0..8a33fe661 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNpcEnderchibi.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNpcEnderchibi.java @@ -6,8 +6,8 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -34,8 +34,8 @@ public class EntityNpcEnderchibi extends EntityNPCInterface EntityCustomNpc npc = new EntityCustomNpc(worldObj); npc.readFromNBT(compound); ModelData data = npc.modelData; - data.legs.setScale(0.65f,0.75f); - data.arms.setScale(0.50f,1.45f); + data.modelScale.legs.setScale(0.65f,0.75f); + data.modelScale.arms.setScale(0.50f,1.45f); ModelPartData part = data.getOrCreatePart("particles"); part.playerTexture = true; diff --git a/src/main/java/noppes/npcs/entity/old/EntityNpcMonsterFemale.java b/src/main/java/noppes/npcs/entity/old/EntityNpcMonsterFemale.java index 77c41bb64..0c9029cb8 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNpcMonsterFemale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNpcMonsterFemale.java @@ -6,7 +6,7 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.constants.EnumAnimation; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -35,10 +35,10 @@ public class EntityNpcMonsterFemale extends EntityNPCInterface npc.readFromNBT(compound); ModelData data = npc.modelData; data.breasts = 2; - data.head.setScale(0.95f,0.95f); - data.legs.setScale(0.92f,0.92f); - data.arms.setScale(0.80f,0.92f); - data.body.setScale(0.92f, 0.92f); + data.modelScale.head.setScale(0.95f,0.95f); + data.modelScale.legs.setScale(0.92f,0.92f); + data.modelScale.arms.setScale(0.80f,0.92f); + data.modelScale.body.setScale(0.92f, 0.92f); npc.ai.animationType = EnumAnimation.HUG; worldObj.spawnEntityInWorld(npc); } diff --git a/src/main/java/noppes/npcs/entity/old/EntityNpcNagaFemale.java b/src/main/java/noppes/npcs/entity/old/EntityNpcNagaFemale.java index 879832d59..f18f4c5c2 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNpcNagaFemale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNpcNagaFemale.java @@ -6,8 +6,8 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -35,10 +35,10 @@ public class EntityNpcNagaFemale extends EntityNPCInterface npc.readFromNBT(compound); ModelData data = npc.modelData; data.breasts = 2; - data.head.setScale(0.95f,0.95f); - data.legs.setScale(0.92f,0.92f); - data.arms.setScale(0.80f,0.92f); - data.body.setScale(0.92f, 0.92f); + data.modelScale.head.setScale(0.95f,0.95f); + data.modelScale.legs.setScale(0.92f,0.92f); + data.modelScale.arms.setScale(0.80f,0.92f); + data.modelScale.body.setScale(0.92f, 0.92f); ModelPartData legs = data.legParts; legs.playerTexture = true; legs.type = 1; diff --git a/src/main/java/noppes/npcs/entity/old/EntityNpcNagaMale.java b/src/main/java/noppes/npcs/entity/old/EntityNpcNagaMale.java index 7ca57c7b5..424f1b5a8 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNpcNagaMale.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNpcNagaMale.java @@ -6,8 +6,8 @@ package noppes.npcs.entity.old; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; -import noppes.npcs.ModelPartData; +import noppes.npcs.entity.data.ModelData; +import noppes.npcs.entity.data.ModelPartData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; diff --git a/src/main/java/noppes/npcs/entity/old/EntityNpcSkeleton.java b/src/main/java/noppes/npcs/entity/old/EntityNpcSkeleton.java index c0766ad67..a240850e8 100644 --- a/src/main/java/noppes/npcs/entity/old/EntityNpcSkeleton.java +++ b/src/main/java/noppes/npcs/entity/old/EntityNpcSkeleton.java @@ -7,7 +7,7 @@ package noppes.npcs.entity.old; import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import noppes.npcs.ModelData; +import noppes.npcs.entity.data.ModelData; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; diff --git a/src/main/java/noppes/npcs/roles/RoleCompanion.java b/src/main/java/noppes/npcs/roles/RoleCompanion.java index 5ef66d515..9a1b1badc 100644 --- a/src/main/java/noppes/npcs/roles/RoleCompanion.java +++ b/src/main/java/noppes/npcs/roles/RoleCompanion.java @@ -189,10 +189,10 @@ public class RoleCompanion extends RoleInterface { EntityCustomNpc npc = (EntityCustomNpc) this.npc; npc.ai.animationType = stage.animation; if(stage == EnumCompanionStage.BABY){ - npc.modelData.arms.setScale(0.5f, 0.5f, 0.5f); - npc.modelData.legs.setScale(0.5f, 0.5f, 0.5f); - npc.modelData.body.setScale(0.5f, 0.5f, 0.5f); - npc.modelData.head.setScale(0.7f, 0.7f, 0.7f); + npc.modelData.modelScale.arms.setScale(0.5f, 0.5f, 0.5f); + npc.modelData.modelScale.legs.setScale(0.5f, 0.5f, 0.5f); + npc.modelData.modelScale.body.setScale(0.5f, 0.5f, 0.5f); + npc.modelData.modelScale.head.setScale(0.7f, 0.7f, 0.7f); npc.ai.onAttack = 1; npc.ai.setWalkingSpeed(3); @@ -200,10 +200,10 @@ public class RoleCompanion extends RoleInterface { talents.put(EnumCompanionTalent.INVENTORY, 0); } if(stage == EnumCompanionStage.CHILD){ - npc.modelData.arms.setScale(0.6f, 0.6f, 0.6f); - npc.modelData.legs.setScale(0.6f, 0.6f, 0.6f); - npc.modelData.body.setScale(0.6f, 0.6f, 0.6f); - npc.modelData.head.setScale(0.8f, 0.8f, 0.8f); + npc.modelData.modelScale.arms.setScale(0.6f, 0.6f, 0.6f); + npc.modelData.modelScale.legs.setScale(0.6f, 0.6f, 0.6f); + npc.modelData.modelScale.body.setScale(0.6f, 0.6f, 0.6f); + npc.modelData.modelScale.head.setScale(0.8f, 0.8f, 0.8f); npc.ai.onAttack = 0; npc.ai.setWalkingSpeed(4); @@ -211,10 +211,10 @@ public class RoleCompanion extends RoleInterface { talents.put(EnumCompanionTalent.SWORD, 0); } if(stage == EnumCompanionStage.TEEN){ - npc.modelData.arms.setScale(0.8f, 0.8f, 0.8f); - npc.modelData.legs.setScale(0.8f, 0.8f, 0.8f); - npc.modelData.body.setScale(0.8f, 0.8f, 0.8f); - npc.modelData.head.setScale(0.9f, 0.9f, 0.9f); + npc.modelData.modelScale.arms.setScale(0.8f, 0.8f, 0.8f); + npc.modelData.modelScale.legs.setScale(0.8f, 0.8f, 0.8f); + npc.modelData.modelScale.body.setScale(0.8f, 0.8f, 0.8f); + npc.modelData.modelScale.head.setScale(0.9f, 0.9f, 0.9f); npc.ai.onAttack = 0; npc.ai.setWalkingSpeed(5); @@ -222,10 +222,10 @@ public class RoleCompanion extends RoleInterface { talents.put(EnumCompanionTalent.ARMOR, 0); } if(stage == EnumCompanionStage.ADULT || stage == EnumCompanionStage.FULLGROWN){ - npc.modelData.arms.setScale(1f, 1f, 1f); - npc.modelData.legs.setScale(1f, 1f, 1f); - npc.modelData.body.setScale(1f, 1f, 1f); - npc.modelData.head.setScale(1f, 1f, 1f); + npc.modelData.modelScale.arms.setScale(1f, 1f, 1f); + npc.modelData.modelScale.legs.setScale(1f, 1f, 1f); + npc.modelData.modelScale.body.setScale(1f, 1f, 1f); + npc.modelData.modelScale.head.setScale(1f, 1f, 1f); npc.ai.onAttack = 0; npc.ai.setWalkingSpeed(5); diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java b/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java index 8d10ff3e6..40465e942 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java @@ -7,6 +7,7 @@ import noppes.npcs.api.ITimers; import noppes.npcs.api.entity.ICustomNpc; import noppes.npcs.api.entity.IEntityLivingBase; import noppes.npcs.api.entity.IPlayer; +import noppes.npcs.api.entity.data.IModelData; import noppes.npcs.api.handler.IOverlayHandler; import noppes.npcs.api.handler.data.IAnimationData; import noppes.npcs.api.handler.data.IFaction; @@ -931,12 +932,16 @@ public class ScriptNpc extends ScriptLiving imp public void executeCommand(String command){ NoppesUtilServer.runCommand(npc, npc.getCommandSenderName(), command, null); } - + + public IModelData getModelData() { + return npc instanceof EntityCustomNpc ? ((EntityCustomNpc) npc).modelData : null; + } + public void setHeadScale(float x, float y, float z){ if(npc instanceof EntityCustomNpc) { - ((EntityCustomNpc) this.npc).modelData.head.scaleX = ValueUtil.correctFloat(x, 0.5f, 1.5f); - ((EntityCustomNpc) this.npc).modelData.head.scaleY = ValueUtil.correctFloat(y, 0.5f, 1.5f); - ((EntityCustomNpc) this.npc).modelData.head.scaleZ = ValueUtil.correctFloat(z, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.head.scaleX = ValueUtil.correctFloat(x, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.head.scaleY = ValueUtil.correctFloat(y, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.head.scaleZ = ValueUtil.correctFloat(z, 0.5f, 1.5f); npc.script.clientNeedsUpdate = true; } @@ -944,9 +949,9 @@ public class ScriptNpc extends ScriptLiving imp public void setBodyScale(float x, float y, float z){ if(npc instanceof EntityCustomNpc) { - ((EntityCustomNpc) this.npc).modelData.body.scaleX = ValueUtil.correctFloat(x, 0.5f, 1.5f); - ((EntityCustomNpc) this.npc).modelData.body.scaleY = ValueUtil.correctFloat(y, 0.5f, 1.5f); - ((EntityCustomNpc) this.npc).modelData.body.scaleZ = ValueUtil.correctFloat(z, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.body.scaleX = ValueUtil.correctFloat(x, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.body.scaleY = ValueUtil.correctFloat(y, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.body.scaleZ = ValueUtil.correctFloat(z, 0.5f, 1.5f); npc.script.clientNeedsUpdate = true; } @@ -954,9 +959,9 @@ public class ScriptNpc extends ScriptLiving imp public void setArmsScale(float x, float y, float z){ if(npc instanceof EntityCustomNpc) { - ((EntityCustomNpc) this.npc).modelData.arms.scaleX = ValueUtil.correctFloat(x, 0.5f, 1.5f); - ((EntityCustomNpc) this.npc).modelData.arms.scaleY = ValueUtil.correctFloat(y, 0.5f, 1.5f); - ((EntityCustomNpc) this.npc).modelData.arms.scaleZ = ValueUtil.correctFloat(z, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.arms.scaleX = ValueUtil.correctFloat(x, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.arms.scaleY = ValueUtil.correctFloat(y, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.arms.scaleZ = ValueUtil.correctFloat(z, 0.5f, 1.5f); npc.script.clientNeedsUpdate = true; } @@ -964,9 +969,9 @@ public class ScriptNpc extends ScriptLiving imp public void setLegsScale(float x, float y, float z){ if(npc instanceof EntityCustomNpc) { - ((EntityCustomNpc) this.npc).modelData.legs.scaleX = ValueUtil.correctFloat(x, 0.5f, 1.5f); - ((EntityCustomNpc) this.npc).modelData.legs.scaleY = ValueUtil.correctFloat(y, 0.5f, 1.5f); - ((EntityCustomNpc) this.npc).modelData.legs.scaleZ = ValueUtil.correctFloat(z, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.legs.scaleX = ValueUtil.correctFloat(x, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.legs.scaleY = ValueUtil.correctFloat(y, 0.5f, 1.5f); + ((EntityCustomNpc) this.npc).modelData.modelScale.legs.scaleZ = ValueUtil.correctFloat(z, 0.5f, 1.5f); npc.script.clientNeedsUpdate = true; }