File tree 4 files changed +30
-5
lines changed
common/src/main/java/juuxel/adorn/lib/registry
fabric/src/main/java/juuxel/adorn/platform/fabric
forge/src/main/java/juuxel/adorn/platform/forge/registrar
4 files changed +30
-5
lines changed Original file line number Diff line number Diff line change 1
1
package juuxel .adorn .lib .registry ;
2
2
3
+ import net .minecraft .registry .RegistryKey ;
4
+
3
5
import java .util .function .Supplier ;
4
6
5
- @ FunctionalInterface
6
7
public interface Registered <T > extends Supplier <T > {
8
+ RegistryKey <? super T > key ();
7
9
}
Original file line number Diff line number Diff line change 10
10
import java .util .function .Supplier ;
11
11
import java .util .stream .Stream ;
12
12
13
- public final class RegisteredMap <K , V > implements Registered <Map <K , V >> {
13
+ public final class RegisteredMap <K , V > implements Supplier <Map <K , V >> {
14
14
private final Map <K , Registered <? extends V >> map ;
15
15
private final Supplier <Map <K , V >> builtMap ;
16
16
Original file line number Diff line number Diff line change 4
4
import juuxel .adorn .lib .registry .Registered ;
5
5
import juuxel .adorn .lib .registry .Registrar ;
6
6
import net .minecraft .registry .Registry ;
7
+ import net .minecraft .registry .RegistryKey ;
7
8
8
9
import java .util .ArrayList ;
9
10
import java .util .Iterator ;
@@ -20,9 +21,20 @@ public RegistrarImpl(Registry<T> registry) {
20
21
21
22
@ Override
22
23
public <U extends T > Registered <U > register (String id , Supplier <? extends U > provider ) {
23
- var registered = Registry .register (registry , AdornCommon .id (id ), provider .get ());
24
+ var key = RegistryKey .of (registry .getKey (), AdornCommon .id (id ));
25
+ var registered = Registry .register (registry , key , provider .get ());
24
26
objects .add (registered );
25
- return () -> registered ;
27
+ return new Registered <>() {
28
+ @ Override
29
+ public U get () {
30
+ return registered ;
31
+ }
32
+
33
+ @ Override
34
+ public RegistryKey <? super U > key () {
35
+ return key ;
36
+ }
37
+ };
26
38
}
27
39
28
40
@ Override
Original file line number Diff line number Diff line change 6
6
import net .minecraft .registry .Registry ;
7
7
import net .minecraft .registry .RegistryKey ;
8
8
import net .neoforged .bus .api .IEventBus ;
9
+ import net .neoforged .neoforge .common .extensions .IHolderExtension ;
9
10
import net .neoforged .neoforge .registries .DeferredHolder ;
10
11
import net .neoforged .neoforge .registries .DeferredRegister ;
11
12
@@ -31,7 +32,17 @@ public void hook(IEventBus modBus) {
31
32
public <U extends T > Registered <U > register (String id , Supplier <? extends U > provider ) {
32
33
var registryObject = register .register (id , provider );
33
34
objects .add (registryObject );
34
- return registryObject ::get ;
35
+ return new Registered <>() {
36
+ @ Override
37
+ public RegistryKey <? super U > key () {
38
+ return ((IHolderExtension <T >) registryObject ).getKey ();
39
+ }
40
+
41
+ @ Override
42
+ public U get () {
43
+ return registryObject .get ();
44
+ }
45
+ };
35
46
}
36
47
37
48
@ Override
You can’t perform that action at this time.
0 commit comments