package com.jummit.nethermap;

import java.util.Objects;

import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.FilledMapItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.map.MapState;
import net.minecraft.world.World;

public class CreationHeight implements Height {

    Height fallback;
    World world;
    Entity entity;
    MapState state;

    @Override
    public int get() {
        PlayerEntity player = (PlayerEntity)(entity);
        for (int slot = 0; slot < player.getInventory().size(); slot++) {
        ItemStack item = player.getInventory().getStack(slot);
            if (item.getItem() instanceof FilledMapItem && FilledMapItem.getMapState(item, entity.getWorld()) == state) {
                return Objects.requireNonNull(item.getNbt()).getInt("yLevel");
            }
        }
        return fallback.get();
    }

    public CreationHeight(World world, Entity entity, MapState state, Height fallback) {
        this.fallback = fallback;
        this.world = world;
        this.entity = entity;
        this.state = state;
    }
}