|
17 | 17 | import roadhog360.simpleskinbackport.ducks.ITransparentBox;
|
18 | 18 |
|
19 | 19 | import java.nio.charset.StandardCharsets;
|
| 20 | +import java.util.Arrays; |
20 | 21 | import java.util.Base64;
|
21 | 22 | import java.util.List;
|
22 | 23 | import java.util.Objects;
|
@@ -54,20 +55,26 @@ public static boolean isPlayer(MinecraftProfileTexture.Type type, SkinManager.Sk
|
54 | 55 | return type == MinecraftProfileTexture.Type.SKIN && callback instanceof EntityPlayer;
|
55 | 56 | }
|
56 | 57 |
|
57 |
| - public static String getCallerClassName() { |
| 58 | + public static boolean isCallerAssignableFrom(Class<?>... assignables) { |
58 | 59 | StackTraceElement[] stElements = Thread.currentThread().getStackTrace();
|
59 |
| - String callerClassName = null; |
60 |
| - for (int i=1; i<stElements.length; i++) { |
61 |
| - StackTraceElement ste = stElements[i]; |
62 |
| - if (!ste.getClassName().equals(Utils.class.getName())&& ste.getClassName().indexOf("java.lang.Thread")!=0) { |
63 |
| - if (callerClassName==null) { |
64 |
| - callerClassName = ste.getClassName(); |
65 |
| - } else if (!callerClassName.equals(ste.getClassName())) { |
66 |
| - return ste.getClassName(); |
| 60 | + return Arrays.stream(stElements, 4, stElements.length).anyMatch( |
| 61 | + element -> Arrays.stream(assignables).anyMatch( |
| 62 | + assignable -> { |
| 63 | + try { |
| 64 | + return assignable.isAssignableFrom(Class.forName(element.getClassName())); |
| 65 | + } catch (ClassNotFoundException ignored) { |
| 66 | + return false; |
67 | 67 | }
|
68 |
| - } |
69 |
| - } |
70 |
| - return null; |
| 68 | + }) |
| 69 | + ); |
| 70 | + } |
| 71 | + |
| 72 | + public static boolean isCallerNameEqualTo(String... assignables) { |
| 73 | + StackTraceElement[] stElements = Thread.currentThread().getStackTrace(); |
| 74 | + return Arrays.stream(stElements, 4, stElements.length).anyMatch( |
| 75 | + element -> Arrays.stream(assignables).anyMatch( |
| 76 | + assignable -> assignable.equals(element.getClassName())) |
| 77 | + ); |
71 | 78 | }
|
72 | 79 |
|
73 | 80 | public static ModelRenderer setAllChildBoxesTransparent(ModelRenderer renderer) {
|
@@ -127,6 +134,9 @@ public static ModelBox cloneBox(ModelBox box, ModelRenderer to, BoxTransformType
|
127 | 134 | int boxMaxX = MathHelper.floor_float(box.posX2 - box.posX1);
|
128 | 135 | int boxMaxY = MathHelper.floor_float(box.posY2 - box.posY1);
|
129 | 136 | int boxMaxZ = MathHelper.floor_float(box.posZ2 - box.posZ1);
|
| 137 | +// if(box.posX2 - box.posX1 > 0 || box.posY2 - box.posY1 > 0 || box.posZ2 - box.posZ1 > 0) { |
| 138 | +// size = Math.max(Math.max(box.posX2 - box.posX1, box.posY2 - box.posY1), box.posZ2 - box.posZ1); |
| 139 | +// } |
130 | 140 | if(transform.isHatLayer()) {
|
131 | 141 | size += 0.25F;
|
132 | 142 | }
|
|
0 commit comments