package advancedsystemsmanager.flow.menus;
import advancedsystemsmanager.flow.FlowComponent;
import advancedsystemsmanager.flow.elements.ScrollVariable;
import advancedsystemsmanager.flow.elements.Variable;
import advancedsystemsmanager.client.gui.GuiManager;
import advancedsystemsmanager.reference.Names;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.nbt.NBTTagCompound;
import java.util.List;
public class MenuVariableLoop extends Menu
{
public static final String NBT_ELEMENT = "Element";
private ScrollVariable variables;
public MenuVariableLoop(FlowComponent parent)
{
super(parent);
variables = new ScrollVariable(parent);
}
@Override
public String getName()
{
return Names.LOOP_VARIABLE_MENU;
}
@SideOnly(Side.CLIENT)
@Override
public void draw(GuiManager gui, int mX, int mY)
{
variables.draw(gui, mX, mY);
}
@SideOnly(Side.CLIENT)
@Override
public void drawMouseOver(GuiManager gui, int mX, int mY)
{
variables.drawMouseOver(gui, mX, mY);
}
@Override
public void onClick(int mX, int mY, int button)
{
variables.onClick(mX, mY, button);
}
@Override
public void onRelease(int mX, int mY, int button, boolean isMenuOpen)
{
if (isMenuOpen)
{
variables.onRelease(mX, mY);
}
}
@Override
public boolean onKeyStroke(GuiManager gui, char c, int k)
{
return variables.onKeyStroke(gui, c, k);
}
@Override
public void copyFrom(Menu menu)
{
variables.variable = ((MenuVariableLoop)menu).variables.variable;
}
@Override
public void readFromNBT(NBTTagCompound nbtTagCompound, boolean pickup)
{
variables.variable = nbtTagCompound.getInteger(NBT_ELEMENT);
}
@Override
public void writeToNBT(NBTTagCompound nbtTagCompound, boolean pickup)
{
nbtTagCompound.setInteger(NBT_ELEMENT, variables.variable);
}
@Override
public void addErrors(List<String> errors)
{
Variable variable = getVariable();
if (variable == null || !getVariable().isValid())
{
errors.add(Names.LIST_NOT_DECLARED);
}
}
public Variable getVariable()
{
return getParent().getManager().getVariable(variables.variable);
}
}