// • ▌ ▄ ·.  ▄▄▄·  ▄▄ • ▪   ▄▄· ▄▄▄▄·  ▄▄▄·  ▐▄▄▄  ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀  █▪▀▀▀ ▀  ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀  ▀  ▀ ▀▀  █▪ ▀▀▀
//      Magicbane Emulator Project © 2013 - 2022
//                www.magicbane.com

package engine.objects;

import engine.math.Vector3fImmutable;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

import java.util.HashMap;


public class ItemTemplate {

    // Global template lookup
    public static HashMap<Integer, ItemTemplate> itemTemplates = new HashMap<>();

    // Template Properties
    public String obj_name = "";
    public Vector3fImmutable obj_scale = new Vector3fImmutable();
    public int obj_render_object;
    public HashMap<String, Float> combat_attack_resist = new HashMap<>();

    public ItemTemplate(JSONObject jsonObject) {

        // Reading a String

        obj_name = (String) jsonObject.get("obj_name");

        // Reading floats from an array

        JSONArray scaleData = (JSONArray) jsonObject.get("obj_scale");
        obj_scale = new Vector3fImmutable(((Double) scaleData.get(0)).floatValue(), ((Double) scaleData.get(1)).floatValue(),
                ((Double) scaleData.get(2)).floatValue());

        // Reading an integer value

        obj_render_object = ((Long) jsonObject.get("obj_render_object")).intValue();

        // Reading a hashmap of floats

        JSONObject resist_json = (JSONObject) jsonObject.get("combat_attack_resist");

        for (Object key : resist_json.keySet()) {
            Float resist = (Float) resist_json.get(key);
            combat_attack_resist.put((String) key, resist);
        }

    }


}