From 56483368930f656b3f2288f3dc448cb8fa04ce9a Mon Sep 17 00:00:00 2001 From: DaemonUmbra Date: Thu, 8 Oct 2020 17:02:48 -0400 Subject: [PATCH] Added Basic Class-Level SAS Capability to checkSAS, added Vector4f to SAS (#7385) --- build.gradle | 2 -- .../forge/tasks/CheckSAS.groovy | 31 +++++++++++++------ .../util/math/vector/Vector4f.java.patch | 2 +- src/main/resources/forge.sas | 1 + 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/build.gradle b/build.gradle index a8598b38d..02c558f4d 100644 --- a/build.gradle +++ b/build.gradle @@ -1062,5 +1062,3 @@ task setup() { dependsOn ':clean:extractMapped' dependsOn ':forge:extractMapped' //These must be strings so that we can do lazy resolution. Else we need evaluationDependsOnChildren above } - - diff --git a/buildSrc/src/main/groovy/net/minecraftforge/forge/tasks/CheckSAS.groovy b/buildSrc/src/main/groovy/net/minecraftforge/forge/tasks/CheckSAS.groovy index b2fdad0bd..3282ad599 100644 --- a/buildSrc/src/main/groovy/net/minecraftforge/forge/tasks/CheckSAS.groovy +++ b/buildSrc/src/main/groovy/net/minecraftforge/forge/tasks/CheckSAS.groovy @@ -21,31 +21,44 @@ public class CheckSAS extends DefaultTask { sass.each { f -> def lines = [] f.eachLine { line -> - if (line[0] == '\t') return //Skip any tabed lines, those are ones we add + if (line[0] == '\t') return //Skip any tabbed lines, those are ones we add def idx = line.indexOf('#') if (idx == 0 || line.isEmpty()) { lines.add(line) return } - def comment = idx == -1 ? null : line.substring(idx) if (idx != -1) line = line.substring(0, idx - 1) - def (cls, desc) = (line.trim() + ' ').split(' ', -1) cls = cls.replaceAll('\\.', '/') desc = desc.replace('(', ' (') - if (desc.isEmpty() || json[cls] == null || json[cls]['methods'] == null || json[cls]['methods'][desc] == null) { + + if (json[cls] == null || (!desc.isEmpty() && (json[cls]['methods'] == null || json[cls]['methods'][desc] == null))) { println('Invalid: ' + line) return } - - def mtd = json[cls]['methods'][desc] + + //Class SAS + if (desc.isEmpty()) { + lines.add(cls + (comment == null ? '' : ' ' + comment)) + if (json[cls]['methods'] != null) + (json[cls]['methods'] as TreeMap).each { + findChildMethods(json, cls, it.key).each { lines.add('\t' + it) } + } + return + } + + //Method SAS lines.add(cls + ' ' + desc.replace(' ', '') + (comment == null ? '' : ' ' + comment)) - def children = json.values().findAll{ it.methods != null && it.methods[desc] != null && it.methods[desc].override == cls} - .collect { it.name + ' ' + desc.replace(' ', '') } as TreeSet - children.each { lines.add('\t' + it) } + findChildMethods(json, cls, desc).each { lines.add('\t' + it) } } f.text = lines.join('\n') } } + + protected static findChildMethods(json, cls, desc) + { + return json.values().findAll{ it.methods != null && it.methods[desc] != null && it.methods[desc].override == cls} + .collect { it.name + ' ' + desc.replace(' ', '') } as TreeSet + } } diff --git a/patches/minecraft/net/minecraft/util/math/vector/Vector4f.java.patch b/patches/minecraft/net/minecraft/util/math/vector/Vector4f.java.patch index f8a6138d5..cf0fb4895 100644 --- a/patches/minecraft/net/minecraft/util/math/vector/Vector4f.java.patch +++ b/patches/minecraft/net/minecraft/util/math/vector/Vector4f.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/util/math/vector/Vector4f.java +++ b/net/minecraft/util/math/vector/Vector4f.java -@@ -128,4 +128,16 @@ +@@ -125,4 +125,16 @@ public String toString() { return "[" + this.field_229368_a_ + ", " + this.field_229369_b_ + ", " + this.field_229370_c_ + ", " + this.field_229371_d_ + "]"; } diff --git a/src/main/resources/forge.sas b/src/main/resources/forge.sas index bd1391fb4..0c824c9cf 100644 --- a/src/main/resources/forge.sas +++ b/src/main/resources/forge.sas @@ -92,6 +92,7 @@ net/minecraft/util/Direction$Axis func_176717_a(Ljava/lang/String;)Lnet/minecraf net/minecraft/util/math/vector/Vector3d func_216371_e()Lnet/minecraft/util/math/vector/Vector3d; net/minecraft/util/math/vector/Vector3d func_189984_a(Lnet/minecraft/util/math/vector/Vector2f;)Lnet/minecraft/util/math/vector/Vector3d; # fromPitchYaw net/minecraft/util/math/vector/Vector3d func_189986_a(FF)Lnet/minecraft/util/math/vector/Vector3d; # fromPitchYaw +net/minecraft/util/math/vector/Vector4f # Vector 4f Class net/minecraft/util/text/Style func_240719_a_(Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/util/text/Style; #setFontId net/minecraft/util/text/Style func_240723_c_(Lnet/minecraft/util/text/TextFormatting;)Lnet/minecraft/util/text/Style; #forceFormatting # BiomeAmbiance getters, needed for it to be useful during BiomeLoadingEvent to be useful