fix some gui issues
This commit is contained in:
parent
03fbf90a68
commit
16889889d4
19 changed files with 217 additions and 106 deletions
|
@ -49,6 +49,7 @@ import client.gui.character.GuiChar;
|
||||||
import client.gui.container.GuiContainer;
|
import client.gui.container.GuiContainer;
|
||||||
import client.gui.container.GuiInventory;
|
import client.gui.container.GuiInventory;
|
||||||
import client.gui.element.Area;
|
import client.gui.element.Area;
|
||||||
|
import client.gui.element.InventoryButton;
|
||||||
import client.gui.ingame.GuiGameOver;
|
import client.gui.ingame.GuiGameOver;
|
||||||
import client.gui.ingame.GuiRename;
|
import client.gui.ingame.GuiRename;
|
||||||
import client.init.DimensionMapping;
|
import client.init.DimensionMapping;
|
||||||
|
@ -264,8 +265,7 @@ public class Client implements IThreadListener {
|
||||||
|
|
||||||
public static class FontFunction implements EnumFunction<Font> {
|
public static class FontFunction implements EnumFunction<Font> {
|
||||||
public void apply(EnumVar cv, Font value) {
|
public void apply(EnumVar cv, Font value) {
|
||||||
Font.unload();
|
Font.select(value);
|
||||||
Font.load(value);
|
|
||||||
Client.CLIENT.rescale();
|
Client.CLIENT.rescale();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -558,6 +558,8 @@ public class Client implements IThreadListener {
|
||||||
private int scaleVar = 2;
|
private int scaleVar = 2;
|
||||||
@Variable(name = "gui_scale_items", category = CVarCategory.GUI, display = "Gegenstände vergrößern", callback = ItemRedrawFunction.class)
|
@Variable(name = "gui_scale_items", category = CVarCategory.GUI, display = "Gegenstände vergrößern", callback = ItemRedrawFunction.class)
|
||||||
public boolean scaleItems = true;
|
public boolean scaleItems = true;
|
||||||
|
@Variable(name = "gui_scale_hotbar", category = CVarCategory.GUI, display = "Leiste vergrößern")
|
||||||
|
public boolean scaleHotbar = true;
|
||||||
@Variable(name = "phy_sensitivity", category = CVarCategory.INPUT, min = 0.01f, max = 10.0f, display = "Mausempfindlichkeit", precision = 2, unit = "%")
|
@Variable(name = "phy_sensitivity", category = CVarCategory.INPUT, min = 0.01f, max = 10.0f, display = "Mausempfindlichkeit", precision = 2, unit = "%")
|
||||||
private float sensitivity = 1.0f;
|
private float sensitivity = 1.0f;
|
||||||
@Variable(name = "gui_dclick_delay", category = CVarCategory.INPUT, min = 150, max = 750, display = "Doppelklick bei", unit = "ms")
|
@Variable(name = "gui_dclick_delay", category = CVarCategory.INPUT, min = 150, max = 750, display = "Doppelklick bei", unit = "ms")
|
||||||
|
@ -751,8 +753,9 @@ public class Client implements IThreadListener {
|
||||||
public void refreshResources()
|
public void refreshResources()
|
||||||
{
|
{
|
||||||
this.logFeed("Lade Texturen neu");
|
this.logFeed("Lade Texturen neu");
|
||||||
Font.unload();
|
Font.unloadFonts();
|
||||||
Font.load(this.font);
|
Font.loadFonts();
|
||||||
|
Font.select(this.font);
|
||||||
this.textureManager.onReload();
|
this.textureManager.onReload();
|
||||||
this.modelManager.onReload();
|
this.modelManager.onReload();
|
||||||
this.renderItem.onReload();
|
this.renderItem.onReload();
|
||||||
|
@ -1073,10 +1076,13 @@ public class Client implements IThreadListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
int selected = this.player.getSelectedIndex();
|
int selected = this.player.getSelectedIndex();
|
||||||
|
int scale = this.scaleHotbar ? 2 : 1;
|
||||||
for(int n = 0; n < 9; n++) {
|
for(int n = 0; n < 9; n++) {
|
||||||
int x = this.fbX / 2 - 180 + n * 40 + 4;
|
int x = this.fbX / 2 - 90 * scale + n * 20 * scale + 2 * scale;
|
||||||
int y = this.fbY - 40;
|
int y = this.fbY - 20 * scale;
|
||||||
Drawing.drawRectBorder(x - 1, y - 1, 36, 36, 0xff6f6f6f, selected == n ? 0xffffffff : 0xff000000, 0xffafafaf, 0xff4f4f4f);
|
if(selected == n)
|
||||||
|
Drawing.drawRect(x - scale * 2, y - scale * 2, 20 * scale, 20 * scale, 0xffffffff);
|
||||||
|
InventoryButton.drawButton(x - scale, y - scale, 18 * scale, 18 * scale, this.scaleHotbar);
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemStack itemstack = this.player.getHeldItem();
|
ItemStack itemstack = this.player.getHeldItem();
|
||||||
|
@ -1116,8 +1122,8 @@ public class Client implements IThreadListener {
|
||||||
int color = potion.getColor();
|
int color = potion.getColor();
|
||||||
String name = (potion.isBadEffect() ? Color.ORANGE : Color.ACID) + effect.getEffectName();
|
String name = (potion.isBadEffect() ? Color.ORANGE : Color.ACID) + effect.getEffectName();
|
||||||
String desc = Color.NEON + effect.getDurationString();
|
String desc = Color.NEON + effect.getDurationString();
|
||||||
Drawing.drawRectBorder(x, y, 250, Font.YGLYPH + 6, 0xff000000, 0xff202020, 0xffcfcfcf, 0xff6f6f6f);
|
Drawing.drawRectBorder(x, y, 250, Font.HEIGHT + 6, 0xff000000, 0xff202020, 0xffcfcfcf, 0xff6f6f6f);
|
||||||
Drawing.drawGradient(x + 2, y + 2, effect.isInfinite() ? 246 : ((int)(246.0f * ((float)effect.getRemaining() / (float)effect.getDuration()))), Font.YGLYPH + 2, color | 0xff000000, Util.mixColor(color | 0xff000000, 0xff000000));
|
Drawing.drawGradient(x + 2, y + 2, effect.isInfinite() ? 246 : ((int)(246.0f * ((float)effect.getRemaining() / (float)effect.getDuration()))), Font.HEIGHT + 2, color | 0xff000000, Util.mixColor(color | 0xff000000, 0xff000000));
|
||||||
Drawing.drawText(name, x + 4, y + 3, 0xffffffff);
|
Drawing.drawText(name, x + 4, y + 3, 0xffffffff);
|
||||||
Drawing.drawTextRight(desc, x + 250 - 4, y + 3, 0xffffffff);
|
Drawing.drawTextRight(desc, x + 250 - 4, y + 3, 0xffffffff);
|
||||||
y += 24;
|
y += 24;
|
||||||
|
@ -1206,12 +1212,12 @@ public class Client implements IThreadListener {
|
||||||
Drawing.drawRectBorder(this.fbX / 2 - 180, 20, 360, 60, 0xff6f6f6f, 0xff000000, 0xffafafaf, 0xff4f4f4f);
|
Drawing.drawRectBorder(this.fbX / 2 - 180, 20, 360, 60, 0xff6f6f6f, 0xff000000, 0xffafafaf, 0xff4f4f4f);
|
||||||
Drawing.drawTextCentered(desc, this.fbX / 2, 24, 0xffffffff);
|
Drawing.drawTextCentered(desc, this.fbX / 2, 24, 0xffffffff);
|
||||||
if(line1 != null)
|
if(line1 != null)
|
||||||
Drawing.drawTextCentered(line1, this.fbX / 2, 80 - 4 - Font.YGLYPH * 2 - 2, 0xffffffff);
|
Drawing.drawTextCentered(line1, this.fbX / 2, 80 - 4 - Font.HEIGHT * 2 - 2, 0xffffffff);
|
||||||
if(line2 != null)
|
if(line2 != null)
|
||||||
Drawing.drawTextCentered(line2, this.fbX / 2, 80 - 4 - Font.YGLYPH, 0xffffffff);
|
Drawing.drawTextCentered(line2, this.fbX / 2, 80 - 4 - Font.HEIGHT, 0xffffffff);
|
||||||
if(bar >= 0.0f) {
|
if(bar >= 0.0f) {
|
||||||
Drawing.drawRect(this.fbX / 2 - 140, 24 + Font.YGLYPH + 2, 280, 6, 0xff202020, 0xffcfcfcf, 0xff3f3f3f);
|
Drawing.drawRect(this.fbX / 2 - 140, 24 + Font.HEIGHT + 2, 280, 6, 0xff202020, 0xffcfcfcf, 0xff3f3f3f);
|
||||||
Drawing.drawGradient(this.fbX / 2 - 140 + 1, 24 + Font.YGLYPH + 2 + 1, (int)(278.0f * bar), 4, color | 0xff000000, Util.mixColor(color | 0xff000000, 0xff000000));
|
Drawing.drawGradient(this.fbX / 2 - 140 + 1, 24 + Font.HEIGHT + 2 + 1, (int)(278.0f * bar), 4, color | 0xff000000, Util.mixColor(color | 0xff000000, 0xff000000));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1225,7 +1231,9 @@ public class Client implements IThreadListener {
|
||||||
GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
|
GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
ItemRenderer.enableGUIStandardItemLighting();
|
ItemRenderer.enableGUIStandardItemLighting();
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glTranslatef((float)(this.fbX / 2 - 180 + 4 + 1), (float)(this.fbY - 40 + 1), 0.0f);
|
int scale = this.scaleHotbar ? 2 : 1;
|
||||||
|
GL11.glTranslatef((float)(this.fbX / 2 - 90 * scale + 2 * scale), (float)(this.fbY - 20 * scale), 0.0f);
|
||||||
|
if(this.scaleHotbar)
|
||||||
GL11.glScalef(2.0f, 2.0f, 2.0f);
|
GL11.glScalef(2.0f, 2.0f, 2.0f);
|
||||||
|
|
||||||
for(int index = 0; index < 9; ++index) {
|
for(int index = 0; index < 9; ++index) {
|
||||||
|
@ -1264,11 +1272,12 @@ public class Client implements IThreadListener {
|
||||||
GlState.enableBlend();
|
GlState.enableBlend();
|
||||||
GlState.disableDepth();
|
GlState.disableDepth();
|
||||||
if(this.world != null && this.open == null && this.player != null && this.viewEntity == this.player) {
|
if(this.world != null && this.open == null && this.player != null && this.viewEntity == this.player) {
|
||||||
|
int scale = this.scaleHotbar ? 2 : 1;
|
||||||
for(int index = 0; index < 9; ++index) {
|
for(int index = 0; index < 9; ++index) {
|
||||||
ItemStack itemstack = this.player.getStackInSlot(index);
|
ItemStack itemstack = this.player.getStackInSlot(index);
|
||||||
if(itemstack != null) {
|
if(itemstack != null) {
|
||||||
GuiContainer.renderItemOverlay(itemstack,
|
GuiContainer.renderItemOverlay(itemstack,
|
||||||
this.fbX / 2 - 180 + 4 + 1 + index * 40, this.fbY - 40 + 1, null, index == this.player.getSelectedIndex() ? this.controller.getUseCooldown() : 0, this.controller.getUseCooldownMax(), 2);
|
this.fbX / 2 - 90 * scale + 2 * scale + index * 20 * scale, this.fbY - 20 * scale, null, index == this.player.getSelectedIndex() ? this.controller.getUseCooldown() : 0, this.controller.getUseCooldownMax(), scale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1357,7 +1366,7 @@ public class Client implements IThreadListener {
|
||||||
}
|
}
|
||||||
Drawing.drawText(sb.toString(), x1 + 240, y1, 0xffffffff);
|
Drawing.drawText(sb.toString(), x1 + 240, y1, 0xffffffff);
|
||||||
if(str != null) {
|
if(str != null) {
|
||||||
y1 = Font.YGLYPH * 10;
|
y1 = Font.HEIGHT * 10;
|
||||||
Drawing.drawText(str, x1, y1, 0xffffffff);
|
Drawing.drawText(str, x1, y1, 0xffffffff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2246,7 +2255,8 @@ public class Client implements IThreadListener {
|
||||||
this.registerDebug();
|
this.registerDebug();
|
||||||
System.gc();
|
System.gc();
|
||||||
System.gc();
|
System.gc();
|
||||||
Font.load(this.font);
|
Font.loadFonts();
|
||||||
|
Font.select(this.font);
|
||||||
GlState.enableBlend();
|
GlState.enableBlend();
|
||||||
GlState.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
GlState.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||||
this.initConsole();
|
this.initConsole();
|
||||||
|
@ -2318,7 +2328,7 @@ public class Client implements IThreadListener {
|
||||||
Log.SOUND.info("Audiogerät geschlossen");
|
Log.SOUND.info("Audiogerät geschlossen");
|
||||||
Log.flushLog();
|
Log.flushLog();
|
||||||
this.save();
|
this.save();
|
||||||
Font.unload();
|
Font.unloadFonts();
|
||||||
Window.destroyWindow();
|
Window.destroyWindow();
|
||||||
Log.SYSTEM.info("Beendet.");
|
Log.SYSTEM.info("Beendet.");
|
||||||
}
|
}
|
||||||
|
@ -3032,7 +3042,7 @@ public class Client implements IThreadListener {
|
||||||
if(size > 0) {
|
if(size > 0) {
|
||||||
long fade = 1000000L * (long)this.hudFadeout;
|
long fade = 1000000L * (long)this.hudFadeout;
|
||||||
int bg = (this.hudOpacity << 24) | 0x000000;
|
int bg = (this.hudOpacity << 24) | 0x000000;
|
||||||
y = up ? y - Font.YGLYPH : y;
|
y = up ? y - Font.HEIGHT : y;
|
||||||
for(Iterator<Message> iter = log.iterator(); iter.hasNext();) {
|
for(Iterator<Message> iter = log.iterator(); iter.hasNext();) {
|
||||||
Message msg = iter.next();
|
Message msg = iter.next();
|
||||||
if((this.tmr_current - msg.time()) <= fade || (log == this.chat && this.chatPermanent)) {
|
if((this.tmr_current - msg.time()) <= fade || (log == this.chat && this.chatPermanent)) {
|
||||||
|
@ -3042,7 +3052,7 @@ public class Client implements IThreadListener {
|
||||||
Drawing.drawTextboxRight(msg.message(), x, y, bg);
|
Drawing.drawTextboxRight(msg.message(), x, y, bg);
|
||||||
else
|
else
|
||||||
Drawing.drawTextboxCentered(msg.message(), x, y, bg);
|
Drawing.drawTextboxCentered(msg.message(), x, y, bg);
|
||||||
y += up ? -(Font.YGLYPH) : Font.YGLYPH;
|
y += up ? -(Font.HEIGHT) : Font.HEIGHT;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
iter.remove();
|
iter.remove();
|
||||||
|
@ -3083,7 +3093,7 @@ public class Client implements IThreadListener {
|
||||||
}
|
}
|
||||||
Drawing.drawTextRight(color + (ping < 10000 ? String.format("%d", ping) + "ms" : String.format("%.1f", ((float)ping) / 1000.0f) + "s"), x - 18, y, 0xffffffff);
|
Drawing.drawTextRight(color + (ping < 10000 ? String.format("%d", ping) + "ms" : String.format("%.1f", ((float)ping) / 1000.0f) + "s"), x - 18, y, 0xffffffff);
|
||||||
for(int z = 0; z < bars; z++) {
|
for(int z = 0; z < bars; z++) {
|
||||||
Drawing.drawRect(x - 15 + z * 2, y + 8 - z + Font.YGLYPH - 10 + (Font.YGLYPH < 8 ? 1 : 0), 1, z + 1, 0xff000000 | color.color);
|
Drawing.drawRect(x - 15 + z * 2, y + 8 - z + Font.HEIGHT - 10 + (Font.HEIGHT < 8 ? 1 : 0), 1, z + 1, 0xff000000 | color.color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3097,8 +3107,8 @@ public class Client implements IThreadListener {
|
||||||
int by = 0;
|
int by = 0;
|
||||||
for(Entry<String, Integer> elem : this.playerList.entrySet()) {
|
for(Entry<String, Integer> elem : this.playerList.entrySet()) {
|
||||||
int x = this.fbX / 2 - (w * 300) / 2 + bx * 300;
|
int x = this.fbX / 2 - (w * 300) / 2 + bx * 300;
|
||||||
int y = 10 + by * (Font.YGLYPH + 2);
|
int y = 10 + by * (Font.HEIGHT + 2);
|
||||||
Drawing.drawGradient(x, y, 300, Font.YGLYPH + 2, 0x7f404040, 0x7f101010, 0x7f5f5f5f, 0x7f000000);
|
Drawing.drawGradient(x, y, 300, Font.HEIGHT + 2, 0x7f404040, 0x7f101010, 0x7f5f5f5f, 0x7f000000);
|
||||||
Drawing.drawText(elem.getKey(), x + 4, y + 1, 0xffffffff);
|
Drawing.drawText(elem.getKey(), x + 4, y + 1, 0xffffffff);
|
||||||
drawPing(x + 300 - 4, y + 1, elem.getValue());
|
drawPing(x + 300 - 4, y + 1, elem.getValue());
|
||||||
if(++bx >= w) {
|
if(++bx >= w) {
|
||||||
|
|
|
@ -19,20 +19,22 @@ public enum Font implements Identifyable, Displayable {
|
||||||
MEDIUM("medium", "Mittel", 10, 12),
|
MEDIUM("medium", "Mittel", 10, 12),
|
||||||
LARGE("large", "Groß", 12, 14);
|
LARGE("large", "Groß", 12, 14);
|
||||||
|
|
||||||
public static final FontChar[] SIZES = new FontChar[256];
|
public static FontChar[] SIZES;
|
||||||
|
public static int WIDTH;
|
||||||
public static int XGLYPH = 12;
|
public static int HEIGHT;
|
||||||
public static int YGLYPH = 14;
|
private static int TEXTURE;
|
||||||
|
private static Font SELECTED;
|
||||||
private static int texture;
|
|
||||||
|
|
||||||
|
private final FontChar[] sizes = new FontChar[256];
|
||||||
private final String name;
|
private final String name;
|
||||||
private final String display;
|
private final String display;
|
||||||
private final int width;
|
private final int width;
|
||||||
private final int height;
|
private final int height;
|
||||||
|
|
||||||
|
private int texture;
|
||||||
|
|
||||||
public static void bindTexture() {
|
public static void bindTexture() {
|
||||||
GlState.bindTexture(texture);
|
GlState.bindTexture(TEXTURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int stride(int width, int height, int x, int y, int c) {
|
private static int stride(int width, int height, int x, int y, int c) {
|
||||||
|
@ -85,9 +87,10 @@ public enum Font implements Identifyable, Displayable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void load(Font font) {
|
public static void loadFonts() {
|
||||||
XGLYPH = font.width;
|
for(Font font : values()) {
|
||||||
YGLYPH = font.height;
|
int width = font.width;
|
||||||
|
int height = font.height;
|
||||||
BufferedImage img = null;
|
BufferedImage img = null;
|
||||||
try {
|
try {
|
||||||
img = TextureUtil.readImage(FileUtils.getResource("textures/font_" + font.name + ".png"));
|
img = TextureUtil.readImage(FileUtils.getResource("textures/font_" + font.name + ".png"));
|
||||||
|
@ -98,25 +101,50 @@ public enum Font implements Identifyable, Displayable {
|
||||||
catch(IOException e) {
|
catch(IOException e) {
|
||||||
Log.IO.error(e, "Konnte Font-Textur nicht laden");
|
Log.IO.error(e, "Konnte Font-Textur nicht laden");
|
||||||
}
|
}
|
||||||
if(img != null && (img.getWidth() != XGLYPH * 16 || img.getHeight() != YGLYPH * 16)) {
|
if(img != null && (img.getWidth() != width * 16 || img.getHeight() != height * 16)) {
|
||||||
Log.IO.error("Konnte Font-Textur nicht laden: Größe ist nicht %dx%d", XGLYPH * 16, YGLYPH * 16);
|
Log.IO.error("Konnte Font-Textur nicht laden: Größe ist nicht %dx%d", width * 16, height * 16);
|
||||||
img = null;
|
img = null;
|
||||||
}
|
}
|
||||||
if(img == null)
|
if(img == null)
|
||||||
img = new BufferedImage(XGLYPH * 16, YGLYPH * 16, BufferedImage.TYPE_INT_ARGB);
|
img = new BufferedImage(width * 16, height * 16, BufferedImage.TYPE_INT_ARGB);
|
||||||
int[] data = new int[XGLYPH * 16 * YGLYPH * 16];
|
int[] data = new int[width * 16 * height * 16];
|
||||||
img.getRGB(0, 0, XGLYPH * 16, YGLYPH * 16, data, 0, XGLYPH * 16);
|
img.getRGB(0, 0, width * 16, height * 16, data, 0, width * 16);
|
||||||
calculate(data, SIZES, XGLYPH, YGLYPH, 0);
|
calculate(data, font.sizes, width, height, 0);
|
||||||
texture = GL11.glGenTextures();
|
font.texture = GL11.glGenTextures();
|
||||||
TextureUtil.uploadImage(texture, img);
|
TextureUtil.uploadImage(font.texture, img);
|
||||||
Log.RENDER.debug("Font-Textur wurde mit ID #%d geladen", texture);
|
Log.RENDER.debug("Font-Textur wurde mit ID #%d geladen", font.texture);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void unload() {
|
public static void select(Font font) {
|
||||||
if(texture != 0) {
|
WIDTH = font.width;
|
||||||
GL11.glDeleteTextures(texture);
|
HEIGHT = font.height;
|
||||||
Log.RENDER.debug("Font-Textur mit ID #%d wurde gelöscht", texture);
|
TEXTURE = font.texture;
|
||||||
texture = 0;
|
SIZES = font.sizes;
|
||||||
|
SELECTED = font;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void set(Font font) {
|
||||||
|
WIDTH = font.width;
|
||||||
|
HEIGHT = font.height;
|
||||||
|
TEXTURE = font.texture;
|
||||||
|
SIZES = font.sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void unset() {
|
||||||
|
WIDTH = SELECTED.width;
|
||||||
|
HEIGHT = SELECTED.height;
|
||||||
|
TEXTURE = SELECTED.texture;
|
||||||
|
SIZES = SELECTED.sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void unloadFonts() {
|
||||||
|
for(Font font : values()) {
|
||||||
|
if(font.texture != 0) {
|
||||||
|
GL11.glDeleteTextures(font.texture);
|
||||||
|
Log.RENDER.debug("Font-Textur mit ID #%d wurde gelöscht", font.texture);
|
||||||
|
font.texture = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,4 +162,12 @@ public enum Font implements Identifyable, Displayable {
|
||||||
public String getDisplay() {
|
public String getDisplay() {
|
||||||
return this.display;
|
return this.display;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getWidth() {
|
||||||
|
return this.width;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHeight() {
|
||||||
|
return this.height;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,12 +158,12 @@ public class GuiConnect extends GuiList<GuiConnect.ServerInfo> implements Button
|
||||||
(this.keypair != null ? "Pubkey " + this.keyDigest : "") + (this.keypair != null && !this.password.isEmpty() ? " + " : "") + (!this.password.isEmpty() ? "Passwort" : ""),
|
(this.keypair != null ? "Pubkey " + this.keyDigest : "") + (this.keypair != null && !this.password.isEmpty() ? " + " : "") + (!this.password.isEmpty() ? "Passwort" : ""),
|
||||||
x + width - 2, y, 0xffffffff);
|
x + width - 2, y, 0xffffffff);
|
||||||
Drawing.drawText(this.address + Color.GRAY + " Port " + Color.RESET + this.port + (this.enforceEncryption ? Color.GRAY + ", nur verschlüsselt" : ""),
|
Drawing.drawText(this.address + Color.GRAY + " Port " + Color.RESET + this.port + (this.enforceEncryption ? Color.GRAY + ", nur verschlüsselt" : ""),
|
||||||
x + 2, y + height - Font.YGLYPH * 2, 0xffb0b0b0);
|
x + 2, y + height - Font.HEIGHT * 2, 0xffb0b0b0);
|
||||||
if(!this.access.isEmpty())
|
if(!this.access.isEmpty())
|
||||||
Drawing.drawTextRight((this.keypair != null || !this.password.isEmpty() ? "+ " : "") + "Server-Passwort", x + width - 2, y + height - Font.YGLYPH * 2, 0xffb0b0b0);
|
Drawing.drawTextRight((this.keypair != null || !this.password.isEmpty() ? "+ " : "") + "Server-Passwort", x + width - 2, y + height - Font.HEIGHT * 2, 0xffb0b0b0);
|
||||||
Drawing.drawText("Zuletzt verbunden: " + (this.lastConnected == -1L ? "nie" : DATE_FORMAT.format(new Date(this.lastConnected))), x + 2, y + height - Font.YGLYPH, 0xffb0b0b0);
|
Drawing.drawText("Zuletzt verbunden: " + (this.lastConnected == -1L ? "nie" : DATE_FORMAT.format(new Date(this.lastConnected))), x + 2, y + height - Font.HEIGHT, 0xffb0b0b0);
|
||||||
if(this.serverDigest != null)
|
if(this.serverDigest != null)
|
||||||
Drawing.drawTextRight("Server-ID: " + this.serverDigest, x + width - 2, y + height - Font.YGLYPH, 0xffb0b0b0);
|
Drawing.drawTextRight("Server-ID: " + this.serverDigest, x + width - 2, y + height - Font.HEIGHT, 0xffb0b0b0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ public class GuiMenu extends Gui {
|
||||||
for(int z = 0; z < 64; z++) {
|
for(int z = 0; z < 64; z++) {
|
||||||
Drawing.drawText("Hax!", GuiMenu.this.rand.zrange(Math.max(1, this.gm.fbX - width)) +
|
Drawing.drawText("Hax!", GuiMenu.this.rand.zrange(Math.max(1, this.gm.fbX - width)) +
|
||||||
(int)(ExtMath.sin(((float)(GuiMenu.this.ticks + GuiMenu.this.rand.zrange(256)) + this.gm.getTickFraction()) / 100.0f * (float)Math.PI * 2.0f) * 16.0f),
|
(int)(ExtMath.sin(((float)(GuiMenu.this.ticks + GuiMenu.this.rand.zrange(256)) + this.gm.getTickFraction()) / 100.0f * (float)Math.PI * 2.0f) * 16.0f),
|
||||||
GuiMenu.this.rand.zrange(Math.max(1, this.gm.fbY - Font.YGLYPH)) +
|
GuiMenu.this.rand.zrange(Math.max(1, this.gm.fbY - Font.HEIGHT)) +
|
||||||
(int)(ExtMath.sin(((float)(GuiMenu.this.ticks + GuiMenu.this.rand.zrange(256)) + this.gm.getTickFraction()) / 100.0f * (float)Math.PI * 2.0f) * 16.0f),
|
(int)(ExtMath.sin(((float)(GuiMenu.this.ticks + GuiMenu.this.rand.zrange(256)) + this.gm.getTickFraction()) / 100.0f * (float)Math.PI * 2.0f) * 16.0f),
|
||||||
0xff0000ff | (GuiMenu.this.rand.zrange(256) << 16));
|
0xff0000ff | (GuiMenu.this.rand.zrange(256) << 16));
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,7 @@ public class GuiChar extends GuiList<GuiChar.SkinEntry>
|
||||||
Drawing.drawText(str, x + 64 + 3, y, 0xff000000 | (this.charinfo == null ?
|
Drawing.drawText(str, x + 64 + 3, y, 0xff000000 | (this.charinfo == null ?
|
||||||
0xffffff : this.charinfo.color1 | this.charinfo.color2));
|
0xffffff : this.charinfo.color1 | this.charinfo.color2));
|
||||||
if(this.charinfo != null)
|
if(this.charinfo != null)
|
||||||
Drawing.drawTextRight(this.charinfo.skin, x + width - 2, y + height - Font.YGLYPH, 0xffc0c0c0);
|
Drawing.drawTextRight(this.charinfo.skin, x + width - 2, y + height - Font.HEIGHT, 0xffc0c0c0);
|
||||||
|
|
||||||
GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
|
GlState.color(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class GuiCharacters extends GuiList<GuiCharacters.CharacterEntry> impleme
|
||||||
String.format(Color.NEON + "%s " + Color.GRAY + "bei " + Color.ACID + "%d" + Color.GRAY + ", " + Color.ACID + "%d" + Color.GRAY + ", " + Color.ACID + "%d",
|
String.format(Color.NEON + "%s " + Color.GRAY + "bei " + Color.ACID + "%d" + Color.GRAY + ", " + Color.ACID + "%d" + Color.GRAY + ", " + Color.ACID + "%d",
|
||||||
character.dim(), character.pos().getX(), character.pos().getY(), character.pos().getZ());
|
character.dim(), character.pos().getX(), character.pos().getY(), character.pos().getZ());
|
||||||
Drawing.drawText(str, x + 3, y, 0xffffffff);
|
Drawing.drawText(str, x + 3, y, 0xffffffff);
|
||||||
Drawing.drawText(pos, x + 3, y + height - Font.YGLYPH, 0xffffffff);
|
Drawing.drawText(pos, x + 3, y + height - Font.HEIGHT, 0xffffffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void select(boolean dclick, int mx, int my)
|
public void select(boolean dclick, int mx, int my)
|
||||||
|
|
|
@ -16,6 +16,8 @@ import client.gui.Gui;
|
||||||
import client.gui.element.ActButton;
|
import client.gui.element.ActButton;
|
||||||
import client.gui.element.ButtonCallback;
|
import client.gui.element.ButtonCallback;
|
||||||
import client.gui.element.Field;
|
import client.gui.element.Field;
|
||||||
|
import client.gui.element.FontLabel;
|
||||||
|
import client.gui.element.FontMultiLabel;
|
||||||
import client.gui.element.InventoryButton;
|
import client.gui.element.InventoryButton;
|
||||||
import client.gui.element.Label;
|
import client.gui.element.Label;
|
||||||
import client.gui.element.MultiLabel;
|
import client.gui.element.MultiLabel;
|
||||||
|
@ -197,7 +199,7 @@ public abstract class GuiContainer extends Gui
|
||||||
public Label label(String text, int x, int y) {
|
public Label label(String text, int x, int y) {
|
||||||
x = x * this.container_scale + this.container_x;
|
x = x * this.container_scale + this.container_x;
|
||||||
y = y * this.container_scale + this.container_y;
|
y = y * this.container_scale + this.container_y;
|
||||||
return this.add(new Label(x, y, 300, 0, text, true));
|
return this.add(new FontLabel(x, y + 10 * this.container_scale, 300, this.container_scale > 1 ? Font.MEDIUM : Font.SMALL, text, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void rect(int x, int y, int width, int height, int color) {
|
public void rect(int x, int y, int width, int height, int color) {
|
||||||
|
@ -209,7 +211,7 @@ public abstract class GuiContainer extends Gui
|
||||||
}
|
}
|
||||||
|
|
||||||
public InventoryButton slot(int x, int y, int w, int h) {
|
public InventoryButton slot(int x, int y, int w, int h) {
|
||||||
return this.add(new InventoryButton(this.container_x + x * this.container_scale, this.container_y + y * this.container_scale, w * this.container_scale, h * this.container_scale));
|
return this.add(new InventoryButton(this.container_x + x * this.container_scale, this.container_y + y * this.container_scale, w * this.container_scale, h * this.container_scale, this.container_scale > 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActButton button(int x, int y, int w, int h, ButtonCallback callback, String text) {
|
public ActButton button(int x, int y, int w, int h, ButtonCallback callback, String text) {
|
||||||
|
@ -279,12 +281,12 @@ public abstract class GuiContainer extends Gui
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(this.gm.itemCheat) {
|
if(this.gm.itemCheat) {
|
||||||
this.cheatLabel = this.add(new Label(this.cheatX, this.cheatY, this.cheatWidth * 18, "", true));
|
this.cheatLabel = this.add(new FontLabel(this.cheatX, this.cheatY, this.cheatWidth * 18, Font.SMALL, "", true));
|
||||||
this.cheatDesc = this.add(new MultiLabel(this.cheatX, this.cheatY + this.cheatHeight * 18 + 20 * ((CheatTab.values().length + (this.cheatWidth - 1)) / this.cheatWidth) + 4 + 18, this.cheatWidth * 18, 60, "Vorsicht: Schummeln\nwird mit Keule bestraft!!\n(Halte Strg beim Klick\nfür vollen Stapel)"));
|
this.cheatDesc = this.add(new FontMultiLabel(this.cheatX, this.cheatY + this.cheatHeight * 18 + 20 * ((CheatTab.values().length + (this.cheatWidth - 1)) / this.cheatWidth) + 4 + 18, this.cheatWidth * 18, 60, Font.SMALL, "Vorsicht: Schummeln\nwird mit Keule bestraft!!\n(Halte Strg beim Klick\nfür vollen Stapel)"));
|
||||||
this.cheatSearch = this.add(new Field(this.cheatX, this.cheatY + this.cheatHeight * 18 + 20 * ((CheatTab.values().length + (this.cheatWidth - 1)) / this.cheatWidth) + 4, this.cheatWidth * 18, 0, 128, null, ""));
|
this.cheatSearch = this.add(new Field(this.cheatX, this.cheatY + this.cheatHeight * 18 + 20 * ((CheatTab.values().length + (this.cheatWidth - 1)) / this.cheatWidth) + 4, this.cheatWidth * 18, 0, 128, null, ""));
|
||||||
this.cheatLast = "";
|
this.cheatLast = "";
|
||||||
for(CheatTab tab : CheatTab.values()) {
|
for(CheatTab tab : CheatTab.values()) {
|
||||||
this.add(new InventoryButton(this.cheatX + 18 * (tab.getIndex() % this.cheatWidth), this.cheatY + this.cheatHeight * 18 + 4 + 20 * (tab.getIndex() / this.cheatWidth), 18, 18));
|
this.add(new InventoryButton(this.cheatX + 18 * (tab.getIndex() % this.cheatWidth), this.cheatY + this.cheatHeight * 18 + 4 + 20 * (tab.getIndex() / this.cheatWidth), 18, 18, false));
|
||||||
}
|
}
|
||||||
this.setCurrentTab(selectedTab);
|
this.setCurrentTab(selectedTab);
|
||||||
}
|
}
|
||||||
|
@ -882,7 +884,9 @@ public abstract class GuiContainer extends Gui
|
||||||
{
|
{
|
||||||
s = Color.RED + formatAmount(stack.getSize());
|
s = Color.RED + formatAmount(stack.getSize());
|
||||||
}
|
}
|
||||||
Drawing.drawTextRight(s, xPosition + scale * 16, yPosition + scale * 16 + 1 - Font.YGLYPH, 0xffffffff);
|
Font.set(scale > 1 ? Font.SMALL : Font.TINY);
|
||||||
|
Drawing.drawTextRight(s, xPosition + scale * 16, yPosition + scale * 16 + 1 - Font.HEIGHT, 0xffffffff);
|
||||||
|
Font.unset();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stack.isItemDamaged())
|
if (stack.isItemDamaged())
|
||||||
|
|
|
@ -39,10 +39,10 @@ public class Area extends Textbox {
|
||||||
|
|
||||||
public void scroll(int scr_x, int scr_y, int x, int y, boolean ctrl, boolean shift) {
|
public void scroll(int scr_x, int scr_y, int x, int y, boolean ctrl, boolean shift) {
|
||||||
if(scr_y != 0) {
|
if(scr_y != 0) {
|
||||||
int limit = Font.YGLYPH + this.textHeight - (this.size_y - (this.margin_y1 + this.margin_y2));
|
int limit = Font.HEIGHT + this.textHeight - (this.size_y - (this.margin_y1 + this.margin_y2));
|
||||||
limit = ExtMath.clampi(limit, 0, 0x7fffffff);
|
limit = ExtMath.clampi(limit, 0, 0x7fffffff);
|
||||||
int prev = this.text_y;
|
int prev = this.text_y;
|
||||||
this.text_y += (scr_y < 0 ? -1 : 1) * (ctrl ? 1 : Font.YGLYPH) * this.gm.scrollLines * (shift ? 10 : 1);
|
this.text_y += (scr_y < 0 ? -1 : 1) * (ctrl ? 1 : Font.HEIGHT) * this.gm.scrollLines * (shift ? 10 : 1);
|
||||||
this.text_y = ExtMath.clampi(this.text_y, -limit, 0);
|
this.text_y = ExtMath.clampi(this.text_y, -limit, 0);
|
||||||
if(this.sel_start >= 0)
|
if(this.sel_start >= 0)
|
||||||
this.cursorY += (this.text_y - prev);
|
this.cursorY += (this.text_y - prev);
|
||||||
|
@ -101,7 +101,7 @@ public class Area extends Textbox {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void gui_text_clamp_scroll() {
|
protected void gui_text_clamp_scroll() {
|
||||||
int limit = Font.YGLYPH + this.textHeight - (this.size_y - (this.margin_y1 + this.margin_y2));
|
int limit = Font.HEIGHT + this.textHeight - (this.size_y - (this.margin_y1 + this.margin_y2));
|
||||||
limit = ExtMath.clampi(limit, 0, 0x7fffffff);
|
limit = ExtMath.clampi(limit, 0, 0x7fffffff);
|
||||||
this.text_y = ExtMath.clampi(this.text_y, -limit, 0);
|
this.text_y = ExtMath.clampi(this.text_y, -limit, 0);
|
||||||
}
|
}
|
||||||
|
@ -114,8 +114,8 @@ public class Area extends Textbox {
|
||||||
if(shift) {
|
if(shift) {
|
||||||
if(this.cursorY < y1)
|
if(this.cursorY < y1)
|
||||||
this.text_y += y1 - this.cursorY;
|
this.text_y += y1 - this.cursorY;
|
||||||
else if((this.cursorY + Font.YGLYPH) >= (y1 + y2))
|
else if((this.cursorY + Font.HEIGHT) >= (y1 + y2))
|
||||||
this.text_y -= (this.cursorY + Font.YGLYPH) - (y1 + y2);
|
this.text_y -= (this.cursorY + Font.HEIGHT) - (y1 + y2);
|
||||||
gui_text_update_cur(offset, false);
|
gui_text_update_cur(offset, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ import common.util.Util;
|
||||||
public class Dropdown<T> extends Element {
|
public class Dropdown<T> extends Element {
|
||||||
public class Handle extends Element {
|
public class Handle extends Element {
|
||||||
private Handle(boolean up) {
|
private Handle(boolean up) {
|
||||||
super(Dropdown.this.pos_x, Dropdown.this.pos_y + (up ? -(Font.YGLYPH * Dropdown.this.values.length + 2) : Dropdown.this.size_y), Dropdown.this.size_x, Font.YGLYPH * Dropdown.this.values.length + 2, null);
|
super(Dropdown.this.pos_x, Dropdown.this.pos_y + (up ? -(Font.HEIGHT * Dropdown.this.values.length + 2) : Dropdown.this.size_y), Dropdown.this.size_x, Font.HEIGHT * Dropdown.this.values.length + 2, null);
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for(T value : Dropdown.this.values) {
|
for(T value : Dropdown.this.values) {
|
||||||
if(sb.length() > 0)
|
if(sb.length() > 0)
|
||||||
|
|
|
@ -15,7 +15,7 @@ public class Field extends Textbox {
|
||||||
|
|
||||||
private Field(int x, int y, int w, int h, int cap, boolean editable, FieldCallback callback, CharValidator validator, String text) {
|
private Field(int x, int y, int w, int h, int cap, boolean editable, FieldCallback callback, CharValidator validator, String text) {
|
||||||
super(x, y, w, h, cap, editable, callback, validator);
|
super(x, y, w, h, cap, editable, callback, validator);
|
||||||
this.text_y = (this.size_y - (this.margin_y1 + this.margin_y2 + Font.YGLYPH)) / 2;
|
this.text_y = (this.size_y - (this.margin_y1 + this.margin_y2 + Font.HEIGHT)) / 2;
|
||||||
this.setText(text);
|
this.setText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,10 +69,10 @@ public class Field extends Textbox {
|
||||||
|
|
||||||
public void scroll(int scr_x, int scr_y, int x, int y, boolean ctrl, boolean shift) {
|
public void scroll(int scr_x, int scr_y, int x, int y, boolean ctrl, boolean shift) {
|
||||||
if(scr_y != 0 || scr_x != 0) {
|
if(scr_y != 0 || scr_x != 0) {
|
||||||
int limit = Font.XGLYPH + this.textWidth - (this.size_x - (this.margin_x1 + this.margin_x2));
|
int limit = Font.WIDTH + this.textWidth - (this.size_x - (this.margin_x1 + this.margin_x2));
|
||||||
limit = ExtMath.clampi(limit, 0, 0x7fffffff);
|
limit = ExtMath.clampi(limit, 0, 0x7fffffff);
|
||||||
int prev = this.text_x;
|
int prev = this.text_x;
|
||||||
this.text_x += ((scr_y != 0 ? scr_y : (-scr_x)) < 0 ? -1 : 1) * (ctrl ? 1 : Font.XGLYPH) * this.gm.scrollLines * (shift ? 10 : 1);
|
this.text_x += ((scr_y != 0 ? scr_y : (-scr_x)) < 0 ? -1 : 1) * (ctrl ? 1 : Font.WIDTH) * this.gm.scrollLines * (shift ? 10 : 1);
|
||||||
this.text_x = ExtMath.clampi(this.text_x, -limit, 0);
|
this.text_x = ExtMath.clampi(this.text_x, -limit, 0);
|
||||||
if(this.sel_start >= 0)
|
if(this.sel_start >= 0)
|
||||||
this.cursorPos += (this.text_x - prev);
|
this.cursorPos += (this.text_x - prev);
|
||||||
|
@ -84,11 +84,11 @@ public class Field extends Textbox {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int getCursorY(int y1, int y2) {
|
protected int getCursorY(int y1, int y2) {
|
||||||
return y1 + (y2 - Font.YGLYPH) / 2;
|
return y1 + (y2 - Font.HEIGHT) / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void gui_text_clamp_scroll() {
|
protected void gui_text_clamp_scroll() {
|
||||||
int limit = Font.XGLYPH + this.textWidth - (this.size_x - (this.margin_x1 + this.margin_x2));
|
int limit = Font.WIDTH + this.textWidth - (this.size_x - (this.margin_x1 + this.margin_x2));
|
||||||
limit = ExtMath.clampi(limit, 0, 0x7fffffff);
|
limit = ExtMath.clampi(limit, 0, 0x7fffffff);
|
||||||
this.text_x = ExtMath.clampi(this.text_x, -limit, 0);
|
this.text_x = ExtMath.clampi(this.text_x, -limit, 0);
|
||||||
}
|
}
|
||||||
|
@ -100,8 +100,8 @@ public class Field extends Textbox {
|
||||||
if(shift) {
|
if(shift) {
|
||||||
if(this.cursorPos < x1)
|
if(this.cursorPos < x1)
|
||||||
this.text_x += x1 - this.cursorPos;
|
this.text_x += x1 - this.cursorPos;
|
||||||
else if((this.cursorPos + Font.XGLYPH) >= (x1 + x2))
|
else if((this.cursorPos + Font.WIDTH) >= (x1 + x2))
|
||||||
this.text_x -= (this.cursorPos + Font.XGLYPH) - (x1 + x2);
|
this.text_x -= (this.cursorPos + Font.WIDTH) - (x1 + x2);
|
||||||
gui_text_update_cur(offset, false);
|
gui_text_update_cur(offset, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
23
client/src/main/java/client/gui/element/FontLabel.java
Normal file
23
client/src/main/java/client/gui/element/FontLabel.java
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
package client.gui.element;
|
||||||
|
|
||||||
|
import client.gui.Font;
|
||||||
|
|
||||||
|
public class FontLabel extends Label {
|
||||||
|
private final Font font;
|
||||||
|
|
||||||
|
public FontLabel(int x, int y, int w, int h, Font font, String text, boolean left) {
|
||||||
|
super(x, y, w, h <= 0 ? font.getHeight() : h, text, left);
|
||||||
|
this.font = font;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FontLabel(int x, int y, int w, Font font, String text, boolean left) {
|
||||||
|
super(x, y - font.getHeight(), w, font.getHeight(), text, left);
|
||||||
|
this.font = font;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void drawForeground(int x1, int y1, int x2, int y2) {
|
||||||
|
Font.set(this.font);
|
||||||
|
super.drawForeground(x1, y1, x2, y2);
|
||||||
|
Font.unset();
|
||||||
|
}
|
||||||
|
}
|
18
client/src/main/java/client/gui/element/FontMultiLabel.java
Normal file
18
client/src/main/java/client/gui/element/FontMultiLabel.java
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
package client.gui.element;
|
||||||
|
|
||||||
|
import client.gui.Font;
|
||||||
|
|
||||||
|
public class FontMultiLabel extends MultiLabel {
|
||||||
|
private final Font font;
|
||||||
|
|
||||||
|
public FontMultiLabel(int x, int y, int w, int h, Font font, String text) {
|
||||||
|
super(x, y, w, h, text);
|
||||||
|
this.font = font;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void drawForeground(int x1, int y1, int x2, int y2) {
|
||||||
|
Font.set(this.font);
|
||||||
|
super.drawForeground(x1, y1, x2, y2);
|
||||||
|
Font.unset();
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,15 +3,24 @@ package client.gui.element;
|
||||||
import client.renderer.Drawing;
|
import client.renderer.Drawing;
|
||||||
|
|
||||||
public class InventoryButton extends Element {
|
public class InventoryButton extends Element {
|
||||||
public InventoryButton(int x, int y, int w, int h) {
|
private final boolean bordered;
|
||||||
|
|
||||||
|
public InventoryButton(int x, int y, int w, int h, boolean bordered) {
|
||||||
super(x, y, w, h, null);
|
super(x, y, w, h, null);
|
||||||
|
this.bordered = bordered;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void drawBackground() {
|
protected void drawBackground() {
|
||||||
// Drawing.drawRect2Border(this.pos_x, this.pos_y, this.size_x, this.size_y, 0xff6f6f6f, 0xffafafaf);
|
drawButton(this.pos_x, this.pos_y, this.size_x, this.size_y, this.bordered);
|
||||||
Drawing.drawRectBorder(this.pos_x, this.pos_y, this.size_x, this.size_y, 0xff6f6f6f, 0xff000000, 0xffafafaf, 0xff4f4f4f);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void drawForeground(int x1, int y1, int x2, int y2) {
|
protected void drawForeground(int x1, int y1, int x2, int y2) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void drawButton(int x, int y, int w, int h, boolean border) {
|
||||||
|
if(border)
|
||||||
|
Drawing.drawDoubleRect(x, y, w, h, 0xff6f6f6f, 0xffcfcfcf, 0xff2f2f2f);
|
||||||
|
else
|
||||||
|
Drawing.drawRect(x, y, w, h, 0xff6f6f6f, 0xffcfcfcf, 0xff2f2f2f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ public class MultiLabel extends Fill {
|
||||||
protected void drawForeground(int x1, int y1, int x2, int y2) {
|
protected void drawForeground(int x1, int y1, int x2, int y2) {
|
||||||
int color = this.enabled ? this.gm.style.text_label : Util.mulColor(this.gm.style.text_label, 0.5f);
|
int color = this.enabled ? this.gm.style.text_label : Util.mulColor(this.gm.style.text_label, 0.5f);
|
||||||
for(int z = 0; z < this.lines.length; z++) {
|
for(int z = 0; z < this.lines.length; z++) {
|
||||||
Drawing.drawTextCentered(this.lines[z], x1 + x2 / 2, y1 + this.text_y + z * Font.YGLYPH, color);
|
Drawing.drawTextCentered(this.lines[z], x1 + x2 / 2, y1 + this.text_y + z * Font.HEIGHT, color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -243,7 +243,7 @@ abstract class Textbox extends Element {
|
||||||
int y2 = this.size_y - (this.margin_y1 + this.margin_y2);
|
int y2 = this.size_y - (this.margin_y1 + this.margin_y2);
|
||||||
this.gm.scissor(x1 < 0 ? 0 : x1, (this.gm.fbY - (y1 + y2)) < 0 ? 0 : (this.gm.fbY - (y1 + y2)), x2 < 0 ? 0 : x2, y2 < 0 ? 0 : y2);
|
this.gm.scissor(x1 < 0 ? 0 : x1, (this.gm.fbY - (y1 + y2)) < 0 ? 0 : (this.gm.fbY - (y1 + y2)), x2 < 0 ? 0 : x2, y2 < 0 ? 0 : y2);
|
||||||
GL11.glEnable(GL11.GL_SCISSOR_TEST);
|
GL11.glEnable(GL11.GL_SCISSOR_TEST);
|
||||||
Drawing.drawRect(this.getCursorX(x1, x2), this.getCursorY(y1, y2), 1, Font.YGLYPH, 0xff000000 | (~Util.mixColor(this.gm.style.field_top, this.gm.style.field_btm)));
|
Drawing.drawRect(this.getCursorX(x1, x2), this.getCursorY(y1, y2), 1, Font.HEIGHT, 0xff000000 | (~Util.mixColor(this.gm.style.field_top, this.gm.style.field_btm)));
|
||||||
GL11.glDisable(GL11.GL_SCISSOR_TEST);
|
GL11.glDisable(GL11.GL_SCISSOR_TEST);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class GuiDisplay extends GuiOptions {
|
||||||
GuiDisplay.this.gm.full(value);
|
GuiDisplay.this.gm.full(value);
|
||||||
}
|
}
|
||||||
}, "Vollbild"));
|
}, "Vollbild"));
|
||||||
int maxModes = ExtMath.clampi((height - ((3 * 20 + 2) * 2 + 18 + 4)) / Font.YGLYPH, 4, 28);
|
int maxModes = ExtMath.clampi((height - ((3 * 20 + 2) * 2 + 18 + 4)) / Font.HEIGHT, 4, 28);
|
||||||
DisplayMode[] dmodes = Window.getDisplayModes();
|
DisplayMode[] dmodes = Window.getDisplayModes();
|
||||||
if(dmodes != null) {
|
if(dmodes != null) {
|
||||||
List<DisplayMode> modes = Lists.newArrayList();
|
List<DisplayMode> modes = Lists.newArrayList();
|
||||||
|
|
|
@ -77,6 +77,7 @@ public class GuiStyle extends GuiOptions {
|
||||||
this.addSelector("gui_scale", 0, 3 * 34 + 20, 240, 0);
|
this.addSelector("gui_scale", 0, 3 * 34 + 20, 240, 0);
|
||||||
this.addSelector("gui_font", 242, 3 * 34 + 20, 240, 0);
|
this.addSelector("gui_font", 242, 3 * 34 + 20, 240, 0);
|
||||||
this.addSelector("gui_scale_items", 0, 3 * 34 + 40, 240, 0);
|
this.addSelector("gui_scale_items", 0, 3 * 34 + 40, 240, 0);
|
||||||
|
this.addSelector("gui_scale_hotbar", 242, 3 * 34 + 40, 240, 0);
|
||||||
super.init(width, height);
|
super.init(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ public abstract class Drawing {
|
||||||
Font.bindTexture();
|
Font.bindTexture();
|
||||||
RenderBuffer rb = Tessellator.getBuffer();
|
RenderBuffer rb = Tessellator.getBuffer();
|
||||||
rb.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);
|
rb.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);
|
||||||
int h = Font.YGLYPH;
|
int h = Font.HEIGHT;
|
||||||
int tx, ty, u, v;
|
int tx, ty, u, v;
|
||||||
FontChar glyph;
|
FontChar glyph;
|
||||||
char ch;
|
char ch;
|
||||||
|
@ -75,7 +75,7 @@ public abstract class Drawing {
|
||||||
if(x < x1 || y < y1 || x > x2 || y > y2) {
|
if(x < x1 || y < y1 || x > x2 || y > y2) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
putGlyph(rb, Font.XGLYPH * 16, Font.YGLYPH * 16, x, y, (ch & 0x0f) * Font.XGLYPH + glyph.s, ((ch & 0xf0) >> 4) * Font.YGLYPH, glyph.u, h, ncolor, 0.0);
|
putGlyph(rb, Font.WIDTH * 16, Font.HEIGHT * 16, x, y, (ch & 0x0f) * Font.WIDTH + glyph.s, ((ch & 0xf0) >> 4) * Font.HEIGHT, glyph.u, h, ncolor, 0.0);
|
||||||
x += u;
|
x += u;
|
||||||
}
|
}
|
||||||
Tessellator.draw();
|
Tessellator.draw();
|
||||||
|
@ -86,7 +86,7 @@ public abstract class Drawing {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void txt_overlay(int start, int end, int x, int y, int x1, int y1, int x2, int y2, int back, String str) {
|
public static void txt_overlay(int start, int end, int x, int y, int x1, int y1, int x2, int y2, int back, String str) {
|
||||||
int h = Font.YGLYPH;
|
int h = Font.HEIGHT;
|
||||||
int tx, ty, u, v;
|
int tx, ty, u, v;
|
||||||
FontChar glyph;
|
FontChar glyph;
|
||||||
char ch;
|
char ch;
|
||||||
|
@ -141,7 +141,7 @@ public abstract class Drawing {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Vec2i txt_size(int x, int y, int x1, int y1, int x2, int y2, String str) {
|
public static Vec2i txt_size(int x, int y, int x1, int y1, int x2, int y2, String str) {
|
||||||
int h = Font.YGLYPH;
|
int h = Font.HEIGHT;
|
||||||
int ix = x;
|
int ix = x;
|
||||||
int iy = y;
|
int iy = y;
|
||||||
int tx, ty, u, v;
|
int tx, ty, u, v;
|
||||||
|
@ -179,7 +179,7 @@ public abstract class Drawing {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Vec2i txt_coord(int offset, int x, int y, int x1, int y1, int x2, int y2, String str) {
|
public static Vec2i txt_coord(int offset, int x, int y, int x1, int y1, int x2, int y2, String str) {
|
||||||
int h = Font.YGLYPH;
|
int h = Font.HEIGHT;
|
||||||
int tx, ty, u, v;
|
int tx, ty, u, v;
|
||||||
FontChar glyph;
|
FontChar glyph;
|
||||||
char ch;
|
char ch;
|
||||||
|
@ -223,7 +223,7 @@ public abstract class Drawing {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Offset txt_offset(int ox, int oy, int x, int y, int x1, int y1, int x2, int y2, String str) {
|
public static Offset txt_offset(int ox, int oy, int x, int y, int x1, int y1, int x2, int y2, String str) {
|
||||||
int h = Font.YGLYPH;
|
int h = Font.HEIGHT;
|
||||||
int tx, ty, u, v;
|
int tx, ty, u, v;
|
||||||
FontChar glyph;
|
FontChar glyph;
|
||||||
char ch;
|
char ch;
|
||||||
|
@ -311,7 +311,7 @@ public abstract class Drawing {
|
||||||
ch = str.charAt(z);
|
ch = str.charAt(z);
|
||||||
if(ch == Log.CHR_NLN) {
|
if(ch == Log.CHR_NLN) {
|
||||||
x = ox;
|
x = ox;
|
||||||
y += Font.YGLYPH;
|
y += Font.HEIGHT;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if((ch >= Log.CHR_COLORS1 && ch <= Log.CHR_COLORE1) || (ch >= Log.CHR_COLORS2 && ch <= Log.CHR_COLORE2)) {
|
else if((ch >= Log.CHR_COLORS1 && ch <= Log.CHR_COLORE1) || (ch >= Log.CHR_COLORS2 && ch <= Log.CHR_COLORE2)) {
|
||||||
|
@ -329,7 +329,7 @@ public abstract class Drawing {
|
||||||
continue;
|
continue;
|
||||||
else if(glyph.u == 0)
|
else if(glyph.u == 0)
|
||||||
glyph = Font.SIZES[Log.CHR_UNK];
|
glyph = Font.SIZES[Log.CHR_UNK];
|
||||||
putGlyph(rb, Font.XGLYPH * 16, Font.YGLYPH * 16, x + 1, y + 1, (ch & 0x0f) * Font.XGLYPH + glyph.s, ((ch & 0xf0) >> 4) * Font.YGLYPH, glyph.u, Font.YGLYPH, bcolor, -0.01);
|
putGlyph(rb, Font.WIDTH * 16, Font.HEIGHT * 16, x + 1, y + 1, (ch & 0x0f) * Font.WIDTH + glyph.s, ((ch & 0xf0) >> 4) * Font.HEIGHT, glyph.u, Font.HEIGHT, bcolor, -0.01);
|
||||||
x += glyph.u + 3 - glyph.s;
|
x += glyph.u + 3 - glyph.s;
|
||||||
}
|
}
|
||||||
x = ox;
|
x = ox;
|
||||||
|
@ -339,7 +339,7 @@ public abstract class Drawing {
|
||||||
ch = str.charAt(z);
|
ch = str.charAt(z);
|
||||||
if(ch == Log.CHR_NLN) {
|
if(ch == Log.CHR_NLN) {
|
||||||
x = ox;
|
x = ox;
|
||||||
y += Font.YGLYPH;
|
y += Font.HEIGHT;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if((ch >= Log.CHR_COLORS1 && ch <= Log.CHR_COLORE1) || (ch >= Log.CHR_COLORS2 && ch <= Log.CHR_COLORE2)) {
|
else if((ch >= Log.CHR_COLORS1 && ch <= Log.CHR_COLORE1) || (ch >= Log.CHR_COLORS2 && ch <= Log.CHR_COLORE2)) {
|
||||||
|
@ -357,7 +357,7 @@ public abstract class Drawing {
|
||||||
continue;
|
continue;
|
||||||
else if(glyph.u == 0)
|
else if(glyph.u == 0)
|
||||||
glyph = Font.SIZES[Log.CHR_UNK];
|
glyph = Font.SIZES[Log.CHR_UNK];
|
||||||
putGlyph(rb, Font.XGLYPH * 16, Font.YGLYPH * 16, x, y, (ch & 0x0f) * Font.XGLYPH + glyph.s, ((ch & 0xf0) >> 4) * Font.YGLYPH, glyph.u, Font.YGLYPH, ncolor, -0.02);
|
putGlyph(rb, Font.WIDTH * 16, Font.HEIGHT * 16, x, y, (ch & 0x0f) * Font.WIDTH + glyph.s, ((ch & 0xf0) >> 4) * Font.HEIGHT, glyph.u, Font.HEIGHT, ncolor, -0.02);
|
||||||
x += glyph.u + 3 - glyph.s;
|
x += glyph.u + 3 - glyph.s;
|
||||||
}
|
}
|
||||||
Tessellator.draw();
|
Tessellator.draw();
|
||||||
|
@ -378,7 +378,7 @@ public abstract class Drawing {
|
||||||
if(ch == Log.CHR_NLN) {
|
if(ch == Log.CHR_NLN) {
|
||||||
ix = x > ix ? x : ix;
|
ix = x > ix ? x : ix;
|
||||||
x = 0;
|
x = 0;
|
||||||
y += Font.YGLYPH;
|
y += Font.HEIGHT;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if(ch < Log.CHR_SPC) {
|
else if(ch < Log.CHR_SPC) {
|
||||||
|
@ -394,7 +394,7 @@ public abstract class Drawing {
|
||||||
x += glyph.u + 3 - glyph.s;
|
x += glyph.u + 3 - glyph.s;
|
||||||
ix = x > ix ? x : ix;
|
ix = x > ix ? x : ix;
|
||||||
}
|
}
|
||||||
return new Vec2i(ix - 3, y + Font.YGLYPH);
|
return new Vec2i(ix - 3, y + Font.HEIGHT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -495,6 +495,17 @@ public abstract class Drawing {
|
||||||
drawRect(x + 1, y + 1, w - 2, h - 2, color);
|
drawRect(x + 1, y + 1, w - 2, h - 2, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void drawDoubleRect(int x, int y, int w, int h, int color, int topleft, int btmright) {
|
||||||
|
int corner = Util.mixColor(topleft, btmright);
|
||||||
|
drawRect(x, y, w - 2, 2, topleft);
|
||||||
|
drawRect(x, y + 2, 2, h - 2, topleft);
|
||||||
|
drawRect(x + w - 2, y, 2, 2, corner);
|
||||||
|
drawRect(x, y + h - 2, 2, 2, corner);
|
||||||
|
drawRect(x + w - 2, y + 2, 2, h - 2, btmright);
|
||||||
|
drawRect(x + 2, y + h - 2, w - 4, 2, btmright);
|
||||||
|
drawRect(x + 2, y + 2, w - 4, h - 4, color);
|
||||||
|
}
|
||||||
|
|
||||||
public static void drawGradient(int x, int y, int w, int h, int top, int bottom, int topleft, int btmright) {
|
public static void drawGradient(int x, int y, int w, int h, int top, int bottom, int topleft, int btmright) {
|
||||||
int corner = Util.mixColor(topleft, btmright);
|
int corner = Util.mixColor(topleft, btmright);
|
||||||
drawRect(x, y, w - 1, 1, topleft);
|
drawRect(x, y, w - 1, 1, topleft);
|
||||||
|
|
|
@ -4,7 +4,6 @@ import common.block.Block;
|
||||||
import common.block.Rotatable;
|
import common.block.Rotatable;
|
||||||
import common.block.Material;
|
import common.block.Material;
|
||||||
import common.entity.types.EntityLiving;
|
import common.entity.types.EntityLiving;
|
||||||
import common.init.Blocks;
|
|
||||||
import common.init.SoundEvent;
|
import common.init.SoundEvent;
|
||||||
import common.item.CheatTab;
|
import common.item.CheatTab;
|
||||||
import common.model.Model;
|
import common.model.Model;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue