Stradaa_

Untitled

Mar 30th, 2021
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.05 KB | None | 0 0
  1. package net.minecraft.client.resources.model;
  2.  
  3. import com.google.common.collect.Maps;
  4. import java.util.Map;
  5. import javax.vecmath.AxisAngle4d;
  6. import javax.vecmath.Matrix4d;
  7. import javax.vecmath.Matrix4f;
  8.  
  9. import net.minecraft.util.EnumFacing;
  10. import net.minecraft.util.MathHelper;
  11. import net.minecraftforge.client.model.IModelPart;
  12. import net.minecraftforge.client.model.IModelState;
  13. import net.minecraftforge.client.model.ITransformation;
  14. import net.minecraftforge.client.model.TRSRTransformation;
  15. import optifine.Reflector;
  16.  
  17. public enum ModelRotation implements IModelState, ITransformation
  18. {
  19. X0_Y0("X0_Y0", 0, 0, 0),
  20. X0_Y90("X0_Y90", 1, 0, 90),
  21. X0_Y180("X0_Y180", 2, 0, 180),
  22. X0_Y270("X0_Y270", 3, 0, 270),
  23. X90_Y0("X90_Y0", 4, 90, 0),
  24. X90_Y90("X90_Y90", 5, 90, 90),
  25. X90_Y180("X90_Y180", 6, 90, 180),
  26. X90_Y270("X90_Y270", 7, 90, 270),
  27. X180_Y0("X180_Y0", 8, 180, 0),
  28. X180_Y90("X180_Y90", 9, 180, 90),
  29. X180_Y180("X180_Y180", 10, 180, 180),
  30. X180_Y270("X180_Y270", 11, 180, 270),
  31. X270_Y0("X270_Y0", 12, 270, 0),
  32. X270_Y90("X270_Y90", 13, 270, 90),
  33. X270_Y180("X270_Y180", 14, 270, 180),
  34. X270_Y270("X270_Y270", 15, 270, 270);
  35. private static final Map field_177546_q = Maps.newHashMap();
  36. private final int field_177545_r;
  37. private final Matrix4d field_177544_s;
  38. private final int field_177543_t;
  39. private final int field_177542_u;
  40. private static final String __OBFID = "CL_00002393";
  41.  
  42. 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};
  43.  
  44. private static int func_177521_b(int p_177521_0_, int p_177521_1_)
  45. {
  46. return p_177521_0_ * 360 + p_177521_1_;
  47. }
  48.  
  49. private ModelRotation(String p_i46087_1_, int p_i46087_2_, int p_i46087_3_, int p_i46087_4_)
  50. {
  51. this.field_177545_r = func_177521_b(p_i46087_3_, p_i46087_4_);
  52. this.field_177544_s = new Matrix4d();
  53. Matrix4d var5 = new Matrix4d();
  54. var5.setIdentity();
  55. var5.setRotation(new AxisAngle4d(1.0D, 0.0D, 0.0D, (double)((float)(-p_i46087_3_) * 0.017453292F)));
  56. this.field_177543_t = MathHelper.abs_int(p_i46087_3_ / 90);
  57. Matrix4d var6 = new Matrix4d();
  58. var6.setIdentity();
  59. var6.setRotation(new AxisAngle4d(0.0D, 1.0D, 0.0D, (double)((float)(-p_i46087_4_) * 0.017453292F)));
  60. this.field_177542_u = MathHelper.abs_int(p_i46087_4_ / 90);
  61. this.field_177544_s.mul(var6, var5);
  62. }
  63.  
  64. public Matrix4d func_177525_a()
  65. {
  66. return this.field_177544_s;
  67. }
  68.  
  69. public EnumFacing func_177523_a(EnumFacing p_177523_1_)
  70. {
  71. EnumFacing var2 = p_177523_1_;
  72. int var3;
  73.  
  74. for (var3 = 0; var3 < this.field_177543_t; ++var3)
  75. {
  76. var2 = var2.rotateAround(EnumFacing.Axis.X);
  77. }
  78.  
  79. if (var2.getAxis() != EnumFacing.Axis.Y)
  80. {
  81. for (var3 = 0; var3 < this.field_177542_u; ++var3)
  82. {
  83. var2 = var2.rotateAround(EnumFacing.Axis.Y);
  84. }
  85. }
  86.  
  87. return var2;
  88. }
  89.  
  90. public int func_177520_a(EnumFacing facing, int vertexIndex)
  91. {
  92. int var3 = vertexIndex;
  93.  
  94. if (facing.getAxis() == EnumFacing.Axis.X)
  95. {
  96. var3 = (vertexIndex + this.field_177543_t) % 4;
  97. }
  98.  
  99. EnumFacing var4 = facing;
  100.  
  101. for (int var5 = 0; var5 < this.field_177543_t; ++var5)
  102. {
  103. var4 = var4.rotateAround(EnumFacing.Axis.X);
  104. }
  105.  
  106. if (var4.getAxis() == EnumFacing.Axis.Y)
  107. {
  108. var3 = (var3 + this.field_177542_u) % 4;
  109. }
  110.  
  111. return var3;
  112. }
  113.  
  114. public static ModelRotation func_177524_a(int p_177524_0_, int p_177524_1_)
  115. {
  116. 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))));
  117. }
  118.  
  119. public TRSRTransformation apply(IModelPart part)
  120. {
  121. return new TRSRTransformation(this.getMatrix());
  122. }
  123.  
  124. public javax.vecmath.Matrix4f getMatrix()
  125. {
  126. return Reflector.ForgeHooksClient_getMatrix.exists() ? (javax.vecmath.Matrix4f)Reflector.call(Reflector.ForgeHooksClient_getMatrix, new Object[] {this}): new javax.vecmath.Matrix4f(this.getMatrix());
  127. }
  128.  
  129. public EnumFacing rotate(EnumFacing facing)
  130. {
  131. return this.func_177523_a(facing);
  132. }
  133.  
  134. public int rotate(EnumFacing facing, int vertexIndex)
  135. {
  136. return this.func_177520_a(facing, vertexIndex);
  137. }
  138.  
  139. public IModelPart apply(Object x0)
  140. {
  141. return (IModelPart) this.apply((IModelPart)x0);
  142. }
  143.  
  144. static {
  145. ModelRotation[] var0 = values();
  146. int var1 = var0.length;
  147.  
  148. for (int var2 = 0; var2 < var1; ++var2)
  149. {
  150. ModelRotation var3 = var0[var2];
  151. field_177546_q.put(Integer.valueOf(var3.field_177545_r), var3);
  152. }
  153. }
  154. }
  155.  
Advertisement
Add Comment
Please, Sign In to add comment