// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.worldgen.loader.util;

import javax.annotation.Nonnull;
import com.google.gson.JsonObject;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import java.nio.file.Path;
import com.hypixel.hytale.procedurallib.json.SeedString;
import com.hypixel.hytale.math.vector.Vector2d;
import com.hypixel.hytale.server.worldgen.SeedStringResource;
import com.hypixel.hytale.procedurallib.json.JsonLoader;

public class Vector2dJsonLoader extends JsonLoader<SeedStringResource, Vector2d>
{
    public Vector2dJsonLoader(final SeedString<SeedStringResource> seed, final Path dataFolder, final JsonElement json) {
        super(seed, dataFolder, json);
    }
    
    @Nonnull
    @Override
    public Vector2d load() {
        if (this.json == null || this.json.isJsonNull()) {
            return new Vector2d();
        }
        if (this.json.isJsonArray()) {
            final JsonArray array = this.json.getAsJsonArray();
            if (array.isEmpty()) {
                return new Vector2d();
            }
            if (array.size() == 1) {
                final double value = array.get(0).getAsDouble();
                return new Vector2d(value, value);
            }
            final double x = array.get(0).getAsDouble();
            final double y = array.get(1).getAsDouble();
            return new Vector2d(x, y);
        }
        else {
            if (this.json.isJsonObject()) {
                final JsonObject object = this.json.getAsJsonObject();
                final double x = object.get("X").getAsDouble();
                final double y = object.get("Y").getAsDouble();
                return new Vector2d(x, y);
            }
            return new Vector2d();
        }
    }
    
    public interface Constants
    {
        public static final String KEY_X = "X";
        public static final String KEY_Y = "Y";
    }
}
