Skip to content

Commit 1ca7696

Browse files
committed
Rewrite registrars in Java
1 parent 30c4638 commit 1ca7696

File tree

8 files changed

+39
-54
lines changed

8 files changed

+39
-54
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package juuxel.adorn.lib.registry;
2+
3+
import java.util.function.Supplier;
4+
5+
@FunctionalInterface
6+
public interface Registered<T> extends Supplier<T> {
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package juuxel.adorn.lib.registry;
2+
3+
import java.util.function.Supplier;
4+
5+
public interface Registrar<T> extends Iterable<T> {
6+
/**
7+
* Registers an object with the id. The object is created using the provider.
8+
*/
9+
<U extends T> Registered<U> register(String id, Supplier<? extends U> provider);
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package juuxel.adorn.lib.registry;
2+
3+
import juuxel.adorn.util.InlineServices;
4+
import juuxel.adorn.util.Services;
5+
import net.minecraft.registry.Registry;
6+
import net.minecraft.registry.RegistryKey;
7+
8+
@InlineServices
9+
public interface RegistrarFactory {
10+
<T> Registrar<T> create(RegistryKey<Registry<T>> registryKey);
11+
12+
@InlineServices.Getter
13+
static RegistrarFactory get() {
14+
return Services.load(RegistrarFactory.class);
15+
}
16+
}

common/src/main/kotlin/juuxel/adorn/lib/registry/Registered.kt

-11
This file was deleted.

common/src/main/kotlin/juuxel/adorn/lib/registry/Registrar.kt

-19
This file was deleted.

common/src/main/kotlin/juuxel/adorn/lib/registry/RegistrarFactory.kt

-18
This file was deleted.

fabric/src/main/java/juuxel/adorn/platform/fabric/RegistrarImpl.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
import juuxel.adorn.AdornCommon;
44
import juuxel.adorn.lib.registry.Registered;
55
import juuxel.adorn.lib.registry.Registrar;
6-
import kotlin.jvm.functions.Function0;
76
import net.minecraft.registry.Registry;
87

98
import java.util.ArrayList;
109
import java.util.Iterator;
1110
import java.util.List;
11+
import java.util.function.Supplier;
1212

1313
public final class RegistrarImpl<T> implements Registrar<T> {
1414
private final Registry<T> registry;
@@ -19,8 +19,8 @@ public RegistrarImpl(Registry<T> registry) {
1919
}
2020

2121
@Override
22-
public <U extends T> Registered<U> register(String id, Function0<? extends U> provider) {
23-
var registered = Registry.register(registry, AdornCommon.id(id), provider.invoke());
22+
public <U extends T> Registered<U> register(String id, Supplier<? extends U> provider) {
23+
var registered = Registry.register(registry, AdornCommon.id(id), provider.get());
2424
objects.add(registered);
2525
return () -> registered;
2626
}

forge/src/main/java/juuxel/adorn/platform/forge/registrar/DeferredRegistrar.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.google.common.collect.Iterators;
44
import juuxel.adorn.AdornCommon;
55
import juuxel.adorn.lib.registry.Registered;
6-
import kotlin.jvm.functions.Function0;
76
import net.minecraft.registry.Registry;
87
import net.minecraft.registry.RegistryKey;
98
import net.neoforged.bus.api.IEventBus;
@@ -13,6 +12,7 @@
1312
import java.util.ArrayList;
1413
import java.util.Iterator;
1514
import java.util.List;
15+
import java.util.function.Supplier;
1616

1717
public final class DeferredRegistrar<T> implements ForgeRegistrar<T> {
1818
private final DeferredRegister<T> register;
@@ -28,8 +28,8 @@ public void hook(IEventBus modBus) {
2828
}
2929

3030
@Override
31-
public <U extends T> Registered<U> register(String id, Function0<? extends U> provider) {
32-
var registryObject = register.register(id, provider::invoke);
31+
public <U extends T> Registered<U> register(String id, Supplier<? extends U> provider) {
32+
var registryObject = register.register(id, provider);
3333
objects.add(registryObject);
3434
return registryObject::get;
3535
}

0 commit comments

Comments
 (0)