package net.minecraft.client.resources.model; import com.google.common.collect.Maps; import java.util.Map; import javax.vecmath.AxisAngle4d; import javax.vecmath.Matrix4d; import net.minecraft.util.EnumFacing; import net.minecraft.util.MathHelper; public enum ModelRotation { X0_Y0("X0_Y0", 0, 0, 0), X0_Y90("X0_Y90", 1, 0, 90), X0_Y180("X0_Y180", 2, 0, 180), X0_Y270("X0_Y270", 3, 0, 270), X90_Y0("X90_Y0", 4, 90, 0), X90_Y90("X90_Y90", 5, 90, 90), X90_Y180("X90_Y180", 6, 90, 180), X90_Y270("X90_Y270", 7, 90, 270), X180_Y0("X180_Y0", 8, 180, 0), X180_Y90("X180_Y90", 9, 180, 90), X180_Y180("X180_Y180", 10, 180, 180), X180_Y270("X180_Y270", 11, 180, 270), X270_Y0("X270_Y0", 12, 270, 0), X270_Y90("X270_Y90", 13, 270, 90), X270_Y180("X270_Y180", 14, 270, 180), X270_Y270("X270_Y270", 15, 270, 270); private static final Map field_177546_q = Maps.newHashMap(); private final int field_177545_r; private final Matrix4d field_177544_s; private final int field_177543_t; private final int field_177542_u; private static final ModelRotation[] $VALUES = new ModelRotation[]{X0_Y0, X0_Y90, X0_Y180, X0_Y270, X90_Y0, X90_Y90, X90_Y180, X90_Y270, X180_Y0, X180_Y90, X180_Y180, X180_Y270, X270_Y0, X270_Y90, X270_Y180, X270_Y270}; private static final String __OBFID = "CL_00002393"; private static int func_177521_b(int p_177521_0_, int p_177521_1_) { return p_177521_0_ * 360 + p_177521_1_; } private ModelRotation(String p_i46087_1_, int p_i46087_2_, int p_i46087_3_, int p_i46087_4_) { this.field_177545_r = func_177521_b(p_i46087_3_, p_i46087_4_); this.field_177544_s = new Matrix4d(); Matrix4d var5 = new Matrix4d(); var5.setIdentity(); var5.setRotation(new AxisAngle4d(1.0D, 0.0D, 0.0D, (double)((float)(-p_i46087_3_) * 0.017453292F))); this.field_177543_t = MathHelper.abs_int(p_i46087_3_ / 90); Matrix4d var6 = new Matrix4d(); var6.setIdentity(); var6.setRotation(new AxisAngle4d(0.0D, 1.0D, 0.0D, (double)((float)(-p_i46087_4_) * 0.017453292F))); this.field_177542_u = MathHelper.abs_int(p_i46087_4_ / 90); this.field_177544_s.mul(var6, var5); } public Matrix4d func_177525_a() { return this.field_177544_s; } public EnumFacing func_177523_a(EnumFacing p_177523_1_) { EnumFacing var2 = p_177523_1_; int var3; for (var3 = 0; var3 < this.field_177543_t; ++var3) { var2 = var2.rotateAround(EnumFacing.Axis.X); } if (var2.getAxis() != EnumFacing.Axis.Y) { for (var3 = 0; var3 < this.field_177542_u; ++var3) { var2 = var2.rotateAround(EnumFacing.Axis.Y); } } return var2; } public int func_177520_a(EnumFacing p_177520_1_, int p_177520_2_) { int var3 = p_177520_2_; if (p_177520_1_.getAxis() == EnumFacing.Axis.X) { var3 = (p_177520_2_ + this.field_177543_t) % 4; } EnumFacing var4 = p_177520_1_; for (int var5 = 0; var5 < this.field_177543_t; ++var5) { var4 = var4.rotateAround(EnumFacing.Axis.X); } if (var4.getAxis() == EnumFacing.Axis.Y) { var3 = (var3 + this.field_177542_u) % 4; } return var3; } public static ModelRotation func_177524_a(int p_177524_0_, int p_177524_1_) { return (ModelRotation)field_177546_q.get(Integer.valueOf(func_177521_b(MathHelper.func_180184_b(p_177524_0_, 360), MathHelper.func_180184_b(p_177524_1_, 360)))); } static { ModelRotation[] var0 = values(); int var1 = var0.length; for (int var2 = 0; var2 < var1; ++var2) { ModelRotation var3 = var0[var2]; field_177546_q.put(Integer.valueOf(var3.field_177545_r), var3); } } }