package codechicken.multipart import codechicken.lib.data.MCDataOutput import codechicken.lib.data.MCDataInput /** * Class for reading and writing ids, widening the carrier data type as necessary */ class IDWriter { var write:(MCDataOutput, Int)=>Unit = _ var read:(MCDataInput)=>Int = _ def setMax(i:Int) { val l = i.toLong & 0xFFFFFFFF if(l > 0xFFFF) { write = (data, i) => data.writeInt(i) read = (data) => data.readInt() } else if(l > 0xFF) { write = (data, i) => data.writeShort(i) read = (data) => data.readUShort() } else { write = (data, i) => data.writeByte(i) read = (data) => data.readUByte() } } }