EntityDataSerializers.java

net.minecraft.network.syncher.EntityDataSerializers

信息

  • 全限定名:net.minecraft.network.syncher.EntityDataSerializers
  • 类型:public class
  • 包:net.minecraft.network.syncher
  • 源码路径:src/main/java/net/minecraft/network/syncher/EntityDataSerializers.java
  • 起始行号:L51
  • 职责:

    TODO

字段/常量

  • SERIALIZERS

    • 类型: CrudeIncrementalIntIdentityHashBiMap<EntityDataSerializer<?>>
    • 修饰符: private static final
    • 源码定位: L52
    • 说明:

      TODO

  • BYTE

    • 类型: EntityDataSerializer<Byte>
    • 修饰符: public static final
    • 源码定位: L53
    • 说明:

      TODO

  • INT

    • 类型: EntityDataSerializer<Integer>
    • 修饰符: public static final
    • 源码定位: L54
    • 说明:

      TODO

  • LONG

    • 类型: EntityDataSerializer<Long>
    • 修饰符: public static final
    • 源码定位: L55
    • 说明:

      TODO

  • FLOAT

    • 类型: EntityDataSerializer<Float>
    • 修饰符: public static final
    • 源码定位: L56
    • 说明:

      TODO

  • STRING

    • 类型: EntityDataSerializer<String>
    • 修饰符: public static final
    • 源码定位: L57
    • 说明:

      TODO

  • COMPONENT

    • 类型: EntityDataSerializer<Component>
    • 修饰符: public static final
    • 源码定位: L58
    • 说明:

      TODO

  • OPTIONAL_COMPONENT

    • 类型: EntityDataSerializer<Optional<Component>>
    • 修饰符: public static final
    • 源码定位: L59
    • 说明:

      TODO

  • ITEM_STACK

    • 类型: EntityDataSerializer<ItemStack>
    • 修饰符: public static final public public
    • 源码定位: L62
    • 说明:

      TODO

  • BLOCK_STATE

    • 类型: EntityDataSerializer<BlockState>
    • 修饰符: public static final
    • 源码定位: L72
    • 说明:

      TODO

  • OPTIONAL_BLOCK_STATE_CODEC

    • 类型: StreamCodec<ByteBuf,Optional<BlockState>>
    • 修饰符: private static final public public
    • 源码定位: L73
    • 说明:

      TODO

  • OPTIONAL_BLOCK_STATE

    • 类型: EntityDataSerializer<Optional<BlockState>>
    • 修饰符: public static final
    • 源码定位: L87
    • 说明:

      TODO

  • BOOLEAN

    • 类型: EntityDataSerializer<Boolean>
    • 修饰符: public static final
    • 源码定位: L88
    • 说明:

      TODO

  • PARTICLE

    • 类型: EntityDataSerializer<ParticleOptions>
    • 修饰符: public static final
    • 源码定位: L89
    • 说明:

      TODO

  • PARTICLES

    • 类型: EntityDataSerializer<List<ParticleOptions>>
    • 修饰符: public static final
    • 源码定位: L90
    • 说明:

      TODO

  • ROTATIONS

    • 类型: EntityDataSerializer<Rotations>
    • 修饰符: public static final
    • 源码定位: L93
    • 说明:

      TODO

  • BLOCK_POS

    • 类型: EntityDataSerializer<BlockPos>
    • 修饰符: public static final
    • 源码定位: L94
    • 说明:

      TODO

  • OPTIONAL_BLOCK_POS

    • 类型: EntityDataSerializer<Optional<BlockPos>>
    • 修饰符: public static final
    • 源码定位: L95
    • 说明:

      TODO

  • DIRECTION

    • 类型: EntityDataSerializer<Direction>
    • 修饰符: public static final
    • 源码定位: L98
    • 说明:

      TODO

  • OPTIONAL_LIVING_ENTITY_REFERENCE

    • 类型: EntityDataSerializer<Optional<EntityReference<LivingEntity>>>
    • 修饰符: public static final
    • 源码定位: L99
    • 说明:

      TODO

  • OPTIONAL_GLOBAL_POS

    • 类型: EntityDataSerializer<Optional<GlobalPos>>
    • 修饰符: public static final
    • 源码定位: L102
    • 说明:

      TODO

  • VILLAGER_DATA

    • 类型: EntityDataSerializer<VillagerData>
    • 修饰符: public static final
    • 源码定位: L105
    • 说明:

      TODO

  • OPTIONAL_UNSIGNED_INT_CODEC

    • 类型: StreamCodec<ByteBuf,OptionalInt>
    • 修饰符: private static final public public
    • 源码定位: L106
    • 说明:

      TODO

  • OPTIONAL_UNSIGNED_INT

    • 类型: EntityDataSerializer<OptionalInt>
    • 修饰符: public static final
    • 源码定位: L116
    • 说明:

      TODO

  • POSE

    • 类型: EntityDataSerializer<Pose>
    • 修饰符: public static final
    • 源码定位: L117
    • 说明:

      TODO

  • CAT_VARIANT

    • 类型: EntityDataSerializer<Holder<CatVariant>>
    • 修饰符: public static final
    • 源码定位: L118
    • 说明:

      TODO

  • CAT_SOUND_VARIANT

    • 类型: EntityDataSerializer<Holder<CatSoundVariant>>
    • 修饰符: public static final
    • 源码定位: L119
    • 说明:

      TODO

  • CHICKEN_VARIANT

    • 类型: EntityDataSerializer<Holder<ChickenVariant>>
    • 修饰符: public static final
    • 源码定位: L120
    • 说明:

      TODO

  • CHICKEN_SOUND_VARIANT

    • 类型: EntityDataSerializer<Holder<ChickenSoundVariant>>
    • 修饰符: public static final
    • 源码定位: L121
    • 说明:

      TODO

  • COW_VARIANT

    • 类型: EntityDataSerializer<Holder<CowVariant>>
    • 修饰符: public static final
    • 源码定位: L124
    • 说明:

      TODO

  • COW_SOUND_VARIANT

    • 类型: EntityDataSerializer<Holder<CowSoundVariant>>
    • 修饰符: public static final
    • 源码定位: L125
    • 说明:

      TODO

  • WOLF_VARIANT

    • 类型: EntityDataSerializer<Holder<WolfVariant>>
    • 修饰符: public static final
    • 源码定位: L126
    • 说明:

      TODO

  • WOLF_SOUND_VARIANT

    • 类型: EntityDataSerializer<Holder<WolfSoundVariant>>
    • 修饰符: public static final
    • 源码定位: L127
    • 说明:

      TODO

  • FROG_VARIANT

    • 类型: EntityDataSerializer<Holder<FrogVariant>>
    • 修饰符: public static final
    • 源码定位: L128
    • 说明:

      TODO

  • PIG_VARIANT

    • 类型: EntityDataSerializer<Holder<PigVariant>>
    • 修饰符: public static final
    • 源码定位: L129
    • 说明:

      TODO

  • PIG_SOUND_VARIANT

    • 类型: EntityDataSerializer<Holder<PigSoundVariant>>
    • 修饰符: public static final
    • 源码定位: L130
    • 说明:

      TODO

  • ZOMBIE_NAUTILUS_VARIANT

    • 类型: EntityDataSerializer<Holder<ZombieNautilusVariant>>
    • 修饰符: public static final
    • 源码定位: L131
    • 说明:

      TODO

  • PAINTING_VARIANT

    • 类型: EntityDataSerializer<Holder<PaintingVariant>>
    • 修饰符: public static final
    • 源码定位: L134
    • 说明:

      TODO

  • ARMADILLO_STATE

    • 类型: EntityDataSerializer<Armadillo.ArmadilloState>
    • 修饰符: public static final
    • 源码定位: L135
    • 说明:

      TODO

  • SNIFFER_STATE

    • 类型: EntityDataSerializer<Sniffer.State>
    • 修饰符: public static final
    • 源码定位: L138
    • 说明:

      TODO

  • WEATHERING_COPPER_STATE

    • 类型: EntityDataSerializer<WeatheringCopper.WeatherState>
    • 修饰符: public static final
    • 源码定位: L139
    • 说明:

      TODO

  • COPPER_GOLEM_STATE

    • 类型: EntityDataSerializer<CopperGolemState>
    • 修饰符: public static final
    • 源码定位: L142
    • 说明:

      TODO

  • VECTOR3

    • 类型: EntityDataSerializer<Vector3fc>
    • 修饰符: public static final
    • 源码定位: L143
    • 说明:

      TODO

  • QUATERNION

    • 类型: EntityDataSerializer<Quaternionfc>
    • 修饰符: public static final
    • 源码定位: L144
    • 说明:

      TODO

  • RESOLVABLE_PROFILE

    • 类型: EntityDataSerializer<ResolvableProfile>
    • 修饰符: public static final
    • 源码定位: L145
    • 说明:

      TODO

  • HUMANOID_ARM

    • 类型: EntityDataSerializer<HumanoidArm>
    • 修饰符: public static final
    • 源码定位: L146
    • 说明:

      TODO

