diff --git a/Change Log.txt b/Change Log.txt index ab32f9d81..62b51193c 100644 --- a/Change Log.txt +++ b/Change Log.txt @@ -1,3 +1,33 @@ +######## 1.0.2-Snapshot 9 ######## +-added config option to adjust the distance between chaos islands. +-fixed infused obsidian and draconium blocks wither resistance. +-nurfed crasy op weapons effectiveness against the chaos guardian a little. +-hopefully fixed the chaos guardian crystal syncing issue (cant reproduce this so not sure if its actually fixed) +-fixed the damage bonus on draconic weapons (+X% mob health) now works on dragons including the chaos guardian. +-addressed the issue of certain mod items being able to move the chaos crystal... +-added some missing localization. +-disabled enchant effect on armor. +-fixed issue with particle gen view distance. +-added config option to reanable the original 3D armor models by Skeletonpunk. +-field drain rate (now called field input rate) in the reactor gui makes more sense now. +-added hover text to values in the reactor stats page. +-fixed some bugs in the reactor code. +-fixed a minor bug in the custom spwner blacklist. +- +- +- +- + +######## 1.0.2-Snapshot 8-bugfix ######## +-fixed crash in information tablet. +-removed console spam from entities spawned by the stabilized spawner. +-increased energy infuser buffer and transfer rate to 10m. +-updated chaos island documentation. +-added documentation for chaos shard and chaotic core. + +######## 1.0.2-Snapshot 7-bugfix ######## +-fixed some missing texture errors. + ######## 1.0.2-Snapshot 6 ######## -added new textures and models for ALL THE THINGS! Thanks to @Sn0wShepherd -added config option to disable custom tool models. @@ -18,7 +48,7 @@ -rewrote chaos island and chaos guardian. -added CC and OC support to reactor, flow gates and energy core. -re implemented the ability to disable item lore. --fixed conflict with draconic helm and tcon cleaver mining fateige. +-fixed conflict with draconic helm and tcon cleaver mining fatigue. -added draconium and awakened draconium nuggets. -added Chaos Crystal. -added Chaos Shard and Chaos Fragments. diff --git a/VERSION.json b/VERSION.json deleted file mode 100644 index 8eb415212..000000000 --- a/VERSION.json +++ /dev/null @@ -1,3 +0,0 @@ -Version:1.0.2 -Snapshot:6 -ReleaseNote:The start of the 1.0.2 snapshots! diff --git a/VERSION.txt b/VERSION.txt index 8eb415212..1216577e2 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1,3 +1,3 @@ Version:1.0.2 -Snapshot:6 -ReleaseNote:The start of the 1.0.2 snapshots! +Snapshot:9 +ReleaseNote:More bug fixes! Hopefully fixed the chaos guardian issues once and for all... diff --git a/build.properties b/build.properties index f0fe55c47..0f5acaa70 100644 --- a/build.properties +++ b/build.properties @@ -1,7 +1,7 @@ minecraft_version=1.7.10 -mod_version=1.0.2-Snapshot_6 +mod_version=1.0.2-Snapshot_9 forge_version=10.13.4.1492-1.7.10 -CCLIB_version=1.1.1.99 +CCLIB_version=1.1.3.140 NEI_version=1.0.3.74 ccc_version=1.0.4.29 diff --git a/src/main/java/com/brandon3055/draconicevolution/DraconicEvolution.java b/src/main/java/com/brandon3055/draconicevolution/DraconicEvolution.java index 067e49469..4ee8b9323 100644 --- a/src/main/java/com/brandon3055/draconicevolution/DraconicEvolution.java +++ b/src/main/java/com/brandon3055/draconicevolution/DraconicEvolution.java @@ -21,7 +21,7 @@ "after:NotEnoughItems;" + "after:ThermalExpansion;" + "after:ThermalFoundation;" + - "required-after:BrandonsCore@[1.0.0.9,);") + "required-after:BrandonsCore@[1.0.0.10,);") public class DraconicEvolution { @Mod.Instance(References.MODID) @@ -66,7 +66,7 @@ public static void preInit(final FMLPreInitializationEvent event) public void init(final FMLInitializationEvent event) {if(debug) System.out.println("init()"); - + proxy.init(event); } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/componentguis/GUIManual.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/componentguis/GUIManual.java index 67a84c2cc..c07f84c39 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/componentguis/GUIManual.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/componentguis/GUIManual.java @@ -149,7 +149,7 @@ else if (collection.getComponent("CONTRIBUTORS") != null && collection.getCompon barPosition = (int)(((double)page.scrollOffset/page.scrollLimit) * 247D); } else if (collection.getComponent("OPEN_PAGE") != null && collection.getComponent("OPEN_PAGE").isEnabled()) { - ComponentManualPage page = (ComponentManualPage)collection.getComponent("CONTRIBUTORS"); + ComponentManualPage page = (ComponentManualPage)collection.getComponent("OPEN_PAGE"); barPosition = (int)(((double)page.scrollOffset/page.scrollLimit) * 247D); } @@ -193,7 +193,7 @@ else if (!scrollPressed && collection.getComponent("CONTRIBUTORS") != null && co barPosition = (int)(((double)page.scrollOffset/page.scrollLimit) * 247D); } else if (collection.getComponent("OPEN_PAGE") != null && collection.getComponent("OPEN_PAGE").isEnabled()) { - ComponentManualPage page = (ComponentManualPage)collection.getComponent("CONTRIBUTORS"); + ComponentManualPage page = (ComponentManualPage)collection.getComponent("OPEN_PAGE"); barPosition = (int)(((double)page.scrollOffset/page.scrollLimit) * 247D); } @@ -407,7 +407,7 @@ else if (collection.getComponent("CONTRIBUTORS") != null && collection.getCompon page.scrollOffset = (int) (position * page.scrollLimit); } else if (collection.getComponent("OPEN_PAGE") != null && collection.getComponent("OPEN_PAGE").isEnabled()) { - ComponentManualPage page = (ComponentManualPage)collection.getComponent("CONTRIBUTORS"); + ComponentManualPage page = (ComponentManualPage)collection.getComponent("OPEN_PAGE"); if (page.scrollLimit < 0) return; page.scrollOffset = (int) (position * page.scrollLimit); } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/componentguis/GUIReactor.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/componentguis/GUIReactor.java index d5f134369..b8b5089c1 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/componentguis/GUIReactor.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/componentguis/GUIReactor.java @@ -121,13 +121,13 @@ public void drawScreen(int mouseX, int mouseY, float par3) { else if (GuiHelper.isInRect(33, 4, 18, 114, mouseX-guiLeft, mouseY-guiTop)){ text.add(StatCollector.translateToLocal("gui.de.fieldStrength.txt")); if (reactor.maxFieldCharge > 0) text.add(Utills.round(reactor.fieldCharge / reactor.maxFieldCharge * 100D, 100D) + "%"); - text.add((int)reactor.fieldCharge + " / " + (int)reactor.maxFieldCharge); //todo refine or remove + text.add(Utills.addCommas((int)reactor.fieldCharge) + " / " + Utills.addCommas((int)reactor.maxFieldCharge)); //todo refine or remove drawHoveringText(text, mouseX, mouseY, fontRendererObj); } else if (GuiHelper.isInRect(197, 4, 18, 114, mouseX-guiLeft, mouseY-guiTop)){ text.add(StatCollector.translateToLocal("gui.de.energySaturation.txt")); if (reactor.maxEnergySaturation > 0) text.add(Utills.round((double)reactor.energySaturation / (double)reactor.maxEnergySaturation * 100D, 100D) + "%"); - text.add(reactor.energySaturation + " / " + reactor.maxEnergySaturation); //todo refine or remove + text.add(Utills.addCommas(reactor.energySaturation) + " / " + Utills.addCommas(reactor.maxEnergySaturation)); //todo refine or remove drawHoveringText(text, mouseX, mouseY, fontRendererObj); } else if (GuiHelper.isInRect(221, 4, 18, 114, mouseX-guiLeft, mouseY-guiTop)){ @@ -136,29 +136,41 @@ else if (GuiHelper.isInRect(221, 4, 18, 114, mouseX-guiLeft, mouseY-guiTop)){ text.add(reactor.convertedFuel + " / " + (reactor.convertedFuel + reactor.reactorFuel)); //todo refine or remove drawHoveringText(text, mouseX, mouseY, fontRendererObj); } + else if (GuiHelper.isInRect(53, 15, 140, 18, mouseX-guiLeft, mouseY-guiTop)){ + text.addAll(fontRendererObj.listFormattedStringToWidth(StatCollector.translateToLocal("gui.de.reacTempLoadFactor.txt"), 200)); + drawHoveringText(text, mouseX, mouseY, fontRendererObj); + } + else if (GuiHelper.isInRect(53, 40, 140, 18, mouseX-guiLeft, mouseY-guiTop)){ + text.addAll(fontRendererObj.listFormattedStringToWidth(StatCollector.translateToLocal("gui.de.reacCoreMass.txt"), 200)); + drawHoveringText(text, mouseX, mouseY, fontRendererObj); + } + else if (GuiHelper.isInRect(53, 65, 140, 18, mouseX-guiLeft, mouseY-guiTop)){ + text.addAll(fontRendererObj.listFormattedStringToWidth(StatCollector.translateToLocal("gui.de.reacGenRate.txt"), 200)); + drawHoveringText(text, mouseX, mouseY, fontRendererObj); + } + else if (GuiHelper.isInRect(53, 88, 140, 18, mouseX-guiLeft, mouseY-guiTop)){ + text.addAll(fontRendererObj.listFormattedStringToWidth(StatCollector.translateToLocal("gui.de.reacInputRate.txt"), 200)); + drawHoveringText(text, mouseX, mouseY, fontRendererObj); + } + else if (GuiHelper.isInRect(53, 113, 140, 18, mouseX-guiLeft, mouseY-guiTop)){ + text.addAll(fontRendererObj.listFormattedStringToWidth(StatCollector.translateToLocal("gui.de.reacConversionRate.txt"), 200)); + drawHoveringText(text, mouseX, mouseY, fontRendererObj); + } } private void drawStats(){ - /* - * Values To Add - * -tempDrainFactor (Temperature load factor?) - * -mass - * -generation rate - * -field drain rate - * -fuel conversion rate - * */ + double inputRate = reactor.fieldDrain / (1D - (reactor.fieldCharge / reactor.maxFieldCharge)); fontRendererObj.drawString(StatCollector.translateToLocal("gui.de.tempLoad.name"), 55, 16, 0x0000FF); - fontRendererObj.drawString(""+reactor.tempDrainFactor, 60, 2 + 24, 0); + fontRendererObj.drawString(Utills.round(reactor.tempDrainFactor * 100D, 1D) + "%", 60, 2 + 24, 0); fontRendererObj.drawString(StatCollector.translateToLocal("gui.de.mass.name"), 55, 16 + 24, 0x0000FF); - fontRendererObj.drawString(Utills.round((reactor.reactorFuel + reactor.convertedFuel)/1296D, 100)+"m³", 60, 2 + 2 * 24, 0); + fontRendererObj.drawString(Utills.round((reactor.reactorFuel + reactor.convertedFuel)/1296D, 100)+"m^3", 60, 2 + 2 * 24, 0); fontRendererObj.drawString(StatCollector.translateToLocal("gui.de.genRate.name"), 55, 16 + 2 * 24, 0x0000FF); fontRendererObj.drawString(Utills.addCommas((int)reactor.generationRate)+"RF/t", 60, 2 + 3 * 24, 0); - fontRendererObj.drawString(StatCollector.translateToLocal("gui.de.fieldDrainRate.name"), 55, 16 + 3 * 24, 0x0000FF); - fontRendererObj.drawString(Utills.addCommas(reactor.fieldDrain)+"RF/t", 60, 2 + 4 * 24, 0); + fontRendererObj.drawString(StatCollector.translateToLocal("gui.de.fieldInputRate.name"), 55, 16 + 3 * 24, 0x0000FF); + fontRendererObj.drawString(Utills.addCommas((int)Math.min(inputRate, Integer.MAX_VALUE))+"RF/t", 60, 2 + 4 * 24, 0); fontRendererObj.drawString(StatCollector.translateToLocal("gui.de.fuelConversion.name"), 55, 16 + 4 * 24, 0x0000FF); fontRendererObj.drawString(Utills.addCommas((int)Math.round(reactor.fuelUseRate * 1000000D)) + "nb/t", 60, 2 + 5 * 24, 0); - } @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/client/handler/ClientEventHandler.java b/src/main/java/com/brandon3055/draconicevolution/client/handler/ClientEventHandler.java index 06c12892b..0bc9148ef 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/handler/ClientEventHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/handler/ClientEventHandler.java @@ -1,18 +1,24 @@ package com.brandon3055.draconicevolution.client.handler; +import com.brandon3055.brandonscore.common.utills.ItemNBTHelper; import com.brandon3055.draconicevolution.DraconicEvolution; import com.brandon3055.draconicevolution.common.ModItems; +import com.brandon3055.draconicevolution.common.handler.ConfigHandler; +import com.brandon3055.draconicevolution.common.items.armor.DraconicArmor; +import com.brandon3055.draconicevolution.common.items.armor.WyvernArmor; import com.brandon3055.draconicevolution.common.items.weapons.DraconicBow; import com.brandon3055.draconicevolution.common.items.weapons.WyvernBow; import com.brandon3055.draconicevolution.common.network.MountUpdatePacket; -import com.brandon3055.brandonscore.common.utills.ItemNBTHelper; import com.brandon3055.draconicevolution.common.utills.LogHelper; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.relauncher.Side; import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.Entity; +import net.minecraft.item.ItemArmor; import net.minecraftforge.client.event.FOVUpdateEvent; +import net.minecraftforge.client.event.RenderPlayerEvent; import java.util.Random; @@ -126,4 +132,19 @@ public static void tryRepositionPlayerOnMount(int id){ remountEntityID = id; LogHelper.info("Started checking for player mount"); } + + @SubscribeEvent + public void renderArmorEvent(RenderPlayerEvent.SetArmorModel event) { + if (ConfigHandler.useOriginal3DArmorModel) return; + if (event.stack != null && (event.stack.getItem() instanceof DraconicArmor || event.stack.getItem() instanceof WyvernArmor)) + { + ItemArmor itemarmor = (ItemArmor)event.stack.getItem(); + ModelBiped modelbiped = itemarmor.getArmorModel(event.entityPlayer, event.stack, event.slot); + event.renderer.setRenderPassModel(modelbiped); + modelbiped.onGround = event.renderer.modelBipedMain.onGround; + modelbiped.isRiding = event.renderer.modelBipedMain.isRiding; + modelbiped.isChild = event.renderer.modelBipedMain.isChild; + event.result = 1; + } + } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelDraconicArmor.java b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelDraconicArmor.java index cad94b329..e4a6e4979 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelDraconicArmor.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelDraconicArmor.java @@ -1,702 +1,184 @@ package com.brandon3055.draconicevolution.client.model; +import com.brandon3055.draconicevolution.client.handler.ResourceHandler; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; -/** - * Draconic Armor.tcn - TechneToTabulaImporter - * Created using Tabula 5.0.0 - */ -public class ModelDraconicArmor extends ModelBiped {// -// public ModelRenderer bipedHead; -// public ModelRenderer bipedBody; -// public ModelRenderer bipedRightArm; -// public ModelRenderer bipedLeftArm; -// public ModelRenderer bipedRightLeg;/ -// public ModelRenderer bipedLeftLeg; - public ModelRenderer MainHelmPieceRight1; - public ModelRenderer MainHelmPieceRight2; - public ModelRenderer MainHelmPieceLeft1; - public ModelRenderer MainHelmPieceLeft2; - public ModelRenderer MainHelmPieceRight3; - public ModelRenderer MainHelmPieceLeft3; - public ModelRenderer MainHelmPieceBack; - public ModelRenderer MainHelmPieceTop; - public ModelRenderer MainHelmPieceFrontTop; - public ModelRenderer MainHelmPieceFrontBottom; - public ModelRenderer MainHelmPieceBottom; - public ModelRenderer HelmPieceBack1; - public ModelRenderer HornPieceRight1; - public ModelRenderer HornPieceRight2; - public ModelRenderer HornPieceLeft1; - public ModelRenderer HornPieceLeft2; - public ModelRenderer HornPieceRight3; - public ModelRenderer HornPieceLeft3; - public ModelRenderer HornPieceRight4; - public ModelRenderer HornPieceLeft4; - public ModelRenderer HelmPieceFront1; - public ModelRenderer HelmPieceFront2; - public ModelRenderer MainChestPieceBottom; - public ModelRenderer ChestDecorationPiece2; - public ModelRenderer ChestDecorationPiece4; - public ModelRenderer ShoulderPadRight2; - public ModelRenderer ShoulderPadRight3; - public ModelRenderer ShoulderPadRight4; - public ModelRenderer ShoulderPadRight1; - public ModelRenderer MainArmGuardRight; - public ModelRenderer ArmGuardPieceRight1; - public ModelRenderer ArmGuardPieceRight2; - public ModelRenderer ArmGuardPieceRight3; - public ModelRenderer ArmGuardPieceRight4; - public ModelRenderer ArmStrapRightTop; - public ModelRenderer ArmStrapRightBottom; - public ModelRenderer ShoulderPadLeft2; - public ModelRenderer ShoulderPadLeft3; - public ModelRenderer ShoulderPadLeft4; - public ModelRenderer MainArmGuardLeft; - public ModelRenderer ShoulderPadLeft1; - public ModelRenderer ArmGuardPieceLeft1; - public ModelRenderer ArmGuardPieceLeft2; - public ModelRenderer ArmGuardPieceLeft3; - public ModelRenderer ArmGuardPieceLeft4; - public ModelRenderer ArmStrapLeftBottom; - public ModelRenderer ArmStrapLeftTop; - public ModelRenderer MainLegPieceRight; - public ModelRenderer LegPieceRight1; - public ModelRenderer LegPieceRight2; - public ModelRenderer MainBootPieceRight; - public ModelRenderer BootPieceRight1; - public ModelRenderer BootPieceRight2; - public ModelRenderer MainKneePadRight; - public ModelRenderer KneePieceRight1; - public ModelRenderer MainLegPieceLeft; - public ModelRenderer LegPieceLeft2; - public ModelRenderer LegPieceLeft1; - public ModelRenderer MainBootPieceLeft; - public ModelRenderer BootPieceLeft1; - public ModelRenderer BootPieceLeft2; - public ModelRenderer MainKneePadLeft; - public ModelRenderer KneePieceLeft1; - public ModelRenderer BootPieceLeft3; - public ModelRenderer BootPieceLeft4; - public ModelRenderer BootPieceRight3; - public ModelRenderer BootPieceRight4; - public ModelRenderer LeggsTop; - //Draconic Specific - public ModelRenderer DrMainChestPieceTop; - public ModelRenderer DrMainChestPieceMid; - public ModelRenderer DrChestDecorationPiece1; - public ModelRenderer DrChestDecorationPiece3; - public ModelRenderer BeltFront; - public ModelRenderer BeltBack; - public ModelRenderer BeltLeft; - public ModelRenderer BeltRight; - public ModelRenderer BeltBuckle; - //Wyvern Specific - public ModelRenderer WyHelmPieceTop1; - public ModelRenderer WyHelmPieceTop2; - public ModelRenderer WyHelmPieceTop3; - public ModelRenderer WyHelmPieceTop4; - public ModelRenderer WyMainChestPieceMid; - public ModelRenderer WyMainChestPieceTop; - public ModelRenderer WyChestPieceTop1; - public ModelRenderer WyChestPieceTop2; - public ModelRenderer WyChestDecorationPiece3; - public ModelRenderer WyChestPieceTop3; +public class ModelDraconicArmor extends ModelBiped { - private boolean isDraconic; + public ModelRenderOBJ head; + public ModelRenderOBJ body; + public ModelRenderOBJ rightArm; + public ModelRenderOBJ leftArm; + public ModelRenderOBJ belt; + public ModelRenderOBJ rightLeg; + public ModelRenderOBJ leftLeg; + public ModelRenderOBJ rightBoot; + public ModelRenderOBJ leftBoot; - public ModelDraconicArmor(float f, boolean isHelmet, boolean isChestPiece, boolean isLeggings, boolean isdBoots, boolean isDraconic) { + public ModelDraconicArmor(float f, boolean isHelmet, boolean isChestPiece, boolean isLeggings, boolean isdBoots) { super(f, 0.0f, 128, 128); - this.textureWidth = 256; - this.textureHeight = 128; - this.isDraconic = isDraconic; - /* Helm */ - { - this.bipedHead = new ModelRenderer(this, 0, 0); - this.bipedHead.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bipedHead.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.0F); + this.bipedHead = new ModelRenderer(this, 0, 0); + this.bipedHead.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bipedHead.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.0F); - this.MainHelmPieceLeft1 = new ModelRenderer(this, 191, 0); - this.MainHelmPieceLeft1.setRotationPoint(3.5F, -3.0F, -4.5F); - this.MainHelmPieceLeft1.addBox(0.0F, 0.0F, 0.0F, 1, 3, 9, 0.0F); + this.bipedBody = new ModelRenderer(this, 16, 16); + this.bipedBody.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bipedBody.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, 0.0F); - this.HelmPieceFront2 = new ModelRenderer(this, 177, 43); - this.HelmPieceFront2.setRotationPoint(-0.5F, -5.5F, -4.5F); - this.HelmPieceFront2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.bipedLeftArm = new ModelRenderer(this, 40, 16); + this.bipedLeftArm.setRotationPoint(5.0F, 2.0F, 0.0F); + this.bipedLeftArm.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); - this.MainHelmPieceRight2 = new ModelRenderer(this, 170, 0); - this.MainHelmPieceRight2.setRotationPoint(-4.5F, -8.0F, -4.5F); - this.MainHelmPieceRight2.addBox(0.0F, 0.0F, 0.0F, 1, 2, 9, 0.0F); + this.bipedRightArm = new ModelRenderer(this, 40, 16); + this.bipedRightArm.setRotationPoint(-5.0F, 2.0F, 0.0F); + this.bipedRightArm.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); - this.MainHelmPieceTop = new ModelRenderer(this, 177, 24); - this.MainHelmPieceTop.mirror = true; - this.MainHelmPieceTop.setRotationPoint(-4.0F, -8.300000190734863F, -4.5F); - this.MainHelmPieceTop.addBox(0.0F, 0.0F, 0.0F, 8, 1, 9, 0.0F); - this.setRotateAngle(MainHelmPieceTop, 0.05235987901687623F, -0.0F, 0.0F); + this.bipedLeftLeg = new ModelRenderer(this, 0, 16); + this.bipedLeftLeg.setRotationPoint(2.0F, 12.0F, 0.0F); + this.bipedLeftLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); - this.MainHelmPieceFrontBottom = new ModelRenderer(this, 174, 35); - this.MainHelmPieceFrontBottom.setRotationPoint(-4.0F, -3.0F, -5.0F); - this.MainHelmPieceFrontBottom.addBox(0.0F, 0.0F, 0.0F, 8, 3, 1, 0.0F); + this.bipedRightLeg = new ModelRenderer(this, 0, 16); + this.bipedRightLeg.setRotationPoint(-2.0F, 12.0F, 0.0F); + this.bipedRightLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); - this.MainHelmPieceLeft2 = new ModelRenderer(this, 170, 0); - this.MainHelmPieceLeft2.setRotationPoint(3.5F, -8.0F, -4.5F); - this.MainHelmPieceLeft2.addBox(0.0F, 0.0F, 0.0F, 1, 2, 9, 0.0F); - - this.HelmPieceBack1 = new ModelRenderer(this, 193, 39); - this.HelmPieceBack1.setRotationPoint(-4.0F, -8.0F, 4.0F); - this.HelmPieceBack1.addBox(0.0F, 0.0F, 0.0F, 8, 8, 1, 0.0F); - - this.MainHelmPieceLeft3 = new ModelRenderer(this, 195, 13); - this.MainHelmPieceLeft3.setRotationPoint(3.5F, -6.0F, -2.5F); - this.MainHelmPieceLeft3.addBox(0.0F, 0.0F, 0.0F, 1, 3, 7, 0.0F); - - this.MainHelmPieceRight1 = new ModelRenderer(this, 191, 0); - this.MainHelmPieceRight1.setRotationPoint(-4.5F, -3.0F, -4.5F); - this.MainHelmPieceRight1.addBox(0.0F, 0.0F, 0.0F, 1, 3, 9, 0.0F); - - this.MainHelmPieceBack = new ModelRenderer(this, 178, 13); - this.MainHelmPieceBack.setRotationPoint(-3.5F, -8.0F, 3.5F); - this.MainHelmPieceBack.addBox(0.0F, 0.0F, 0.0F, 7, 8, 1, 0.0F); - - this.MainHelmPieceRight3 = new ModelRenderer(this, 195, 13); - this.MainHelmPieceRight3.setRotationPoint(-4.5F, -6.0F, -2.5F); - this.MainHelmPieceRight3.addBox(0.0F, 0.0F, 0.0F, 1, 3, 7, 0.0F); - - this.HelmPieceFront1 = new ModelRenderer(this, 175, 40); - this.HelmPieceFront1.setRotationPoint(-1.0F, -6.0F, -5.0F); - this.HelmPieceFront1.addBox(0.0F, 0.0F, 0.0F, 2, 1, 1, 0.0F); - - this.MainHelmPieceBottom = new ModelRenderer(this, 177, 24); - this.MainHelmPieceBottom.setRotationPoint(-4.0F, -0.5F, -4.5F); - this.MainHelmPieceBottom.addBox(0.0F, 0.0F, 0.0F, 8, 1, 9, 0.0F); - - this.MainHelmPieceFrontTop = new ModelRenderer(this, 193, 35); - this.MainHelmPieceFrontTop.setRotationPoint(-4.0F, -8.0F, -5.0F); - this.MainHelmPieceFrontTop.addBox(0.0F, 0.0F, 0.0F, 8, 2, 1, 0.0F); - - - this.HornPieceLeft1 = new ModelRenderer(this, 182, 40); - this.HornPieceLeft1.setRotationPoint(4.0F, -7.5F, -1.0F); - this.HornPieceLeft1.addBox(0.0F, 0.0F, 0.0F, 1, 4, 4, 0.0F); - - this.HornPieceLeft2 = new ModelRenderer(this, 201, 49); - this.HornPieceLeft2.setRotationPoint(4.6F, -5.5F, 1.03F); - this.HornPieceLeft2.addBox(0.0F, -1.5F, -1.5F, 2, 3, 3, 0.0F); - this.setRotateAngle(HornPieceLeft2, 0.0F, -0.0F, -0.13962634015954636F); - - this.HornPieceLeft3 = new ModelRenderer(this, 190, 49); - this.HornPieceLeft3.setRotationPoint(6.1F, -5.6F, 1.0F); - this.HornPieceLeft3.addBox(0.0F, -1.0F, -1.0F, 3, 2, 2, 0.0F); - this.setRotateAngle(HornPieceLeft3, 0.0F, -0.0F, -0.5235987755982988F); - - this.HornPieceRight1 = new ModelRenderer(this, 182, 40); - this.HornPieceRight1.setRotationPoint(-5.0F, -7.5F, -1.0F); - this.HornPieceRight1.addBox(0.0F, 0.0F, 0.0F, 1, 4, 4, 0.0F); - - this.HornPieceRight2 = new ModelRenderer(this, 201, 49); - this.HornPieceRight2.setRotationPoint(-4.6F, -5.5F, 1.03F); - this.HornPieceRight2.addBox(0.0F, -1.5F, -1.5F, 2, 3, 3, 0.0F); - this.setRotateAngle(HornPieceRight2, 0.0F, -0.0F, -3.001966313430247F); - - this.HornPieceRight3 = new ModelRenderer(this, 190, 49); - this.HornPieceRight3.setRotationPoint(-6.1F, -5.6F, 1.0F); - this.HornPieceRight3.addBox(0.0F, -1.0F, -1.0F, 3, 2, 2, 0.0F); - this.setRotateAngle(HornPieceRight3, 0.0F, -0.0F, -2.6179938779914944F); - - this.HornPieceLeft4 = new ModelRenderer(this, 181, 49); - this.HornPieceLeft4.setRotationPoint(8.2F, -6.7F, 1.0F); - this.HornPieceLeft4.addBox(0.0F, -0.5F, -0.5F, 3, 1, 1, 0.0F); - this.setRotateAngle(HornPieceLeft4, 0.0F, -0.0F, -0.8726646259971648F); - - this.HornPieceRight4 = new ModelRenderer(this, 181, 49); - this.HornPieceRight4.setRotationPoint(-8.2F, -6.7F, 1.0F); - this.HornPieceRight4.addBox(0.0F, -0.5F, -0.5F, 3, 1, 1, 0.0F); - this.setRotateAngle(HornPieceRight4, 0.0F, -0.0F, -2.2689280275926285F); - - this.WyHelmPieceTop1 = new ModelRenderer(this, 181, 49); - this.WyHelmPieceTop1.setRotationPoint(-0.5F, -8.5F, -4.5F); - this.WyHelmPieceTop1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(WyHelmPieceTop1, 0.2792526803190927F, -0.0F, 0.0F); - - this.WyHelmPieceTop2 = new ModelRenderer(this, 201, 56); - this.WyHelmPieceTop2.setRotationPoint(-1.0F, -10.0F, -2.0F); - this.WyHelmPieceTop2.addBox(0.0F, 0.0F, 0.0F, 2, 2, 3, 0.0F); - this.setRotateAngle(WyHelmPieceTop2, 0.08726646259971647F, -0.0F, 0.0F); - - this.WyHelmPieceTop3 = new ModelRenderer(this, 188, 54); - this.WyHelmPieceTop3.setRotationPoint(-1.5F, -11.0F, 1.0F); - this.WyHelmPieceTop3.addBox(0.0F, 0.0F, 0.0F, 3, 3, 3, 0.0F); - this.setRotateAngle(WyHelmPieceTop3, -0.2792526803190927F, -0.0F, 0.0F); - - this.WyHelmPieceTop4 = new ModelRenderer(this, 179, 54); - this.WyHelmPieceTop4.setRotationPoint(-0.5F, -10.0F, 1.5F); - this.WyHelmPieceTop4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(WyHelmPieceTop4, -0.20943951023931953F, -0.0F, 0.0F); - } - - /* Chest */ - { - this.bipedBody = new ModelRenderer(this, 16, 16); - this.bipedBody.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bipedBody.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, 0.0F); - - this.DrMainChestPieceTop = new ModelRenderer(this, 214, 0); - this.DrMainChestPieceTop.setRotationPoint(-5.5F, -0.5F, -5.0F); - this.DrMainChestPieceTop.addBox(0.0F, 0.0F, 0.0F, 11, 4, 10, 0.0F); - this.setRotateAngle(DrMainChestPieceTop, 0.15707963705062866F, -0.0F, 0.0F); - - this.DrMainChestPieceMid = new ModelRenderer(this, 224, 15); - this.DrMainChestPieceMid.setRotationPoint(-5.0F, 2.0F, -3.0F); - this.DrMainChestPieceMid.addBox(0.0F, 0.0F, 0.0F, 10, 5, 6, 0.0F); - - this.WyChestPieceTop3 = new ModelRenderer(this, 239, 0); - this.WyChestPieceTop3.setRotationPoint(-3.5F, 4.5F, -3.5F); - this.WyChestPieceTop3.addBox(1.0F, 0.0F, 0.0F, 4, 4, 1, 0.0F); - this.setRotateAngle(WyChestPieceTop3, 0.0879645943005142F, 0.08621926504851989F, -0.7890633548266364F); - - this.WyMainChestPieceTop = new ModelRenderer(this, 250, 0); - this.WyMainChestPieceTop.setRotationPoint(-5.7F, 0.0F, -2.6F); - this.WyMainChestPieceTop.addBox(1.0F, 0.0F, 0.0F, 2, 4, 1, 0.0F); - this.setRotateAngle(WyMainChestPieceTop, 0.0F, 0.47123889803846897F, 0.0F); - - this.MainChestPieceBottom = new ModelRenderer(this, 228, 27); - this.MainChestPieceBottom.setRotationPoint(-4.5F, 7.0F, -2.5F); - this.MainChestPieceBottom.addBox(0.0F, 0.0F, 0.0F, 9, 5, 5, 0.0F); - - this.DrChestDecorationPiece1 = new ModelRenderer(this, 244, 38); - this.DrChestDecorationPiece1.setRotationPoint(0.0F, -0.5F, -4.0F); - this.DrChestDecorationPiece1.addBox(0.0F, 0.0F, -0.5F, 5, 5, 1, 0.0F); - this.setRotateAngle(DrChestDecorationPiece1, 0.1426609064282019F, -0.13533507716461618F, 0.7946695004338321F); - - this.ChestDecorationPiece2 = new ModelRenderer(this, 229, 38); - this.ChestDecorationPiece2.setRotationPoint(-3.0F, 7.0F, -3.0F); - this.ChestDecorationPiece2.addBox(0.0F, 0.0F, 0.0F, 6, 3, 1, 0.0F); - this.setRotateAngle(ChestDecorationPiece2, 0.12217304855585097F, -0.0F, 0.0F); - - this.DrChestDecorationPiece3 = new ModelRenderer(this, 236, 45); - this.DrChestDecorationPiece3.setRotationPoint(-4.0F, 1.0F, 3.0F); - this.DrChestDecorationPiece3.addBox(0.0F, 0.0F, 0.0F, 8, 5, 2, 0.0F); - this.setRotateAngle(DrChestDecorationPiece3, -0.39211732149124146F, -0.0F, 0.0F); - - this.ChestDecorationPiece4 = new ModelRenderer(this, 229, 38); - this.ChestDecorationPiece4.setRotationPoint(-3.0F, 6.800000190734863F, 2.0F); - this.ChestDecorationPiece4.addBox(0.0F, 0.0F, 0.0F, 6, 3, 1, 0.0F); - this.setRotateAngle(ChestDecorationPiece4, -0.12217304855585097F, -0.0F, 0.0F); - - this.WyMainChestPieceMid = new ModelRenderer(this, 224, 13); - this.WyMainChestPieceMid.setRotationPoint(-5.0F, -0.1F, -3.0F); - this.WyMainChestPieceMid.addBox(0.0F, 0.0F, 0.0F, 10, 7, 6, 0.0F); - - this.WyChestPieceTop2 = new ModelRenderer(this, 250, 0); - this.WyChestPieceTop2.setRotationPoint(2.1F, 0.0F, -4.4F); - this.WyChestPieceTop2.addBox(1.0F, 0.0F, 0.0F, 2, 4, 1, 0.0F); - this.setRotateAngle(WyChestPieceTop2, 0.0F, -0.47123889803846897F, 0.0F); - - this.WyChestPieceTop1 = new ModelRenderer(this, 240, 6); - this.WyChestPieceTop1.setRotationPoint(-4.0F, 0.0F, -4.0F); - this.WyChestPieceTop1.addBox(1.0F, 0.0F, 0.0F, 6, 4, 2, 0.0F); - - this.WyChestDecorationPiece3 = new ModelRenderer(this, 236, 45); - this.WyChestDecorationPiece3.setRotationPoint(-3.5F, 0.0F, 2.5F); - this.WyChestDecorationPiece3.addBox(0.0F, 0.0F, 0.0F, 7, 5, 2, 0.0F); - this.setRotateAngle(WyChestDecorationPiece3, -0.2617993877991494F, -0.0F, 0.0F); - - this.BeltFront = new ModelRenderer(this, 121, 25); - this.BeltFront.setRotationPoint(0.5F, 10.01F, -2.0F); - this.BeltFront.addBox(-5.0F, 0.0F, -0.7F, 9, 2, 1, 0.0F); - - this.BeltBuckle = new ModelRenderer(this, 121, 29); - this.BeltBuckle.setRotationPoint(3.5F, 10.0F, -2.2F); - this.BeltBuckle.addBox(-5.0F, 0.0F, -0.7F, 3, 2, 1, 0.0F); - - this.BeltBack = new ModelRenderer(this, 121, 25); - this.BeltBack.setRotationPoint(0.5F, 10.01F, 2.0F); - this.BeltBack.addBox(-5.0F, 0.0F, -0.3F, 9, 2, 1, 0.0F); - - this.BeltRight = new ModelRenderer(this, 142, 25); - this.BeltRight.setRotationPoint(-4.7F, 10.01F, -2.2F); - this.BeltRight.addBox(0.0F, 0.0F, -0.3F, 1, 2, 5, 0.0F); - - this.BeltLeft = new ModelRenderer(this, 142, 25); - this.BeltLeft.setRotationPoint(3.7F, 10.01F, -2.2F); - this.BeltLeft.addBox(0.0F, 0.0F, -0.3F, 1, 2, 5, 0.0F); - - //Left - this.bipedLeftArm = new ModelRenderer(this, 40, 16); - this.bipedLeftArm.setRotationPoint(5.0F, 2.0F, 0.0F); - this.bipedLeftArm.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); - - this.ShoulderPadLeft1 = new ModelRenderer(this, 236, 53); - this.ShoulderPadLeft1.setRotationPoint(-1.5F, -2.0F, -2.5F); - this.ShoulderPadLeft1.addBox(0.0F, 0.0F, 0.0F, 5, 4, 5, 0.0F); - - this.ShoulderPadLeft2 = new ModelRenderer(this, 232, 63); - this.ShoulderPadLeft2.setRotationPoint(-1.0F, -2.5F, -3.0F); - this.ShoulderPadLeft2.addBox(-0.3F, 0.0F, 0.0F, 6, 2, 6, 0.0F); - this.setRotateAngle(ShoulderPadLeft2, 0.0F, -0.0F, 0.3665191429188092F); - - this.ShoulderPadLeft3 = new ModelRenderer(this, 215, 53); - this.ShoulderPadLeft3.mirror = true; - this.ShoulderPadLeft3.setRotationPoint(-1.0F, -3.0F, -2.5F); - this.ShoulderPadLeft3.addBox(0.3F, -0.5F, 0.0F, 5, 2, 5, 0.0F); - this.setRotateAngle(ShoulderPadLeft3, 0.0F, -0.0F, 0.20943951023931953F); - - this.ShoulderPadLeft4 = new ModelRenderer(this, 219, 61); - this.ShoulderPadLeft4.setRotationPoint(-0.5F, -2.5F, -2.0F); - this.ShoulderPadLeft4.addBox(0.7F, -2.0F, 0.5F, 3, 2, 3, 0.0F); - this.setRotateAngle(ShoulderPadLeft4, 0.0F, -0.0F, 0.12217304763960307F); - - this.MainArmGuardLeft = new ModelRenderer(this, 240, 72); - this.MainArmGuardLeft.setRotationPoint(0.5F, 3.0F, -2.5F); - this.MainArmGuardLeft.addBox(0.0F, 0.0F, 0.0F, 3, 5, 5, 0.0F); - - this.ArmGuardPieceLeft1 = new ModelRenderer(this, 223, 67); - this.ArmGuardPieceLeft1.setRotationPoint(2.5F, 6.0F, -1.5F); - this.ArmGuardPieceLeft1.addBox(0.2F, -0.3F, 0.0F, 1, 2, 3, 0.0F); - this.setRotateAngle(ArmGuardPieceLeft1, 0.0F, -0.0F, -0.17453292519943295F); - - this.ArmGuardPieceLeft2 = new ModelRenderer(this, 223, 67); - this.ArmGuardPieceLeft2.setRotationPoint(2.5F, 5.0F, -1.5F); - this.ArmGuardPieceLeft2.addBox(0.2F, -0.3F, 0.0F, 1, 2, 3, 0.0F); - this.setRotateAngle(ArmGuardPieceLeft2, 0.0F, -0.0F, -0.17453292519943295F); - - this.ArmGuardPieceLeft3 = new ModelRenderer(this, 223, 67); - this.ArmGuardPieceLeft3.setRotationPoint(2.5F, 4.0F, -1.5F); - this.ArmGuardPieceLeft3.addBox(0.2F, -0.3F, 0.0F, 1, 2, 3, 0.0F); - this.setRotateAngle(ArmGuardPieceLeft3, 0.0F, -0.0F, -0.17453292519943295F); - - this.ArmGuardPieceLeft4 = new ModelRenderer(this, 231, 72); - this.ArmGuardPieceLeft4.setRotationPoint(2.5F, 3.0F, -1.5F); - this.ArmGuardPieceLeft4.addBox(0.2F, 0.6F, 0.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(ArmGuardPieceLeft4, 0.0F, -0.0F, -0.17453292519943295F); - - this.ArmStrapLeftTop = new ModelRenderer(this, 225, 77); - this.ArmStrapLeftTop.setRotationPoint(-1.43F, 3.0F, -2.5F); - this.ArmStrapLeftTop.addBox(0.0F, 0.0F, 0.0F, 2, 1, 5, 0.0F); - - this.ArmStrapLeftBottom = new ModelRenderer(this, 225, 77); - this.ArmStrapLeftBottom.setRotationPoint(-1.5F, 7.0F, -2.5F); - this.ArmStrapLeftBottom.addBox(0.0F, 0.0F, 0.0F, 2, 1, 5, 0.0F); - - - //Right - this.MainArmGuardRight = new ModelRenderer(this, 240, 72); - this.MainArmGuardRight.setRotationPoint(-3.5F, 3.0F, -2.5F); - this.MainArmGuardRight.addBox(0.0F, 0.0F, 0.0F, 3, 5, 5, 0.0F); - - this.ArmGuardPieceRight1 = new ModelRenderer(this, 231, 72); - this.ArmGuardPieceRight1.setRotationPoint(-3.9F, 2.8F, -1.5F); - this.ArmGuardPieceRight1.addBox(0.2F, 0.6F, 0.0F, 1, 1, 3, 0.0F); - this.setRotateAngle(ArmGuardPieceRight1, 0.0F, -0.0F, 0.17453292519943295F); - - this.ArmGuardPieceRight2 = new ModelRenderer(this, 223, 67); - this.ArmGuardPieceRight2.setRotationPoint(-4.6F, 4.1F, -1.5F); - this.ArmGuardPieceRight2.addBox(0.8F, -0.7F, 0.0F, 1, 2, 3, 0.0F); - this.setRotateAngle(ArmGuardPieceRight2, 0.0F, -0.0F, 0.17453292519943295F); - - this.ArmGuardPieceRight3 = new ModelRenderer(this, 223, 67); - this.ArmGuardPieceRight3.setRotationPoint(-4.03F, 5.3F, -1.5F); - this.ArmGuardPieceRight3.addBox(0.2F, -0.8F, 0.0F, 1, 2, 3, 0.0F); - this.setRotateAngle(ArmGuardPieceRight3, 0.0F, -0.0F, 0.17453292519943295F); - - this.ArmGuardPieceRight4 = new ModelRenderer(this, 223, 67); - this.ArmGuardPieceRight4.setRotationPoint(-4.0F, 6.8F, -1.5F); - this.ArmGuardPieceRight4.addBox(0.1F, -1.3F, 0.0F, 1, 2, 3, 0.0F); - this.setRotateAngle(ArmGuardPieceRight4, 0.0F, -0.0F, 0.17453292519943295F); - - this.ShoulderPadRight1 = new ModelRenderer(this, 236, 53); - this.ShoulderPadRight1.setRotationPoint(-3.5F, -2.0F, -2.5F); - this.ShoulderPadRight1.addBox(0.0F, 0.0F, 0.0F, 5, 4, 5, 0.0F); - - this.ShoulderPadRight2 = new ModelRenderer(this, 232, 63); - this.ShoulderPadRight2.setRotationPoint(-5.0F, -2.5F, -3.0F); - this.ShoulderPadRight2.addBox(-0.1F, 2.1F, 0.0F, 6, 2, 6, 0.0F); - this.setRotateAngle(ShoulderPadRight2, 0.0F, -0.0F, -0.3665191429188092F); - - this.ShoulderPadRight3 = new ModelRenderer(this, 215, 53); - this.ShoulderPadRight3.setRotationPoint(-5.0F, -3.0F, -2.5F); - this.ShoulderPadRight3.addBox(0.6F, 0.7F, 0.0F, 5, 2, 5, 0.0F); - this.setRotateAngle(ShoulderPadRight3, 0.0F, -0.0F, -0.20943951023931953F); - - this.ShoulderPadRight4 = new ModelRenderer(this, 219, 61); - this.ShoulderPadRight4.setRotationPoint(-4.5F, -2.5F, -2.0F); - this.ShoulderPadRight4.addBox(1.3F, -1.5F, 0.5F, 3, 2, 3, 0.0F); - this.setRotateAngle(ShoulderPadRight4, 0.0F, -0.0F, -0.12217304763960307F); - - this.bipedRightArm = new ModelRenderer(this, 40, 16); - this.bipedRightArm.setRotationPoint(-5.0F, 2.0F, 0.0F); - this.bipedRightArm.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); - - this.ArmStrapRightTop = new ModelRenderer(this, 225, 77); - this.ArmStrapRightTop.setRotationPoint(-0.5F, 3.0F, -2.5F); - this.ArmStrapRightTop.addBox(0.0F, 0.0F, 0.0F, 2, 1, 5, 0.0F); - - this.ArmStrapRightBottom = new ModelRenderer(this, 225, 77); - this.ArmStrapRightBottom.setRotationPoint(-0.5F, 7.0F, -2.5F); - this.ArmStrapRightBottom.addBox(0.0F, 0.0F, 0.0F, 2, 1, 5, 0.0F); - } - - /* Leggs */ - { - this.LeggsTop = new ModelRenderer(this, 121, 15); - this.LeggsTop.setRotationPoint(0.5F, 8.0F, -2.4F); - this.LeggsTop.addBox(-5.0F, 0.0F, 0.0F, 9, 4, 5, 0.0F); - //Left - this.bipedLeftLeg = new ModelRenderer(this, 0, 16); - this.bipedLeftLeg.setRotationPoint(2.0F, 12.0F, 0.0F); - this.bipedLeftLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); - - this.MainLegPieceLeft = new ModelRenderer(this, 149, 0); - this.MainLegPieceLeft.setRotationPoint(-2.0F, -1F, -2.5F); - this.MainLegPieceLeft.addBox(0.0F, 0.0F, 0.0F, 4, 10, 5, 0.0F); - - this.LegPieceLeft1 = new ModelRenderer(this, 138, 0); - this.LegPieceLeft1.setRotationPoint(1.5F, -1F, -2.0F); - this.LegPieceLeft1.addBox(0.0F, 0.0F, 0.0F, 1, 10, 4, 0.0F); - - this.LegPieceLeft2 = new ModelRenderer(this, 138, 0); - this.LegPieceLeft2.setRotationPoint(-2.5F, -1F, -2.0F); - this.LegPieceLeft2.addBox(0.0F, 0.0F, 0.0F, 1, 10, 4, 0.0F); - - this.MainKneePadLeft = new ModelRenderer(this, 149, 15); - this.MainKneePadLeft.setRotationPoint(0.0F, 2.5F, -3.0F); - this.MainKneePadLeft.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F); - this.setRotateAngle(MainKneePadLeft, 0.0F, -0.0F, 0.7853981633974483F); - - this.KneePieceLeft1 = new ModelRenderer(this, 156, 15); - this.KneePieceLeft1.setRotationPoint(-0.5F, 2.0F, -2.7F); - this.KneePieceLeft1.addBox(0.0F, 0.0F, 0.0F, 1, 4, 1, 0.0F); - - //Right - this.bipedRightLeg = new ModelRenderer(this, 0, 16); - this.bipedRightLeg.setRotationPoint(-2.0F, 12.0F, 0.0F); - this.bipedRightLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); - - this.MainLegPieceRight = new ModelRenderer(this, 149, 0); - this.MainLegPieceRight.setRotationPoint(-2.0F, -1F, -2.5F); - this.MainLegPieceRight.addBox(0.0F, 0.0F, 0.0F, 4, 10, 5, 0.0F); - - this.LegPieceRight1 = new ModelRenderer(this, 138, 0); - this.LegPieceRight1.setRotationPoint(-2.5F, -1F, -2.0F); - this.LegPieceRight1.addBox(0.0F, 0.0F, 0.0F, 1, 10, 4, 0.0F); - - this.LegPieceRight2 = new ModelRenderer(this, 138, 0); - this.LegPieceRight2.setRotationPoint(1.5F, -1F, -2.0F); - this.LegPieceRight2.addBox(0.0F, 0.0F, 0.0F, 1, 10, 4, 0.0F); - - this.MainKneePadRight = new ModelRenderer(this, 149, 15); - this.MainKneePadRight.setRotationPoint(0.0F, 2.5F, -3.0F); - this.MainKneePadRight.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F); - - this.setRotateAngle(MainKneePadRight, 0.0F, -0.0F, 0.7853981633974483F); - this.KneePieceRight1 = new ModelRenderer(this, 156, 15); - this.KneePieceRight1.setRotationPoint(-0.5F, 2.0F, -2.7F); - this.KneePieceRight1.addBox(0.0F, 0.0F, 0.0F, 1, 4, 1, 0.0F); - - } - - /* Boots */ - { - //Left - this.MainBootPieceLeft = new ModelRenderer(this, 119, 0); - this.MainBootPieceLeft.setRotationPoint(-2.0F, 9.1F, -2.5F); - this.MainBootPieceLeft.addBox(0.0F, 0.0F, 0.0F, 4, 3, 5, 0.0F); - - this.BootPieceLeft1 = new ModelRenderer(this, 129, 9); - this.BootPieceLeft1.setRotationPoint(-1.5F, 9.0F, -3.5F); - this.BootPieceLeft1.addBox(0.0F, 0.0F, 0.0F, 3, 3, 1, 0.0F); - - this.BootPieceLeft2 = new ModelRenderer(this, 122, 9); - this.BootPieceLeft2.setRotationPoint(-1.0F, 9.0F, -2.5F); - this.BootPieceLeft2.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F); - this.setRotateAngle(BootPieceLeft2, -0.40142572795869574F, -0.0F, 0.0F); - - this.BootPieceLeft3 = new ModelRenderer(this, 138, 0); - this.BootPieceLeft3.setRotationPoint(1.5F, 9.05F, -2.0F); - this.BootPieceLeft3.addBox(0.0F, 0.0F, 0.0F, 1, 3, 4, 0.0F); - - this.BootPieceLeft4 = new ModelRenderer(this, 138, 0); - this.BootPieceLeft4.setRotationPoint(-2.5F, 9.05F, -2.0F); - this.BootPieceLeft4.addBox(0.0F, 0.0F, 0.0F, 1, 3, 4, 0.0F); - - //Right - this.MainBootPieceRight = new ModelRenderer(this, 119, 0); - this.MainBootPieceRight.setRotationPoint(-2.0F, 9.1F, -2.5F); - this.MainBootPieceRight.addBox(0.0F, 0.0F, 0.0F, 4, 3, 5, 0.0F); - - this.BootPieceRight1 = new ModelRenderer(this, 129, 9); - this.BootPieceRight1.setRotationPoint(-1.5F, 9.0F, -3.5F); - this.BootPieceRight1.addBox(0.0F, 0.0F, 0.0F, 3, 3, 1, 0.0F); - - this.BootPieceRight2 = new ModelRenderer(this, 122, 9); - this.BootPieceRight2.setRotationPoint(-1.0F, 9.0F, -2.5F); - this.BootPieceRight2.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F); - this.setRotateAngle(BootPieceRight2, -0.40142572795869574F, -0.0F, 0.0F); - - this.BootPieceRight3 = new ModelRenderer(this, 138, 0); - this.BootPieceRight3.setRotationPoint(-2.5F, 9.05F, -2.0F); - this.BootPieceRight3.addBox(0.0F, 0.0F, 0.0F, 1, 3, 4, 0.0F); - - this.BootPieceRight4 = new ModelRenderer(this, 138, 0); - this.BootPieceRight4.setRotationPoint(1.5F, 9.05F, -2.0F); - this.BootPieceRight4.addBox(0.0F, 0.0F, 0.0F, 1, 3, 4, 0.0F); - } + this.head = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicHelmet.obj"), ResourceHandler.getResource("textures/models/armor/DraconicHelmet.png")); + this.body = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicBody.obj"), ResourceHandler.getResource("textures/models/armor/DraconicBody.png")); + this.rightArm = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicRightArm.obj"), ResourceHandler.getResource("textures/models/armor/DraconicRightArm.png")); + this.leftArm = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicLeftArm.obj"), ResourceHandler.getResource("textures/models/armor/DraconicLeftArm.png")); + this.belt = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicBelt.obj"), ResourceHandler.getResource("textures/models/armor/DraconicBelt.png")); + this.rightLeg = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicRightLeg.obj"), ResourceHandler.getResource("textures/models/armor/DraconicRightLeg.png")); + this.leftLeg = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicLeftLeg.obj"), ResourceHandler.getResource("textures/models/armor/DraconicLeftLeg.png")); + this.rightBoot = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicRightBoot.obj"), ResourceHandler.getResource("textures/models/armor/DraconicRightBoot.png")); + this.leftBoot = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicLeftBoot.obj"), ResourceHandler.getResource("textures/models/armor/DraconicLeftBoot.png")); this.bipedHead.cubeList.clear(); this.bipedHeadwear.cubeList.clear(); - if (isHelmet){ - this.bipedHead.addChild(this.MainHelmPieceLeft1); - this.bipedHead.addChild(this.HelmPieceFront2); - this.bipedHead.addChild(this.MainHelmPieceRight2); - this.bipedHead.addChild(this.MainHelmPieceTop); - this.bipedHead.addChild(this.MainHelmPieceFrontBottom); - this.bipedHead.addChild(this.HornPieceRight1); - this.bipedHead.addChild(this.HornPieceLeft1); - - this.bipedHead.addChild(this.MainHelmPieceLeft2); - this.bipedHead.addChild(this.HornPieceRight3); - this.bipedHead.addChild(this.HornPieceLeft3); - this.bipedHead.addChild(this.HelmPieceBack1); - - this.bipedHead.addChild(this.MainHelmPieceLeft3); - this.bipedHead.addChild(this.MainHelmPieceRight1); - this.bipedHead.addChild(this.HornPieceRight2); - this.bipedHead.addChild(this.MainHelmPieceBack); - this.bipedHead.addChild(this.MainHelmPieceRight3); - this.bipedHead.addChild(this.HelmPieceFront1); - this.bipedHead.addChild(this.MainHelmPieceBottom); - this.bipedHead.addChild(this.MainHelmPieceFrontTop); - this.bipedHead.addChild(this.HornPieceLeft2); - - if (isDraconic){ - this.bipedHead.addChild(this.HornPieceLeft4); - this.bipedHead.addChild(this.HornPieceRight4); - } - else - { - this.bipedHead.addChild(this.WyHelmPieceTop1); - this.bipedHead.addChild(this.WyHelmPieceTop2); - this.bipedHead.addChild(this.WyHelmPieceTop3); - this.bipedHead.addChild(this.WyHelmPieceTop4); - } - } - this.bipedBody.cubeList.clear(); this.bipedRightArm.cubeList.clear(); this.bipedLeftArm.cubeList.clear(); - if (isChestPiece){ - this.bipedBody.addChild(this.MainChestPieceBottom); - this.bipedBody.addChild(this.ChestDecorationPiece2); - this.bipedBody.addChild(this.ChestDecorationPiece4); - - if (isDraconic){ - this.bipedBody.addChild(this.DrMainChestPieceTop); - this.bipedBody.addChild(this.DrMainChestPieceMid); - this.bipedBody.addChild(this.DrChestDecorationPiece1); - this.bipedBody.addChild(this.DrChestDecorationPiece3); - - this.bipedLeftArm.addChild(this.ArmGuardPieceLeft1); - this.bipedLeftArm.addChild(this.ArmGuardPieceLeft2); - this.bipedLeftArm.addChild(this.ArmGuardPieceLeft3); - this.bipedLeftArm.addChild(this.ArmGuardPieceLeft4); - this.bipedLeftArm.addChild(this.MainArmGuardLeft); - this.bipedLeftArm.addChild(this.ArmStrapLeftTop); - this.bipedLeftArm.addChild(this.ArmStrapLeftBottom); - - this.bipedRightArm.addChild(this.ArmGuardPieceRight1); - this.bipedRightArm.addChild(this.ArmGuardPieceRight2); - this.bipedRightArm.addChild(this.ArmGuardPieceRight3); - this.bipedRightArm.addChild(this.ArmGuardPieceRight4); - this.bipedRightArm.addChild(this.MainArmGuardRight); - this.bipedRightArm.addChild(this.ArmStrapRightTop); - this.bipedRightArm.addChild(this.ArmStrapRightBottom); - } - else - { - this.bipedBody.addChild(this.WyMainChestPieceMid); - this.bipedBody.addChild(this.WyChestPieceTop2); - this.bipedBody.addChild(this.WyChestPieceTop1); - this.bipedBody.addChild(this.WyChestPieceTop3); - this.bipedBody.addChild(this.WyChestDecorationPiece3); - this.bipedBody.addChild(this.WyMainChestPieceTop); - } - - this.bipedLeftArm.addChild(this.ShoulderPadLeft1); - this.bipedLeftArm.addChild(this.ShoulderPadLeft2); - this.bipedLeftArm.addChild(this.ShoulderPadLeft3); - this.bipedLeftArm.addChild(this.ShoulderPadLeft4); - - this.bipedRightArm.addChild(this.ShoulderPadRight1); - this.bipedRightArm.addChild(this.ShoulderPadRight2); - this.bipedRightArm.addChild(this.ShoulderPadRight3); - this.bipedRightArm.addChild(this.ShoulderPadRight4); - } - this.bipedLeftLeg.cubeList.clear(); this.bipedRightLeg.cubeList.clear(); - if (isLeggings){ - this.bipedBody.addChild(this.LeggsTop); - - this.bipedLeftLeg.addChild(this.LegPieceLeft1); - this.bipedLeftLeg.addChild(this.MainKneePadLeft); - this.bipedLeftLeg.addChild(this.MainLegPieceLeft); - this.bipedLeftLeg.addChild(this.KneePieceLeft1); - this.bipedLeftLeg.addChild(this.LegPieceLeft2); - this.bipedRightLeg.addChild(this.LegPieceRight2); - this.bipedRightLeg.addChild(this.LegPieceRight1); - this.bipedRightLeg.addChild(this.MainKneePadRight); - this.bipedRightLeg.addChild(this.KneePieceRight1); - this.bipedRightLeg.addChild(this.MainLegPieceRight); - - if (isDraconic){ - this.bipedBody.addChild(this.BeltFront); - this.bipedBody.addChild(this.BeltBack); - this.bipedBody.addChild(this.BeltLeft); - this.bipedBody.addChild(this.BeltRight); - this.bipedBody.addChild(this.BeltBuckle); - } + body.offsetY = 0.755F; + rightArm.offsetY = 0.755F; + leftArm.offsetY = 0.755F; + + head.offsetY = -0.1F; + head.offsetX = -0.033F; + head.offsetZ = 0.1F; + + body.offsetY = 0.755F; + body.offsetZ = -0.03F; + rightArm.offsetY = 0.72F; + rightArm.offsetX = -0.18F; + rightArm.offsetZ = -0.05F; + leftArm.offsetY = 0.72F; + leftArm.offsetX = 0.18F; + leftArm.offsetZ = -0.06F; + belt.offsetY = 0.756F; + belt.offsetZ = -0.04F; + rightLeg.offsetY = 0.6F; + rightLeg.offsetX = -0.05F; + leftLeg.offsetY = 0.6F; + leftLeg.offsetX = 0.06F; + rightBoot.offsetY = 0.76F; + rightBoot.offsetX = -0.03F; + leftBoot.offsetY = 0.76F; + leftBoot.offsetX = 0.03F; + + leftLeg.scale = 1F / 15F; + rightLeg.scale = 1F / 15F; + leftBoot.scale = 1F / 15F; + rightBoot.scale = 1F / 15F; + + if (isHelmet) { + this.bipedHead.addChild(head); } - - - if (isdBoots){ - this.bipedLeftLeg.addChild(this.MainBootPieceLeft); - this.bipedLeftLeg.addChild(this.BootPieceLeft2); - this.bipedLeftLeg.addChild(this.BootPieceLeft1); - this.bipedLeftLeg.addChild(this.BootPieceLeft3); - this.bipedLeftLeg.addChild(this.BootPieceLeft4); - - this.bipedRightLeg.addChild(this.MainBootPieceRight); - this.bipedRightLeg.addChild(this.BootPieceRight1); - this.bipedRightLeg.addChild(this.BootPieceRight2); - this.bipedRightLeg.addChild(this.BootPieceRight3); - this.bipedRightLeg.addChild(this.BootPieceRight4); + if (isChestPiece) { + this.bipedBody.addChild(body); + this.bipedLeftArm.addChild(leftArm); + this.bipedRightArm.addChild(rightArm); + } + if (isLeggings) { + this.bipedLeftLeg.addChild(leftLeg); + this.bipedRightLeg.addChild(rightLeg); + this.bipedBody.addChild(belt); + } + if (isdBoots) { + this.bipedLeftLeg.addChild(leftBoot); + this.bipedRightLeg.addChild(rightBoot); } } @Override public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.bipedRightLeg.render(f5); - this.bipedBody.render(f5*1.05F);// * 1.1F); - this.bipedLeftArm.render(f5); - this.bipedRightArm.render(f5); - this.bipedLeftLeg.render(f5); - this.bipedHead.render(f5*1.05F); - } - - /** - * This is a helper function from Tabula to set the rotation of model parts - */ - public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; - } + if (entity == null){ + isSneak = false; + isRiding = false; + isChild = false; + aimedBow = false; + + this.bipedRightArm.rotateAngleX = 0F; + this.bipedRightArm.rotateAngleY = 0F; + this.bipedRightArm.rotateAngleZ = 0F; + this.bipedLeftArm.rotateAngleX = 0F; + this.bipedLeftArm.rotateAngleY = 0F; + this.bipedLeftArm.rotateAngleZ = 0F; + + bipedBody.rotateAngleX = 0F; + bipedBody.rotateAngleY = 0F; + bipedBody.rotateAngleZ = 0F; + + bipedHead.rotateAngleX = 0F; + bipedHead.rotateAngleY = 0F; + bipedHead.rotateAngleZ = 0F; + + bipedLeftLeg.rotateAngleX = 0F; + bipedLeftLeg.rotateAngleY = 0F; + bipedLeftLeg.rotateAngleZ = 0F; + + bipedRightLeg.rotateAngleX = 0F; + bipedRightLeg.rotateAngleY = 0F; + bipedRightLeg.rotateAngleZ = 0F; + + setRotationAngles(0, 0, 0, 0, 0, 0, null); + } + else super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + this.bipedHead.render(1F/13F); + this.bipedRightArm.render(1F/15F); + this.bipedLeftArm.render(1F/15F); + this.bipedBody.render(1F/15F); + this.bipedRightLeg.render(1F/16F); + this.bipedLeftLeg.render(1F/16F); + } + + public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity p_78087_7_) + { + this.bipedRightArm.rotateAngleZ = 0.0F; + this.bipedLeftArm.rotateAngleZ = 0.0F; + this.bipedRightArm.rotationPointZ = 0.0F; + this.bipedLeftArm.rotationPointZ = 0.0F; + this.bipedRightLeg.rotateAngleY = 0.0F; + this.bipedLeftLeg.rotateAngleY = 0.0F; + this.bipedRightArm.rotateAngleY = 0.0F; + this.bipedLeftArm.rotateAngleY = 0.0F; + this.bipedBody.rotateAngleX = 0.0F; + this.bipedRightLeg.rotationPointZ = 0.1F; + this.bipedLeftLeg.rotationPointZ = 0.1F; + this.bipedRightLeg.rotationPointY = 12.0F; + this.bipedLeftLeg.rotationPointY = 12.0F; + this.bipedHead.rotationPointY = 0.0F; + this.bipedHeadwear.rotationPointY = 0.0F; + this.leftLeg.rotationPointZ = 0F; + this.rightLeg.rotationPointZ = 0F; + this.bipedRightArm.rotateAngleZ = 0.0F; + this.bipedLeftArm.rotateAngleZ = 0.0F; + } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelDraconicArmorOBJ.java b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelDraconicArmorOBJ.java deleted file mode 100644 index 5a75e615f..000000000 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelDraconicArmorOBJ.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.brandon3055.draconicevolution.client.model; - -import com.brandon3055.draconicevolution.client.handler.ResourceHandler; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - - -public class ModelDraconicArmorOBJ extends ModelBiped { - - public ModelRenderOBJ head; - public ModelRenderOBJ body; - public ModelRenderOBJ rightArm; - public ModelRenderOBJ leftArm; - public ModelRenderOBJ belt; - public ModelRenderOBJ rightLeg; - public ModelRenderOBJ leftLeg; - public ModelRenderOBJ rightBoot; - public ModelRenderOBJ leftBoot; - - public ModelDraconicArmorOBJ(float f, boolean isHelmet, boolean isChestPiece, boolean isLeggings, boolean isdBoots) { - super(f, 0.0f, 128, 128); - - this.bipedHead = new ModelRenderer(this, 0, 0); - this.bipedHead.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bipedHead.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.0F); - - this.bipedBody = new ModelRenderer(this, 16, 16); - this.bipedBody.setRotationPoint(0.0F, 0.0F, 0.0F); - this.bipedBody.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, 0.0F); - - this.bipedLeftArm = new ModelRenderer(this, 40, 16); - this.bipedLeftArm.setRotationPoint(5.0F, 2.0F, 0.0F); - this.bipedLeftArm.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); - - this.bipedRightArm = new ModelRenderer(this, 40, 16); - this.bipedRightArm.setRotationPoint(-5.0F, 2.0F, 0.0F); - this.bipedRightArm.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); - - this.bipedLeftLeg = new ModelRenderer(this, 0, 16); - this.bipedLeftLeg.setRotationPoint(2.0F, 12.0F, 0.0F); - this.bipedLeftLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); - - this.bipedRightLeg = new ModelRenderer(this, 0, 16); - this.bipedRightLeg.setRotationPoint(-2.0F, 12.0F, 0.0F); - this.bipedRightLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); - - - this.head = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicHelmet.obj"), ResourceHandler.getResource("textures/models/armor/DraconicHelmet.png")); - this.body = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicBody.obj"), ResourceHandler.getResource("textures/models/armor/DraconicBody.png")); - this.rightArm = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicRightArm.obj"), ResourceHandler.getResource("textures/models/armor/DraconicRightArm.png")); - this.leftArm = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicLeftArm.obj"), ResourceHandler.getResource("textures/models/armor/DraconicLeftArm.png")); - this.belt = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicBelt.obj"), ResourceHandler.getResource("textures/models/armor/DraconicBelt.png")); - this.rightLeg = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicRightLeg.obj"), ResourceHandler.getResource("textures/models/armor/DraconicRightLeg.png")); - this.leftLeg = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicLeftLeg.obj"), ResourceHandler.getResource("textures/models/armor/DraconicLeftLeg.png")); - this.rightBoot = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicRightBoot.obj"), ResourceHandler.getResource("textures/models/armor/DraconicRightBoot.png")); - this.leftBoot = new ModelRenderOBJ(this, ResourceHandler.getResource("models/armor/DraconicLeftBoot.obj"), ResourceHandler.getResource("textures/models/armor/DraconicLeftBoot.png")); - - this.bipedHead.cubeList.clear(); - this.bipedHeadwear.cubeList.clear(); - this.bipedBody.cubeList.clear(); - this.bipedRightArm.cubeList.clear(); - this.bipedLeftArm.cubeList.clear(); - this.bipedLeftLeg.cubeList.clear(); - this.bipedRightLeg.cubeList.clear(); - - body.offsetY = 0.755F; - rightArm.offsetY = 0.755F; - leftArm.offsetY = 0.755F; - - head.offsetY = -0.1F; - head.offsetX = -0.033F; - head.offsetZ = 0.1F; - - body.offsetY = 0.755F; - body.offsetZ = -0.03F; - rightArm.offsetY = 0.72F; - rightArm.offsetX = -0.18F; - rightArm.offsetZ = -0.05F; - leftArm.offsetY = 0.72F; - leftArm.offsetX = 0.18F; - leftArm.offsetZ = -0.06F; - belt.offsetY = 0.756F; - belt.offsetZ = -0.04F; - rightLeg.offsetY = 0.6F; - rightLeg.offsetX = -0.05F; - leftLeg.offsetY = 0.6F; - leftLeg.offsetX = 0.06F; - rightBoot.offsetY = 0.76F; - rightBoot.offsetX = -0.03F; - leftBoot.offsetY = 0.76F; - leftBoot.offsetX = 0.03F; - - leftLeg.scale = 1F / 15F; - rightLeg.scale = 1F / 15F; - leftBoot.scale = 1F / 15F; - rightBoot.scale = 1F / 15F; - - if (isHelmet) { - this.bipedHead.addChild(head); - } - if (isChestPiece) { - this.bipedBody.addChild(body); - this.bipedLeftArm.addChild(leftArm); - this.bipedRightArm.addChild(rightArm); - } - if (isLeggings) { - this.bipedLeftLeg.addChild(leftLeg); - this.bipedRightLeg.addChild(rightLeg); - this.bipedBody.addChild(belt); - } - if (isdBoots) { - this.bipedLeftLeg.addChild(leftBoot); - this.bipedRightLeg.addChild(rightBoot); - } - - } - - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - if (entity == null){ - isSneak = false; - isRiding = false; - isChild = false; - aimedBow = false; - - this.bipedRightArm.rotateAngleX = 0F; - this.bipedRightArm.rotateAngleY = 0F; - this.bipedRightArm.rotateAngleZ = 0F; - this.bipedLeftArm.rotateAngleX = 0F; - this.bipedLeftArm.rotateAngleY = 0F; - this.bipedLeftArm.rotateAngleZ = 0F; - - bipedBody.rotateAngleX = 0F; - bipedBody.rotateAngleY = 0F; - bipedBody.rotateAngleZ = 0F; - - bipedHead.rotateAngleX = 0F; - bipedHead.rotateAngleY = 0F; - bipedHead.rotateAngleZ = 0F; - - bipedLeftLeg.rotateAngleX = 0F; - bipedLeftLeg.rotateAngleY = 0F; - bipedLeftLeg.rotateAngleZ = 0F; - - bipedRightLeg.rotateAngleX = 0F; - bipedRightLeg.rotateAngleY = 0F; - bipedRightLeg.rotateAngleZ = 0F; - - setRotationAngles(0, 0, 0, 0, 0, 0, null); - } - else super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - this.bipedHead.render(1F/13F); - this.bipedRightArm.render(1F/15F); - this.bipedLeftArm.render(1F/15F); - this.bipedBody.render(1F/15F); - this.bipedRightLeg.render(1F/16F); - this.bipedLeftLeg.render(1F/16F); - } - - public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity p_78087_7_) - { - this.bipedRightArm.rotateAngleZ = 0.0F; - this.bipedLeftArm.rotateAngleZ = 0.0F; - this.bipedRightArm.rotationPointZ = 0.0F; - this.bipedLeftArm.rotationPointZ = 0.0F; - this.bipedRightLeg.rotateAngleY = 0.0F; - this.bipedLeftLeg.rotateAngleY = 0.0F; - this.bipedRightArm.rotateAngleY = 0.0F; - this.bipedLeftArm.rotateAngleY = 0.0F; - this.bipedBody.rotateAngleX = 0.0F; - this.bipedRightLeg.rotationPointZ = 0.1F; - this.bipedLeftLeg.rotationPointZ = 0.1F; - this.bipedRightLeg.rotationPointY = 12.0F; - this.bipedLeftLeg.rotationPointY = 12.0F; - this.bipedHead.rotationPointY = 0.0F; - this.bipedHeadwear.rotationPointY = 0.0F; - this.leftLeg.rotationPointZ = 0F; - this.rightLeg.rotationPointZ = 0F; - this.bipedRightArm.rotateAngleZ = 0.0F; - this.bipedLeftArm.rotateAngleZ = 0.0F; - } -} diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelDraconicArmorOld.java b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelDraconicArmorOld.java new file mode 100644 index 000000000..f581e90da --- /dev/null +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelDraconicArmorOld.java @@ -0,0 +1,702 @@ +package com.brandon3055.draconicevolution.client.model; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +/** + * Draconic Armor.tcn - TechneToTabulaImporter + * Created using Tabula 5.0.0 + */ +public class ModelDraconicArmorOld extends ModelBiped {// +// public ModelRenderer bipedHead; +// public ModelRenderer bipedBody; +// public ModelRenderer bipedRightArm; +// public ModelRenderer bipedLeftArm; +// public ModelRenderer bipedRightLeg;/ +// public ModelRenderer bipedLeftLeg; + public ModelRenderer MainHelmPieceRight1; + public ModelRenderer MainHelmPieceRight2; + public ModelRenderer MainHelmPieceLeft1; + public ModelRenderer MainHelmPieceLeft2; + public ModelRenderer MainHelmPieceRight3; + public ModelRenderer MainHelmPieceLeft3; + public ModelRenderer MainHelmPieceBack; + public ModelRenderer MainHelmPieceTop; + public ModelRenderer MainHelmPieceFrontTop; + public ModelRenderer MainHelmPieceFrontBottom; + public ModelRenderer MainHelmPieceBottom; + public ModelRenderer HelmPieceBack1; + public ModelRenderer HornPieceRight1; + public ModelRenderer HornPieceRight2; + public ModelRenderer HornPieceLeft1; + public ModelRenderer HornPieceLeft2; + public ModelRenderer HornPieceRight3; + public ModelRenderer HornPieceLeft3; + public ModelRenderer HornPieceRight4; + public ModelRenderer HornPieceLeft4; + public ModelRenderer HelmPieceFront1; + public ModelRenderer HelmPieceFront2; + public ModelRenderer MainChestPieceBottom; + public ModelRenderer ChestDecorationPiece2; + public ModelRenderer ChestDecorationPiece4; + public ModelRenderer ShoulderPadRight2; + public ModelRenderer ShoulderPadRight3; + public ModelRenderer ShoulderPadRight4; + public ModelRenderer ShoulderPadRight1; + public ModelRenderer MainArmGuardRight; + public ModelRenderer ArmGuardPieceRight1; + public ModelRenderer ArmGuardPieceRight2; + public ModelRenderer ArmGuardPieceRight3; + public ModelRenderer ArmGuardPieceRight4; + public ModelRenderer ArmStrapRightTop; + public ModelRenderer ArmStrapRightBottom; + public ModelRenderer ShoulderPadLeft2; + public ModelRenderer ShoulderPadLeft3; + public ModelRenderer ShoulderPadLeft4; + public ModelRenderer MainArmGuardLeft; + public ModelRenderer ShoulderPadLeft1; + public ModelRenderer ArmGuardPieceLeft1; + public ModelRenderer ArmGuardPieceLeft2; + public ModelRenderer ArmGuardPieceLeft3; + public ModelRenderer ArmGuardPieceLeft4; + public ModelRenderer ArmStrapLeftBottom; + public ModelRenderer ArmStrapLeftTop; + public ModelRenderer MainLegPieceRight; + public ModelRenderer LegPieceRight1; + public ModelRenderer LegPieceRight2; + public ModelRenderer MainBootPieceRight; + public ModelRenderer BootPieceRight1; + public ModelRenderer BootPieceRight2; + public ModelRenderer MainKneePadRight; + public ModelRenderer KneePieceRight1; + public ModelRenderer MainLegPieceLeft; + public ModelRenderer LegPieceLeft2; + public ModelRenderer LegPieceLeft1; + public ModelRenderer MainBootPieceLeft; + public ModelRenderer BootPieceLeft1; + public ModelRenderer BootPieceLeft2; + public ModelRenderer MainKneePadLeft; + public ModelRenderer KneePieceLeft1; + public ModelRenderer BootPieceLeft3; + public ModelRenderer BootPieceLeft4; + public ModelRenderer BootPieceRight3; + public ModelRenderer BootPieceRight4; + public ModelRenderer LeggsTop; + + //Draconic Specific + public ModelRenderer DrMainChestPieceTop; + public ModelRenderer DrMainChestPieceMid; + public ModelRenderer DrChestDecorationPiece1; + public ModelRenderer DrChestDecorationPiece3; + public ModelRenderer BeltFront; + public ModelRenderer BeltBack; + public ModelRenderer BeltLeft; + public ModelRenderer BeltRight; + public ModelRenderer BeltBuckle; + //Wyvern Specific + public ModelRenderer WyHelmPieceTop1; + public ModelRenderer WyHelmPieceTop2; + public ModelRenderer WyHelmPieceTop3; + public ModelRenderer WyHelmPieceTop4; + public ModelRenderer WyMainChestPieceMid; + public ModelRenderer WyMainChestPieceTop; + public ModelRenderer WyChestPieceTop1; + public ModelRenderer WyChestPieceTop2; + public ModelRenderer WyChestDecorationPiece3; + public ModelRenderer WyChestPieceTop3; + + private boolean isDraconic; + + public ModelDraconicArmorOld(float f, boolean isHelmet, boolean isChestPiece, boolean isLeggings, boolean isdBoots, boolean isDraconic) { + super(f, 0.0f, 128, 128); + this.textureWidth = 256; + this.textureHeight = 128; + this.isDraconic = isDraconic; + + /* Helm */ + { + this.bipedHead = new ModelRenderer(this, 0, 0); + this.bipedHead.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bipedHead.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8, 0.0F); + + this.MainHelmPieceLeft1 = new ModelRenderer(this, 191, 0); + this.MainHelmPieceLeft1.setRotationPoint(3.5F, -3.0F, -4.5F); + this.MainHelmPieceLeft1.addBox(0.0F, 0.0F, 0.0F, 1, 3, 9, 0.0F); + + this.HelmPieceFront2 = new ModelRenderer(this, 177, 43); + this.HelmPieceFront2.setRotationPoint(-0.5F, -5.5F, -4.5F); + this.HelmPieceFront2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + + this.MainHelmPieceRight2 = new ModelRenderer(this, 170, 0); + this.MainHelmPieceRight2.setRotationPoint(-4.5F, -8.0F, -4.5F); + this.MainHelmPieceRight2.addBox(0.0F, 0.0F, 0.0F, 1, 2, 9, 0.0F); + + this.MainHelmPieceTop = new ModelRenderer(this, 177, 24); + this.MainHelmPieceTop.mirror = true; + this.MainHelmPieceTop.setRotationPoint(-4.0F, -8.300000190734863F, -4.5F); + this.MainHelmPieceTop.addBox(0.0F, 0.0F, 0.0F, 8, 1, 9, 0.0F); + this.setRotateAngle(MainHelmPieceTop, 0.05235987901687623F, -0.0F, 0.0F); + + this.MainHelmPieceFrontBottom = new ModelRenderer(this, 174, 35); + this.MainHelmPieceFrontBottom.setRotationPoint(-4.0F, -3.0F, -5.0F); + this.MainHelmPieceFrontBottom.addBox(0.0F, 0.0F, 0.0F, 8, 3, 1, 0.0F); + + this.MainHelmPieceLeft2 = new ModelRenderer(this, 170, 0); + this.MainHelmPieceLeft2.setRotationPoint(3.5F, -8.0F, -4.5F); + this.MainHelmPieceLeft2.addBox(0.0F, 0.0F, 0.0F, 1, 2, 9, 0.0F); + + this.HelmPieceBack1 = new ModelRenderer(this, 193, 39); + this.HelmPieceBack1.setRotationPoint(-4.0F, -8.0F, 4.0F); + this.HelmPieceBack1.addBox(0.0F, 0.0F, 0.0F, 8, 8, 1, 0.0F); + + this.MainHelmPieceLeft3 = new ModelRenderer(this, 195, 13); + this.MainHelmPieceLeft3.setRotationPoint(3.5F, -6.0F, -2.5F); + this.MainHelmPieceLeft3.addBox(0.0F, 0.0F, 0.0F, 1, 3, 7, 0.0F); + + this.MainHelmPieceRight1 = new ModelRenderer(this, 191, 0); + this.MainHelmPieceRight1.setRotationPoint(-4.5F, -3.0F, -4.5F); + this.MainHelmPieceRight1.addBox(0.0F, 0.0F, 0.0F, 1, 3, 9, 0.0F); + + this.MainHelmPieceBack = new ModelRenderer(this, 178, 13); + this.MainHelmPieceBack.setRotationPoint(-3.5F, -8.0F, 3.5F); + this.MainHelmPieceBack.addBox(0.0F, 0.0F, 0.0F, 7, 8, 1, 0.0F); + + this.MainHelmPieceRight3 = new ModelRenderer(this, 195, 13); + this.MainHelmPieceRight3.setRotationPoint(-4.5F, -6.0F, -2.5F); + this.MainHelmPieceRight3.addBox(0.0F, 0.0F, 0.0F, 1, 3, 7, 0.0F); + + this.HelmPieceFront1 = new ModelRenderer(this, 175, 40); + this.HelmPieceFront1.setRotationPoint(-1.0F, -6.0F, -5.0F); + this.HelmPieceFront1.addBox(0.0F, 0.0F, 0.0F, 2, 1, 1, 0.0F); + + this.MainHelmPieceBottom = new ModelRenderer(this, 177, 24); + this.MainHelmPieceBottom.setRotationPoint(-4.0F, -0.5F, -4.5F); + this.MainHelmPieceBottom.addBox(0.0F, 0.0F, 0.0F, 8, 1, 9, 0.0F); + + this.MainHelmPieceFrontTop = new ModelRenderer(this, 193, 35); + this.MainHelmPieceFrontTop.setRotationPoint(-4.0F, -8.0F, -5.0F); + this.MainHelmPieceFrontTop.addBox(0.0F, 0.0F, 0.0F, 8, 2, 1, 0.0F); + + + this.HornPieceLeft1 = new ModelRenderer(this, 182, 40); + this.HornPieceLeft1.setRotationPoint(4.0F, -7.5F, -1.0F); + this.HornPieceLeft1.addBox(0.0F, 0.0F, 0.0F, 1, 4, 4, 0.0F); + + this.HornPieceLeft2 = new ModelRenderer(this, 201, 49); + this.HornPieceLeft2.setRotationPoint(4.6F, -5.5F, 1.03F); + this.HornPieceLeft2.addBox(0.0F, -1.5F, -1.5F, 2, 3, 3, 0.0F); + this.setRotateAngle(HornPieceLeft2, 0.0F, -0.0F, -0.13962634015954636F); + + this.HornPieceLeft3 = new ModelRenderer(this, 190, 49); + this.HornPieceLeft3.setRotationPoint(6.1F, -5.6F, 1.0F); + this.HornPieceLeft3.addBox(0.0F, -1.0F, -1.0F, 3, 2, 2, 0.0F); + this.setRotateAngle(HornPieceLeft3, 0.0F, -0.0F, -0.5235987755982988F); + + this.HornPieceRight1 = new ModelRenderer(this, 182, 40); + this.HornPieceRight1.setRotationPoint(-5.0F, -7.5F, -1.0F); + this.HornPieceRight1.addBox(0.0F, 0.0F, 0.0F, 1, 4, 4, 0.0F); + + this.HornPieceRight2 = new ModelRenderer(this, 201, 49); + this.HornPieceRight2.setRotationPoint(-4.6F, -5.5F, 1.03F); + this.HornPieceRight2.addBox(0.0F, -1.5F, -1.5F, 2, 3, 3, 0.0F); + this.setRotateAngle(HornPieceRight2, 0.0F, -0.0F, -3.001966313430247F); + + this.HornPieceRight3 = new ModelRenderer(this, 190, 49); + this.HornPieceRight3.setRotationPoint(-6.1F, -5.6F, 1.0F); + this.HornPieceRight3.addBox(0.0F, -1.0F, -1.0F, 3, 2, 2, 0.0F); + this.setRotateAngle(HornPieceRight3, 0.0F, -0.0F, -2.6179938779914944F); + + this.HornPieceLeft4 = new ModelRenderer(this, 181, 49); + this.HornPieceLeft4.setRotationPoint(8.2F, -6.7F, 1.0F); + this.HornPieceLeft4.addBox(0.0F, -0.5F, -0.5F, 3, 1, 1, 0.0F); + this.setRotateAngle(HornPieceLeft4, 0.0F, -0.0F, -0.8726646259971648F); + + this.HornPieceRight4 = new ModelRenderer(this, 181, 49); + this.HornPieceRight4.setRotationPoint(-8.2F, -6.7F, 1.0F); + this.HornPieceRight4.addBox(0.0F, -0.5F, -0.5F, 3, 1, 1, 0.0F); + this.setRotateAngle(HornPieceRight4, 0.0F, -0.0F, -2.2689280275926285F); + + this.WyHelmPieceTop1 = new ModelRenderer(this, 181, 49); + this.WyHelmPieceTop1.setRotationPoint(-0.5F, -8.5F, -4.5F); + this.WyHelmPieceTop1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 3, 0.0F); + this.setRotateAngle(WyHelmPieceTop1, 0.2792526803190927F, -0.0F, 0.0F); + + this.WyHelmPieceTop2 = new ModelRenderer(this, 201, 56); + this.WyHelmPieceTop2.setRotationPoint(-1.0F, -10.0F, -2.0F); + this.WyHelmPieceTop2.addBox(0.0F, 0.0F, 0.0F, 2, 2, 3, 0.0F); + this.setRotateAngle(WyHelmPieceTop2, 0.08726646259971647F, -0.0F, 0.0F); + + this.WyHelmPieceTop3 = new ModelRenderer(this, 188, 54); + this.WyHelmPieceTop3.setRotationPoint(-1.5F, -11.0F, 1.0F); + this.WyHelmPieceTop3.addBox(0.0F, 0.0F, 0.0F, 3, 3, 3, 0.0F); + this.setRotateAngle(WyHelmPieceTop3, -0.2792526803190927F, -0.0F, 0.0F); + + this.WyHelmPieceTop4 = new ModelRenderer(this, 179, 54); + this.WyHelmPieceTop4.setRotationPoint(-0.5F, -10.0F, 1.5F); + this.WyHelmPieceTop4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 3, 0.0F); + this.setRotateAngle(WyHelmPieceTop4, -0.20943951023931953F, -0.0F, 0.0F); + } + + /* Chest */ + { + this.bipedBody = new ModelRenderer(this, 16, 16); + this.bipedBody.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bipedBody.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4, 0.0F); + + this.DrMainChestPieceTop = new ModelRenderer(this, 214, 0); + this.DrMainChestPieceTop.setRotationPoint(-5.5F, -0.5F, -5.0F); + this.DrMainChestPieceTop.addBox(0.0F, 0.0F, 0.0F, 11, 4, 10, 0.0F); + this.setRotateAngle(DrMainChestPieceTop, 0.15707963705062866F, -0.0F, 0.0F); + + this.DrMainChestPieceMid = new ModelRenderer(this, 224, 15); + this.DrMainChestPieceMid.setRotationPoint(-5.0F, 2.0F, -3.0F); + this.DrMainChestPieceMid.addBox(0.0F, 0.0F, 0.0F, 10, 5, 6, 0.0F); + + this.WyChestPieceTop3 = new ModelRenderer(this, 239, 0); + this.WyChestPieceTop3.setRotationPoint(-3.5F, 4.5F, -3.5F); + this.WyChestPieceTop3.addBox(1.0F, 0.0F, 0.0F, 4, 4, 1, 0.0F); + this.setRotateAngle(WyChestPieceTop3, 0.0879645943005142F, 0.08621926504851989F, -0.7890633548266364F); + + this.WyMainChestPieceTop = new ModelRenderer(this, 250, 0); + this.WyMainChestPieceTop.setRotationPoint(-5.7F, 0.0F, -2.6F); + this.WyMainChestPieceTop.addBox(1.0F, 0.0F, 0.0F, 2, 4, 1, 0.0F); + this.setRotateAngle(WyMainChestPieceTop, 0.0F, 0.47123889803846897F, 0.0F); + + this.MainChestPieceBottom = new ModelRenderer(this, 228, 27); + this.MainChestPieceBottom.setRotationPoint(-4.5F, 7.0F, -2.5F); + this.MainChestPieceBottom.addBox(0.0F, 0.0F, 0.0F, 9, 5, 5, 0.0F); + + this.DrChestDecorationPiece1 = new ModelRenderer(this, 244, 38); + this.DrChestDecorationPiece1.setRotationPoint(0.0F, -0.5F, -4.0F); + this.DrChestDecorationPiece1.addBox(0.0F, 0.0F, -0.5F, 5, 5, 1, 0.0F); + this.setRotateAngle(DrChestDecorationPiece1, 0.1426609064282019F, -0.13533507716461618F, 0.7946695004338321F); + + this.ChestDecorationPiece2 = new ModelRenderer(this, 229, 38); + this.ChestDecorationPiece2.setRotationPoint(-3.0F, 7.0F, -3.0F); + this.ChestDecorationPiece2.addBox(0.0F, 0.0F, 0.0F, 6, 3, 1, 0.0F); + this.setRotateAngle(ChestDecorationPiece2, 0.12217304855585097F, -0.0F, 0.0F); + + this.DrChestDecorationPiece3 = new ModelRenderer(this, 236, 45); + this.DrChestDecorationPiece3.setRotationPoint(-4.0F, 1.0F, 3.0F); + this.DrChestDecorationPiece3.addBox(0.0F, 0.0F, 0.0F, 8, 5, 2, 0.0F); + this.setRotateAngle(DrChestDecorationPiece3, -0.39211732149124146F, -0.0F, 0.0F); + + this.ChestDecorationPiece4 = new ModelRenderer(this, 229, 38); + this.ChestDecorationPiece4.setRotationPoint(-3.0F, 6.800000190734863F, 2.0F); + this.ChestDecorationPiece4.addBox(0.0F, 0.0F, 0.0F, 6, 3, 1, 0.0F); + this.setRotateAngle(ChestDecorationPiece4, -0.12217304855585097F, -0.0F, 0.0F); + + this.WyMainChestPieceMid = new ModelRenderer(this, 224, 13); + this.WyMainChestPieceMid.setRotationPoint(-5.0F, -0.1F, -3.0F); + this.WyMainChestPieceMid.addBox(0.0F, 0.0F, 0.0F, 10, 7, 6, 0.0F); + + this.WyChestPieceTop2 = new ModelRenderer(this, 250, 0); + this.WyChestPieceTop2.setRotationPoint(2.1F, 0.0F, -4.4F); + this.WyChestPieceTop2.addBox(1.0F, 0.0F, 0.0F, 2, 4, 1, 0.0F); + this.setRotateAngle(WyChestPieceTop2, 0.0F, -0.47123889803846897F, 0.0F); + + this.WyChestPieceTop1 = new ModelRenderer(this, 240, 6); + this.WyChestPieceTop1.setRotationPoint(-4.0F, 0.0F, -4.0F); + this.WyChestPieceTop1.addBox(1.0F, 0.0F, 0.0F, 6, 4, 2, 0.0F); + + this.WyChestDecorationPiece3 = new ModelRenderer(this, 236, 45); + this.WyChestDecorationPiece3.setRotationPoint(-3.5F, 0.0F, 2.5F); + this.WyChestDecorationPiece3.addBox(0.0F, 0.0F, 0.0F, 7, 5, 2, 0.0F); + this.setRotateAngle(WyChestDecorationPiece3, -0.2617993877991494F, -0.0F, 0.0F); + + this.BeltFront = new ModelRenderer(this, 121, 25); + this.BeltFront.setRotationPoint(0.5F, 10.01F, -2.0F); + this.BeltFront.addBox(-5.0F, 0.0F, -0.7F, 9, 2, 1, 0.0F); + + this.BeltBuckle = new ModelRenderer(this, 121, 29); + this.BeltBuckle.setRotationPoint(3.5F, 10.0F, -2.2F); + this.BeltBuckle.addBox(-5.0F, 0.0F, -0.7F, 3, 2, 1, 0.0F); + + this.BeltBack = new ModelRenderer(this, 121, 25); + this.BeltBack.setRotationPoint(0.5F, 10.01F, 2.0F); + this.BeltBack.addBox(-5.0F, 0.0F, -0.3F, 9, 2, 1, 0.0F); + + this.BeltRight = new ModelRenderer(this, 142, 25); + this.BeltRight.setRotationPoint(-4.7F, 10.01F, -2.2F); + this.BeltRight.addBox(0.0F, 0.0F, -0.3F, 1, 2, 5, 0.0F); + + this.BeltLeft = new ModelRenderer(this, 142, 25); + this.BeltLeft.setRotationPoint(3.7F, 10.01F, -2.2F); + this.BeltLeft.addBox(0.0F, 0.0F, -0.3F, 1, 2, 5, 0.0F); + + //Left + this.bipedLeftArm = new ModelRenderer(this, 40, 16); + this.bipedLeftArm.setRotationPoint(5.0F, 2.0F, 0.0F); + this.bipedLeftArm.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); + + this.ShoulderPadLeft1 = new ModelRenderer(this, 236, 53); + this.ShoulderPadLeft1.setRotationPoint(-1.5F, -2.0F, -2.5F); + this.ShoulderPadLeft1.addBox(0.0F, 0.0F, 0.0F, 5, 4, 5, 0.0F); + + this.ShoulderPadLeft2 = new ModelRenderer(this, 232, 63); + this.ShoulderPadLeft2.setRotationPoint(-1.0F, -2.5F, -3.0F); + this.ShoulderPadLeft2.addBox(-0.3F, 0.0F, 0.0F, 6, 2, 6, 0.0F); + this.setRotateAngle(ShoulderPadLeft2, 0.0F, -0.0F, 0.3665191429188092F); + + this.ShoulderPadLeft3 = new ModelRenderer(this, 215, 53); + this.ShoulderPadLeft3.mirror = true; + this.ShoulderPadLeft3.setRotationPoint(-1.0F, -3.0F, -2.5F); + this.ShoulderPadLeft3.addBox(0.3F, -0.5F, 0.0F, 5, 2, 5, 0.0F); + this.setRotateAngle(ShoulderPadLeft3, 0.0F, -0.0F, 0.20943951023931953F); + + this.ShoulderPadLeft4 = new ModelRenderer(this, 219, 61); + this.ShoulderPadLeft4.setRotationPoint(-0.5F, -2.5F, -2.0F); + this.ShoulderPadLeft4.addBox(0.7F, -2.0F, 0.5F, 3, 2, 3, 0.0F); + this.setRotateAngle(ShoulderPadLeft4, 0.0F, -0.0F, 0.12217304763960307F); + + this.MainArmGuardLeft = new ModelRenderer(this, 240, 72); + this.MainArmGuardLeft.setRotationPoint(0.5F, 3.0F, -2.5F); + this.MainArmGuardLeft.addBox(0.0F, 0.0F, 0.0F, 3, 5, 5, 0.0F); + + this.ArmGuardPieceLeft1 = new ModelRenderer(this, 223, 67); + this.ArmGuardPieceLeft1.setRotationPoint(2.5F, 6.0F, -1.5F); + this.ArmGuardPieceLeft1.addBox(0.2F, -0.3F, 0.0F, 1, 2, 3, 0.0F); + this.setRotateAngle(ArmGuardPieceLeft1, 0.0F, -0.0F, -0.17453292519943295F); + + this.ArmGuardPieceLeft2 = new ModelRenderer(this, 223, 67); + this.ArmGuardPieceLeft2.setRotationPoint(2.5F, 5.0F, -1.5F); + this.ArmGuardPieceLeft2.addBox(0.2F, -0.3F, 0.0F, 1, 2, 3, 0.0F); + this.setRotateAngle(ArmGuardPieceLeft2, 0.0F, -0.0F, -0.17453292519943295F); + + this.ArmGuardPieceLeft3 = new ModelRenderer(this, 223, 67); + this.ArmGuardPieceLeft3.setRotationPoint(2.5F, 4.0F, -1.5F); + this.ArmGuardPieceLeft3.addBox(0.2F, -0.3F, 0.0F, 1, 2, 3, 0.0F); + this.setRotateAngle(ArmGuardPieceLeft3, 0.0F, -0.0F, -0.17453292519943295F); + + this.ArmGuardPieceLeft4 = new ModelRenderer(this, 231, 72); + this.ArmGuardPieceLeft4.setRotationPoint(2.5F, 3.0F, -1.5F); + this.ArmGuardPieceLeft4.addBox(0.2F, 0.6F, 0.0F, 1, 1, 3, 0.0F); + this.setRotateAngle(ArmGuardPieceLeft4, 0.0F, -0.0F, -0.17453292519943295F); + + this.ArmStrapLeftTop = new ModelRenderer(this, 225, 77); + this.ArmStrapLeftTop.setRotationPoint(-1.43F, 3.0F, -2.5F); + this.ArmStrapLeftTop.addBox(0.0F, 0.0F, 0.0F, 2, 1, 5, 0.0F); + + this.ArmStrapLeftBottom = new ModelRenderer(this, 225, 77); + this.ArmStrapLeftBottom.setRotationPoint(-1.5F, 7.0F, -2.5F); + this.ArmStrapLeftBottom.addBox(0.0F, 0.0F, 0.0F, 2, 1, 5, 0.0F); + + + //Right + this.MainArmGuardRight = new ModelRenderer(this, 240, 72); + this.MainArmGuardRight.setRotationPoint(-3.5F, 3.0F, -2.5F); + this.MainArmGuardRight.addBox(0.0F, 0.0F, 0.0F, 3, 5, 5, 0.0F); + + this.ArmGuardPieceRight1 = new ModelRenderer(this, 231, 72); + this.ArmGuardPieceRight1.setRotationPoint(-3.9F, 2.8F, -1.5F); + this.ArmGuardPieceRight1.addBox(0.2F, 0.6F, 0.0F, 1, 1, 3, 0.0F); + this.setRotateAngle(ArmGuardPieceRight1, 0.0F, -0.0F, 0.17453292519943295F); + + this.ArmGuardPieceRight2 = new ModelRenderer(this, 223, 67); + this.ArmGuardPieceRight2.setRotationPoint(-4.6F, 4.1F, -1.5F); + this.ArmGuardPieceRight2.addBox(0.8F, -0.7F, 0.0F, 1, 2, 3, 0.0F); + this.setRotateAngle(ArmGuardPieceRight2, 0.0F, -0.0F, 0.17453292519943295F); + + this.ArmGuardPieceRight3 = new ModelRenderer(this, 223, 67); + this.ArmGuardPieceRight3.setRotationPoint(-4.03F, 5.3F, -1.5F); + this.ArmGuardPieceRight3.addBox(0.2F, -0.8F, 0.0F, 1, 2, 3, 0.0F); + this.setRotateAngle(ArmGuardPieceRight3, 0.0F, -0.0F, 0.17453292519943295F); + + this.ArmGuardPieceRight4 = new ModelRenderer(this, 223, 67); + this.ArmGuardPieceRight4.setRotationPoint(-4.0F, 6.8F, -1.5F); + this.ArmGuardPieceRight4.addBox(0.1F, -1.3F, 0.0F, 1, 2, 3, 0.0F); + this.setRotateAngle(ArmGuardPieceRight4, 0.0F, -0.0F, 0.17453292519943295F); + + this.ShoulderPadRight1 = new ModelRenderer(this, 236, 53); + this.ShoulderPadRight1.setRotationPoint(-3.5F, -2.0F, -2.5F); + this.ShoulderPadRight1.addBox(0.0F, 0.0F, 0.0F, 5, 4, 5, 0.0F); + + this.ShoulderPadRight2 = new ModelRenderer(this, 232, 63); + this.ShoulderPadRight2.setRotationPoint(-5.0F, -2.5F, -3.0F); + this.ShoulderPadRight2.addBox(-0.1F, 2.1F, 0.0F, 6, 2, 6, 0.0F); + this.setRotateAngle(ShoulderPadRight2, 0.0F, -0.0F, -0.3665191429188092F); + + this.ShoulderPadRight3 = new ModelRenderer(this, 215, 53); + this.ShoulderPadRight3.setRotationPoint(-5.0F, -3.0F, -2.5F); + this.ShoulderPadRight3.addBox(0.6F, 0.7F, 0.0F, 5, 2, 5, 0.0F); + this.setRotateAngle(ShoulderPadRight3, 0.0F, -0.0F, -0.20943951023931953F); + + this.ShoulderPadRight4 = new ModelRenderer(this, 219, 61); + this.ShoulderPadRight4.setRotationPoint(-4.5F, -2.5F, -2.0F); + this.ShoulderPadRight4.addBox(1.3F, -1.5F, 0.5F, 3, 2, 3, 0.0F); + this.setRotateAngle(ShoulderPadRight4, 0.0F, -0.0F, -0.12217304763960307F); + + this.bipedRightArm = new ModelRenderer(this, 40, 16); + this.bipedRightArm.setRotationPoint(-5.0F, 2.0F, 0.0F); + this.bipedRightArm.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4, 0.0F); + + this.ArmStrapRightTop = new ModelRenderer(this, 225, 77); + this.ArmStrapRightTop.setRotationPoint(-0.5F, 3.0F, -2.5F); + this.ArmStrapRightTop.addBox(0.0F, 0.0F, 0.0F, 2, 1, 5, 0.0F); + + this.ArmStrapRightBottom = new ModelRenderer(this, 225, 77); + this.ArmStrapRightBottom.setRotationPoint(-0.5F, 7.0F, -2.5F); + this.ArmStrapRightBottom.addBox(0.0F, 0.0F, 0.0F, 2, 1, 5, 0.0F); + } + + /* Leggs */ + { + this.LeggsTop = new ModelRenderer(this, 121, 15); + this.LeggsTop.setRotationPoint(0.5F, 8.0F, -2.4F); + this.LeggsTop.addBox(-5.0F, 0.0F, 0.0F, 9, 4, 5, 0.0F); + //Left + this.bipedLeftLeg = new ModelRenderer(this, 0, 16); + this.bipedLeftLeg.setRotationPoint(2.0F, 12.0F, 0.0F); + this.bipedLeftLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); + + this.MainLegPieceLeft = new ModelRenderer(this, 149, 0); + this.MainLegPieceLeft.setRotationPoint(-2.0F, -1F, -2.5F); + this.MainLegPieceLeft.addBox(0.0F, 0.0F, 0.0F, 4, 10, 5, 0.0F); + + this.LegPieceLeft1 = new ModelRenderer(this, 138, 0); + this.LegPieceLeft1.setRotationPoint(1.5F, -1F, -2.0F); + this.LegPieceLeft1.addBox(0.0F, 0.0F, 0.0F, 1, 10, 4, 0.0F); + + this.LegPieceLeft2 = new ModelRenderer(this, 138, 0); + this.LegPieceLeft2.setRotationPoint(-2.5F, -1F, -2.0F); + this.LegPieceLeft2.addBox(0.0F, 0.0F, 0.0F, 1, 10, 4, 0.0F); + + this.MainKneePadLeft = new ModelRenderer(this, 149, 15); + this.MainKneePadLeft.setRotationPoint(0.0F, 2.5F, -3.0F); + this.MainKneePadLeft.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F); + this.setRotateAngle(MainKneePadLeft, 0.0F, -0.0F, 0.7853981633974483F); + + this.KneePieceLeft1 = new ModelRenderer(this, 156, 15); + this.KneePieceLeft1.setRotationPoint(-0.5F, 2.0F, -2.7F); + this.KneePieceLeft1.addBox(0.0F, 0.0F, 0.0F, 1, 4, 1, 0.0F); + + //Right + this.bipedRightLeg = new ModelRenderer(this, 0, 16); + this.bipedRightLeg.setRotationPoint(-2.0F, 12.0F, 0.0F); + this.bipedRightLeg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4, 0.0F); + + this.MainLegPieceRight = new ModelRenderer(this, 149, 0); + this.MainLegPieceRight.setRotationPoint(-2.0F, -1F, -2.5F); + this.MainLegPieceRight.addBox(0.0F, 0.0F, 0.0F, 4, 10, 5, 0.0F); + + this.LegPieceRight1 = new ModelRenderer(this, 138, 0); + this.LegPieceRight1.setRotationPoint(-2.5F, -1F, -2.0F); + this.LegPieceRight1.addBox(0.0F, 0.0F, 0.0F, 1, 10, 4, 0.0F); + + this.LegPieceRight2 = new ModelRenderer(this, 138, 0); + this.LegPieceRight2.setRotationPoint(1.5F, -1F, -2.0F); + this.LegPieceRight2.addBox(0.0F, 0.0F, 0.0F, 1, 10, 4, 0.0F); + + this.MainKneePadRight = new ModelRenderer(this, 149, 15); + this.MainKneePadRight.setRotationPoint(0.0F, 2.5F, -3.0F); + this.MainKneePadRight.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F); + + this.setRotateAngle(MainKneePadRight, 0.0F, -0.0F, 0.7853981633974483F); + this.KneePieceRight1 = new ModelRenderer(this, 156, 15); + this.KneePieceRight1.setRotationPoint(-0.5F, 2.0F, -2.7F); + this.KneePieceRight1.addBox(0.0F, 0.0F, 0.0F, 1, 4, 1, 0.0F); + + } + + /* Boots */ + { + //Left + this.MainBootPieceLeft = new ModelRenderer(this, 119, 0); + this.MainBootPieceLeft.setRotationPoint(-2.0F, 9.1F, -2.5F); + this.MainBootPieceLeft.addBox(0.0F, 0.0F, 0.0F, 4, 3, 5, 0.0F); + + this.BootPieceLeft1 = new ModelRenderer(this, 129, 9); + this.BootPieceLeft1.setRotationPoint(-1.5F, 9.0F, -3.5F); + this.BootPieceLeft1.addBox(0.0F, 0.0F, 0.0F, 3, 3, 1, 0.0F); + + this.BootPieceLeft2 = new ModelRenderer(this, 122, 9); + this.BootPieceLeft2.setRotationPoint(-1.0F, 9.0F, -2.5F); + this.BootPieceLeft2.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F); + this.setRotateAngle(BootPieceLeft2, -0.40142572795869574F, -0.0F, 0.0F); + + this.BootPieceLeft3 = new ModelRenderer(this, 138, 0); + this.BootPieceLeft3.setRotationPoint(1.5F, 9.05F, -2.0F); + this.BootPieceLeft3.addBox(0.0F, 0.0F, 0.0F, 1, 3, 4, 0.0F); + + this.BootPieceLeft4 = new ModelRenderer(this, 138, 0); + this.BootPieceLeft4.setRotationPoint(-2.5F, 9.05F, -2.0F); + this.BootPieceLeft4.addBox(0.0F, 0.0F, 0.0F, 1, 3, 4, 0.0F); + + //Right + this.MainBootPieceRight = new ModelRenderer(this, 119, 0); + this.MainBootPieceRight.setRotationPoint(-2.0F, 9.1F, -2.5F); + this.MainBootPieceRight.addBox(0.0F, 0.0F, 0.0F, 4, 3, 5, 0.0F); + + this.BootPieceRight1 = new ModelRenderer(this, 129, 9); + this.BootPieceRight1.setRotationPoint(-1.5F, 9.0F, -3.5F); + this.BootPieceRight1.addBox(0.0F, 0.0F, 0.0F, 3, 3, 1, 0.0F); + + this.BootPieceRight2 = new ModelRenderer(this, 122, 9); + this.BootPieceRight2.setRotationPoint(-1.0F, 9.0F, -2.5F); + this.BootPieceRight2.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F); + this.setRotateAngle(BootPieceRight2, -0.40142572795869574F, -0.0F, 0.0F); + + this.BootPieceRight3 = new ModelRenderer(this, 138, 0); + this.BootPieceRight3.setRotationPoint(-2.5F, 9.05F, -2.0F); + this.BootPieceRight3.addBox(0.0F, 0.0F, 0.0F, 1, 3, 4, 0.0F); + + this.BootPieceRight4 = new ModelRenderer(this, 138, 0); + this.BootPieceRight4.setRotationPoint(1.5F, 9.05F, -2.0F); + this.BootPieceRight4.addBox(0.0F, 0.0F, 0.0F, 1, 3, 4, 0.0F); + } + + + this.bipedHead.cubeList.clear(); + this.bipedHeadwear.cubeList.clear(); + if (isHelmet){ + this.bipedHead.addChild(this.MainHelmPieceLeft1); + this.bipedHead.addChild(this.HelmPieceFront2); + this.bipedHead.addChild(this.MainHelmPieceRight2); + this.bipedHead.addChild(this.MainHelmPieceTop); + this.bipedHead.addChild(this.MainHelmPieceFrontBottom); + this.bipedHead.addChild(this.HornPieceRight1); + this.bipedHead.addChild(this.HornPieceLeft1); + + this.bipedHead.addChild(this.MainHelmPieceLeft2); + this.bipedHead.addChild(this.HornPieceRight3); + this.bipedHead.addChild(this.HornPieceLeft3); + this.bipedHead.addChild(this.HelmPieceBack1); + + this.bipedHead.addChild(this.MainHelmPieceLeft3); + this.bipedHead.addChild(this.MainHelmPieceRight1); + this.bipedHead.addChild(this.HornPieceRight2); + this.bipedHead.addChild(this.MainHelmPieceBack); + this.bipedHead.addChild(this.MainHelmPieceRight3); + this.bipedHead.addChild(this.HelmPieceFront1); + this.bipedHead.addChild(this.MainHelmPieceBottom); + this.bipedHead.addChild(this.MainHelmPieceFrontTop); + this.bipedHead.addChild(this.HornPieceLeft2); + + if (isDraconic){ + this.bipedHead.addChild(this.HornPieceLeft4); + this.bipedHead.addChild(this.HornPieceRight4); + } + else + { + this.bipedHead.addChild(this.WyHelmPieceTop1); + this.bipedHead.addChild(this.WyHelmPieceTop2); + this.bipedHead.addChild(this.WyHelmPieceTop3); + this.bipedHead.addChild(this.WyHelmPieceTop4); + } + } + + this.bipedBody.cubeList.clear(); + this.bipedRightArm.cubeList.clear(); + this.bipedLeftArm.cubeList.clear(); + if (isChestPiece){ + this.bipedBody.addChild(this.MainChestPieceBottom); + this.bipedBody.addChild(this.ChestDecorationPiece2); + this.bipedBody.addChild(this.ChestDecorationPiece4); + + if (isDraconic){ + this.bipedBody.addChild(this.DrMainChestPieceTop); + this.bipedBody.addChild(this.DrMainChestPieceMid); + this.bipedBody.addChild(this.DrChestDecorationPiece1); + this.bipedBody.addChild(this.DrChestDecorationPiece3); + + this.bipedLeftArm.addChild(this.ArmGuardPieceLeft1); + this.bipedLeftArm.addChild(this.ArmGuardPieceLeft2); + this.bipedLeftArm.addChild(this.ArmGuardPieceLeft3); + this.bipedLeftArm.addChild(this.ArmGuardPieceLeft4); + this.bipedLeftArm.addChild(this.MainArmGuardLeft); + this.bipedLeftArm.addChild(this.ArmStrapLeftTop); + this.bipedLeftArm.addChild(this.ArmStrapLeftBottom); + + this.bipedRightArm.addChild(this.ArmGuardPieceRight1); + this.bipedRightArm.addChild(this.ArmGuardPieceRight2); + this.bipedRightArm.addChild(this.ArmGuardPieceRight3); + this.bipedRightArm.addChild(this.ArmGuardPieceRight4); + this.bipedRightArm.addChild(this.MainArmGuardRight); + this.bipedRightArm.addChild(this.ArmStrapRightTop); + this.bipedRightArm.addChild(this.ArmStrapRightBottom); + } + else + { + this.bipedBody.addChild(this.WyMainChestPieceMid); + this.bipedBody.addChild(this.WyChestPieceTop2); + this.bipedBody.addChild(this.WyChestPieceTop1); + this.bipedBody.addChild(this.WyChestPieceTop3); + this.bipedBody.addChild(this.WyChestDecorationPiece3); + this.bipedBody.addChild(this.WyMainChestPieceTop); + } + + this.bipedLeftArm.addChild(this.ShoulderPadLeft1); + this.bipedLeftArm.addChild(this.ShoulderPadLeft2); + this.bipedLeftArm.addChild(this.ShoulderPadLeft3); + this.bipedLeftArm.addChild(this.ShoulderPadLeft4); + + this.bipedRightArm.addChild(this.ShoulderPadRight1); + this.bipedRightArm.addChild(this.ShoulderPadRight2); + this.bipedRightArm.addChild(this.ShoulderPadRight3); + this.bipedRightArm.addChild(this.ShoulderPadRight4); + } + + this.bipedLeftLeg.cubeList.clear(); + this.bipedRightLeg.cubeList.clear(); + if (isLeggings){ + this.bipedBody.addChild(this.LeggsTop); + + this.bipedLeftLeg.addChild(this.LegPieceLeft1); + this.bipedLeftLeg.addChild(this.MainKneePadLeft); + this.bipedLeftLeg.addChild(this.MainLegPieceLeft); + this.bipedLeftLeg.addChild(this.KneePieceLeft1); + this.bipedLeftLeg.addChild(this.LegPieceLeft2); + + this.bipedRightLeg.addChild(this.LegPieceRight2); + this.bipedRightLeg.addChild(this.LegPieceRight1); + this.bipedRightLeg.addChild(this.MainKneePadRight); + this.bipedRightLeg.addChild(this.KneePieceRight1); + this.bipedRightLeg.addChild(this.MainLegPieceRight); + + if (isDraconic){ + this.bipedBody.addChild(this.BeltFront); + this.bipedBody.addChild(this.BeltBack); + this.bipedBody.addChild(this.BeltLeft); + this.bipedBody.addChild(this.BeltRight); + this.bipedBody.addChild(this.BeltBuckle); + } + } + + + if (isdBoots){ + this.bipedLeftLeg.addChild(this.MainBootPieceLeft); + this.bipedLeftLeg.addChild(this.BootPieceLeft2); + this.bipedLeftLeg.addChild(this.BootPieceLeft1); + this.bipedLeftLeg.addChild(this.BootPieceLeft3); + this.bipedLeftLeg.addChild(this.BootPieceLeft4); + + this.bipedRightLeg.addChild(this.MainBootPieceRight); + this.bipedRightLeg.addChild(this.BootPieceRight1); + this.bipedRightLeg.addChild(this.BootPieceRight2); + this.bipedRightLeg.addChild(this.BootPieceRight3); + this.bipedRightLeg.addChild(this.BootPieceRight4); + } + + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + this.bipedRightLeg.render(f5); + this.bipedBody.render(f5*1.05F);// * 1.1F); + this.bipedLeftArm.render(f5); + this.bipedRightArm.render(f5); + this.bipedLeftLeg.render(f5); + this.bipedHead.render(f5*1.05F); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelWyvernArmorOBJ.java b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelWyvernArmor.java similarity index 97% rename from src/main/java/com/brandon3055/draconicevolution/client/model/ModelWyvernArmorOBJ.java rename to src/main/java/com/brandon3055/draconicevolution/client/model/ModelWyvernArmor.java index 89c4bacdd..aab9f97d2 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelWyvernArmorOBJ.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelWyvernArmor.java @@ -6,7 +6,7 @@ import net.minecraft.entity.Entity; -public class ModelWyvernArmorOBJ extends ModelBiped { +public class ModelWyvernArmor extends ModelBiped { public ModelRenderOBJ head; public ModelRenderOBJ body; @@ -18,7 +18,7 @@ public class ModelWyvernArmorOBJ extends ModelBiped { public ModelRenderOBJ rightBoot; public ModelRenderOBJ leftBoot; - public ModelWyvernArmorOBJ(float f, boolean isHelmet, boolean isChestPiece, boolean isLeggings, boolean isdBoots) { + public ModelWyvernArmor(float f, boolean isHelmet, boolean isChestPiece, boolean isLeggings, boolean isdBoots) { super(f, 0.0f, 128, 128); this.bipedHead = new ModelRenderer(this, 0, 0); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderChaosCrystal.java b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderChaosCrystal.java index 324d0fffe..26c2c0efb 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderChaosCrystal.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderChaosCrystal.java @@ -25,13 +25,13 @@ public RenderChaosCrystal() { } public void doRender(EntityChaosCrystal crystal, double x, double y, double z, float f, float partialTick) { - float rotation = (float)crystal.innerRotation + (crystal.getHealth() > 0 ? partialTick : 0); + float rotation = (float)crystal.innerRotation + (crystal.health > 0 ? partialTick : 0); GL11.glPushMatrix(); GL11.glTranslated(x, y, z); ResourceHandler.bindResource("textures/entity/chaosCrystal.png"); float r2 = MathHelper.sin(rotation * 0.2F) / 2.0F + 0.5F; r2 += r2 * r2; - this.model.render(crystal, 0.0F, rotation * 3.0F, r2 * 0.2F, crystal.deathAnimation, crystal.getHealth(), 0.0625F); + this.model.render(crystal, 0.0F, rotation * 3.0F, r2 * 0.2F, crystal.deathAnimation, crystal.health, 0.0625F); GL11.glPopMatrix(); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderDragon.java b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderDragon.java index ee0550c5a..df6c97c62 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderDragon.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderDragon.java @@ -148,14 +148,15 @@ public void doRender(EntityDragon dragon, double p_76986_2_, double p_76986_4_, GL11.glShadeModel(GL11.GL_FLAT); RenderHelper.enableStandardItemLighting(); GL11.glPopMatrix(); - } else if (dragon instanceof EntityChaosGuardian && ((EntityChaosGuardian) dragon).healingChaosCrystal != null){ + } + else if (dragon instanceof EntityChaosGuardian && ((EntityChaosGuardian) dragon).crystalY > 0){ - float f2 = (float)((EntityChaosGuardian) dragon).healingChaosCrystal.innerRotation + p_76986_9_; + float f2 = ((EntityChaosGuardian) dragon).healingChaosCrystal != null ? (float)((EntityChaosGuardian) dragon).healingChaosCrystal.innerRotation + p_76986_9_ : 0; float f3 = MathHelper.sin(f2 * 0.2F) / 2.0F + 0.5F; f3 = (f3 * f3 + f3) * 0.2F; - float f4 = (float)(((EntityChaosGuardian) dragon).healingChaosCrystal.posX - dragon.posX - (dragon.prevPosX - dragon.posX) * (double)(1.0F - p_76986_9_)); - float f5 = (float)((double)f3 + ((EntityChaosGuardian) dragon).healingChaosCrystal.posY - 1.0D - dragon.posY - (dragon.prevPosY - dragon.posY) * (double)(1.0F - p_76986_9_)); - float f6 = (float)(((EntityChaosGuardian) dragon).healingChaosCrystal.posZ - dragon.posZ - (dragon.prevPosZ - dragon.posZ) * (double)(1.0F - p_76986_9_)); + float f4 = (float)(((EntityChaosGuardian) dragon).crystalX+0.5 - dragon.posX - (dragon.prevPosX - dragon.posX) * (double)(1.0F - p_76986_9_)); + float f5 = (float)((double)f3 + ((EntityChaosGuardian) dragon).crystalY+0.5 - 1.0D - dragon.posY - (dragon.prevPosY - dragon.posY) * (double)(1.0F - p_76986_9_)); + float f6 = (float)(((EntityChaosGuardian) dragon).crystalZ+0.5 - dragon.posZ - (dragon.prevPosZ - dragon.posZ) * (double)(1.0F - p_76986_9_)); float f7 = MathHelper.sqrt_float(f4 * f4 + f6 * f6); float f8 = MathHelper.sqrt_float(f4 * f4 + f5 * f5 + f6 * f6); GL11.glPushMatrix(); @@ -189,6 +190,48 @@ public void doRender(EntityDragon dragon, double p_76986_2_, double p_76986_4_, RenderHelper.enableStandardItemLighting(); GL11.glPopMatrix(); } +// } else if (dragon instanceof EntityChaosGuardian && ((EntityChaosGuardian) dragon).healingChaosCrystal != null){ +// +// +// float f2 = (float)((EntityChaosGuardian) dragon).healingChaosCrystal.innerRotation + p_76986_9_; +// float f3 = MathHelper.sin(f2 * 0.2F) / 2.0F + 0.5F; +// f3 = (f3 * f3 + f3) * 0.2F; +// float f4 = (float)(((EntityChaosGuardian) dragon).healingChaosCrystal.posX - dragon.posX - (dragon.prevPosX - dragon.posX) * (double)(1.0F - p_76986_9_)); +// float f5 = (float)((double)f3 + ((EntityChaosGuardian) dragon).healingChaosCrystal.posY - 1.0D - dragon.posY - (dragon.prevPosY - dragon.posY) * (double)(1.0F - p_76986_9_)); +// float f6 = (float)(((EntityChaosGuardian) dragon).healingChaosCrystal.posZ - dragon.posZ - (dragon.prevPosZ - dragon.posZ) * (double)(1.0F - p_76986_9_)); +// float f7 = MathHelper.sqrt_float(f4 * f4 + f6 * f6); +// float f8 = MathHelper.sqrt_float(f4 * f4 + f5 * f5 + f6 * f6); +// GL11.glPushMatrix(); +// GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_ + 2.0F, (float)p_76986_6_); +// GL11.glRotatef((float)(-Math.atan2((double)f6, (double)f4)) * 180.0F / (float)Math.PI - 90.0F, 0.0F, 1.0F, 0.0F); +// GL11.glRotatef((float)(-Math.atan2((double)f7, (double)f5)) * 180.0F / (float)Math.PI - 90.0F, 1.0F, 0.0F, 0.0F); +// Tessellator tessellator = Tessellator.instance; +// RenderHelper.disableStandardItemLighting(); +// GL11.glDisable(GL11.GL_CULL_FACE); +// this.bindTexture(enderDragonCrystalBeamTextures); +// GL11.glShadeModel(GL11.GL_SMOOTH); +// float f9 = 0.0F - ((float)dragon.ticksExisted + p_76986_9_) * 0.01F; +// float f10 = MathHelper.sqrt_float(f4 * f4 + f5 * f5 + f6 * f6) / 32.0F - ((float)dragon.ticksExisted + p_76986_9_) * 0.01F; +// tessellator.startDrawing(5); +// byte b0 = 8; +// +// for (int i = 0; i <= b0; ++i) +// { +// float f11 = MathHelper.sin((float)(i % b0) * (float)Math.PI * 2.0F / (float)b0) * 0.75F; +// float f12 = MathHelper.cos((float)(i % b0) * (float)Math.PI * 2.0F / (float)b0) * 0.75F; +// float f13 = (float)(i % b0) * 1.0F / (float)b0; +// tessellator.setColorOpaque_I(0); +// tessellator.addVertexWithUV((double)(f11 * 0.2F), (double)(f12 * 0.2F), 0.0D, (double)f13, (double)f10); +// tessellator.setColorOpaque_I(0xFF0000); +// tessellator.addVertexWithUV((double)f11, (double)f12, (double)f8, (double)f13, (double)f9); +// } +// +// tessellator.draw(); +// GL11.glEnable(GL11.GL_CULL_FACE); +// GL11.glShadeModel(GL11.GL_FLAT); +// RenderHelper.enableStandardItemLighting(); +// GL11.glPopMatrix(); +// } } /** diff --git a/src/main/java/com/brandon3055/draconicevolution/common/blocks/ChaosCrystal.java b/src/main/java/com/brandon3055/draconicevolution/common/blocks/ChaosCrystal.java index 6e78b3047..eec81d7b6 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/blocks/ChaosCrystal.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/blocks/ChaosCrystal.java @@ -3,18 +3,23 @@ import com.brandon3055.draconicevolution.DraconicEvolution; import com.brandon3055.draconicevolution.common.ModBlocks; import com.brandon3055.draconicevolution.common.ModItems; -import com.brandon3055.draconicevolution.common.entity.EntityChaosVortex; import com.brandon3055.draconicevolution.common.lib.References; import com.brandon3055.draconicevolution.common.tileentities.TileChaosShard; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import java.util.List; import java.util.Random; /** @@ -75,11 +80,32 @@ public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity @Override public void breakBlock(World world, int x, int y, int z, Block block, int i) { + if (!world.isRemote && world.getTileEntity(x, y, z) instanceof TileChaosShard){ + ((TileChaosShard)world.getTileEntity(x, y, z)).detonate(); + } super.breakBlock(world, x, y, z, block, i); - if (!world.isRemote){ - EntityChaosVortex vortex = new EntityChaosVortex(world); - vortex.setPosition(x+0.5, y+0.5, z+0.5); - world.spawnEntityInWorld(vortex); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack) { + entity.attackEntityFrom(punishment, Float.MAX_VALUE); + } + + private static String[] naughtyList = new String[] {"item.blockMover", "tile.CardboardBox", "item.WandCasting"}; + private static DamageSource punishment = new DamageSource("chrystalMoved").setDamageAllowedInCreativeMode().setDamageBypassesArmor().setDamageIsAbsolute(); + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + List players = world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(x, y, z, x, y, z).expand(15, 15, 15)); + + for (EntityPlayer player : players){ + if (player.getHeldItem() != null){ + for (String s : naughtyList){ + if (player.getHeldItem().getUnlocalizedName().equals(s)){ + player.attackEntityFrom(punishment, Float.MAX_VALUE); + } + } + } } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/common/blocks/DraconicBlock.java b/src/main/java/com/brandon3055/draconicevolution/common/blocks/DraconicBlock.java index 457500634..cd31ce3ad 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/blocks/DraconicBlock.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/blocks/DraconicBlock.java @@ -7,7 +7,9 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.util.IIcon; +import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; /** * Created by Brandon on 21/11/2014. @@ -28,6 +30,9 @@ public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity return false; } + @Override + public void onBlockExploded(World world, int x, int y, int z, Explosion explosion) {} + @Override public void registerBlockIcons(IIconRegister iconRegister) { blockIcon = iconRegister.registerIcon(References.RESOURCESPREFIX + "draconic_block"); diff --git a/src/main/java/com/brandon3055/draconicevolution/common/blocks/DraconiumBlock.java b/src/main/java/com/brandon3055/draconicevolution/common/blocks/DraconiumBlock.java index e02c57d3f..bc8cd8f97 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/blocks/DraconiumBlock.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/blocks/DraconiumBlock.java @@ -16,6 +16,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -43,6 +44,9 @@ public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity return false; } + @Override + public void onBlockExploded(World world, int x, int y, int z, Explosion explosion) {} + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { diff --git a/src/main/java/com/brandon3055/draconicevolution/common/blocks/InfusedObsidian.java b/src/main/java/com/brandon3055/draconicevolution/common/blocks/InfusedObsidian.java index acd77ab06..c288eab64 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/blocks/InfusedObsidian.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/blocks/InfusedObsidian.java @@ -3,7 +3,6 @@ import com.brandon3055.draconicevolution.DraconicEvolution; import com.brandon3055.draconicevolution.common.ModBlocks; import com.brandon3055.draconicevolution.common.lib.References; -import com.brandon3055.draconicevolution.common.utills.LogHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -15,6 +14,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; +import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -44,10 +44,11 @@ public void registerBlockIcons(IIconRegister iconRegister) { @Override public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) { - LogHelper.info("Can Destroy "+entity); return false; } + @Override + public void onBlockExploded(World world, int x, int y, int z, Explosion explosion) {} @Override public float getExplosionResistance(Entity par1Entity, World world, int x, int y, int z, double explosionX, double explosionY, double explosionZ) { diff --git a/src/main/java/com/brandon3055/draconicevolution/common/blocks/machine/Grinder.java b/src/main/java/com/brandon3055/draconicevolution/common/blocks/machine/Grinder.java index a9311a97c..8b78a26c2 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/blocks/machine/Grinder.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/blocks/machine/Grinder.java @@ -21,6 +21,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; +import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -60,6 +61,9 @@ public void registerBlockIcons(final IIconRegister iconRegister) } } + + @Override + public void onBlockExploded(World world, int x, int y, int z, Explosion explosion) {} @SuppressWarnings({ "rawtypes", "unchecked" }) @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/brandon3055/draconicevolution/common/container/ContainerReactor.java b/src/main/java/com/brandon3055/draconicevolution/common/container/ContainerReactor.java index 4609b77b3..84e35e63c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/container/ContainerReactor.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/container/ContainerReactor.java @@ -11,6 +11,8 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import java.util.Iterator; + /** * Created by brandon3055 on 30/7/2015. */ @@ -64,11 +66,13 @@ public void setInventorySlotContents(int i, ItemStack stack) { public double LTGenerationRate = -1; public int LTFieldDrain = -1; public double LTFuelUseRate = -1; + public boolean LTOffline; //####### public ContainerReactor(EntityPlayer player, TileReactorCore reactor){ this.reactor = reactor; this.player = player; + this.LTOffline = reactor.reactorState == TileReactorCore.STATE_OFFLINE; for (int x = 0; x < 9; x++) { addSlotToContainer(new Slot(player.inventory, x, 44 + 18 * x, 198)); @@ -103,6 +107,23 @@ public boolean canInteractWith(EntityPlayer player) {//todo (the chest thing) @Override public void detectAndSendChanges() { //todo check what values are being synced by the tile and remove them from here + if (LTOffline && reactor.reactorState != TileReactorCore.STATE_OFFLINE){ + Iterator i = inventorySlots.iterator(); + while (i.hasNext()) { + Object o = i.next(); + if (o instanceof SlotExtract || o instanceof SlotInsert) i.remove(); + } + sendObjectToClient(null, 99, 1); + } + else if(!LTOffline && reactor.reactorState == TileReactorCore.STATE_OFFLINE){ + addSlotToContainer(new SlotInsert(ioSlots, 0, 15, 140, reactor)); + addSlotToContainer(new SlotExtract(ioSlots, 1, 217, 140)); + sendObjectToClient(null, 98, 1); + } + LTOffline = reactor.reactorState == TileReactorCore.STATE_OFFLINE; + + + if (reactor.conversionUnit != LTConversionUnit) LTConversionUnit = (Integer) sendObjectToClient(null, 0, (int)(reactor.conversionUnit*100)); // if ((int)reactor.reactionTemperature != LTReactionIntensity)LTReactionIntensity = (Integer) sendObjectToClient(null, 1, (int) reactor.reactionTemperature); // if ((int)reactor.maxReactTemperature != LTMaxReactIntensity)LTMaxReactIntensity = (Integer) sendObjectToClient(null, 2, (int) reactor.maxReactTemperature); @@ -134,8 +155,19 @@ public void receiveSyncData(int index, int value) { else if (index == 9) reactor.generationRate = value; else if (index == 10) reactor.fieldDrain = value; else if (index == 11) reactor.fuelUseRate = value/1000000D; - if (index == 20){ - reactor.processButtonPress(value); + if (index == 20)reactor.processButtonPress(value); + if (index == 99) + { + Iterator i = inventorySlots.iterator(); + while (i.hasNext()) { + Object o = i.next(); + if (o instanceof SlotExtract || o instanceof SlotInsert) i.remove(); + } + } + else if (index == 98) + { + addSlotToContainer(new SlotInsert(ioSlots, 0, 15, 140, reactor)); + addSlotToContainer(new SlotExtract(ioSlots, 1, 217, 140)); } } @@ -178,7 +210,6 @@ else if (reactor.convertedFuel >= 16){ ioSlots.getStorage()[1] = new ItemStack(ModItems.chaosFragment, i2, 0); reactor.convertedFuel -= i2 * 16; } - } return super.slotClick(slot, button, p_75144_3_, player1); } diff --git a/src/main/java/com/brandon3055/draconicevolution/common/entity/EntityChaosCrystal.java b/src/main/java/com/brandon3055/draconicevolution/common/entity/EntityChaosCrystal.java index 2b4159d49..a914979e8 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/entity/EntityChaosCrystal.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/entity/EntityChaosCrystal.java @@ -29,6 +29,7 @@ public class EntityChaosCrystal extends EntityLivingBase { public int shieldTime = 0; public EntityChaosGuardian guardian; private int timeTillDeath = -1; + public float health = 50; public EntityChaosCrystal(World p_i1698_1_) { super(p_i1698_1_); @@ -55,6 +56,7 @@ public boolean canTriggerWalking() { public void entityInit() { super.entityInit(); dataWatcher.addObject(20, (short)shieldTime); + dataWatcher.addObject(21, health); } @Override @@ -63,10 +65,17 @@ public void onUpdate() { this.prevPosY = this.posY; this.prevPosZ = this.posZ; - if (!worldObj.isRemote)dataWatcher.updateObject(20, (short)shieldTime); - else shieldTime = (int)dataWatcher.getWatchableObjectShort(20); + if (!worldObj.isRemote){ + health = getHealth(); + dataWatcher.updateObject(20, (short)shieldTime); + dataWatcher.updateObject(21, health); + } + else { + shieldTime = (int)dataWatcher.getWatchableObjectShort(20); + health = dataWatcher.getWatchableObjectFloat(21); + } //setHealth(0); - if (getHealth() > 0){ + if (health > 0){ if (shieldTime > 0) shieldTime--; if (deathAnimation < 1F) deathAnimation += 0.1F; ++this.innerRotation; @@ -108,6 +117,11 @@ public void onUpdate() { } } + @Override + public boolean isEntityAlive() { + return !isDead; + } + public void setDeathTimer(){ if (timeTillDeath > 0) return; timeTillDeath = rand.nextInt(400); @@ -151,7 +165,7 @@ public boolean attackEntityFrom(DamageSource source, float dmg) { } if (getGuardian() != null) getGuardian().onCrystalTargeted((EntityPlayer)source.getEntity(), getHealth() <= 0); return true; - }else if (shieldTime > 0) shieldTime = 100 + rand.nextInt(100); + }else if (shieldTime > 0 && !this.worldObj.isRemote) shieldTime = 100 + rand.nextInt(100); } return false; } @@ -175,7 +189,7 @@ public void revive(){ if (getGuardian() != null) getGuardian().updateCrystals(); } - public boolean isAlive() { return getHealth() > 0F; } + public boolean isAlive() { return health > 0F; } @Override public ItemStack getHeldItem() { diff --git a/src/main/java/com/brandon3055/draconicevolution/common/entity/EntityChaosGuardian.java b/src/main/java/com/brandon3055/draconicevolution/common/entity/EntityChaosGuardian.java index 3e0ab6be7..0a00e813e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/entity/EntityChaosGuardian.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/entity/EntityChaosGuardian.java @@ -52,7 +52,10 @@ public class EntityChaosGuardian extends EntityDragon {//summon DraconicEvolutio public int activeCrystals = 0; public EntityChaosCrystal healingChaosCrystal; - public int connectedCrystalID = -1; +// public int connectedCrystalID = -1; + public int crystalX = 0; + public int crystalY = -1; + public int crystalZ = 0; private static final int ATTACK_FIREBALL_CHARGE = 0; private static final int ATTACK_FIREBALL_CHASER = 1; @@ -72,7 +75,10 @@ public EntityChaosGuardian(World par1World) { @Override protected void entityInit() { super.entityInit(); - dataWatcher.addObject(20, connectedCrystalID); +// dataWatcher.addObject(20, connectedCrystalID); + dataWatcher.addObject(21, crystalX); + dataWatcher.addObject(22, crystalY); + dataWatcher.addObject(23, crystalZ); } @Override @@ -106,9 +112,12 @@ public void onLivingUpdate() { float moveSpeedMultiplier = behaviour.dragonSpeed; if (this.worldObj.isRemote) { - connectedCrystalID = dataWatcher.getWatchableObjectInt(20); - if (ticksExisted % 10 == 0 && connectedCrystalID != -1 && worldObj.getEntityByID(connectedCrystalID) instanceof EntityChaosCrystal) healingChaosCrystal = (EntityChaosCrystal)worldObj.getEntityByID(connectedCrystalID); - else if (connectedCrystalID == -1 && healingChaosCrystal != null) healingChaosCrystal = null; +// connectedCrystalID = dataWatcher.getWatchableObjectInt(20); + crystalX = dataWatcher.getWatchableObjectInt(21); + crystalY = dataWatcher.getWatchableObjectInt(22); + crystalZ = dataWatcher.getWatchableObjectInt(23); +// if (ticksExisted % 10 == 0 && connectedCrystalID != -1 && worldObj.getEntityByID(connectedCrystalID) instanceof EntityChaosCrystal) healingChaosCrystal = (EntityChaosCrystal)worldObj.getEntityByID(connectedCrystalID); +// else if (connectedCrystalID == -1 && healingChaosCrystal != null) healingChaosCrystal = null; f = MathHelper.cos(this.animTime * (float) Math.PI * 2.0F); f1 = MathHelper.cos(this.prevAnimTime * (float) Math.PI * 2.0F); @@ -122,7 +131,10 @@ public void onLivingUpdate() { float f2; if (!worldObj.isRemote) { - dataWatcher.updateObject(20, connectedCrystalID); +// dataWatcher.updateObject(20, connectedCrystalID); + dataWatcher.updateObject(21, crystalX); + dataWatcher.updateObject(22, crystalY); + dataWatcher.updateObject(23, crystalZ); updateTarget(); if (worldObj.getClosestPlayer(posX, posY, posZ, 500) == null && getDistance(homeX, homeY, homeZ) < 100) DragonChunkLoader.stopLoading(this); @@ -390,6 +402,15 @@ private void customAIUpdate(){ if (getHealth() > 0 && getHealth() < getMaxHealth() * 0.2F) behaviour = EnumBehaviour.LOW_HEALTH_STRATEGY; + if (ticksExisted % 200 == 0) { + crystals = null; + activeCrystals = 0; + crystalY = -1; +// connectedCrystalID = -1; + healingChaosCrystal = null; + updateCrystals(); + } + switch (behaviour){ case ROAMING: @@ -409,7 +430,7 @@ private void customAIUpdate(){ case CIRCLE_PLAYER: circlePosition += (0.02F * circleDirection); - if (Utills.getDistanceAtoB(posX, posZ, homeX, homeZ) > 300) behaviour = EnumBehaviour.GO_HOME; + if (Utills.getDistanceAtoB(posX, posZ, homeX, homeZ) > 300 || posY > 250) behaviour = EnumBehaviour.GO_HOME; break; case LOW_HEALTH_STRATEGY: @@ -439,6 +460,8 @@ private void customAIUpdate(){ if (behaviour == EnumBehaviour.DEAD) return; + if (ticksExisted % 1000 == 0 && rand.nextBoolean()) selectNewBehaviour(); + if (ignitionChargeTimer > 1 || (ignitionChargeTimer == 1 && ticksExisted % 20 == 0))ignitionChargeTimer--; if (ignitionChargeTimer <= 0 && !worldObj.isRemote){ if ((ticksExisted - 19) % 20 == 0) ignitionChargeTimer = (behaviour == EnumBehaviour.LOW_HEALTH_STRATEGY ? 1000 : 2000) + rand.nextInt(600); @@ -728,6 +751,8 @@ public boolean attackEntityFromPart(EntityDragonPart part, DamageSource damageSo dmg = dmg / 4.0F + 1.0F; } + if (dmg > 50) dmg -= ((dmg-50)*0.7); + switch (behaviour){ case ROAMING: break; @@ -784,7 +809,7 @@ public boolean attackEntityFromPart(EntityDragonPart part, DamageSource damageSo { // if (getHealth() > 1F)setHealth(1F);//tod and remove this! this.func_82195_e(damageSource, dmg); - } + } else if (damageSource.getEntity() instanceof EntityPlayer) ((EntityPlayer)damageSource.getEntity()).addChatComponentMessage(new ChatComponentText(EnumChatFormatting.DARK_PURPLE+StatCollector.translateToLocal("msg.de.guardianAttackBlocked.txt"))); return true; } @@ -959,7 +984,7 @@ private void attackEntitiesInList(List par1List) { { Entity entity = (Entity) par1List.get(i); - if (entity instanceof EntityLivingBase) + if (entity instanceof EntityPlayer) { ((EntityLivingBase) entity).setLastAttacker(this); entity.attackEntityFrom(new DamageSourceChaos(this), 50F); @@ -976,7 +1001,8 @@ private void updateDragonEnderCrystal() { if (getHealth() <= 0) { healingChaosCrystal = null; - connectedCrystalID = -1; + crystalY = -1; +// connectedCrystalID = -1; return; } @@ -994,8 +1020,16 @@ private void updateDragonEnderCrystal() { EntityChaosCrystal closest = null; for (EntityChaosCrystal crystal : crystals) if (crystal.isAlive() && (closest == null || getDistanceToEntity(crystal) < getDistanceToEntity(closest))) closest = crystal; healingChaosCrystal = closest; - if (healingChaosCrystal != null) connectedCrystalID = healingChaosCrystal.getEntityId(); - else connectedCrystalID = -1; + if (healingChaosCrystal != null) { +// connectedCrystalID = healingChaosCrystal.getEntityId(); + crystalX = (int)Math.floor(healingChaosCrystal.posX); + crystalY = (int)Math.floor(healingChaosCrystal.posY); + crystalZ = (int)Math.floor(healingChaosCrystal.posZ); + } + else { + crystalY = -1; +// connectedCrystalID = -1; + } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/common/handler/ConfigHandler.java b/src/main/java/com/brandon3055/draconicevolution/common/handler/ConfigHandler.java index 66e3606ae..8929d6557 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/handler/ConfigHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/handler/ConfigHandler.java @@ -18,6 +18,7 @@ public class ConfigHandler { public static int cometRarity; public static int hudX; public static int hudY; + public static int chaosIslandSeparation; public static boolean generateEnderComets; public static boolean generateChaosIslands; public static boolean pigmenBloodRage; @@ -42,6 +43,7 @@ public class ConfigHandler { public static boolean speedLimitops; public static boolean rapidlyDespawnMinedItems; public static boolean useOldArmorModel; + public static boolean useOriginal3DArmorModel; public static boolean useOldD2DToolTextures; //spawner @@ -111,6 +113,9 @@ public static void syncConfig() { useOldArmorModel = config.get(Configuration.CATEGORY_GENERAL, "Use old armor model", false, "If true the armor will use the original vanilla 2D model instead of the new 3D models").getBoolean(false); sumonRitualAccelerated = config.get(Configuration.CATEGORY_GENERAL, "Fast Summon Ritual", false, "If true the resurrection ritual will be a lot faster").getBoolean(false); useOldD2DToolTextures = config.get(Configuration.CATEGORY_GENERAL, "Use old 2D tool textures", false, "If true the 3D tool models will be replaced with standard 2D textures").getBoolean(false); + chaosIslandSeparation = config.get(Configuration.CATEGORY_GENERAL, "Chaos Island Separation", 10000, "This sets how far apart the chaos islands will spawn. The islands spawn in a grid pattern.").getInt(10000); + useOriginal3DArmorModel = config.get(Configuration.CATEGORY_GENERAL, "Use the original 3D armor models", false, "If true the original 3D armor models created by Skeletonpunk will be used instead of the current ones").getBoolean(false); + //Spawner spawnerListType = config.get("spawner", "listType", false, "Sets weather the spawner list is a white list or a black list (true = white list false = black list)").getBoolean(false); diff --git a/src/main/java/com/brandon3055/draconicevolution/common/handler/MinecraftForgeEventHandler.java b/src/main/java/com/brandon3055/draconicevolution/common/handler/MinecraftForgeEventHandler.java index c2abb3043..47bfdbb5a 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/handler/MinecraftForgeEventHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/handler/MinecraftForgeEventHandler.java @@ -98,7 +98,6 @@ public void onLivingUpdate(LivingEvent.LivingUpdateEvent event) try { persistenceRequired.setBoolean(entity, false); entity.getEntityData().removeTag("SpawnedByDESpawner"); - LogHelper.info("Tag Removed From " + entity); } catch (Exception e) { LogHelper.warn("Error occured while resetting entity persistence: " + e); entity.getEntityData().removeTag("SpawnedByDESpawner"); @@ -401,7 +400,6 @@ public void worldUnload(WorldEvent.Unload e) { @SubscribeEvent public void playerInteract(PlayerInteractEvent event){ if (event.action == PlayerInteractEvent.Action.LEFT_CLICK_BLOCK){ - ForgeDirection face = ForgeDirection.getOrientation(event.face); int x = event.x + face.offsetX; int y = event.y + face.offsetY; diff --git a/src/main/java/com/brandon3055/draconicevolution/common/items/DraconicCore.java b/src/main/java/com/brandon3055/draconicevolution/common/items/DraconicCore.java index 9c4e6e7d6..c66de6561 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/items/DraconicCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/items/DraconicCore.java @@ -6,6 +6,7 @@ import com.brandon3055.draconicevolution.common.ModItems; import com.brandon3055.draconicevolution.common.lib.Strings; import com.brandon3055.draconicevolution.common.tileentities.TileCustomSpawner; +import com.brandon3055.draconicevolution.common.utills.LogHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -39,6 +40,7 @@ public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int TileEntityMobSpawner oldSpawner = world.getTileEntity(x, y, z) instanceof TileEntityMobSpawner ? (TileEntityMobSpawner)world.getTileEntity(x, y, z) : null; if (oldSpawner == null) return false; String mobName = oldSpawner.func_145881_a().getEntityNameToSpawn(); + LogHelper.info(mobName); world.setBlock(x, y, z, ModBlocks.customSpawner); TileCustomSpawner newSpawner = world.getTileEntity(x, y, z) instanceof TileCustomSpawner ? (TileCustomSpawner)world.getTileEntity(x, y, z) : null; @@ -47,6 +49,7 @@ public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int newSpawner.isSetToSpawn = true; world.markBlockForUpdate(x, y, z); } + LogHelper.info(newSpawner.getBaseLogic().entityName); stack.splitStack(1); return true; diff --git a/src/main/java/com/brandon3055/draconicevolution/common/items/Tclogo.java b/src/main/java/com/brandon3055/draconicevolution/common/items/Tclogo.java index 588b5c654..855ecf595 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/items/Tclogo.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/items/Tclogo.java @@ -1,6 +1,5 @@ package com.brandon3055.draconicevolution.common.items; -import com.brandon3055.draconicevolution.client.handler.ContributorHandler; import com.brandon3055.draconicevolution.client.render.particle.Particles; import com.brandon3055.draconicevolution.common.ModItems; import com.brandon3055.draconicevolution.common.items.tools.baseclasses.ToolHandler; @@ -112,6 +111,9 @@ private void particle(World world, EntityPlayer player){ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + + // if ((int)System.currentTimeMillis() < lts + 10) return stack; // else lts = (int)System.currentTimeMillis(); //world.playSound(player.posX, player.posY, player.posZ, "DraconicEvolution:fusionExplosion", 1F, 1F, false); @@ -136,9 +138,35 @@ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer pla if (!world.isRemote) { - LogHelper.info(ContributorHandler.contributors); - ContributorHandler.init(); - LogHelper.info(ContributorHandler.contributors); + int x = 45622; + LogHelper.info("45622".hashCode()); + + + int xCoord = 0; + int yCoord = 0; + int zCoord = 0; + + + + int locationHash = (String.valueOf(xCoord)+String.valueOf(yCoord)+String.valueOf(zCoord)).hashCode(); + + + + + + + + + + + + + + + + // LogHelper.info(ContributorHandler.contributors); + // ContributorHandler.init(); + // LogHelper.info(ContributorHandler.contributors); //EntityFallingBlock fallingBlock = new EntityFallingBlock(world, (int)player.posX + 0.5, (int)player.posY + 0.5, (int)player.posZ + 0.5, Blocks.obsidian, 0); //fallingBlock.field_145812_b = 2; diff --git a/src/main/java/com/brandon3055/draconicevolution/common/items/armor/DraconicArmor.java b/src/main/java/com/brandon3055/draconicevolution/common/items/armor/DraconicArmor.java index 23135b42d..0381ff128 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/items/armor/DraconicArmor.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/items/armor/DraconicArmor.java @@ -4,7 +4,8 @@ import com.brandon3055.brandonscore.common.utills.InfoHelper; import com.brandon3055.brandonscore.common.utills.ItemNBTHelper; import com.brandon3055.draconicevolution.DraconicEvolution; -import com.brandon3055.draconicevolution.client.model.ModelDraconicArmorOBJ; +import com.brandon3055.draconicevolution.client.model.ModelDraconicArmorOld; +import com.brandon3055.draconicevolution.client.model.ModelDraconicArmor; import com.brandon3055.draconicevolution.common.ModItems; import com.brandon3055.draconicevolution.common.entity.EntityPersistentItem; import com.brandon3055.draconicevolution.common.handler.ConfigHandler; @@ -346,35 +347,38 @@ public boolean showNodes(ItemStack itemstack, EntityLivingBase player) { public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { if (ConfigHandler.useOldArmorModel) return super.getArmorModel(entityLiving, itemStack, armorSlot); - if (model == null) { - if (armorType == 0) model = new ModelDraconicArmorOBJ(1.1F, true, false, false, false); - else if (armorType == 1) model = new ModelDraconicArmorOBJ(1.1F, false, true, false, false); - else if (armorType == 2) model = new ModelDraconicArmorOBJ(1.1F, false, false, true, false); - else model = new ModelDraconicArmorOBJ(1.1F, false, false, false, true); - - this.model.bipedHead.showModel = (armorType == 0); - this.model.bipedHeadwear.showModel = (armorType == 0); - this.model.bipedBody.showModel = ((armorType == 1) || (armorType == 2)); - this.model.bipedLeftArm.showModel = (armorType == 1); - this.model.bipedRightArm.showModel = (armorType == 1); - this.model.bipedLeftLeg.showModel = (armorType == 2 || armorType == 3); - this.model.bipedRightLeg.showModel = (armorType == 2 || armorType == 3); + if (!ConfigHandler.useOriginal3DArmorModel) + { + if (model == null) { + if (armorType == 0) model = new ModelDraconicArmor(1.1F, true, false, false, false); + else if (armorType == 1) model = new ModelDraconicArmor(1.1F, false, true, false, false); + else if (armorType == 2) model = new ModelDraconicArmor(1.1F, false, false, true, false); + else model = new ModelDraconicArmor(1.1F, false, false, false, true); + this.model.bipedHead.showModel = (armorType == 0); + this.model.bipedHeadwear.showModel = (armorType == 0); + this.model.bipedBody.showModel = ((armorType == 1) || (armorType == 2)); + this.model.bipedLeftArm.showModel = (armorType == 1); + this.model.bipedRightArm.showModel = (armorType == 1); + this.model.bipedLeftLeg.showModel = (armorType == 2 || armorType == 3); + this.model.bipedRightLeg.showModel = (armorType == 2 || armorType == 3); + } + } + else + { + if (model == null) { + if (armorType == 0) model = new ModelDraconicArmorOld(1.1F, true, false, false, false, true); + else if (armorType == 1) model = new ModelDraconicArmorOld(1.1F, false, true, false, false, true); + else if (armorType == 2) model = new ModelDraconicArmorOld(1.1F, false, false, true, false, true); + else model = new ModelDraconicArmorOld(1.1F, false, false, false, true, true); + this.model.bipedHead.showModel = (armorType == 0); + this.model.bipedHeadwear.showModel = (armorType == 0); + this.model.bipedBody.showModel = ((armorType == 1) || (armorType == 2)); + this.model.bipedLeftArm.showModel = (armorType == 1); + this.model.bipedRightArm.showModel = (armorType == 1); + this.model.bipedLeftLeg.showModel = (armorType == 2 || armorType == 3); + this.model.bipedRightLeg.showModel = (armorType == 2 || armorType == 3); + } } - -// if (model == null) { -// if (armorType == 0) model = new ModelDraconicArmor(1.1F, true, false, false, false, true); -// else if (armorType == 1) model = new ModelDraconicArmor(1.1F, false, true, false, false, true); -// else if (armorType == 2) model = new ModelDraconicArmor(1.1F, false, false, true, false, true); -// else model = new ModelDraconicArmor(1.1F, false, false, false, true, true); -// -// this.model.bipedHead.showModel = (armorType == 0); -// this.model.bipedHeadwear.showModel = (armorType == 0); -// this.model.bipedBody.showModel = ((armorType == 1) || (armorType == 2)); -// this.model.bipedLeftArm.showModel = (armorType == 1); -// this.model.bipedRightArm.showModel = (armorType == 1); -// this.model.bipedLeftLeg.showModel = (armorType == 2 || armorType == 3); -// this.model.bipedRightLeg.showModel = (armorType == 2 || armorType == 3); -// } if (entityLiving == null) return model; diff --git a/src/main/java/com/brandon3055/draconicevolution/common/items/armor/WyvernArmor.java b/src/main/java/com/brandon3055/draconicevolution/common/items/armor/WyvernArmor.java index d06cf6bf8..37b408a17 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/items/armor/WyvernArmor.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/items/armor/WyvernArmor.java @@ -4,7 +4,8 @@ import com.brandon3055.brandonscore.common.utills.InfoHelper; import com.brandon3055.brandonscore.common.utills.ItemNBTHelper; import com.brandon3055.draconicevolution.DraconicEvolution; -import com.brandon3055.draconicevolution.client.model.ModelWyvernArmorOBJ; +import com.brandon3055.draconicevolution.client.model.ModelDraconicArmorOld; +import com.brandon3055.draconicevolution.client.model.ModelWyvernArmor; import com.brandon3055.draconicevolution.common.ModItems; import com.brandon3055.draconicevolution.common.entity.EntityPersistentItem; import com.brandon3055.draconicevolution.common.handler.ConfigHandler; @@ -273,35 +274,37 @@ public boolean isEnchantValid(Enchantment enchant) { public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { if (ConfigHandler.useOldArmorModel) return super.getArmorModel(entityLiving, itemStack, armorSlot); - if (model == null) { - if (armorType == 0) model = new ModelWyvernArmorOBJ(1.0F, true, false, false, false); - else if (armorType == 1) model = new ModelWyvernArmorOBJ(1F, false, true, false, false); - else if (armorType == 2) model = new ModelWyvernArmorOBJ(1F, false, false, true, false); - else model = new ModelWyvernArmorOBJ(1F, false, false, false, true); - - this.model.bipedHead.showModel = (armorType == 0); - this.model.bipedHeadwear.showModel = (armorType == 0); - this.model.bipedBody.showModel = ((armorType == 1) || (armorType == 2)); - this.model.bipedLeftArm.showModel = (armorType == 1); - this.model.bipedRightArm.showModel = (armorType == 1); - this.model.bipedLeftLeg.showModel = (armorType == 2 || armorType == 3); - this.model.bipedRightLeg.showModel = (armorType == 2 || armorType == 3); + if (!ConfigHandler.useOriginal3DArmorModel) { + if (model == null) { + if (armorType == 0) model = new ModelWyvernArmor(1.0F, true, false, false, false); + else if (armorType == 1) model = new ModelWyvernArmor(1F, false, true, false, false); + else if (armorType == 2) model = new ModelWyvernArmor(1F, false, false, true, false); + else model = new ModelWyvernArmor(1F, false, false, false, true); + this.model.bipedHead.showModel = (armorType == 0); + this.model.bipedHeadwear.showModel = (armorType == 0); + this.model.bipedBody.showModel = ((armorType == 1) || (armorType == 2)); + this.model.bipedLeftArm.showModel = (armorType == 1); + this.model.bipedRightArm.showModel = (armorType == 1); + this.model.bipedLeftLeg.showModel = (armorType == 2 || armorType == 3); + this.model.bipedRightLeg.showModel = (armorType == 2 || armorType == 3); + } + } + else { + if (model == null) { + if (armorType == 0) model = new ModelDraconicArmorOld(1.0F, true, false, false, false, false); + else if (armorType == 1) model = new ModelDraconicArmorOld(1F, false, true, false, false, false); + else if (armorType == 2) model = new ModelDraconicArmorOld(1F, false, false, true, false, false); + else model = new ModelDraconicArmorOld(1F, false, false, false, true, false); + + this.model.bipedHead.showModel = (armorType == 0); + this.model.bipedHeadwear.showModel = (armorType == 0); + this.model.bipedBody.showModel = ((armorType == 1) || (armorType == 2)); + this.model.bipedLeftArm.showModel = (armorType == 1); + this.model.bipedRightArm.showModel = (armorType == 1); + this.model.bipedLeftLeg.showModel = (armorType == 2 || armorType == 3); + this.model.bipedRightLeg.showModel = (armorType == 2 || armorType == 3); + } } - -// if (model == null) { -// if (armorType == 0) model = new ModelDraconicArmor(1.0F, true, false, false, false, false); -// else if (armorType == 1) model = new ModelDraconicArmor(1F, false, true, false, false, false); -// else if (armorType == 2) model = new ModelDraconicArmor(1F, false, false, true, false, false); -// else model = new ModelDraconicArmor(1F, false, false, false, true, false); -// -// this.model.bipedHead.showModel = (armorType == 0); -// this.model.bipedHeadwear.showModel = (armorType == 0); -// this.model.bipedBody.showModel = ((armorType == 1) || (armorType == 2)); -// this.model.bipedLeftArm.showModel = (armorType == 1); -// this.model.bipedRightArm.showModel = (armorType == 1); -// this.model.bipedLeftLeg.showModel = (armorType == 2 || armorType == 3); -// this.model.bipedRightLeg.showModel = (armorType == 2 || armorType == 3); -// } if (entityLiving == null) return model; diff --git a/src/main/java/com/brandon3055/draconicevolution/common/items/tools/CreativeStructureSpawner.java b/src/main/java/com/brandon3055/draconicevolution/common/items/tools/CreativeStructureSpawner.java index 387b4e154..7746d7a08 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/items/tools/CreativeStructureSpawner.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/items/tools/CreativeStructureSpawner.java @@ -1,10 +1,11 @@ package com.brandon3055.draconicevolution.common.items.tools; -import com.brandon3055.draconicevolution.common.items.ItemDE; +import com.brandon3055.draconicevolution.common.ModBlocks; import com.brandon3055.draconicevolution.common.ModItems; +import com.brandon3055.draconicevolution.common.items.ItemDE; import com.brandon3055.draconicevolution.common.lib.Strings; +import com.brandon3055.draconicevolution.common.tileentities.TileChaosShard; import com.brandon3055.draconicevolution.common.world.WorldGenEnderComet; -import com.brandon3055.draconicevolution.common.world.WorldGenEnderIsland; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; @@ -44,9 +45,10 @@ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer pla new WorldGenEnderComet().generate(world, new Random(), (int)player.posX, (int)player.posY + 10, (int)player.posZ); break; case 1: - new WorldGenEnderIsland().generate(world, new Random(), (int)player.posX, (int)player.posY + 10, (int)player.posZ); + //new WorldGenEnderIsland().generate(world, new Random(), (int)player.posX, (int)player.posY + 10, (int)player.posZ); break; case 2: + break; case 3: break; @@ -54,6 +56,38 @@ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer pla return stack; } + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) { + + if (world.isRemote) return false; + + switch (stack.getItemDamage()){ + case 0: + break; + case 1: + break; + case 2: + world.setBlock(x, y, z, ModBlocks.chaosCrystal); + TileChaosShard tileChaosShard = (TileChaosShard)world.getTileEntity(x, y, z); + tileChaosShard.locationHash = tileChaosShard.getLocationHash(x, y, z, player.dimension); + tileChaosShard.guardianDefeated = true; + world.markBlockForUpdate(x, y, z); + break; + case 3: + break; + } + return false; + } + + @Override + public boolean onBlockStartBreak(ItemStack itemstack, int x, int y, int z, EntityPlayer player) { + if (player.worldObj.getBlock(x, y, z) == ModBlocks.chaosCrystal) { + player.worldObj.removeTileEntity(x, y, z); + player.worldObj.setBlockToAir(x, y, z); + } + return true; + } + @Override public String getUnlocalizedName(ItemStack itemStack) { String name = "null"; @@ -65,6 +99,7 @@ public String getUnlocalizedName(ItemStack itemStack) { name = "EnderIsland"; break; case 2: + name = "ChaosCrystal"; break; case 3: break; @@ -76,7 +111,22 @@ public String getUnlocalizedName(ItemStack itemStack) { @SuppressWarnings("unchecked") @Override public void addInformation(ItemStack stack, EntityPlayer p_77624_2_, List list, boolean p_77624_4_) { - if (stack.getItemDamage() == 1) list.add("Warning this will take between 5-10 minutes (maby longer) to generate"); - if (stack.getItemDamage() == 1) list.add("depending on the speed of your pc"); + if (stack.getItemDamage() == 1) list.add("This nolonger works due to some changes to the island generation code"); + String name = "null"; + switch (stack.getItemDamage()) { + case 0: + name = "Comet"; + break; + case 1: + name = "EnderIsland"; + break; + case 2: + name = "ChaosCrystal"; + break; + case 3: + break; + } + list.add("Spawns: "+name); + list.add("This item can safely delete chaos crystals"); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/common/items/tools/baseclasses/ToolHandler.java b/src/main/java/com/brandon3055/draconicevolution/common/items/tools/baseclasses/ToolHandler.java index 66aeb8ad8..d39bee440 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/items/tools/baseclasses/ToolHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/items/tools/baseclasses/ToolHandler.java @@ -1,9 +1,10 @@ package com.brandon3055.draconicevolution.common.items.tools.baseclasses; import cofh.api.energy.IEnergyContainerItem; +import com.brandon3055.brandonscore.common.utills.ItemNBTHelper; import com.brandon3055.draconicevolution.common.ModItems; import com.brandon3055.draconicevolution.common.lib.References; -import com.brandon3055.brandonscore.common.utills.ItemNBTHelper; +import com.brandon3055.draconicevolution.common.utills.LogHelper; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.enchantment.Enchantment; @@ -11,6 +12,8 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.boss.EntityDragon; +import net.minecraft.entity.boss.EntityDragonPart; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.monster.EntitySpider; import net.minecraft.entity.player.EntityPlayer; @@ -148,6 +151,17 @@ public static void damageEntityBasedOnHealth(Entity entity, EntityPlayer player, baseAttack += (entHealth * dmgMult); } + if (entity instanceof EntityDragonPart) + { + List list = player.worldObj.getEntitiesWithinAABB(EntityDragon.class, entity.boundingBox.expand(10, 10, 10)); + if (!list.isEmpty() && list.get(0) instanceof EntityDragon){ + EntityDragon dragon = list.get(0); + float entHealth = dragon.getHealth(); + baseAttack += (entHealth * dmgMult); + LogHelper.info(baseAttack); + } + } + if (!player.capabilities.isCreativeMode && ((IEnergyContainerItem) stack.getItem()).getEnergyStored(stack) < (int)(baseAttack / 2) * References.ENERGYPERATTACK) return; entity.attackEntityFrom(DamageSource.causePlayerDamage(player), baseAttack); diff --git a/src/main/java/com/brandon3055/draconicevolution/common/lib/VersionHandler.java b/src/main/java/com/brandon3055/draconicevolution/common/lib/VersionHandler.java index 4c23cb8d0..9230131ae 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/lib/VersionHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/lib/VersionHandler.java @@ -6,7 +6,7 @@ public class VersionHandler { public static final String VERSION = "1.0.2"; - public static final int SNAPSHOT = 6; + public static final int SNAPSHOT = 9; public static final String MCVERSION = "1.7.10"; public static final String FULL_VERSION = VERSION + (SNAPSHOT > 0 ? "-snapshot_" + SNAPSHOT : ""); diff --git a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/CustomSpawnerBaseLogic.java b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/CustomSpawnerBaseLogic.java index f87aa177d..e496903ec 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/CustomSpawnerBaseLogic.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/CustomSpawnerBaseLogic.java @@ -196,7 +196,7 @@ public void readFromNBT(NBTTagCompound par1NBTTagCompound) { this.spawnDelay = par1NBTTagCompound.getShort("Delay"); if ((!ConfigHandler.spawnerListType && Arrays.asList(ConfigHandler.spawnerList).contains(this.entityName)) || (ConfigHandler.spawnerListType && !Arrays.asList(ConfigHandler.spawnerList).contains(this.entityName))) { this.entityName = "Pig"; - ((TileCustomSpawner)getSpawnerWorld().getTileEntity(getSpawnerX(), getSpawnerY(), getSpawnerZ())).isSetToSpawn = false; + par1NBTTagCompound.setBoolean("Running", false); } powered = par1NBTTagCompound.getBoolean("Powered"); diff --git a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileChaosShard.java b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileChaosShard.java index 44c8c5613..c220c18aa 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileChaosShard.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileChaosShard.java @@ -1,5 +1,6 @@ package com.brandon3055.draconicevolution.common.tileentities; +import com.brandon3055.draconicevolution.common.entity.EntityChaosVortex; import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; @@ -16,11 +17,14 @@ public class TileChaosShard extends TileEntity { public int tick = 0; public boolean guardianDefeated = false; private int soundTimer; + public int locationHash = 0; @Override public void updateEntity() { tick++; + if (tick > 1 && !worldObj.isRemote && locationHash != getLocationHash(xCoord, yCoord, zCoord, worldObj.provider.dimensionId)) worldObj.setBlockToAir(xCoord, yCoord, zCoord); + if (worldObj.isRemote && soundTimer-- <= 0){ soundTimer = 3600 + worldObj.rand.nextInt(1200); worldObj.playSound(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D, "draconicevolution:chaosChamberAmbient", 1.5F, worldObj.rand.nextFloat() * 0.4F + 0.8F, false); @@ -35,6 +39,15 @@ public void updateEntity() { } } + public void detonate(){ + if (!worldObj.isRemote && locationHash != getLocationHash(xCoord, yCoord, zCoord, worldObj.provider.dimensionId)) worldObj.setBlockToAir(xCoord, yCoord, zCoord); + else { + EntityChaosVortex vortex = new EntityChaosVortex(worldObj); + vortex.setPosition(xCoord+0.5, yCoord+0.5, zCoord+0.5); + worldObj.spawnEntityInWorld(vortex); + } + } + public void setDefeated(){ guardianDefeated = true; worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); @@ -44,12 +57,14 @@ public void setDefeated(){ public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); compound.setBoolean("GuardianDefeated", guardianDefeated); + compound.setInteger("LocationHash", locationHash); } @Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); guardianDefeated = compound.getBoolean("GuardianDefeated"); + locationHash = compound.getInteger("LocationHash"); } @Override @@ -68,4 +83,8 @@ public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { public AxisAlignedBB getRenderBoundingBox() { return super.getRenderBoundingBox().expand(1, 3, 1); } + + public int getLocationHash(int xCoord, int yCoord, int zCoord, int dimension){ + return (String.valueOf(xCoord)+String.valueOf(yCoord)+String.valueOf(zCoord)+String.valueOf(dimension)).hashCode(); + } } diff --git a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileEnergyInfuser.java b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileEnergyInfuser.java index a28b847f7..b6bbefd22 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileEnergyInfuser.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileEnergyInfuser.java @@ -24,8 +24,8 @@ */ public class TileEnergyInfuser extends TileObjectSync implements IEnergyReceiver, ISidedInventory { ItemStack[] items = new ItemStack[1]; - public EnergyStorage energy = new EnergyStorage(1000000); - public int maxInput = 1000000; + public EnergyStorage energy = new EnergyStorage(10000000); + public int maxInput = 10000000; public boolean running = false; public boolean runningCach = false; private int tick = 0; diff --git a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileParticleGenerator.java b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileParticleGenerator.java index 3805652ad..dbb7f24e8 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileParticleGenerator.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/TileParticleGenerator.java @@ -106,7 +106,7 @@ public void updateEntity() { particle.fadeLength = this.fade; particle.gravity = this.gravity; - ParticleHandler.spawnCustomParticle(particle); + ParticleHandler.spawnCustomParticle(particle, 256); } else tick++; } diff --git a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/multiblocktiles/TileEnergyStorageCore.java b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/multiblocktiles/TileEnergyStorageCore.java index d8b6068be..c7ad58593 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/multiblocktiles/TileEnergyStorageCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/multiblocktiles/TileEnergyStorageCore.java @@ -753,8 +753,7 @@ public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { /* EnergyHandler */ public int receiveEnergy(int maxReceive, boolean simulate) { - int maxReceive1 = Integer.MAX_VALUE; - long energyReceived = Math.min(capacity - energy, Math.min(maxReceive1, maxReceive)); + long energyReceived = Math.min(capacity - energy, maxReceive); if (!simulate) { energy += energyReceived; @@ -763,8 +762,7 @@ public int receiveEnergy(int maxReceive, boolean simulate) { } public int extractEnergy(int maxExtract, boolean simulate) { - int maxExtract1 = Integer.MAX_VALUE; - long energyExtracted = Math.min(energy, Math.min(maxExtract1, maxExtract)); + long energyExtracted = Math.min(energy, maxExtract); if (!simulate) { energy -= energyExtracted; diff --git a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/multiblocktiles/reactor/TileReactorCore.java b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/multiblocktiles/reactor/TileReactorCore.java index 125ea9657..d08bb5a21 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/tileentities/multiblocktiles/reactor/TileReactorCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/tileentities/multiblocktiles/reactor/TileReactorCore.java @@ -98,6 +98,7 @@ public void updateEntity() { checkPlayerCollision(); return; } + //else injectEnergy(10000000); switch (reactorState){ @@ -147,6 +148,8 @@ private void startingTick(){ int totalFuel = reactorFuel + convertedFuel; maxFieldCharge = totalFuel * 96.45061728395062 * 100; maxEnergySaturation = (int)(totalFuel * 96.45061728395062 * 1000); + if (energySaturation > maxEnergySaturation) energySaturation = maxEnergySaturation; + if (fieldCharge > maxFieldCharge) fieldCharge = maxFieldCharge; startupInitialized = true; } } @@ -158,6 +161,7 @@ private void startingTick(){ public double tempDrainFactor; public double generationRate; public int fieldDrain; + public double fieldInputRate; public double fuelUseRate; private void runTick(){ @@ -209,6 +213,10 @@ private void runTick(){ //Field Drain Calculation fieldDrain = (int)Math.min(tempDrainFactor * (1D-saturation) * (baseMaxRFt / 10.923556), (double) Integer.MAX_VALUE); //<(baseMaxRFt/make smaller to increase field power drain) + + double fieldNegPercent = 1D - (fieldCharge / maxFieldCharge); + fieldInputRate = fieldDrain / fieldNegPercent; + // LogHelper.info(fieldDrain+" "+tempDrainFactor+" "+(1D-saturation)+" "+tempDrainFactor * (1D-saturation) * (baseMaxRFt/10.923556)); fieldCharge -= fieldDrain; //====================== diff --git a/src/main/java/com/brandon3055/draconicevolution/common/world/ChaosWorldGenHandler.java b/src/main/java/com/brandon3055/draconicevolution/common/world/ChaosWorldGenHandler.java index 68b09df17..b80d82d59 100644 --- a/src/main/java/com/brandon3055/draconicevolution/common/world/ChaosWorldGenHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/common/world/ChaosWorldGenHandler.java @@ -7,6 +7,8 @@ import com.brandon3055.draconicevolution.common.ModBlocks; import com.brandon3055.draconicevolution.common.entity.EntityChaosCrystal; import com.brandon3055.draconicevolution.common.entity.EntityChaosGuardian; +import com.brandon3055.draconicevolution.common.handler.ConfigHandler; +import com.brandon3055.draconicevolution.common.tileentities.TileChaosShard; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; @@ -111,6 +113,9 @@ public static void generateStructures(World world, DataUtills.XZPair getClosestChaosSpawn(int chunkX, int chunkZ){ - return new DataUtills.XZPair(Utills.getNearestMultiple(chunkX * 16, 10000), Utills.getNearestMultiple(chunkZ*16, 10000)); + return new DataUtills.XZPair(Utills.getNearestMultiple(chunkX * 16, ConfigHandler.chaosIslandSeparation), Utills.getNearestMultiple(chunkZ*16, ConfigHandler.chaosIslandSeparation)); } private static void generateObelisks(World world, DataUtills.XZPair islandCenter, Random rand) { diff --git a/src/main/resources/assets/draconicevolution/lang/en_US.lang b/src/main/resources/assets/draconicevolution/lang/en_US.lang index 7e26ab330..b7907f24b 100644 --- a/src/main/resources/assets/draconicevolution/lang/en_US.lang +++ b/src/main/resources/assets/draconicevolution/lang/en_US.lang @@ -163,6 +163,7 @@ msg.draconiumChestEditL4.txt=Right click with paper to copy the colour to other msg.draconiumChestEdit2.txt=Please use a single peace of paper msg.de.dragonDeath.txt=§5The heart is temporarily awakened by the dragons explosive §5death msg.de.baseSafeAOW.txt=§9(§aAOE §aSafe §aMode §ais §aenabled§9) §cOperation §cCanceled §cbecause §ca §ctile §centity §cwas §cdetected +msg.de.guardianAttackBlocked.txt=Your attack is blocked by the guardians crystals! //Energy Net msg.de.wrenchMode.bind.txt=Function: Bind @@ -413,7 +414,13 @@ key.toolConfig=Tool & Armor Config GUI death.attack.chaos=%1$s was torn apart by a Chaos Guardian death.attack.damage.de.fusionExplode=%1$s was vaporized by a high energy fusion explosion death.attack.chaosBurst=%1$s was destroyed by dark energy + +death.attack.de.GuardianFireball=%1$s was firebombed by a Chaos Guardian +death.attack.de.GuardianEnergyBall=%1$s was zapped like a bug by a Chaos Guardian +death.attack.de.GuardianChaosBall=%1$s was annihilated by a Chaos Guardian using dark energy + death.attack.chaosImplosion=%1$s was pulled into an energy vortex and crushed into oblivion +death.attack.chrystalMoved=%1$s was naughty and has been punished by Draconic Evolution! //Buttons ---------------------------------------------------------------------------------------------------------------------------------------- button.de.chestAutoFeed0.txt=OFF.Auto Feed Disabled @@ -475,7 +482,7 @@ gui.de.pressOrScroll.name=Press Or Scroll gui.de.tempLoad.name=Temperature Load Factor gui.de.mass.name=Core Mass gui.de.genRate.name=Generation Rate -gui.de.fieldDrainRate.name=Field Drain Rate +gui.de.fieldInputRate.name=Field Input Rate gui.de.fuelConversion.name=Fuel Conversion Rate gui.de.insert.txt=Insert @@ -495,7 +502,11 @@ gui.de.status3.txt=STOPPING gui.de.status4.txt=INVALID SETUP gui.de.internalStorage.txt=Internal Storage gui.de.itemStorage.txt=Item Storage - +gui.de.reacTempLoadFactor.txt=This shows how much load is being placed on the containment field by the reactors temperature. If the reactor temp passes 8,000 this will increase exponentially. +gui.de.reacCoreMass.txt=This show the total amount of mass within the reactor in cubic metres. That's the draconium + chaos so this value will only change when you add or remove fuel. +gui.de.reacGenRate.txt=This is the current RF/t being generated by the reactor. +gui.de.reacInputRate.txt=This is the exact RF/t input required to maintain the current field strength. As field strength increases this will increase exponentially. +gui.de.reacConversionRate.txt=This is how fast the reactor is currently using fuel. As the reactor saturation increases this will go down. //Potions ---------------------------------------------------------------------------------------------------------------------------------------- diff --git a/src/main/resources/assets/draconicevolution/manual.json b/src/main/resources/assets/draconicevolution/manual.json index 91493a200..bf5b2345f 100644 --- a/src/main/resources/assets/draconicevolution/manual.json +++ b/src/main/resources/assets/draconicevolution/manual.json @@ -502,6 +502,24 @@ "[c]item.draconicevolution:draconicBoots:0" ] }, + { + "name":"item.draconicevolution:chaosShard", + "images":[], + "content": + [ + "See the page about Chaos Islands for more info.", + "[c]item.draconicevolution:chaosShard:0" + ] + }, + { + "name":"item.draconicevolution:chaoticCore", + "images":[], + "content": + [ + "Researching the dark energy of the chaos shards has lead you to the creation of an even more powerful core. But what could possibly utilize such a dark and powerful item?.", + "[c]item.draconicevolution:chaoticCore:0" + ] + }, { "name":"tile.draconicevolution:weatherController", "images":[], @@ -969,9 +987,16 @@ "images":["http://i.imgur.com/gL4T6dG.png"], "content": [ - "Looking for a challenge? The Ender Dragon wasn't hard enough? This is for you! If you travel to any multiple of 10,000 in The End (e.g. {x=0, z=10000}, {x=0, z=20000}, {x=10000, z=0} etc.) you will find a Chaos Island.", - "Each of these islands is guarded by a Chaos Guardian which is basically an extremely powerful Ender Dragon that drops 2 dragon hearts and some Draconium Dust, as well as the standard end portal in the middle of the island with a Dragon Egg on top.", - "Note: The Chaos Island is a work in progress and there will be changes in the future.", + "Looking for §sa challenge?§r The fight of your life! The Ender Dragon wasn't hard enough? Maby try 100 ender dragons all at once plus maby a few dosen withers. And if thats still not hard enough then maby this is for you! If you travel to any multiple of 10,000 in The End (e.g. {x=0, z=10000}, {x=0, z=20000}, {x=10000, z=0} etc.) you will find a Chaos Island.", + "A Chaos island is a formation of end stone and obsidian formed over billions of years by dark energy. At its heart in an obsidian chamber is a crystal made from pure dark energy known as a Chaos Crystal.", + "Chaos islands are protected by one of the most powerful mobs in existence. The Chaos Guardian. These guardians were once regular enderdragons but exposure to the dark energy of the chaos islands has mutated them into some of the deadliest killing machines of all time.", + "The various attacks of the Chaos Guardian will cut through almost any armor with one exception being draconic armor with its ability to block piercing damage. However it has the ability to rabidly drain any RF powered armor of its charge so it will quickly render your armor useless if you don't keep it charged.", + "Like the ender dragon the guardian has several healing crystals spread around the island. But unlike regular ender crystals these crystals are not so easy to destroy. They each have 50 hit points and when damaged will protect themselves with a shield for several seconds. You must disable all of the crystals before the guardian can be damaged.", + "Be aware that when low on health the guardian will occasionally try to re ignite some of the disabled crystals.", + "Once the guardian is defeated you can claim your reward. At the centre of the island several blocks below the surface you will find a chaos chamber containing a chaos crystal. When broken the chaos crystal will drop 5 chaos shards.", + "§4Be Warned!§r When you destroy the crystal the energy field it was generating will collapse. This will result in the total animation of the island within a matter of seconds. Unless you are wearing full draconic armor you will only have a few seconds to collect the shards and escape the island before you are obliterated along with the island.", + + "This image needs to be updated. The islands look very different now.", "http://i.imgur.com/gL4T6dG.png" ] }, diff --git a/src/main/resources/assets/draconicevolution/textures/particle/reactorBeam.png b/src/main/resources/assets/draconicevolution/textures/particle/reactorBeam.png new file mode 100644 index 000000000..05ee05418 Binary files /dev/null and b/src/main/resources/assets/draconicevolution/textures/particle/reactorBeam.png differ diff --git a/src/main/resources/assets/draconicevolution/textures/particle/reactorBeam.png.mcmeta b/src/main/resources/assets/draconicevolution/textures/particle/reactorBeam.png.mcmeta new file mode 100644 index 000000000..b920dcd2f --- /dev/null +++ b/src/main/resources/assets/draconicevolution/textures/particle/reactorBeam.png.mcmeta @@ -0,0 +1 @@ +{ "texture": { "blur": true }} \ No newline at end of file diff --git a/src/main/resources/assets/draconicevolution/textures/particle/reactorEnergyBeam.png b/src/main/resources/assets/draconicevolution/textures/particle/reactorEnergyBeam.png new file mode 100644 index 000000000..e08c4afd7 Binary files /dev/null and b/src/main/resources/assets/draconicevolution/textures/particle/reactorEnergyBeam.png differ diff --git a/src/main/resources/assets/draconicevolution/textures/particle/reactorEnergyBeam.png.mcmeta b/src/main/resources/assets/draconicevolution/textures/particle/reactorEnergyBeam.png.mcmeta new file mode 100644 index 000000000..b920dcd2f --- /dev/null +++ b/src/main/resources/assets/draconicevolution/textures/particle/reactorEnergyBeam.png.mcmeta @@ -0,0 +1 @@ +{ "texture": { "blur": true }} \ No newline at end of file