package joshie.harvest.buildings.loader;
import com.google.gson.*;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.ResourceLocation;
import java.lang.reflect.Type;
public class StateAdapter implements JsonSerializer<IBlockState>, JsonDeserializer<IBlockState> {
@Override
public JsonElement serialize(IBlockState src, Type typeOfSrc, JsonSerializationContext context) {
String text = Block.REGISTRY.getNameForObject(src.getBlock()).toString().replace("minecraft:", "");
int meta = src.getBlock().getMetaFromState(src);
if (meta != 0) text = text + " " + meta;
return new JsonPrimitive(text);
}
@SuppressWarnings("deprecation")
@Override
public IBlockState deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
String[] state = json.getAsString().split(" ");
ResourceLocation block = new ResourceLocation(state[0]);
int meta = state.length == 2 ? Integer.parseInt(state[1]) : 0;
return Block.REGISTRY.getObject(block).getStateFromMeta(meta);
}
}