内部类/嵌套类型

构造器

private EntityDataSerializers() @ L160

  • 构造器名:EntityDataSerializers
  • 源码定位:L160
  • 修饰符:private

参数:

说明:

TODO

方法

下面的方法块按源码顺序生成。

public static void registerSerializer(EntityDataSerializer<?> serializer) @ L148

  • 方法名:registerSerializer
  • 源码定位:L148
  • 返回类型:void
  • 修饰符:public static

参数:

  • serializer: EntityDataSerializer<?>

说明:

TODO

public static EntityDataSerializer<?> getSerializer(int id) @ L152

  • 方法名:getSerializer
  • 源码定位:L152
  • 返回类型:EntityDataSerializer<?>
  • 修饰符:public static

参数:

  • id: int

说明:

TODO

public static int getSerializedId(EntityDataSerializer<?> serializer) @ L156

  • 方法名:getSerializedId
  • 源码定位:L156
  • 返回类型:int
  • 修饰符:public static

参数:

  • serializer: EntityDataSerializer<?>

说明:

TODO

代码

public class EntityDataSerializers {
    private static final CrudeIncrementalIntIdentityHashBiMap<EntityDataSerializer<?>> SERIALIZERS = CrudeIncrementalIntIdentityHashBiMap.create(16);
    public static final EntityDataSerializer<Byte> BYTE = EntityDataSerializer.forValueType(ByteBufCodecs.BYTE);
    public static final EntityDataSerializer<Integer> INT = EntityDataSerializer.forValueType(ByteBufCodecs.VAR_INT);
    public static final EntityDataSerializer<Long> LONG = EntityDataSerializer.forValueType(ByteBufCodecs.VAR_LONG);
    public static final EntityDataSerializer<Float> FLOAT = EntityDataSerializer.forValueType(ByteBufCodecs.FLOAT);
    public static final EntityDataSerializer<String> STRING = EntityDataSerializer.forValueType(ByteBufCodecs.STRING_UTF8);
    public static final EntityDataSerializer<Component> COMPONENT = EntityDataSerializer.forValueType(ComponentSerialization.TRUSTED_STREAM_CODEC);
    public static final EntityDataSerializer<Optional<Component>> OPTIONAL_COMPONENT = EntityDataSerializer.forValueType(
        ComponentSerialization.TRUSTED_OPTIONAL_STREAM_CODEC
    );
    public static final EntityDataSerializer<ItemStack> ITEM_STACK = new EntityDataSerializer<ItemStack>() {
        @Override
        public StreamCodec<? super RegistryFriendlyByteBuf, ItemStack> codec() {
            return ItemStack.OPTIONAL_STREAM_CODEC;
        }
 
        public ItemStack copy(ItemStack value) {
            return value.copy();
        }
    };
    public static final EntityDataSerializer<BlockState> BLOCK_STATE = EntityDataSerializer.forValueType(ByteBufCodecs.idMapper(Block.BLOCK_STATE_REGISTRY));
    private static final StreamCodec<ByteBuf, Optional<BlockState>> OPTIONAL_BLOCK_STATE_CODEC = new StreamCodec<ByteBuf, Optional<BlockState>>() {
        public void encode(ByteBuf output, Optional<BlockState> value) {
            if (value.isPresent()) {
                VarInt.write(output, Block.getId(value.get()));
            } else {
                VarInt.write(output, 0);
            }
        }
 
        public Optional<BlockState> decode(ByteBuf input) {
            int id = VarInt.read(input);
            return id == 0 ? Optional.empty() : Optional.of(Block.stateById(id));
        }
    };
    public static final EntityDataSerializer<Optional<BlockState>> OPTIONAL_BLOCK_STATE = EntityDataSerializer.forValueType(OPTIONAL_BLOCK_STATE_CODEC);
    public static final EntityDataSerializer<Boolean> BOOLEAN = EntityDataSerializer.forValueType(ByteBufCodecs.BOOL);
    public static final EntityDataSerializer<ParticleOptions> PARTICLE = EntityDataSerializer.forValueType(ParticleTypes.STREAM_CODEC);
    public static final EntityDataSerializer<List<ParticleOptions>> PARTICLES = EntityDataSerializer.forValueType(
        ParticleTypes.STREAM_CODEC.apply(ByteBufCodecs.list())
    );
    public static final EntityDataSerializer<Rotations> ROTATIONS = EntityDataSerializer.forValueType(Rotations.STREAM_CODEC);
    public static final EntityDataSerializer<BlockPos> BLOCK_POS = EntityDataSerializer.forValueType(BlockPos.STREAM_CODEC);
    public static final EntityDataSerializer<Optional<BlockPos>> OPTIONAL_BLOCK_POS = EntityDataSerializer.forValueType(
        BlockPos.STREAM_CODEC.apply(ByteBufCodecs::optional)
    );
    public static final EntityDataSerializer<Direction> DIRECTION = EntityDataSerializer.forValueType(Direction.STREAM_CODEC);
    public static final EntityDataSerializer<Optional<EntityReference<LivingEntity>>> OPTIONAL_LIVING_ENTITY_REFERENCE = EntityDataSerializer.forValueType(
        EntityReference.<LivingEntity>streamCodec().apply(ByteBufCodecs::optional)
    );
    public static final EntityDataSerializer<Optional<GlobalPos>> OPTIONAL_GLOBAL_POS = EntityDataSerializer.forValueType(
        GlobalPos.STREAM_CODEC.apply(ByteBufCodecs::optional)
    );
    public static final EntityDataSerializer<VillagerData> VILLAGER_DATA = EntityDataSerializer.forValueType(VillagerData.STREAM_CODEC);
    private static final StreamCodec<ByteBuf, OptionalInt> OPTIONAL_UNSIGNED_INT_CODEC = new StreamCodec<ByteBuf, OptionalInt>() {
        public OptionalInt decode(ByteBuf input) {
            int v = VarInt.read(input);
            return v == 0 ? OptionalInt.empty() : OptionalInt.of(v - 1);
        }
 
        public void encode(ByteBuf output, OptionalInt value) {
            VarInt.write(output, value.orElse(-1) + 1);
        }
    };
    public static final EntityDataSerializer<OptionalInt> OPTIONAL_UNSIGNED_INT = EntityDataSerializer.forValueType(OPTIONAL_UNSIGNED_INT_CODEC);
    public static final EntityDataSerializer<Pose> POSE = EntityDataSerializer.forValueType(Pose.STREAM_CODEC);
    public static final EntityDataSerializer<Holder<CatVariant>> CAT_VARIANT = EntityDataSerializer.forValueType(CatVariant.STREAM_CODEC);
    public static final EntityDataSerializer<Holder<CatSoundVariant>> CAT_SOUND_VARIANT = EntityDataSerializer.forValueType(CatSoundVariant.STREAM_CODEC);
    public static final EntityDataSerializer<Holder<ChickenVariant>> CHICKEN_VARIANT = EntityDataSerializer.forValueType(ChickenVariant.STREAM_CODEC);
    public static final EntityDataSerializer<Holder<ChickenSoundVariant>> CHICKEN_SOUND_VARIANT = EntityDataSerializer.forValueType(
        ChickenSoundVariant.STREAM_CODEC
    );
    public static final EntityDataSerializer<Holder<CowVariant>> COW_VARIANT = EntityDataSerializer.forValueType(CowVariant.STREAM_CODEC);
    public static final EntityDataSerializer<Holder<CowSoundVariant>> COW_SOUND_VARIANT = EntityDataSerializer.forValueType(CowSoundVariant.STREAM_CODEC);
    public static final EntityDataSerializer<Holder<WolfVariant>> WOLF_VARIANT = EntityDataSerializer.forValueType(WolfVariant.STREAM_CODEC);
    public static final EntityDataSerializer<Holder<WolfSoundVariant>> WOLF_SOUND_VARIANT = EntityDataSerializer.forValueType(WolfSoundVariant.STREAM_CODEC);
    public static final EntityDataSerializer<Holder<FrogVariant>> FROG_VARIANT = EntityDataSerializer.forValueType(FrogVariant.STREAM_CODEC);
    public static final EntityDataSerializer<Holder<PigVariant>> PIG_VARIANT = EntityDataSerializer.forValueType(PigVariant.STREAM_CODEC);
    public static final EntityDataSerializer<Holder<PigSoundVariant>> PIG_SOUND_VARIANT = EntityDataSerializer.forValueType(PigSoundVariant.STREAM_CODEC);
    public static final EntityDataSerializer<Holder<ZombieNautilusVariant>> ZOMBIE_NAUTILUS_VARIANT = EntityDataSerializer.forValueType(
        ZombieNautilusVariant.STREAM_CODEC
    );
    public static final EntityDataSerializer<Holder<PaintingVariant>> PAINTING_VARIANT = EntityDataSerializer.forValueType(PaintingVariant.STREAM_CODEC);
    public static final EntityDataSerializer<Armadillo.ArmadilloState> ARMADILLO_STATE = EntityDataSerializer.forValueType(
        Armadillo.ArmadilloState.STREAM_CODEC
    );
    public static final EntityDataSerializer<Sniffer.State> SNIFFER_STATE = EntityDataSerializer.forValueType(Sniffer.State.STREAM_CODEC);
    public static final EntityDataSerializer<WeatheringCopper.WeatherState> WEATHERING_COPPER_STATE = EntityDataSerializer.forValueType(
        WeatheringCopper.WeatherState.STREAM_CODEC
    );
    public static final EntityDataSerializer<CopperGolemState> COPPER_GOLEM_STATE = EntityDataSerializer.forValueType(CopperGolemState.STREAM_CODEC);
    public static final EntityDataSerializer<Vector3fc> VECTOR3 = EntityDataSerializer.forValueType(ByteBufCodecs.VECTOR3F);
    public static final EntityDataSerializer<Quaternionfc> QUATERNION = EntityDataSerializer.forValueType(ByteBufCodecs.QUATERNIONF);
    public static final EntityDataSerializer<ResolvableProfile> RESOLVABLE_PROFILE = EntityDataSerializer.forValueType(ResolvableProfile.STREAM_CODEC);
    public static final EntityDataSerializer<HumanoidArm> HUMANOID_ARM = EntityDataSerializer.forValueType(HumanoidArm.STREAM_CODEC);
 
