103 lines
2.0 KiB
Java
103 lines
2.0 KiB
Java
|
package net.minecraft.src;
|
||
|
|
||
|
import java.io.DataInput;
|
||
|
import java.io.DataOutput;
|
||
|
import java.io.IOException;
|
||
|
|
||
|
public abstract class NBTBase {
|
||
|
private String key = null;
|
||
|
|
||
|
abstract void writeTagContents(DataOutput var1) throws IOException;
|
||
|
|
||
|
abstract void readTagContents(DataInput var1) throws IOException;
|
||
|
|
||
|
public abstract byte getType();
|
||
|
|
||
|
public String getKey() {
|
||
|
return this.key == null ? "" : this.key;
|
||
|
}
|
||
|
|
||
|
public NBTBase setKey(String var1) {
|
||
|
this.key = var1;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
public static NBTBase readNamedTag(DataInput var0) throws IOException {
|
||
|
byte var1 = var0.readByte();
|
||
|
if(var1 == 0) {
|
||
|
return new NBTTagEnd();
|
||
|
} else {
|
||
|
NBTBase var2 = createTagOfType(var1);
|
||
|
var2.key = var0.readUTF();
|
||
|
var2.readTagContents(var0);
|
||
|
return var2;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static void writeNamedTag(NBTBase var0, DataOutput var1) throws IOException {
|
||
|
var1.writeByte(var0.getType());
|
||
|
if(var0.getType() != 0) {
|
||
|
var1.writeUTF(var0.getKey());
|
||
|
var0.writeTagContents(var1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static NBTBase createTagOfType(byte var0) {
|
||
|
switch(var0) {
|
||
|
case 0:
|
||
|
return new NBTTagEnd();
|
||
|
case 1:
|
||
|
return new NBTTagByte();
|
||
|
case 2:
|
||
|
return new NBTTagShort();
|
||
|
case 3:
|
||
|
return new NBTTagInt();
|
||
|
case 4:
|
||
|
return new NBTTagLong();
|
||
|
case 5:
|
||
|
return new NBTTagFloat();
|
||
|
case 6:
|
||
|
return new NBTTagDouble();
|
||
|
case 7:
|
||
|
return new NBTTagByteArray();
|
||
|
case 8:
|
||
|
return new NBTTagString();
|
||
|
case 9:
|
||
|
return new NBTTagList();
|
||
|
case 10:
|
||
|
return new NBTTagCompound();
|
||
|
default:
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static String getTagName(byte var0) {
|
||
|
switch(var0) {
|
||
|
case 0:
|
||
|
return "TAG_End";
|
||
|
case 1:
|
||
|
return "TAG_Byte";
|
||
|
case 2:
|
||
|
return "TAG_Short";
|
||
|
case 3:
|
||
|
return "TAG_Int";
|
||
|
case 4:
|
||
|
return "TAG_Long";
|
||
|
case 5:
|
||
|
return "TAG_Float";
|
||
|
case 6:
|
||
|
return "TAG_Double";
|
||
|
case 7:
|
||
|
return "TAG_Byte_Array";
|
||
|
case 8:
|
||
|
return "TAG_String";
|
||
|
case 9:
|
||
|
return "TAG_List";
|
||
|
case 10:
|
||
|
return "TAG_Compound";
|
||
|
default:
|
||
|
return "UNKNOWN";
|
||
|
}
|
||
|
}
|
||
|
}
|