package advancedsystemsmanager.flow.menus;
import advancedsystemsmanager.flow.FlowComponent;
import advancedsystemsmanager.flow.elements.RadioButton;
import advancedsystemsmanager.flow.elements.RadioButtonList;
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;
public class MenuCamouflageInside extends MenuCamouflageAdvanced
{
public static final int RADIO_BUTTON_X = 5;
public static final int RADIO_BUTTON_Y = 5;
public static final int RADIO_BUTTON_SPACING = 12;
public static final String NBT_SETTING = "Setting";
public RadioButtonList radioButtons;
public MenuCamouflageInside(FlowComponent parent)
{
super(parent);
radioButtons = new RadioButtonList(getParent());
for (int i = 0; i < InsideSetType.values().length; i++)
{
radioButtons.add(new RadioButton(RADIO_BUTTON_X, RADIO_BUTTON_Y + i * RADIO_BUTTON_SPACING, InsideSetType.values()[i].name));
}
}
@Override
public String getName()
{
return Names.INSIDE_MENU;
}
@SideOnly(Side.CLIENT)
@Override
public void onClick(int mX, int mY, int button)
{
radioButtons.onClick(mX, mY, button);
}
@Override
public void copyFrom(Menu menu)
{
radioButtons.setSelectedOption(((MenuCamouflageInside)menu).radioButtons.getSelectedOption());
}
@Override
public void readFromNBT(NBTTagCompound nbtTagCompound, boolean pickup)
{
radioButtons.setSelectedOption(nbtTagCompound.getByte(NBT_SETTING));
}
@Override
public void writeToNBT(NBTTagCompound nbtTagCompound, boolean pickup)
{
nbtTagCompound.setByte(NBT_SETTING, (byte)radioButtons.getSelectedOption());
}
@SideOnly(Side.CLIENT)
@Override
public void draw(GuiManager gui, int mX, int mY)
{
super.draw(gui, mX, mY);
radioButtons.draw(gui, mX, mY);
}
@Override
public String getWarningText()
{
return Names.INSIDE_WARNING;
}
public InsideSetType getCurrentType()
{
return InsideSetType.values()[radioButtons.getSelectedOption()];
}
public enum InsideSetType
{
ONLY_OUTSIDE(Names.CAMOUFLAGE_ONLY_OUTSIDE),
ONLY_INSIDE(Names.CAMOUFLAGE_ONLY_INSIDE),
// OPPOSITE(Names.CAMOUFLAGE_OPPOSITE_INSIDE),
SAME(Names.CAMOUFLAGE_SAME_INSIDE),
NOTHING(Names.CAMOUFLAGE_NO_UPDATE);
public String name;
InsideSetType(String name)
{
this.name = name;
}
}
}