Skip to content

Commit 546d9a8

Browse files
committed
best effort loading of item-saved side configs
1 parent 3fd900a commit 546d9a8

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/main/java/mekanism/common/lib/transmitter/TransmissionType.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.mojang.serialization.Codec;
44
import io.netty.buffer.ByteBuf;
5+
import java.util.function.Function;
56
import java.util.function.IntFunction;
67
import mekanism.api.annotations.NothingNullByDefault;
78
import 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

Comments
 (0)