use single-parameter Keyed registration

This commit is contained in:
dfsek
2021-12-26 19:26:51 -07:00
parent 1c93c2bbb4
commit 6d844c2d3a
3 changed files with 12 additions and 12 deletions

View File

@@ -8,7 +8,6 @@ import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
public class StructureBlockShortcutAddon implements AddonInitializer {
@@ -24,7 +23,8 @@ public class StructureBlockShortcutAddon implements AddonInitializer {
.register(addon, ConfigPackPreLoadEvent.class)
.then(event -> event.getPack()
.registerShortcut(Structure.class, "BLOCK",
(configLoader, input) -> new SingletonStructure(configLoader.loadType(BlockState.class, input))))
(configLoader, input) -> new SingletonStructure(configLoader.loadType(BlockState.class, input)
)))
.failThrough();
}
}

View File

@@ -57,12 +57,13 @@ public class SpongeSchematicAddon implements AddonInitializer {
.register(addon, ConfigPackPreLoadEvent.class)
.then(event -> {
CheckedRegistry<Structure> structureRegistry = event.getPack().getOrCreateRegistry(Structure.class);
event.getPack().getLoader().open("", ".schem").thenEntries(entries -> {
for(Map.Entry<String, InputStream> entry : entries) {
String id = StringUtil.fileName(entry.getKey());
structureRegistry.register(addon.key(id), convert(entry.getValue(), id));
}
}).close();
event.getPack()
.getLoader()
.open("", ".schem")
.thenEntries(entries -> entries
.stream()
.map(entry -> convert(entry.getValue(), StringUtil.fileName(entry.getKey())))
.forEach(structureRegistry::register)).close();
})
.failThrough();
}
@@ -96,7 +97,7 @@ public class SpongeSchematicAddon implements AddonInitializer {
}
}
return new SpongeStructure(states, id);
return new SpongeStructure(states, addon.key(id));
} catch(IOException e) {
throw new IllegalArgumentException("Failed to parse Sponge schematic: ", e);
}

View File

@@ -47,7 +47,7 @@ public class TerraScriptAddon implements AddonInitializer {
try {
String id = StringUtil.fileName(entry.getKey());
return new StructureScript(entry.getValue(),
id,
addon.key(id),
platform,
structureRegistry,
lootRegistry,
@@ -57,8 +57,7 @@ public class TerraScriptAddon implements AddonInitializer {
}
})
.toList()
.forEach(structureScript -> structureRegistry.register(addon.key(structureScript.getID()),
structureScript)))
.forEach(structureRegistry::register))
.close();
})
.priority(2)