package me.loganb1max.minions.model;

import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

import java.util.Set;
import java.util.UUID;

public interface Minion {

	String getName();

	UUID getId();

	UUID getOwner();

	String getOwnerName();

	Location getLocation();

	double getEnergy();

	int getLevel();

	Set<Block> getLinkedBlocks();

	double gainEnergy(final double amount);

	double consumeEnergy(final double amount);

	void spawn(final Location location);

	void despawn(final Player player);

	ItemStack getIcon();

	void tick();

	void pickup(final Player player);

}
