Custom Fonts
This commit is contained in:
parent
c12b251741
commit
4a546fdd3e
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
72246
javascript/classes.js
72246
javascript/classes.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -226,6 +226,10 @@ public class Config {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isCustomFonts() {
|
||||||
|
return Minecraft.getMinecraft().gameSettings.ofCustomFonts;
|
||||||
|
}
|
||||||
|
|
||||||
public static int limit(int p_limit_0_, int p_limit_1_, int p_limit_2_) {
|
public static int limit(int p_limit_0_, int p_limit_1_, int p_limit_2_) {
|
||||||
return p_limit_0_ < p_limit_1_ ? p_limit_1_ : (p_limit_0_ > p_limit_2_ ? p_limit_2_ : p_limit_0_);
|
return p_limit_0_ < p_limit_1_ ? p_limit_1_ : (p_limit_0_ > p_limit_2_ ? p_limit_2_ : p_limit_0_);
|
||||||
}
|
}
|
||||||
|
|
99
src/main/java/net/PeytonPlayz585/shadow/FontUtils.java
Normal file
99
src/main/java/net/PeytonPlayz585/shadow/FontUtils.java
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
package net.PeytonPlayz585.shadow;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.Properties;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
public class FontUtils {
|
||||||
|
public static Properties readFontProperties(ResourceLocation p_readFontProperties_0_) {
|
||||||
|
String s = p_readFontProperties_0_.getResourcePath();
|
||||||
|
Properties properties = new Properties();
|
||||||
|
String s1 = ".png";
|
||||||
|
|
||||||
|
if (!s.endsWith(s1)) {
|
||||||
|
return properties;
|
||||||
|
} else {
|
||||||
|
String s2 = s.substring(0, s.length() - s1.length()) + ".properties";
|
||||||
|
|
||||||
|
try {
|
||||||
|
ResourceLocation resourcelocation = new ResourceLocation(p_readFontProperties_0_.getResourceDomain(), s2);
|
||||||
|
InputStream inputstream = Config.getResourceStream(Minecraft.getMinecraft().getResourceManager(), resourcelocation);
|
||||||
|
|
||||||
|
if (inputstream == null) {
|
||||||
|
return properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
Config.log("Loading " + s2);
|
||||||
|
properties.load(inputstream);
|
||||||
|
} catch (FileNotFoundException var7) {
|
||||||
|
;
|
||||||
|
} catch (IOException ioexception) {
|
||||||
|
ioexception.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return properties;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void readCustomCharWidths(Properties p_readCustomCharWidths_0_, float[] p_readCustomCharWidths_1_) {
|
||||||
|
for (Object s0 : p_readCustomCharWidths_0_.keySet()) {
|
||||||
|
String s = (String) s0;
|
||||||
|
String s1 = "width.";
|
||||||
|
|
||||||
|
if (s.startsWith(s1)) {
|
||||||
|
String s2 = s.substring(s1.length());
|
||||||
|
int i = Config.parseInt(s2, -1);
|
||||||
|
|
||||||
|
if (i >= 0 && i < p_readCustomCharWidths_1_.length) {
|
||||||
|
String s3 = p_readCustomCharWidths_0_.getProperty(s);
|
||||||
|
float f = Config.parseFloat(s3, -1.0F);
|
||||||
|
|
||||||
|
if (f >= 0.0F) {
|
||||||
|
p_readCustomCharWidths_1_[i] = f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float readFloat(Properties p_readFloat_0_, String p_readFloat_1_, float p_readFloat_2_) {
|
||||||
|
String s = p_readFloat_0_.getProperty(p_readFloat_1_);
|
||||||
|
|
||||||
|
if (s == null) {
|
||||||
|
return p_readFloat_2_;
|
||||||
|
} else {
|
||||||
|
float f = Config.parseFloat(s, Float.MIN_VALUE);
|
||||||
|
|
||||||
|
if (f == Float.MIN_VALUE) {
|
||||||
|
Config.warn("Invalid value for " + p_readFloat_1_ + ": " + s);
|
||||||
|
return p_readFloat_2_;
|
||||||
|
} else {
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ResourceLocation getHdFontLocation(ResourceLocation p_getHdFontLocation_0_) {
|
||||||
|
if (!Config.isCustomFonts()) {
|
||||||
|
return p_getHdFontLocation_0_;
|
||||||
|
} else if (p_getHdFontLocation_0_ == null) {
|
||||||
|
return p_getHdFontLocation_0_;
|
||||||
|
} else {
|
||||||
|
String s = p_getHdFontLocation_0_.getResourcePath();
|
||||||
|
String s1 = "textures/";
|
||||||
|
String s2 = "mcpatcher/";
|
||||||
|
|
||||||
|
if (!s.startsWith(s1)) {
|
||||||
|
return p_getHdFontLocation_0_;
|
||||||
|
} else {
|
||||||
|
s = s.substring(s1.length());
|
||||||
|
s = s2 + s;
|
||||||
|
ResourceLocation resourcelocation = new ResourceLocation(p_getHdFontLocation_0_.getResourceDomain(), s);
|
||||||
|
return Config.hasResource(Minecraft.getMinecraft().getResourceManager(), resourcelocation) ? resourcelocation : p_getHdFontLocation_0_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -133,6 +133,7 @@ public class TextureUtils {
|
||||||
CustomSky.reset();
|
CustomSky.reset();
|
||||||
update();
|
update();
|
||||||
BetterGrass.update();
|
BetterGrass.update();
|
||||||
|
BetterSnow.update();
|
||||||
CustomSky.update();
|
CustomSky.update();
|
||||||
SmartLeaves.updateLeavesModels();
|
SmartLeaves.updateLeavesModels();
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ public class GuiQuality extends GuiScreen {
|
||||||
protected String title;
|
protected String title;
|
||||||
private GameSettings settings;
|
private GameSettings settings;
|
||||||
//private static GameSettings.Options[] enumOptions = new GameSettings.Options[] {GameSettings.Options.MIPMAP_LEVELS, GameSettings.Options.MIPMAP_TYPE, GameSettings.Options.AF_LEVEL, GameSettings.Options.AA_LEVEL, GameSettings.Options.CLEAR_WATER, GameSettings.Options.RANDOM_MOBS, GameSettings.Options.BETTER_GRASS, GameSettings.Options.BETTER_SNOW, GameSettings.Options.CUSTOM_FONTS, GameSettings.Options.CUSTOM_COLORS, GameSettings.Options.SWAMP_COLORS, GameSettings.Options.SMOOTH_BIOMES, GameSettings.Options.CONNECTED_TEXTURES, GameSettings.Options.NATURAL_TEXTURES, GameSettings.Options.CUSTOM_SKY, GameSettings.Options.CUSTOM_ITEMS, GameSettings.Options.DYNAMIC_LIGHTS};
|
//private static GameSettings.Options[] enumOptions = new GameSettings.Options[] {GameSettings.Options.MIPMAP_LEVELS, GameSettings.Options.MIPMAP_TYPE, GameSettings.Options.AF_LEVEL, GameSettings.Options.AA_LEVEL, GameSettings.Options.CLEAR_WATER, GameSettings.Options.RANDOM_MOBS, GameSettings.Options.BETTER_GRASS, GameSettings.Options.BETTER_SNOW, GameSettings.Options.CUSTOM_FONTS, GameSettings.Options.CUSTOM_COLORS, GameSettings.Options.SWAMP_COLORS, GameSettings.Options.SMOOTH_BIOMES, GameSettings.Options.CONNECTED_TEXTURES, GameSettings.Options.NATURAL_TEXTURES, GameSettings.Options.CUSTOM_SKY, GameSettings.Options.CUSTOM_ITEMS, GameSettings.Options.DYNAMIC_LIGHTS};
|
||||||
private static GameSettings.Options[] enumOptions = new GameSettings.Options[] {GameSettings.Options.MIPMAP_LEVELS, GameSettings.Options.MIPMAP_TYPE, GameSettings.Options.CLEAR_WATER, GameSettings.Options.BETTER_GRASS, GameSettings.Options.BETTER_SNOW, GameSettings.Options.CUSTOM_SKY, GameSettings.Options.DYNAMIC_LIGHTS};
|
private static GameSettings.Options[] enumOptions = new GameSettings.Options[] {GameSettings.Options.MIPMAP_LEVELS, GameSettings.Options.MIPMAP_TYPE, GameSettings.Options.CLEAR_WATER, GameSettings.Options.BETTER_GRASS, GameSettings.Options.BETTER_SNOW, GameSettings.Options.CUSTOM_FONTS, GameSettings.Options.CUSTOM_SKY, GameSettings.Options.DYNAMIC_LIGHTS};
|
||||||
|
|
||||||
public GuiQuality(GuiScreen p_i53_1_) {
|
public GuiQuality(GuiScreen p_i53_1_) {
|
||||||
this.prevScreen = p_i53_1_;
|
this.prevScreen = p_i53_1_;
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Properties;
|
||||||
import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
|
import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
|
||||||
|
|
||||||
import net.lax1dude.eaglercraft.v1_8.HString;
|
import net.lax1dude.eaglercraft.v1_8.HString;
|
||||||
|
@ -21,6 +22,9 @@ import net.minecraft.client.resources.IResourceManagerReloadListener;
|
||||||
import net.minecraft.client.settings.GameSettings;
|
import net.minecraft.client.settings.GameSettings;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
import net.PeytonPlayz585.shadow.Config;
|
||||||
|
import net.PeytonPlayz585.shadow.FontUtils;
|
||||||
|
|
||||||
/**+
|
/**+
|
||||||
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
|
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
|
||||||
*
|
*
|
||||||
|
@ -44,7 +48,7 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
/**+
|
/**+
|
||||||
* Array of width of all the characters in default.png
|
* Array of width of all the characters in default.png
|
||||||
*/
|
*/
|
||||||
protected int[] charWidth = new int[256];
|
protected float[] charWidth = new float[256];
|
||||||
/**+
|
/**+
|
||||||
* the height in pixels of default text
|
* the height in pixels of default text
|
||||||
*/
|
*/
|
||||||
|
@ -61,7 +65,7 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
* shadows.
|
* shadows.
|
||||||
*/
|
*/
|
||||||
protected int[] colorCode = new int[32];
|
protected int[] colorCode = new int[32];
|
||||||
protected final ResourceLocation locationFontTexture;
|
protected ResourceLocation locationFontTexture;
|
||||||
protected final TextureManager renderEngine;
|
protected final TextureManager renderEngine;
|
||||||
protected float posX;
|
protected float posX;
|
||||||
protected float posY;
|
protected float posY;
|
||||||
|
@ -77,12 +81,17 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
protected boolean italicStyle;
|
protected boolean italicStyle;
|
||||||
protected boolean underlineStyle;
|
protected boolean underlineStyle;
|
||||||
protected boolean strikethroughStyle;
|
protected boolean strikethroughStyle;
|
||||||
|
public float offsetBold = 1.0F;
|
||||||
|
|
||||||
|
public ResourceLocation locationFontTextureBase;
|
||||||
|
|
||||||
public FontRenderer(GameSettings gameSettingsIn, ResourceLocation location, TextureManager textureManagerIn,
|
public FontRenderer(GameSettings gameSettingsIn, ResourceLocation location, TextureManager textureManagerIn,
|
||||||
boolean unicode) {
|
boolean unicode) {
|
||||||
|
this.locationFontTextureBase = location;
|
||||||
this.locationFontTexture = location;
|
this.locationFontTexture = location;
|
||||||
this.renderEngine = textureManagerIn;
|
this.renderEngine = textureManagerIn;
|
||||||
this.unicodeFlag = unicode;
|
this.unicodeFlag = unicode;
|
||||||
|
this.locationFontTexture = FontUtils.getHdFontLocation(this.locationFontTextureBase);
|
||||||
textureManagerIn.bindTexture(this.locationFontTexture);
|
textureManagerIn.bindTexture(this.locationFontTexture);
|
||||||
|
|
||||||
for (int i = 0; i < 32; ++i) {
|
for (int i = 0; i < 32; ++i) {
|
||||||
|
@ -116,6 +125,7 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onResourceManagerReload(IResourceManager resourceManager) {
|
public void onResourceManagerReload(IResourceManager resourceManager) {
|
||||||
|
this.locationFontTexture = FontUtils.getHdFontLocation(this.locationFontTextureBase);
|
||||||
this.readFontTexture();
|
this.readFontTexture();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,6 +138,7 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
throw new RuntimeException(ioexception);
|
throw new RuntimeException(ioexception);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Properties properties = FontUtils.readFontProperties(this.locationFontTexture);
|
||||||
int i = bufferedimage.width;
|
int i = bufferedimage.width;
|
||||||
int j = bufferedimage.height;
|
int j = bufferedimage.height;
|
||||||
int[] aint = bufferedimage.pixels;
|
int[] aint = bufferedimage.pixels;
|
||||||
|
@ -135,6 +146,13 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
int l = i / 16;
|
int l = i / 16;
|
||||||
byte b0 = 1;
|
byte b0 = 1;
|
||||||
float f = 8.0F / (float) l;
|
float f = 8.0F / (float) l;
|
||||||
|
float f1 = Config.limit(f, 1.0F, 2.0F);
|
||||||
|
this.offsetBold = 1.0F / f1;
|
||||||
|
float f2 = FontUtils.readFloat(properties, "offsetBold", -1.0F);
|
||||||
|
|
||||||
|
if (f2 >= 0.0F) {
|
||||||
|
this.offsetBold = f2;
|
||||||
|
}
|
||||||
|
|
||||||
for (int i1 = 0; i1 < 256; ++i1) {
|
for (int i1 = 0; i1 < 256; ++i1) {
|
||||||
int j1 = i1 % 16;
|
int j1 = i1 % 16;
|
||||||
|
@ -164,6 +182,7 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
this.charWidth[i1] = (int) (0.5D + (double) ((float) l1 * f)) + b0;
|
this.charWidth[i1] = (int) (0.5D + (double) ((float) l1 * f)) + b0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FontUtils.readCustomCharWidths(properties, this.charWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void readGlyphSizes() {
|
private void readGlyphSizes() {
|
||||||
|
@ -201,34 +220,23 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
int j = parInt1 / 16 * 8;
|
int j = parInt1 / 16 * 8;
|
||||||
int k = parFlag ? 1 : 0;
|
int k = parFlag ? 1 : 0;
|
||||||
this.renderEngine.bindTexture(this.locationFontTexture);
|
this.renderEngine.bindTexture(this.locationFontTexture);
|
||||||
int l = this.charWidth[parInt1];
|
float f = this.charWidth[parInt1];
|
||||||
float f = (float) l - 0.01F;
|
float f1 = 7.99F;
|
||||||
Tessellator tessellator = Tessellator.getInstance();
|
Tessellator tessellator = Tessellator.getInstance();
|
||||||
WorldRenderer worldrenderer = tessellator.getWorldRenderer();
|
WorldRenderer worldrenderer = tessellator.getWorldRenderer();
|
||||||
|
|
||||||
worldrenderer.begin(Tessellator.GL_TRIANGLE_STRIP, DefaultVertexFormats.POSITION_TEX);
|
worldrenderer.begin(Tessellator.GL_TRIANGLE_STRIP, DefaultVertexFormats.POSITION_TEX);
|
||||||
|
worldrenderer.pos(this.posX + (float) k, this.posY, 0.0F).tex((float) i / 128.0F, (float) j / 128.0F).endVertex();
|
||||||
worldrenderer.pos(this.posX + (float) k, this.posY, 0.0F).tex((float) i / 128.0F, (float) j / 128.0F)
|
worldrenderer.pos(this.posX - (float) k, this.posY + 7.99F, 0.0F).tex((float) i / 128.0F, ((float) j + 7.99F) / 128.0F).endVertex();
|
||||||
.endVertex();
|
worldrenderer.pos(this.posX + f - 1.0F + (float) k, this.posY, 0.0F).tex(((float) i + f - 1.0F) / 128.0F, (float) j / 128.0F).endVertex();
|
||||||
|
worldrenderer.pos(this.posX + f - 1.0F - (float) k, this.posY + 7.99F, 0.0F).tex(((float) i + f - 1.0F) / 128.0F, ((float) j + 7.99F) / 128.0F).endVertex();
|
||||||
worldrenderer.pos(this.posX - (float) k, this.posY + 7.99F, 0.0F)
|
|
||||||
.tex((float) i / 128.0F, ((float) j + 7.99F) / 128.0F).endVertex();
|
|
||||||
|
|
||||||
worldrenderer.pos(this.posX + f - 1.0F + (float) k, this.posY, 0.0F)
|
|
||||||
.tex(((float) i + f - 1.0F) / 128.0F, (float) j / 128.0F).endVertex();
|
|
||||||
|
|
||||||
worldrenderer.pos(this.posX + f - 1.0F - (float) k, this.posY + 7.99F, 0.0F)
|
|
||||||
.tex(((float) i + f - 1.0F) / 128.0F, ((float) j + 7.99F) / 128.0F).endVertex();
|
|
||||||
|
|
||||||
tessellator.draw();
|
tessellator.draw();
|
||||||
|
return f;
|
||||||
return (float) l;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ResourceLocation getUnicodePageLocation(int parInt1) {
|
private ResourceLocation getUnicodePageLocation(int parInt1) {
|
||||||
if (unicodePageLocations[parInt1] == null) {
|
if (unicodePageLocations[parInt1] == null) {
|
||||||
unicodePageLocations[parInt1] = new ResourceLocation(
|
unicodePageLocations[parInt1] = new ResourceLocation(HString.format("textures/font/unicode_page_%02x.png", new Object[] { Integer.valueOf(parInt1) }));
|
||||||
HString.format("textures/font/unicode_page_%02x.png", new Object[] { Integer.valueOf(parInt1) }));
|
unicodePageLocations[parInt1] = FontUtils.getHdFontLocation(unicodePageLocations[parInt1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return unicodePageLocations[parInt1];
|
return unicodePageLocations[parInt1];
|
||||||
|
@ -408,7 +416,7 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
c0 = c1;
|
c0 = c1;
|
||||||
}
|
}
|
||||||
|
|
||||||
float f1 = this.unicodeFlag ? 0.5F : 1.0F;
|
float f1 = j != -1 && !this.unicodeFlag ? this.offsetBold : 0.5F;
|
||||||
boolean flag = (c0 == 0 || j == -1 || this.unicodeFlag) && parFlag;
|
boolean flag = (c0 == 0 || j == -1 || this.unicodeFlag) && parFlag;
|
||||||
if (flag) {
|
if (flag) {
|
||||||
this.posX -= f1;
|
this.posX -= f1;
|
||||||
|
@ -536,15 +544,17 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
if (text == null) {
|
if (text == null) {
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
int i = 0;
|
float f = 0.0F;
|
||||||
boolean flag = false;
|
boolean flag = false;
|
||||||
|
|
||||||
for (int j = 0; j < text.length(); ++j) {
|
for (int i = 0; i < text.length(); ++i) {
|
||||||
char c0 = text.charAt(j);
|
char c0 = text.charAt(i);
|
||||||
int k = this.getCharWidth(c0);
|
float f1 = this.getCharWidthFloat(c0);
|
||||||
if (k < 0 && j < text.length() - 1) {
|
|
||||||
++j;
|
if (f1 < 0.0F && i < text.length() - 1) {
|
||||||
c0 = text.charAt(j);
|
++i;
|
||||||
|
c0 = text.charAt(i);
|
||||||
|
|
||||||
if (c0 != 108 && c0 != 76) {
|
if (c0 != 108 && c0 != 76) {
|
||||||
if (c0 == 114 || c0 == 82) {
|
if (c0 == 114 || c0 == 82) {
|
||||||
flag = false;
|
flag = false;
|
||||||
|
@ -553,16 +563,17 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
flag = true;
|
flag = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
k = 0;
|
f1 = 0.0F;
|
||||||
}
|
}
|
||||||
|
|
||||||
i += k;
|
f += f1;
|
||||||
if (flag && k > 0) {
|
|
||||||
++i;
|
if (flag && f1 > 0.0F) {
|
||||||
|
f += this.unicodeFlag ? 1.0F : this.offsetBold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return i;
|
return (int)f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -570,27 +581,27 @@ public class FontRenderer implements IResourceManagerReloadListener {
|
||||||
* Returns the width of this character as rendered.
|
* Returns the width of this character as rendered.
|
||||||
*/
|
*/
|
||||||
public int getCharWidth(char character) {
|
public int getCharWidth(char character) {
|
||||||
if (character == 167) {
|
return Math.round(this.getCharWidthFloat(character));
|
||||||
return -1;
|
|
||||||
} else if (character == 32) {
|
|
||||||
return 4;
|
|
||||||
} else {
|
|
||||||
int i = "\u00c0\u00c1\u00c2\u00c8\u00ca\u00cb\u00cd\u00d3\u00d4\u00d5\u00da\u00df\u00e3\u00f5\u011f\u0130\u0131\u0152\u0153\u015e\u015f\u0174\u0175\u017e\u0207\u0000\u0000\u0000\u0000\u0000\u0000\u0000 !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u0000\u00c7\u00fc\u00e9\u00e2\u00e4\u00e0\u00e5\u00e7\u00ea\u00eb\u00e8\u00ef\u00ee\u00ec\u00c4\u00c5\u00c9\u00e6\u00c6\u00f4\u00f6\u00f2\u00fb\u00f9\u00ff\u00d6\u00dc\u00f8\u00a3\u00d8\u00d7\u0192\u00e1\u00ed\u00f3\u00fa\u00f1\u00d1\u00aa\u00ba\u00bf\u00ae\u00ac\u00bd\u00bc\u00a1\u00ab\u00bb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\u03b2\u0393\u03c0\u03a3\u03c3\u03bc\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u2205\u2208\u2229\u2261\u00b1\u2265\u2264\u2320\u2321\u00f7\u2248\u00b0\u2219\u00b7\u221a\u207f\u00b2\u25a0\u0000"
|
|
||||||
.indexOf(character);
|
|
||||||
if (character > 0 && i != -1 && !this.unicodeFlag) {
|
|
||||||
return this.charWidth[i];
|
|
||||||
} else if (this.glyphWidth[character] != 0) {
|
|
||||||
int j = this.glyphWidth[character] >>> 4;
|
|
||||||
int k = this.glyphWidth[character] & 15;
|
|
||||||
if (k > 7) {
|
|
||||||
k = 15;
|
|
||||||
j = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
++k;
|
private float getCharWidthFloat(char p_getCharWidthFloat_1_) {
|
||||||
return (k - j) / 2 + 1;
|
if (p_getCharWidthFloat_1_ == 167) {
|
||||||
|
return -1.0F;
|
||||||
|
} else if (p_getCharWidthFloat_1_ == 32) {
|
||||||
|
return this.charWidth[32];
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
int i = "\u00c0\u00c1\u00c2\u00c8\u00ca\u00cb\u00cd\u00d3\u00d4\u00d5\u00da\u00df\u00e3\u00f5\u011f\u0130\u0131\u0152\u0153\u015e\u015f\u0174\u0175\u017e\u0207\u0000\u0000\u0000\u0000\u0000\u0000\u0000 !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u0000\u00c7\u00fc\u00e9\u00e2\u00e4\u00e0\u00e5\u00e7\u00ea\u00eb\u00e8\u00ef\u00ee\u00ec\u00c4\u00c5\u00c9\u00e6\u00c6\u00f4\u00f6\u00f2\u00fb\u00f9\u00ff\u00d6\u00dc\u00f8\u00a3\u00d8\u00d7\u0192\u00e1\u00ed\u00f3\u00fa\u00f1\u00d1\u00aa\u00ba\u00bf\u00ae\u00ac\u00bd\u00bc\u00a1\u00ab\u00bb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\u03b2\u0393\u03c0\u03a3\u03c3\u03bc\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u2205\u2208\u2229\u2261\u00b1\u2265\u2264\u2320\u2321\u00f7\u2248\u00b0\u2219\u00b7\u221a\u207f\u00b2\u25a0\u0000".indexOf(p_getCharWidthFloat_1_);
|
||||||
|
|
||||||
|
if (p_getCharWidthFloat_1_ > 0 && i != -1 && !this.unicodeFlag) {
|
||||||
|
return this.charWidth[i];
|
||||||
|
} else if (this.glyphWidth[p_getCharWidthFloat_1_] != 0) {
|
||||||
|
int j = this.glyphWidth[p_getCharWidthFloat_1_] >>> 4;
|
||||||
|
int k = this.glyphWidth[p_getCharWidthFloat_1_] & 15;
|
||||||
|
j = j & 15;
|
||||||
|
++k;
|
||||||
|
return (float)((k - j) / 2 + 1);
|
||||||
|
} else {
|
||||||
|
return 0.0F;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -195,6 +195,7 @@ public class GameSettings {
|
||||||
public boolean ofCustomSky = true;
|
public boolean ofCustomSky = true;
|
||||||
public boolean ofClearWater = false;
|
public boolean ofClearWater = false;
|
||||||
public boolean ofBetterSnow = false;
|
public boolean ofBetterSnow = false;
|
||||||
|
public boolean ofCustomFonts = true;
|
||||||
public int ofBetterGrass = 3;
|
public int ofBetterGrass = 3;
|
||||||
public int ofDynamicLights = 3;
|
public int ofDynamicLights = 3;
|
||||||
|
|
||||||
|
@ -759,6 +760,12 @@ public class GameSettings {
|
||||||
this.mc.renderGlobal.loadRenderers();
|
this.mc.renderGlobal.loadRenderers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (parOptions == GameSettings.Options.CUSTOM_FONTS) {
|
||||||
|
this.ofCustomFonts = !this.ofCustomFonts;
|
||||||
|
this.mc.fontRendererObj.onResourceManagerReload(this.mc.getResourceManager());
|
||||||
|
this.mc.standardGalacticFontRenderer.onResourceManagerReload(this.mc.getResourceManager());
|
||||||
|
}
|
||||||
|
|
||||||
this.saveOptions();
|
this.saveOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1105,6 +1112,8 @@ public class GameSettings {
|
||||||
return this.ofDynamicFov ? s + "ON" : s + "OFF";
|
return this.ofDynamicFov ? s + "ON" : s + "OFF";
|
||||||
} else if (parOptions == GameSettings.Options.BETTER_SNOW) {
|
} else if (parOptions == GameSettings.Options.BETTER_SNOW) {
|
||||||
return this.ofBetterSnow ? s + "ON" : s + "OFF";
|
return this.ofBetterSnow ? s + "ON" : s + "OFF";
|
||||||
|
} else if (parOptions == GameSettings.Options.CUSTOM_FONTS) {
|
||||||
|
return this.ofCustomFonts ? s + "ON" : s + "OFF";
|
||||||
} else {
|
} else {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
@ -1582,6 +1591,10 @@ public class GameSettings {
|
||||||
this.ofBetterSnow = Boolean.valueOf(astring[1]).booleanValue();
|
this.ofBetterSnow = Boolean.valueOf(astring[1]).booleanValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (astring[0].equals("ofCustomFonts") && astring.length >= 2) {
|
||||||
|
this.ofCustomFonts = Boolean.valueOf(astring[1]).booleanValue();
|
||||||
|
}
|
||||||
|
|
||||||
Keyboard.setFunctionKeyModifier(keyBindFunction.getKeyCode());
|
Keyboard.setFunctionKeyModifier(keyBindFunction.getKeyCode());
|
||||||
|
|
||||||
for (SoundCategory soundcategory : SoundCategory.values()) {
|
for (SoundCategory soundcategory : SoundCategory.values()) {
|
||||||
|
@ -1732,6 +1745,7 @@ public class GameSettings {
|
||||||
printwriter.println("ofDynamicFov:" + this.ofDynamicFov);
|
printwriter.println("ofDynamicFov:" + this.ofDynamicFov);
|
||||||
printwriter.println("ofMipmapType:" + this.ofMipmapType);
|
printwriter.println("ofMipmapType:" + this.ofMipmapType);
|
||||||
printwriter.println("ofBetterSnow:" + this.ofBetterSnow);
|
printwriter.println("ofBetterSnow:" + this.ofBetterSnow);
|
||||||
|
printwriter.println("ofCustomFonts:" + this.ofCustomFonts);
|
||||||
|
|
||||||
for (KeyBinding keybinding : this.keyBindings) {
|
for (KeyBinding keybinding : this.keyBindings) {
|
||||||
printwriter.println("key_" + keybinding.getKeyDescription() + ":" + keybinding.getKeyCode());
|
printwriter.println("key_" + keybinding.getKeyDescription() + ":" + keybinding.getKeyCode());
|
||||||
|
@ -1919,7 +1933,8 @@ public class GameSettings {
|
||||||
VIGNETTE("Vignette", false, false),
|
VIGNETTE("Vignette", false, false),
|
||||||
DYNAMIC_FOV("Dynamic FOV", false, false),
|
DYNAMIC_FOV("Dynamic FOV", false, false),
|
||||||
MIPMAP_TYPE("Mipmap Type", true, false, 0.0F, 3.0F, 1.0F),
|
MIPMAP_TYPE("Mipmap Type", true, false, 0.0F, 3.0F, 1.0F),
|
||||||
BETTER_SNOW("Better Snow", false, false);
|
BETTER_SNOW("Better Snow", false, false),
|
||||||
|
CUSTOM_FONTS("Custom Fonts", false, false);
|
||||||
|
|
||||||
private final boolean enumFloat;
|
private final boolean enumFloat;
|
||||||
private final boolean enumBoolean;
|
private final boolean enumBoolean;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user