mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 14:21:08 +00:00
parse TerraScripts in parallel
This commit is contained in:
+21
-18
@@ -44,24 +44,27 @@ public class TerraScriptAddon implements AddonInitializer {
|
|||||||
.then(event -> {
|
.then(event -> {
|
||||||
CheckedRegistry<Structure> structureRegistry = event.getPack().getOrCreateRegistry(Structure.class);
|
CheckedRegistry<Structure> structureRegistry = event.getPack().getOrCreateRegistry(Structure.class);
|
||||||
CheckedRegistry<LootTable> lootRegistry = event.getPack().getOrCreateRegistry(LootTable.class);
|
CheckedRegistry<LootTable> lootRegistry = event.getPack().getOrCreateRegistry(LootTable.class);
|
||||||
event.getPack().getLoader().open("", ".tesf").thenEntries(entries -> {
|
event.getPack().getLoader().open("", ".tesf").thenEntries(
|
||||||
for(Map.Entry<String, InputStream> entry : entries) {
|
entries ->
|
||||||
try {
|
entries.stream()
|
||||||
String id = StringUtil.fileName(entry.getKey());
|
.parallel()
|
||||||
StructureScript structureScript = new StructureScript(entry.getValue(),
|
.map(entry -> {
|
||||||
id,
|
try {
|
||||||
platform,
|
String id = StringUtil.fileName(entry.getKey());
|
||||||
structureRegistry,
|
return new StructureScript(entry.getValue(),
|
||||||
lootRegistry,
|
id,
|
||||||
event
|
platform,
|
||||||
.getPack()
|
structureRegistry,
|
||||||
.getOrCreateRegistry(FunctionBuilder.class));
|
lootRegistry,
|
||||||
structureRegistry.register(structureScript.getID(), structureScript);
|
event.getPack().getOrCreateRegistry(FunctionBuilder.class));
|
||||||
} catch(ParseException e) {
|
} catch(ParseException e) {
|
||||||
throw new LoadException("Failed to load script \"" + entry.getKey() + "\"", e);
|
throw new LoadException("Failed to load script \"" + entry.getKey() + "\"", e);
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
}).close();
|
.toList()
|
||||||
|
.forEach(structureScript -> structureRegistry.register(structureScript.getID(),
|
||||||
|
structureScript)))
|
||||||
|
.close();
|
||||||
})
|
})
|
||||||
.priority(2)
|
.priority(2)
|
||||||
.failThrough();
|
.failThrough();
|
||||||
|
|||||||
Reference in New Issue
Block a user