    public static void registerSerializer(EntityDataSerializer<?> serializer) {
        SERIALIZERS.add(serializer);
    }
 
    public static @Nullable EntityDataSerializer<?> getSerializer(int id) {
        return SERIALIZERS.byId(id);
    }
 
    public static int getSerializedId(EntityDataSerializer<?> serializer) {
        return SERIALIZERS.getId(serializer);
    }
 
    private EntityDataSerializers() {
    }
 
    static {
        registerSerializer(BYTE);
        registerSerializer(INT);
        registerSerializer(LONG);
        registerSerializer(FLOAT);
        registerSerializer(STRING);
        registerSerializer(COMPONENT);
        registerSerializer(OPTIONAL_COMPONENT);
        registerSerializer(ITEM_STACK);
        registerSerializer(BOOLEAN);
        registerSerializer(ROTATIONS);
        registerSerializer(BLOCK_POS);
        registerSerializer(OPTIONAL_BLOCK_POS);
        registerSerializer(DIRECTION);
        registerSerializer(OPTIONAL_LIVING_ENTITY_REFERENCE);
        registerSerializer(BLOCK_STATE);
        registerSerializer(OPTIONAL_BLOCK_STATE);
        registerSerializer(PARTICLE);
        registerSerializer(PARTICLES);
        registerSerializer(VILLAGER_DATA);
        registerSerializer(OPTIONAL_UNSIGNED_INT);
        registerSerializer(POSE);
        registerSerializer(CAT_VARIANT);
        registerSerializer(CAT_SOUND_VARIANT);
        registerSerializer(COW_VARIANT);
        registerSerializer(COW_SOUND_VARIANT);
        registerSerializer(WOLF_VARIANT);
        registerSerializer(WOLF_SOUND_VARIANT);
        registerSerializer(FROG_VARIANT);
        registerSerializer(PIG_VARIANT);
        registerSerializer(PIG_SOUND_VARIANT);
        registerSerializer(CHICKEN_VARIANT);
        registerSerializer(CHICKEN_SOUND_VARIANT);
        registerSerializer(ZOMBIE_NAUTILUS_VARIANT);
        registerSerializer(OPTIONAL_GLOBAL_POS);
        registerSerializer(PAINTING_VARIANT);
        registerSerializer(SNIFFER_STATE);
        registerSerializer(ARMADILLO_STATE);
        registerSerializer(COPPER_GOLEM_STATE);
        registerSerializer(WEATHERING_COPPER_STATE);
        registerSerializer(VECTOR3);
        registerSerializer(QUATERNION);
        registerSerializer(RESOLVABLE_PROFILE);
        registerSerializer(HUMANOID_ARM);
    }
}

引用的其他类