typetoken getOrCreateRegistry

This commit is contained in:
dfsek
2021-07-18 13:37:40 -07:00
parent d10e2050cb
commit ebc81b196a
2 changed files with 15 additions and 5 deletions

View File

@@ -6,11 +6,13 @@ import com.dfsek.terra.api.registry.meta.RegistryFactory;
import com.dfsek.terra.api.registry.meta.RegistryHolder;
import com.dfsek.terra.api.tectonic.LoaderHolder;
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
import com.dfsek.terra.api.util.TypeToken;
import com.dfsek.terra.api.util.seeded.SeededBiomeProvider;
import com.dfsek.terra.api.world.TerraWorld;
import com.dfsek.terra.api.world.generator.ChunkGeneratorProvider;
import com.dfsek.terra.api.world.generator.GenerationStageProvider;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -18,7 +20,14 @@ import java.util.Set;
public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolder {
SeededBiomeProvider getBiomeProviderBuilder();
<T> CheckedRegistry<T> getOrCreateRegistry(Class<T> clazz);
<T> CheckedRegistry<T> getOrCreateRegistry(Type clazz);
default <T> CheckedRegistry<T> getOrCreateRegistry(Class<T> clazz) {
return getOrCreateRegistry((Type) clazz);
}
default <T> CheckedRegistry<T> getOrCreateRegistry(TypeToken<T> type) {
return getOrCreateRegistry(type.getType());
}
WorldConfig toWorldConfig(TerraWorld world);