Newer
Older
ultramine_private_regions / src / main / java / org / ultramine / gui / ElementCheckBox.java
@vlad20012 vlad20012 on 29 Mar 2016 2 KB Initial commit
package org.ultramine.gui;

import org.lwjgl.opengl.GL11;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.util.ResourceLocation;

@SideOnly(Side.CLIENT)
public class ElementCheckBox implements IGuiElement
{
	protected static final ResourceLocation texture = new ResourceLocation("privreg:textures/gui/icons.png");
	
	protected final int id;
	protected final int xRel;
	protected final int yRel;
	
	public int xPos;
	public int yPos;
	
	private IActionListener actionListener;
	
	public boolean enabled = true;
	protected boolean isChecked = false;
	
	private String annotation;
	
	public ElementCheckBox(int id, int x, int y)
	{
		this.id = id;
		this.xRel = x;
		this.yRel = y;
	}
	
	public ElementCheckBox(int id, int x, int y, String str)
	{
		this(id, x, y);
		annotation = str;
	}
	
	@Override
	public void init(IActionListener container, int guiWidth, int guiHeight, int guiLeft, int guiTop) 
	{
		actionListener = container;
		xPos = xRel + guiLeft;
		yPos = yRel + guiTop;
	}

	@Override
	public void draw(Minecraft mc, int mx, int my)
	{
		mc.renderEngine.bindTexture(texture);
		GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
		if(isChecked())
			GuiUtils.drawTexturedModalRect(xPos, yPos, 16, 0, 8, 9);
		else
			GuiUtils.drawTexturedModalRect(xPos, yPos, 8, 0, 8, 9);
		if(annotation != null) mc.fontRenderer.drawString(annotation, xPos + 10, yPos, 0x000000);//0x404040);
	}

	@Override
	public void keyTyped(char c, int code)
	{
		
	}

	@Override
	public void mouseClicked(int mx, int my, int buttonCode)
	{
		if(buttonCode == 0 && mousePressed(mx, my))
		{
			Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));

			setChecked(!isChecked());
			if(id >= 0)
			{
				actionListener.actionPerformed(id, this, isChecked());
			}
			stateChanged();
		}
	}

	@Override
	public void update()
	{
		
	}
	
	public boolean mousePressed(int par2, int par3)
	{
		return this.enabled && par2 >= this.xPos && par3 >= this.yPos && par2 < this.xPos + 8 && par3 < this.yPos + 9;
	}
	
	public ElementCheckBox setChecked(boolean ch)
	{
		isChecked = ch;
		return this;
	}

	public boolean isChecked()
	{
		return isChecked;
	}
	
	protected void stateChanged()
	{
		
	}
}