package com.asteria.utility.json;
import java.util.Objects;
import com.asteria.game.item.Item;
import com.asteria.game.item.ItemNodeManager;
import com.asteria.game.item.ItemNodeStatic;
import com.asteria.game.item.ItemPolicy;
import com.asteria.game.location.Position;
import com.asteria.utility.JsonLoader;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
/**
* The {@link JsonLoader} implementation that loads all item nodes.
*
* @author lare96 <http://github.com/lare96>
*/
public final class ItemNodeLoader extends JsonLoader {
/**
* Creates a new {@link ItemNodeLoader}.
*/
public ItemNodeLoader() {
super("./data/json/items/item_nodes.json");
}
@Override
public void load(JsonObject reader, Gson builder) {
int id = reader.get("id").getAsInt();
int amount = reader.get("amount").getAsInt();
Position position = Objects.requireNonNull(builder.fromJson(reader.get("position"), Position.class));
ItemNodeManager.register(new ItemNodeStatic(new Item(id, amount), position, ItemPolicy.TIMEOUT));
}
}