Skip to content

Commit

Permalink
Moved Expansion registration to own ZC Module
Browse files Browse the repository at this point in the history
Reason: Expansions from modded methods need their classes to have been registered first ^^
  • Loading branch information
kindlich committed Apr 23, 2020
1 parent b5bee13 commit c4c61c9
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions src/main/java/com/blamejared/crafttweaker/api/CraftTweakerAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -143,13 +143,9 @@ public static void loadScripts(SourceFile[] sourceFiles, ScriptLoadingOptions sc
CraftTweakerRegistry.getZenGlobals().forEach(crafttweakerModule::addGlobals);
modules.add(crafttweakerModule);
PrefixedBracketParser bep = new PrefixedBracketParser(null);
for(Method method : CraftTweakerRegistry.getBracketResolvers()) {
String name = method.getAnnotation(BracketResolver.class).value();
FunctionalMemberRef memberRef = crafttweakerModule.loadStaticMethod(method);
bep.register(name, new SimpleBracketParser(SCRIPTING_ENGINE.registry, memberRef));
}
bep.register("recipetype", new RecipeTypeBracketHandler());
crafttweakerModule.registerBEP(bep);

SCRIPTING_ENGINE.registerNativeProvided(crafttweakerModule);
for(String key : CraftTweakerRegistry.getRootPackages()) {
//module already registered
Expand All @@ -166,6 +162,20 @@ public static void loadScripts(SourceFile[] sourceFiles, ScriptLoadingOptions sc
JavaNativeModule expansions = SCRIPTING_ENGINE.createNativeModule("expansions", "", modules.toArray(new JavaNativeModule[0]));
CraftTweakerRegistry.getExpansions().values().stream().flatMap(Collection::stream).forEach(expansions::addClass);
SCRIPTING_ENGINE.registerNativeProvided(expansions);

final JavaNativeModule brackets = SCRIPTING_ENGINE.createNativeModule("brackets", "", expansions);

for(Method method : CraftTweakerRegistry.getBracketResolvers()) {
String name = method.getAnnotation(BracketResolver.class).value();
FunctionalMemberRef memberRef = brackets.loadStaticMethod(method);
bep.register(name, new SimpleBracketParser(SCRIPTING_ENGINE.registry, memberRef));
crafttweakerModule.getCompiled().setMethodInfo(memberRef.getTarget(), brackets.getCompiled().getMethodInfo(memberRef));
}

SCRIPTING_ENGINE.registerNativeProvided(brackets);





SemanticModule scripts = SCRIPTING_ENGINE.createScriptedModule("scripts", sourceFiles, bep, FunctionParameter.NONE, compileError -> CraftTweakerAPI.logger.error(compileError.toString()), validationLogEntry -> CraftTweakerAPI.logger.error(validationLogEntry.toString()), sourceFile -> CraftTweakerAPI.logger.info("Loading " + sourceFile.getFilename()));
Expand Down

0 comments on commit c4c61c9

Please sign in to comment.