mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-15 02:12:42 -04:00
fix inconsistencies in Network NBT serialization
This commit is contained in:
parent
fe89946fdc
commit
97a1d11db8
@ -597,8 +597,10 @@ object Network extends api.detail.NetworkAPI {
|
||||
if (nbt.hasKey("data" + i)) {
|
||||
nbt.getTag("data" + i) match {
|
||||
case boolean: NBTTagByte => Boolean.box(boolean.func_150290_f == 1)
|
||||
case short: NBTTagShort => Short.box(short.func_150289_e)
|
||||
case integer: NBTTagInt => Int.box(integer.func_150287_d)
|
||||
case long: NBTTagLong => Long.box(long.func_150291_c)
|
||||
case float: NBTTagFloat => Float.box(float.func_150288_h)
|
||||
case double: NBTTagDouble => Double.box(double.func_150286_g)
|
||||
case string: NBTTagString => string.func_150285_a_(): AnyRef
|
||||
case array: NBTTagByteArray => array.func_150292_c
|
||||
@ -728,13 +730,13 @@ object Network extends api.detail.NetworkAPI {
|
||||
}
|
||||
values.length * 2 + values.foldLeft(0)((acc, arg) => {
|
||||
acc + (arg match {
|
||||
case null | Unit | None => 4
|
||||
case _: java.lang.Boolean => 4
|
||||
case _: java.lang.Byte => 4
|
||||
case _: java.lang.Short => 4
|
||||
case null | Unit | None => 1
|
||||
case _: java.lang.Boolean => 1
|
||||
case _: java.lang.Byte => 2 /* FIXME: Bytes are currently sent as shorts */
|
||||
case _: java.lang.Short => 2
|
||||
case _: java.lang.Integer => 4
|
||||
case _: java.lang.Long => 8
|
||||
case _: java.lang.Float => 8
|
||||
case _: java.lang.Float => 4
|
||||
case _: java.lang.Double => 8
|
||||
case value: java.lang.String => value.length max 1
|
||||
case value: Array[Byte] => value.length max 1
|
||||
@ -756,8 +758,11 @@ object Network extends api.detail.NetworkAPI {
|
||||
for (i <- data.indices) data(i) match {
|
||||
case null | Unit | None =>
|
||||
case value: java.lang.Boolean => nbt.setBoolean("data" + i, value)
|
||||
case value: java.lang.Byte => nbt.setShort("data" + i, value)
|
||||
case value: java.lang.Short => nbt.setShort("data" + i, value)
|
||||
case value: java.lang.Integer => nbt.setInteger("data" + i, value)
|
||||
case value: java.lang.Long => nbt.setLong("data" + i, value)
|
||||
case value: java.lang.Float => nbt.setFloat("data" + i, value)
|
||||
case value: java.lang.Double => nbt.setDouble("data" + i, value)
|
||||
case value: java.lang.String => nbt.setString("data" + i, value)
|
||||
case value: Array[Byte] => nbt.setByteArray("data" + i, value)
|
||||
|
Loading…
x
Reference in New Issue
Block a user