package net.kennux.cubicworld.gui;
import java.util.List;
import net.kennux.cubicworld.gui.overlay.OverlayData;
import net.kennux.cubicworld.gui.skin.AGuiSkin;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector2;
public interface IGuiOverlay
{
/**
* Returns the current focus element set by setFocusElement.
*
* @return
*/
public IGuiElement getFocusElement();
/**
* Returns the gui element at the given position.
* Perform an intersection check for all gui bounding boxes in here.
*
* @param screenPosition
* @return
*/
public List<IGuiElement> getGuiElementsAtPosition(Vector2 screenPosition);
/**
* @param overlayData
* the overlayData to set
*/
public OverlayData getOverlayData();
/**
* Returns true if the current focus element is not null.
*
* @return
*/
public boolean hasFocusElement();
/**
* Renders this gui element.
* Will get called every frame.
*
* @param spriteBatch
*/
public void render(SpriteBatch spriteBatch, BitmapFont font, AGuiSkin skin);
/**
* Sets the current focus element.
*
* @param element
*/
public void setFocusElement(IGuiElement element);
/**
* Returns a reference to the overlay data.
* If you modify the overlay data use the setOverlayData() function.
*/
public void setOverlayData(OverlayData overlayData);
/**
* Updates this gui element.
* Will get called every frame.
*/
public void update();
}