2
2
3
3
import java .util .*;
4
4
import java .util .function .Supplier ;
5
- import com .google .gson .JsonElement ;
6
5
import com .minelittlepony .unicopia .Unicopia ;
7
- import com .minelittlepony .unicopia .util .Resources ;
8
6
import com .minelittlepony .unicopia .util .Weighted ;
9
7
import com .minelittlepony .unicopia .util .serialization .CodecUtils ;
10
8
import com .mojang .serialization .Codec ;
11
- import com .mojang .serialization .JsonOps ;
12
9
import com .mojang .serialization .codecs .RecordCodecBuilder ;
13
10
14
11
import net .fabricmc .fabric .api .resource .IdentifiableResourceReloadListener ;
15
- import net .minecraft .item .Item ;
16
12
import net .minecraft .item .ItemStack ;
17
13
import net .minecraft .network .RegistryByteBuf ;
18
14
import net .minecraft .network .codec .PacketCodec ;
23
19
import net .minecraft .util .profiler .Profiler ;
24
20
import net .minecraft .registry .Registries ;
25
21
import net .minecraft .registry .RegistryKeys ;
26
- import net .minecraft .registry .entry .RegistryEntry ;
27
22
import net .minecraft .registry .tag .TagKey ;
28
23
29
- public class TreeTypeLoader extends JsonDataLoader implements IdentifiableResourceReloadListener {
24
+ public class TreeTypeLoader extends JsonDataLoader < TreeTypeLoader . TreeTypeDef > implements IdentifiableResourceReloadListener {
30
25
private static final Identifier ID = Unicopia .id ("data/tree_type" );
31
26
32
27
public static final TreeTypeLoader INSTANCE = new TreeTypeLoader ();
33
28
34
29
private Map <Identifier , TreeTypeDef > entries = new HashMap <>();
35
30
36
31
TreeTypeLoader () {
37
- super (Resources . GSON , "tree_types" );
32
+ super (TreeTypeDef . CODEC , "tree_types" );
38
33
}
39
34
40
35
public Map <Identifier , TreeTypeDef > getEntries () {
@@ -46,18 +41,9 @@ public Identifier getFabricId() {
46
41
return ID ;
47
42
}
48
43
49
- @ SuppressWarnings ("unchecked" )
50
44
@ Override
51
- protected void apply (Map <Identifier , JsonElement > resources , ResourceManager manager , Profiler profiler ) {
52
- entries = Map .ofEntries (resources .entrySet ().stream ()
53
- .filter (Objects ::nonNull )
54
- .map (entry -> TreeTypeDef .CODEC .decode (JsonOps .INSTANCE , entry .getValue ())
55
- .result ()
56
- .map (p -> p .getFirst ())
57
- .map (p -> Map .entry (entry .getKey (), p ))
58
- .orElse (null ))
59
- .filter (Objects ::nonNull )
60
- .toArray (Map .Entry []::new ));
45
+ protected void apply (Map <Identifier , TreeTypeDef > resources , ResourceManager manager , Profiler profiler ) {
46
+ entries = resources ;
61
47
62
48
TreeTypes .load (entries );
63
49
}
@@ -120,15 +106,13 @@ static record Drop (
120
106
@ Override
121
107
public void appendTo (Weighted .Builder <Supplier <ItemStack >> weighted ) {
122
108
if (item .isPresent ()) {
123
- Registries .ITEM .getOrEmpty (item .get ()).ifPresent (item -> {
109
+ Registries .ITEM .getOptionalValue (item .get ()).ifPresent (item -> {
124
110
weighted .put (weight , item ::getDefaultStack );
125
111
});
126
112
} else {
127
113
weighted .put (weight , () -> {
128
- return Registries .ITEM .getOrCreateEntryList (TagKey .of (RegistryKeys .ITEM , tag .get ()))
129
- .getRandom (Weighted .getRng ())
130
- .map (RegistryEntry ::value )
131
- .map (Item ::getDefaultStack )
114
+ return Registries .ITEM .getRandomEntry (TagKey .of (RegistryKeys .ITEM , tag .get ()), Weighted .getRng ())
115
+ .map (entry -> entry .value ().getDefaultStack ())
132
116
.orElse (ItemStack .EMPTY );
133
117
});
134
118
}
0 commit comments