22
33import com .mojang .serialization .Codec ;
44import io .netty .buffer .ByteBuf ;
5+ import java .util .function .Function ;
56import java .util .function .IntFunction ;
67import mekanism .api .annotations .NothingNullByDefault ;
78import mekanism .api .text .IHasTranslationKey ;
@@ -22,7 +23,15 @@ public enum TransmissionType implements IHasTranslationKey, StringRepresentable
2223 ITEM ("InventoryNetwork" , "items" , MekanismLang .TRANSMISSION_TYPE_ITEM , 6 ),
2324 HEAT ("HeatNetwork" , "heat" , MekanismLang .TRANSMISSION_TYPE_HEAT , 7 );
2425
25- public static final Codec <TransmissionType > CODEC = StringRepresentable .fromEnum (TransmissionType ::values );
26+ public static final Codec <TransmissionType > CODEC ;
27+
28+ //TODO - 1.22 remove backcompat and inline back to StringRepresentable.fromEnum
29+ static {
30+ TransmissionType [] values = values ();
31+ Function <String , TransmissionType > nameLookup = StringRepresentable .createNameLookup (values , Function .identity ());
32+ Function <String , TransmissionType > remapper = it -> ("gases" .equals (it ) || "infuse_types" .equals (it ) || "pigments" .equals (it ) || "slurries" .equals (it )) ? CHEMICAL : nameLookup .apply (it );
33+ CODEC = new EnumCodec <>(values , remapper );
34+ }
2635 public static final IntFunction <TransmissionType > BY_ID = ByIdMap .continuous (TransmissionType ::ordinal , values (), ByIdMap .OutOfBoundsStrategy .WRAP );
2736 public static final StreamCodec <ByteBuf , TransmissionType > STREAM_CODEC = ByteBufCodecs .idMapper (BY_ID , TransmissionType ::ordinal );
2837
0 commit comments