Files
2025-03-06 01:53:19 -05:00

138 lines
2.9 KiB
Java

package noppes.npcs.api.gui;
import net.minecraft.nbt.NBTTagCompound;
/**
* Base interface for all custom GUI components.
* Defines common methods for position, appearance, and NBT serialization.
*/
public interface ICustomGuiComponent {
/**
* Returns the unique ID of this component.
*
* @return the component ID.
*/
int getID();
/**
* Sets the unique ID for this component.
*
* @param id the new ID.
* @return this component instance.
*/
ICustomGuiComponent setID(int id);
/**
* Returns the x position of this component.
*
* @return the x position.
*/
int getPosX();
/**
* Returns the y position of this component.
*
* @return the y position.
*/
int getPosY();
/**
* Sets the position of the component.
*
* @param x the new x position.
* @param y the new y position.
* @return this component instance.
*/
ICustomGuiComponent setPos(int x, int y);
/**
* Checks if the component has hover text.
*
* @return true if hover text is set.
*/
boolean hasHoverText();
/**
* Returns the hover text as an array of strings.
*
* @return the hover text.
*/
String[] getHoverText();
/**
* Sets the hover text with a single line.
*
* @param hoverText the hover text.
* @return this component instance.
*/
ICustomGuiComponent setHoverText(String hoverText);
/**
* Sets the hover text with multiple lines.
*
* @param hoverTextLines the hover text lines.
* @return this component instance.
*/
ICustomGuiComponent setHoverText(String[] hoverTextLines);
/**
* Returns the text color.
*
* @return the color as an integer.
*/
int getColor();
/**
* Sets the text color.
*
* @param color the color.
* @return this component instance.
*/
ICustomGuiComponent setColor(int color);
/**
* Returns the component's transparency (alpha).
*
* @return the alpha value.
*/
float getAlpha();
/**
* Sets the component's transparency (alpha).
*
* @param alpha the alpha value.
*/
void setAlpha(float alpha);
/**
* Returns the component's rotation.
*
* @return the rotation angle.
*/
float getRotation();
/**
* Sets the component's rotation.
*
* @param rotation the rotation angle.
*/
void setRotation(float rotation);
/**
* Serializes the component to an NBT compound.
*
* @param nbt the NBT compound to populate.
* @return the NBT compound.
*/
NBTTagCompound toNBT(NBTTagCompound nbt);
/**
* Deserializes the component from an NBT compound.
*
* @param nbt the NBT compound.
* @return this component instance.
*/
ICustomGuiComponent fromNBT(NBTTagCompound nbt);
}