refactorings

master
Stefan Dollase 2016-11-20 17:53:53 +01:00
parent b7b9eca94f
commit a54fb33c9d
3 changed files with 12 additions and 16 deletions

View File

@ -44,10 +44,10 @@ public enum DefaultClassTranslator {
.thenDeclareRequired(SymbolicNames.CLASS_GEN_LAYER)
// one if the initializeAllBiomeGenerators-methods is required!
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_1, "a").real("long").end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_2, "a").real("long").symbolic("WorldType").end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3, "a").real("long").symbolic("WorldType").real("String").end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3A,"a").real("long").symbolic("WorldType").symbolic("ChunkProviderSettings").end()
.requiredMethod(SymbolicNames.METHOD_GEN_LAYER_GET_INTS, "a").real("int") .real("int") .real("int") .real("int").end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_2, "a").real("long").symbolic(SymbolicNames.CLASS_WORLD_TYPE).end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3, "a").real("long").symbolic(SymbolicNames.CLASS_WORLD_TYPE).real("String").end()
.optionalMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_4, "a").real("long").symbolic(SymbolicNames.CLASS_WORLD_TYPE).symbolic(SymbolicNames.CLASS_GEN_OPTIONS).end()
.requiredMethod(SymbolicNames.METHOD_GEN_LAYER_GET_INTS, "a").real("int") .real("int") .real("int") .real("int").end()
.next()
.ifDetect(c ->
c.getNumberOfConstructors() == 0
@ -62,14 +62,14 @@ public enum DefaultClassTranslator {
.requiredMethod(SymbolicNames.METHOD_BLOCK_INIT_INITIALIZE, "c").end()
.next()
.ifDetect(c ->
//some leeway in case Mojang adds or removes fields in the future
// some leeway in case Mojang adds or removes fields in the future
c.getNumberOfFields() > 70 && c.getNumberOfFields() < 100
&& c.getNumberOfMethods() == 0
)
.thenDeclareOptional(SymbolicNames.CLASS_GEN_OPTIONS)
.next()
.ifDetect(c ->
//same as above
// some leeway in case Mojang adds or removes fields in the future
c.getNumberOfFields() > 70 && c.getNumberOfFields() < 100
&& c.getField(0).hasFlags(AccessFlags.STATIC | AccessFlags.FINAL)
&& c.getField(1).hasFlags(AccessFlags.PUBLIC)

View File

@ -101,14 +101,10 @@ public class LocalMinecraftInterface implements MinecraftInterface {
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
if (worldTypeClass == null) {
return (Object[]) genLayerClass.callStaticMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_1, seed);
} else if (genLayerClass.hasMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3A)) {
SymbolicObject options = getGeneratorOptions(generatorOptions);
return (Object[]) genLayerClass.callStaticMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3A, seed, getWorldType(worldType).getObject(), options.getObject());
} else if (genLayerClass.hasMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_4)) {
return (Object[]) genLayerClass.callStaticMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_4, seed, getWorldType(worldType).getObject(), getGeneratorOptions(generatorOptions).getObject());
} else if (genLayerClass.hasMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3)) {
return (Object[]) genLayerClass.callStaticMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3, seed, getWorldType(worldType).getObject(), generatorOptions);
} else {
return (Object[]) genLayerClass.callStaticMethod(SymbolicNames.METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_2, seed, getWorldType(worldType).getObject());
}
@ -116,7 +112,6 @@ public class LocalMinecraftInterface implements MinecraftInterface {
private SymbolicObject getGeneratorOptions(String generatorOptions)
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
SymbolicObject factory = (SymbolicObject) genOptionsFactoryClass.callStaticMethod(SymbolicNames.METHOD_GEN_OPTIONS_FACTORY_JSON_TO_FACTORY, generatorOptions);
return (SymbolicObject) factory.callMethod(SymbolicNames.METHOD_GEN_OPTIONS_FACTORY_BUILD);
}

View File

@ -20,14 +20,15 @@ public enum SymbolicNames {
public static final String METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_1 = "initializeAllBiomeGenerators1";
public static final String METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_2 = "initializeAllBiomeGenerators2";
public static final String METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3 = "initializeAllBiomeGenerators3";
public static final String METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_3A = "initializeAllBiomeGenerators3a";
public static final String METHOD_GEN_LAYER_INITIALIZE_ALL_BIOME_GENERATORS_4 = "initializeAllBiomeGenerators4";
public static final String METHOD_GEN_LAYER_GET_INTS = "getInts";
public static final String CLASS_BLOCK_INIT = "BlockInit";
public static final String METHOD_BLOCK_INIT_INITIALIZE = "initialize";
public static final String CLASS_GEN_OPTIONS = "ChunkProviderSettings";
public static final String CLASS_GEN_OPTIONS_FACTORY = CLASS_GEN_OPTIONS + ".Factory";
public static final String CLASS_GEN_OPTIONS_FACTORY = "ChunkProviderSettingsFactory";
public static final String METHOD_GEN_OPTIONS_FACTORY_JSON_TO_FACTORY = "jsonToFactory";
public static final String METHOD_GEN_OPTIONS_FACTORY_BUILD = "build";
}