Volver al índice

docs/publicacion/JarRigExportAudit.java

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;

/** Calls the real public CLI; it never duplicates geometry or animation. */
public final class JarRigExportAudit {
    public static void main(String[] args) throws Exception {
        String[] modes = {"chase", "walk", "compact", "crawl2", "crawl3", "crawl4",
            "chase4", "drag", "lore", "stalk", "fold", "turn", "climb", "attack"};
        Method nativeMain = Class.forName("ar.com.companeros.horror.client.ParasiteRig")
            .getMethod("main", String[].class);
        PrintStream output = System.out;
        for (String mode : modes) {
            for (int stage = 0; stage <= 4; stage++) {
                ByteArrayOutputStream captured = new ByteArrayOutputStream();
                try (PrintStream buffer = new PrintStream(captured, true, StandardCharsets.UTF_8)) {
                    System.setOut(buffer);
                    try {
                        nativeMain.invoke(null, (Object) new String[]{mode, Integer.toString(stage), "0.125", "10", "1"});
                    } finally {
                        System.setOut(output);
                    }
                }
                output.println("{\"mode\":\"" + mode + "\",\"stage\":" + stage
                    + ",\"samples\":" + captured.toString(StandardCharsets.UTF_8).trim() + "}");
            }
        }
    }
}