Skip to content

Commit 052ccb7

Browse files
committed
Added PLATFORM codecs
1 parent 28d34b4 commit 052ccb7

3 files changed

Lines changed: 7 additions & 0 deletions

File tree

src/main/java/dev/latvian/mods/klib/codec/MCCodecs.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.stream.IntStream;
2323

2424
public interface MCCodecs {
25+
Codec<Util.OS> PLATFORM = KLibCodecs.anyEnumCodec(Util.OS.values(), Util.OS::telemetryName);
2526
Codec<Vec3> VEC3 = Codec.DOUBLE.listOf(3, 3).xmap(l -> KMath.vec3(l.get(0), l.get(1), l.get(2)), v -> List.of(v.x, v.y, v.z));
2627
Codec<Vec3> VEC3S = Codec.either(Codec.DOUBLE, VEC3).xmap(either -> either.map(KMath::vec3, Function.identity()), v -> v.x == v.y && v.x == v.z ? Either.left(v.x) : Either.right(v));
2728
Codec<AABB> AABB = Codec.DOUBLE.listOf(6, 6).xmap(l -> new AABB(l.get(0), l.get(1), l.get(2), l.get(3), l.get(4), l.get(5)), v -> List.of(v.minX, v.minY, v.minZ, v.maxX, v.maxY, v.maxZ));

src/main/java/dev/latvian/mods/klib/codec/MCStreamCodecs.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import dev.latvian.mods.klib.math.KMath;
55
import dev.latvian.mods.klib.util.Empty;
66
import io.netty.buffer.ByteBuf;
7+
import net.minecraft.Util;
78
import net.minecraft.core.SectionPos;
89
import net.minecraft.core.registries.Registries;
910
import net.minecraft.nbt.CompoundTag;
@@ -20,6 +21,8 @@
2021
import net.minecraft.world.phys.Vec3;
2122

2223
public interface MCStreamCodecs {
24+
StreamCodec<ByteBuf, Util.OS> PLATFORM = KLibStreamCodecs.enumValue(Util.OS.values());
25+
2326
StreamCodec<ByteBuf, Vec3> VEC3 = new StreamCodec<>() {
2427
@Override
2528
public Vec3 decode(ByteBuf buf) {

src/main/java/dev/latvian/mods/klib/data/DataTypes.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import dev.latvian.mods.klib.util.ParsedEntitySelector;
3131
import dev.latvian.mods.klib.util.ScreenCorner;
3232
import dev.latvian.mods.klib.util.Timestamp;
33+
import net.minecraft.Util;
3334
import net.minecraft.commands.arguments.ComponentArgument;
3435
import net.minecraft.commands.arguments.DimensionArgument;
3536
import net.minecraft.commands.arguments.GameProfileArgument;
@@ -96,6 +97,7 @@ public interface DataTypes {
9697
DataType<Integer> TICKS = DataType.of(KLibCodecs.TICKS, ByteBufCodecs.VAR_INT, Integer.class);
9798
DataType<GameProfile> GAME_PROFILE = DataType.of(ExtraCodecs.GAME_PROFILE, ByteBufCodecs.GAME_PROFILE, GameProfile.class);
9899
DataType<ResourceKey<Level>> DIMENSION = DataType.of(MCCodecs.DIMENSION, MCStreamCodecs.DIMENSION, (Class) ResourceKey.class);
100+
DataType<Util.OS> PLATFORM = DataType.of(MCCodecs.PLATFORM, MCStreamCodecs.PLATFORM, Util.OS.class);
99101

100102
static void register() {
101103
DataType.register(ID.java("bool"), BOOL, BoolArgumentType::bool, BoolArgumentType::getBool);
@@ -129,6 +131,7 @@ static void register() {
129131
return profiles.isEmpty() ? null : profiles.iterator().next();
130132
});
131133
DataType.register(ID.mc("dimension"), DIMENSION, DimensionArgument::dimension, (ctx, name) -> ResourceKey.create(Registries.DIMENSION, ctx.getArgument(name, ResourceLocation.class)));
134+
DataType.register(ID.mc("platform"), PLATFORM);
132135

133136
DataType.register(KLibMod.id("color"), Color.DATA_TYPE);
134137
DataType.register(KLibMod.id("solid_color"), Color.SOLID_DATA_TYPE);

0 commit comments

Comments
 (0)