buildcraft/api/buildcraft/api/robots/ResourceId.java
2017-11-10 19:30:36 +01:00

46 lines
1.1 KiB
Java
Executable file

/**
* Copyright (c) 2011-2017, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* The BuildCraft API is distributed under the terms of the MIT License.
* Please check the contents of the license, which should be located
* as "LICENSE.API" in the BuildCraft source code distribution.
*/
package buildcraft.api.robots;
import net.minecraft.nbt.NBTTagCompound;
public abstract class ResourceId {
protected ResourceId() {
}
public void writeToNBT(NBTTagCompound nbt) {
nbt.setString("resourceName", RobotManager.getResourceIdName(getClass()));
}
protected void readFromNBT(NBTTagCompound nbt) {
}
public static ResourceId load(NBTTagCompound nbt) {
try {
Class<?> cls;
if (nbt.hasKey("class")) {
// Migration support for 6.4.x
cls = RobotManager.getResourceIdByLegacyClassName(nbt.getString("class"));
} else {
cls = RobotManager.getResourceIdByName(nbt.getString("resourceName"));
}
ResourceId id = (ResourceId) cls.newInstance();
id.readFromNBT(nbt);
return id;
} catch (Throwable e) {
e.printStackTrace();
}
return null;
}
}