2018-09-13 12:03:28 -04:00
|
|
|
package noppes.npcs.client.gui.util;
|
|
|
|
|
|
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
|
|
|
import net.minecraft.client.gui.FontRenderer;
|
2024-01-08 00:16:44 -06:00
|
|
|
import net.minecraft.client.renderer.RenderHelper;
|
|
|
|
|
import net.minecraft.client.renderer.entity.RenderItem;
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
2018-09-13 12:03:28 -04:00
|
|
|
import net.minecraft.util.ResourceLocation;
|
|
|
|
|
import org.lwjgl.opengl.GL11;
|
2024-01-08 00:16:44 -06:00
|
|
|
import org.lwjgl.opengl.GL12;
|
2018-09-13 12:03:28 -04:00
|
|
|
|
|
|
|
|
public class GuiMenuSideButton extends GuiNpcButton{
|
|
|
|
|
public static final ResourceLocation resource = new ResourceLocation("customnpcs","textures/gui/menusidebutton.png");
|
2024-01-08 00:16:44 -06:00
|
|
|
public static final ResourceLocation resource2 = new ResourceLocation("customnpcs","textures/gui/menusidebutton2.png");
|
2018-09-13 12:03:28 -04:00
|
|
|
|
|
|
|
|
public boolean active;
|
2024-01-08 00:16:44 -06:00
|
|
|
public boolean rightSided;
|
|
|
|
|
public ItemStack renderStack;
|
2018-09-13 12:03:28 -04:00
|
|
|
|
2024-01-08 00:16:44 -06:00
|
|
|
public GuiMenuSideButton(int id, int x, int y, String s){
|
|
|
|
|
this(id, x, y, 200, 20, s);
|
2018-09-13 12:03:28 -04:00
|
|
|
}
|
|
|
|
|
|
2024-01-08 00:16:44 -06:00
|
|
|
public GuiMenuSideButton(int id, int x, int y, int width, int height, String s){
|
|
|
|
|
super(id, x, y, width, height, s);
|
2018-09-13 12:03:28 -04:00
|
|
|
active = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public int getHoverState(boolean flag){
|
|
|
|
|
if (active)
|
|
|
|
|
return 0;
|
2024-01-08 00:16:44 -06:00
|
|
|
return super.getHoverState(flag);
|
2018-09-13 12:03:28 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void drawButton(Minecraft minecraft, int i, int j){
|
|
|
|
|
if (!visible){
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
FontRenderer fontrenderer = minecraft.fontRenderer;
|
2024-01-08 00:16:44 -06:00
|
|
|
|
2018-09-13 12:03:28 -04:00
|
|
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
|
|
|
|
int width = this.width + (active?2:0);
|
|
|
|
|
field_146123_n = i >= xPosition && j >= yPosition && i < xPosition + width && j < yPosition + height;
|
|
|
|
|
int k = getHoverState(field_146123_n);
|
2024-01-08 00:16:44 -06:00
|
|
|
|
|
|
|
|
if (this.rightSided) {
|
|
|
|
|
minecraft.renderEngine.bindTexture(resource2);
|
|
|
|
|
drawTexturedModalRect(xPosition, yPosition, 197 - width, k * 22, width, height);
|
|
|
|
|
} else {
|
|
|
|
|
minecraft.renderEngine.bindTexture(resource);
|
|
|
|
|
drawTexturedModalRect(xPosition, yPosition, 0, k * 22, width, height);
|
|
|
|
|
}
|
2018-09-13 12:03:28 -04:00
|
|
|
mouseDragged(minecraft, i, j);
|
2024-01-08 00:16:44 -06:00
|
|
|
|
|
|
|
|
if (this.renderStack != null) {
|
|
|
|
|
RenderHelper.enableGUIStandardItemLighting();
|
|
|
|
|
this.zLevel = 100.0F;
|
|
|
|
|
RenderItem itemRenderer = RenderItem.getInstance();
|
|
|
|
|
itemRenderer.zLevel = 100.0F;
|
|
|
|
|
GL11.glEnable(GL11.GL_LIGHTING);
|
|
|
|
|
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
|
|
|
|
|
itemRenderer.renderItemAndEffectIntoGUI(minecraft.fontRenderer,
|
|
|
|
|
minecraft.renderEngine, this.renderStack, xPosition + 2, yPosition + height/2 - 8);
|
|
|
|
|
itemRenderer.renderItemOverlayIntoGUI(minecraft.fontRenderer,
|
|
|
|
|
minecraft.renderEngine, this.renderStack, xPosition + 2, yPosition + height/2 - 8);
|
|
|
|
|
GL11.glDisable(GL11.GL_LIGHTING);
|
|
|
|
|
GL11.glEnable(GL11.GL_BLEND);
|
|
|
|
|
itemRenderer.zLevel = 0.0F;
|
|
|
|
|
this.zLevel = 0.0F;
|
|
|
|
|
RenderHelper.disableStandardItemLighting();
|
|
|
|
|
}
|
2018-09-13 12:03:28 -04:00
|
|
|
|
|
|
|
|
String text = "";
|
|
|
|
|
float maxWidth = width * 0.75f;
|
|
|
|
|
if(fontrenderer.getStringWidth(displayString) > maxWidth){
|
|
|
|
|
for(int h = 0; h < displayString.length(); h++){
|
|
|
|
|
char c = displayString.charAt(h);
|
|
|
|
|
if(fontrenderer.getStringWidth(text + c) > maxWidth)
|
|
|
|
|
break;
|
|
|
|
|
text += c;
|
|
|
|
|
}
|
|
|
|
|
text += "...";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
text = displayString;
|
|
|
|
|
if (active){
|
|
|
|
|
drawCenteredString(fontrenderer, text, xPosition + width / 2, yPosition + (height - 8) / 2, 0xffffa0);
|
|
|
|
|
}
|
|
|
|
|
else if (field_146123_n){
|
|
|
|
|
drawCenteredString(fontrenderer, text, xPosition + width / 2, yPosition + (height - 8) / 2, 0xffffa0);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
drawCenteredString(fontrenderer, text, xPosition + width / 2, yPosition + (height - 8) / 2, 0xe0e0e0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void mouseDragged(Minecraft minecraft, int i, int j){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void mouseReleased(int i, int j){
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean mousePressed(Minecraft minecraft, int i, int j){
|
|
|
|
|
return !active && visible && field_146123_n;
|
|
|
|
|
}
|
|
|
|
|
}
|