The primary use for Codecs is to serialize java objects to some serialized type, such as a JsonElement or a Tag, and to deserialize an serialized object back to its proper java type. This is accomplished with <code>Codec#encodeStart</code> and <code>Codec#parse</code>, respectively. Given a Codec<SomeJavaType> and a DynamicOps<SomeSerializedType>, we can convert instances of SomeJavaType to instances of SomeSerializedType and back.
+
The primary use for Codecs is to serialize java objects to some serialized type, such as a JsonElement or a Tag, and to deserialize a serialized object back to its proper java type. This is accomplished with <code>Codec#encodeStart</code> and <code>Codec#parse</code>, respectively. Given a Codec<SomeJavaType> and a DynamicOps<SomeSerializedType>, we can convert instances of SomeJavaType to instances of SomeSerializedType and back.
Each of these methods take a [[DynamicOps]] instance and an instance of the object we are serializing or deserializing, and returns a DataResult:
Each of these methods take a [[DynamicOps]] instance and an instance of the object we are serializing or deserializing, and returns a DataResult:
Line 18:
Line 18:
// deserialize some Tag instance back to a proper java object
// deserialize some Tag instance back to a proper java object
−
DataResult<SomeJavaType> result = someCodec.parse(NBTOps.INSTANCE, someTag );
+
DataResult<SomeJavaType> result = someCodec.parse(NBTOps.INSTANCE, someTag);
// serialize some java object to a JsonElement
// serialize some java object to a JsonElement
Line 92:
Line 92:
As previously mentioned, we can use <code>Codec.INT</code> for the integer codec, and <code>Registry.ITEM</code> for the Item codec. We don't have a builtin codec for list-of-blockpos, but we can use BlockPos.CODEC to create one.
As previously mentioned, we can use <code>Codec.INT</code> for the integer codec, and <code>Registry.ITEM</code> for the Item codec. We don't have a builtin codec for list-of-blockpos, but we can use BlockPos.CODEC to create one.
−
== Lists ==
+
==Lists==
The <code>Codec#listOf</code> instance method can be used to generate a codec for a List from an existing codec:
The <code>Codec#listOf</code> instance method can be used to generate a codec for a List from an existing codec: