package advancedsystemsmanager.flow.elements;
import advancedsystemsmanager.api.network.IPacketProvider;
import advancedsystemsmanager.client.gui.GuiManager;
import advancedsystemsmanager.helpers.CollisionHelper;
import advancedsystemsmanager.network.ASMPacket;
import advancedsystemsmanager.registry.ThemeHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.ArrayList;
import java.util.List;
public class RadioButtonList extends UpdateElement
{
public static final int RADIO_SIZE = 8;
public static final int RADIO_SRC_X = 90;
public static final int RADIO_SELECTED_SRC_X = 98;
public static final int RADIO_SRC_Y = 20;
public static final int RADIO_TEXT_X = 12;
public static final int RADIO_TEXT_Y = 2;
public List<RadioButton> radioButtonList;
public int selectedOption;
public RadioButtonList(IPacketProvider packetProvider)
{
super(packetProvider);
radioButtonList = new ArrayList<RadioButton>();
}
@SideOnly(Side.CLIENT)
public void draw(GuiManager gui, int mX, int mY)
{
for (int i = 0; i < radioButtonList.size(); i++)
{
RadioButton radioButton = radioButtonList.get(i);
if (radioButton.isVisible())
{
boolean selected = getSelectedOption() == i;
boolean mouseover = CollisionHelper.inBounds(radioButton.getX(), radioButton.getY(), RADIO_SIZE, RADIO_SIZE, mX, mY);
gui.drawColouredTexture(radioButton.getX(), radioButton.getY(), RADIO_SRC_X, RADIO_SRC_Y, RADIO_SIZE, RADIO_SIZE, ThemeHandler.theme.menus.radioButtons.getColour(selected, mouseover));
gui.drawColouredTexture(radioButton.getX(), radioButton.getY(), RADIO_SELECTED_SRC_X, RADIO_SRC_Y, RADIO_SIZE, RADIO_SIZE, ThemeHandler.theme.menus.radioButtons.getColour(selected, mouseover));
gui.drawString(radioButton.getText(), radioButton.getX() + RADIO_TEXT_X, radioButton.getY() + RADIO_TEXT_Y, 0.7F, 0x404040);
}
}
}
public int getSelectedOption()
{
return selectedOption;
}
public void setSelectedOption(int selectedOption)
{
this.selectedOption = selectedOption;
}
public void onClick(int mX, int mY, int button)
{
for (int i = 0; i < radioButtonList.size(); i++)
{
RadioButton radioButton = radioButtonList.get(i);
if (radioButton.isVisible() && CollisionHelper.inBounds(radioButton.getX(), radioButton.getY(), RADIO_SIZE, RADIO_SIZE, mX, mY) && getSelectedOption() != i)
{
updateSelectedOption(i);
break;
}
}
}
public void updateSelectedOption(int selectedOption)
{
setSelectedOption(selectedOption);
onUpdate();
}
public void add(RadioButton radioButton)
{
radioButtonList.add(radioButton);
}
public int size()
{
return radioButtonList.size();
}
@Override
public boolean writeData(ASMPacket packet)
{
packet.writeByte(getSelectedOption());
return true;
}
@Override
public boolean readData(ASMPacket packet)
{
setSelectedOption(packet.readByte());
return false;
}
}