use getCheckedRegistry where possible

This commit is contained in:
dfsek
2021-07-05 21:52:28 -07:00
parent 52a269b686
commit 04725698e8
8 changed files with 11 additions and 13 deletions

View File

@@ -63,7 +63,7 @@ public class NoiseAddon extends TerraAddon implements EventListener {
@SuppressWarnings("deprecation")
public void packPreLoad(ConfigPackPreLoadEvent event) {
CheckedRegistry<NoiseProvider> noiseRegistry = event.getPack().getRegistry(NoiseProvider.class);
CheckedRegistry<NoiseProvider> noiseRegistry = event.getPack().getCheckedRegistry(NoiseProvider.class);
event.getPack()
.applyLoader(NoiseSeeded.class, new NoiseSamplerBuilderLoader(noiseRegistry));

View File

@@ -33,8 +33,8 @@ public class TerraScriptAddon extends TerraAddon implements EventListener {
}
public void onPackLoad(ConfigPackPreLoadEvent event) throws ConfigException {
CheckedRegistry<Structure> structureRegistry = event.getPack().getRegistry(Structure.class);
CheckedRegistry<LootTable> lootRegistry = event.getPack().getRegistry(LootTable.class);
CheckedRegistry<Structure> structureRegistry = event.getPack().getCheckedRegistry(Structure.class);
CheckedRegistry<LootTable> lootRegistry = event.getPack().getCheckedRegistry(LootTable.class);
event.getPack().getLoader().open("", ".tesf").thenEntries(entries -> {
for(Map.Entry<String, InputStream> entry : entries) {
try {

View File

@@ -13,8 +13,6 @@ import java.util.Map;
import java.util.Set;
public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder {
<T> CheckedRegistry<T> getRegistry(Class<T> clazz);
BiomeProviderBuilder getBiomeProviderBuilder();
WorldConfig toWorldConfig(TerraWorld world);

View File

@@ -6,5 +6,5 @@ import com.dfsek.terra.api.registry.Registry;
public interface RegistryHolder {
<T> Registry<T> getRegistry(Class<T> clazz);
<T>CheckedRegistry<T> getCheckedRegistry(Class<T> clazz) throws IllegalStateException;
<T> CheckedRegistry<T> getCheckedRegistry(Class<T> clazz) throws IllegalStateException;
}

View File

@@ -249,7 +249,7 @@ public class ConfigPackImpl implements ConfigPack {
for(ConfigType<?, ?> configType : configTypeRegistry.entries()) {
for(AbstractableTemplate config : abstractConfigLoader.loadConfigs(configs.getOrDefault(configType, Collections.emptyList()), () -> configType.getTemplate(this, main))) {
try {
((CheckedRegistry) getRegistry(configType.getTypeClass())).register(config.getID(), ((ConfigFactory) configType.getFactory()).build(config, main));
((CheckedRegistry) getCheckedRegistry(configType.getTypeClass())).register(config.getID(), ((ConfigFactory) configType.getFactory()).build(config, main));
} catch(DuplicateEntryException e) {
throw new LoadException("Duplicate registry entry: ", e);
}

View File

@@ -34,7 +34,7 @@ public class WorldConfigImpl implements WorldConfig {
pack.getRegistryMap().forEach((clazz, pair) -> registryMap.put(clazz, new LockedRegistryImpl<>(pair.getLeft())));
OpenRegistry<TerraBiome> biomeOpenRegistry = new OpenRegistryImpl<>();
pack.getRegistry(BiomeBuilder.class).forEach((id, biome) -> biomeOpenRegistry.register(id, biome.apply(world.getWorld().getSeed())));
pack.getCheckedRegistry(BiomeBuilder.class).forEach((id, biome) -> biomeOpenRegistry.register(id, biome.apply(world.getWorld().getSeed())));
registryMap.put(TerraBiome.class, new LockedRegistryImpl<>(biomeOpenRegistry));
this.provider = pack.getBiomeProviderBuilder().build(world.getWorld().getSeed());

View File

@@ -24,8 +24,8 @@ public class TerraListener implements EventListener {
for(TreeType value : TreeType.values()) {
try {
String id = BukkitAdapter.TREE_TRANSFORMER.translate(value);
event.getPack().getRegistry(Tree.class).register(id, new BukkitTree(value, main));
event.getPack().getRegistry(Tree.class).get(id); // Platform trees should never be marked "dead"
event.getPack().getCheckedRegistry(Tree.class).register(id, new BukkitTree(value, main));
event.getPack().getCheckedRegistry(Tree.class).get(id); // Platform trees should never be marked "dead"
} catch(DuplicateEntryException ignore) { // If another com.dfsek.terra.addon has already registered trees, do nothing.
}
}

View File

@@ -327,7 +327,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
@Priority(Priority.LOWEST)
@Global
public void injectTrees(ConfigPackPreLoadEvent event) {
CheckedRegistry<Tree> treeRegistry = event.getPack().getRegistry(Tree.class);
CheckedRegistry<Tree> treeRegistry = event.getPack().getCheckedRegistry(Tree.class);
injectTree(treeRegistry, "BROWN_MUSHROOM", ConfiguredFeatures.HUGE_BROWN_MUSHROOM);
injectTree(treeRegistry, "RED_MUSHROOM", ConfiguredFeatures.HUGE_RED_MUSHROOM);
injectTree(treeRegistry, "JUNGLE", ConfiguredFeatures.MEGA_JUNGLE_TREE);
@@ -359,7 +359,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
BuiltinRegistries.CONFIGURED_FEATURE.getEntries().forEach(entry -> {
if(!template.getExcludedRegistryFeatures().contains(entry.getKey().getValue())) {
try {
event.getPack().getRegistry(Tree.class).register(entry.getKey().getValue().toString(), (Tree) entry.getValue());
event.getPack().getCheckedRegistry(Tree.class).register(entry.getKey().getValue().toString(), (Tree) entry.getValue());
debugLogger.info("Injected ConfiguredFeature " + entry.getKey().getValue() + " as Tree.");
} catch(DuplicateEntryException ignored) {
}
@@ -387,7 +387,7 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
public void injectBiomes(BiomeRegistrationEvent event) {
logger.info("Registering biomes...");
Registry<Biome> biomeRegistry = event.getRegistryManager().get(Registry.BIOME_KEY);
configRegistry.forEach(pack -> pack.getRegistry(BiomeBuilder.class).forEach((id, biome) -> FabricUtil.registerOrOverwrite(biomeRegistry, Registry.BIOME_KEY, new Identifier("terra", FabricUtil.createBiomeID(pack, id)), FabricUtil.createBiome(biome, pack, event.getRegistryManager())))); // Register all Terra biomes.
configRegistry.forEach(pack -> pack.getCheckedRegistry(BiomeBuilder.class).forEach((id, biome) -> FabricUtil.registerOrOverwrite(biomeRegistry, Registry.BIOME_KEY, new Identifier("terra", FabricUtil.createBiomeID(pack, id)), FabricUtil.createBiome(biome, pack, event.getRegistryManager())))); // Register all Terra biomes.
logger.info("Biomes registered.");
}