1
0
Fork 0
hoosiertransfer-mod-saigevers/src/main/java/net/minecraft/client/model/ModelArmorStand.java

160 lines
6.9 KiB
Java

package net.minecraft.client.model;
import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityArmorStand;
import net.minecraft.util.EnumHandSide;
/**
* +
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
*
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
*
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, hoosiertransfer,
* ayunami2000. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
public class ModelArmorStand extends ModelArmorStandArmor {
public ModelRenderer standRightSide;
public ModelRenderer standLeftSide;
public ModelRenderer standWaist;
public ModelRenderer standBase;
public ModelArmorStand() {
this(0.0F);
}
public ModelArmorStand(float parFloat1) {
super(parFloat1, 64, 64);
this.bipedHead = new ModelRenderer(this, 0, 0);
this.bipedHead.addBox(-1.0F, -7.0F, -1.0F, 2, 7, 2, parFloat1);
this.bipedHead.setRotationPoint(0.0F, 0.0F, 0.0F);
this.bipedBody = new ModelRenderer(this, 0, 26);
this.bipedBody.addBox(-6.0F, 0.0F, -1.5F, 12, 3, 3, parFloat1);
this.bipedBody.setRotationPoint(0.0F, 0.0F, 0.0F);
this.bipedRightArm = new ModelRenderer(this, 24, 0);
this.bipedRightArm.addBox(-2.0F, -2.0F, -1.0F, 2, 12, 2, parFloat1);
this.bipedRightArm.setRotationPoint(-5.0F, 2.0F, 0.0F);
this.bipedLeftArm = new ModelRenderer(this, 32, 16);
this.bipedLeftArm.mirror = true;
this.bipedLeftArm.addBox(0.0F, -2.0F, -1.0F, 2, 12, 2, parFloat1);
this.bipedLeftArm.setRotationPoint(5.0F, 2.0F, 0.0F);
this.bipedRightLeg = new ModelRenderer(this, 8, 0);
this.bipedRightLeg.addBox(-1.0F, 0.0F, -1.0F, 2, 11, 2, parFloat1);
this.bipedRightLeg.setRotationPoint(-1.9F, 12.0F, 0.0F);
this.bipedLeftLeg = new ModelRenderer(this, 40, 16);
this.bipedLeftLeg.mirror = true;
this.bipedLeftLeg.addBox(-1.0F, 0.0F, -1.0F, 2, 11, 2, parFloat1);
this.bipedLeftLeg.setRotationPoint(1.9F, 12.0F, 0.0F);
this.standRightSide = new ModelRenderer(this, 16, 0);
this.standRightSide.addBox(-3.0F, 3.0F, -1.0F, 2, 7, 2, parFloat1);
this.standRightSide.setRotationPoint(0.0F, 0.0F, 0.0F);
this.standRightSide.showModel = true;
this.standLeftSide = new ModelRenderer(this, 48, 16);
this.standLeftSide.addBox(1.0F, 3.0F, -1.0F, 2, 7, 2, parFloat1);
this.standLeftSide.setRotationPoint(0.0F, 0.0F, 0.0F);
this.standWaist = new ModelRenderer(this, 0, 48);
this.standWaist.addBox(-4.0F, 10.0F, -1.0F, 8, 2, 2, parFloat1);
this.standWaist.setRotationPoint(0.0F, 0.0F, 0.0F);
this.standBase = new ModelRenderer(this, 0, 32);
this.standBase.addBox(-6.0F, 11.0F, -6.0F, 12, 1, 12, parFloat1);
this.standBase.setRotationPoint(0.0F, 12.0F, 0.0F);
}
/**
* +
* Sets the model's various rotation angles. For bipeds, par1
* and par2 are used for animating the movement of arms and
* legs, where par1 represents the time(so that arms and legs
* swing back and forth) and par2 represents how "far" arms and
* legs can swing at most.
*/
public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) {
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
if (entity instanceof EntityArmorStand) {
EntityArmorStand entityarmorstand = (EntityArmorStand) entity;
this.bipedLeftArm.showModel = entityarmorstand.getShowArms();
this.bipedRightArm.showModel = entityarmorstand.getShowArms();
this.standBase.showModel = !entityarmorstand.hasNoBasePlate();
this.bipedLeftLeg.setRotationPoint(1.9F, 12.0F, 0.0F);
this.bipedRightLeg.setRotationPoint(-1.9F, 12.0F, 0.0F);
this.standRightSide.rotateAngleX = 0.017453292F * entityarmorstand.getBodyRotation().getX();
this.standRightSide.rotateAngleY = 0.017453292F * entityarmorstand.getBodyRotation().getY();
this.standRightSide.rotateAngleZ = 0.017453292F * entityarmorstand.getBodyRotation().getZ();
this.standLeftSide.rotateAngleX = 0.017453292F * entityarmorstand.getBodyRotation().getX();
this.standLeftSide.rotateAngleY = 0.017453292F * entityarmorstand.getBodyRotation().getY();
this.standLeftSide.rotateAngleZ = 0.017453292F * entityarmorstand.getBodyRotation().getZ();
this.standWaist.rotateAngleX = 0.017453292F * entityarmorstand.getBodyRotation().getX();
this.standWaist.rotateAngleY = 0.017453292F * entityarmorstand.getBodyRotation().getY();
this.standWaist.rotateAngleZ = 0.017453292F * entityarmorstand.getBodyRotation().getZ();
float f6 = (entityarmorstand.getLeftLegRotation().getX() + entityarmorstand.getRightLegRotation().getX())
/ 2.0F;
float f7 = (entityarmorstand.getLeftLegRotation().getY() + entityarmorstand.getRightLegRotation().getY())
/ 2.0F;
float f8 = (entityarmorstand.getLeftLegRotation().getZ() + entityarmorstand.getRightLegRotation().getZ())
/ 2.0F;
this.standBase.rotateAngleX = 0.0F;
this.standBase.rotateAngleY = 0.017453292F * -entity.rotationYaw;
this.standBase.rotateAngleZ = 0.0F;
}
}
/**
* +
* Sets the models various rotation angles then renders the
* model.
*/
public void render(Entity entityIn, float scale, float parFloat2, float parFloat3, float parFloat4, float parFloat5,
float parFloat6) {
super.render(entityIn, scale, parFloat2, parFloat3, parFloat4, parFloat5, parFloat6);
GlStateManager.pushMatrix();
if (this.isChild) {
float f = 2.0F;
GlStateManager.scale(1.0F / f, 1.0F / f, 1.0F / f);
GlStateManager.translate(0.0F, 24.0F * parFloat6, 0.0F);
this.standRightSide.render(parFloat6);
this.standLeftSide.render(parFloat6);
this.standWaist.render(parFloat6);
this.standBase.render(parFloat6);
} else {
if (entityIn.isSneaking()) {
GlStateManager.translate(0.0F, 0.2F, 0.0F);
}
this.standRightSide.render(parFloat6);
this.standLeftSide.render(parFloat6);
this.standWaist.render(parFloat6);
this.standBase.render(parFloat6);
}
GlStateManager.popMatrix();
}
public void postRenderArm(float scale) {
// TODO: implement offhand
boolean flag = this.bipedRightArm.showModel;
this.bipedRightArm.showModel = true;
super.postRenderArm(scale, EnumHandSide.RIGHT);
this.bipedRightArm.showModel = flag;
}
}