add files
This commit is contained in:
commit
784a776dbb
7211 changed files with 811080 additions and 0 deletions
542
src/main/java/net/minecraft/client/gui/GuiOverlayDebug.java
Executable file
542
src/main/java/net/minecraft/client/gui/GuiOverlayDebug.java
Executable file
|
|
@ -0,0 +1,542 @@
|
|||
package net.minecraft.client.gui;
|
||||
|
||||
import static net.lax1dude.eaglercraft.v1_8.opengl.RealOpenGLEnums.*;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import net.lax1dude.eaglercraft.v1_8.Display;
|
||||
import net.lax1dude.eaglercraft.v1_8.EagRuntime;
|
||||
import net.lax1dude.eaglercraft.v1_8.HString;
|
||||
import net.lax1dude.eaglercraft.v1_8.internal.EnumPlatformType;
|
||||
import net.lax1dude.eaglercraft.v1_8.opengl.EaglercraftGPU;
|
||||
import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
|
||||
import net.lax1dude.eaglercraft.v1_8.opengl.OpenGlHelper;
|
||||
import net.lax1dude.eaglercraft.v1_8.sp.SingleplayerServerController;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.properties.IProperty;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.client.ClientBrandRetriever;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.client.renderer.entity.RenderManager;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.FrameTimer;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.DifficultyInstance;
|
||||
import net.minecraft.world.EnumSkyBlock;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraft.world.chunk.Chunk;
|
||||
|
||||
/**+
|
||||
* This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code.
|
||||
*
|
||||
* Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!"
|
||||
* Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team
|
||||
*
|
||||
* EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights Reserved.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
public class GuiOverlayDebug extends Gui {
|
||||
private final Minecraft mc;
|
||||
private final FontRenderer fontRenderer;
|
||||
public int playerOffset = 0;
|
||||
|
||||
public GuiOverlayDebug(Minecraft mc) {
|
||||
this.mc = mc;
|
||||
this.fontRenderer = mc.fontRendererObj;
|
||||
}
|
||||
|
||||
public void renderDebugInfo(ScaledResolution scaledResolutionIn) {
|
||||
playerOffset = 0;
|
||||
int ww = scaledResolutionIn.getScaledWidth();
|
||||
int hh = scaledResolutionIn.getScaledHeight();
|
||||
this.mc.mcProfiler.startSection("debug");
|
||||
if (this.mc.gameSettings.showDebugInfo) {
|
||||
GlStateManager.pushMatrix();
|
||||
this.renderDebugInfoLeft();
|
||||
this.renderDebugInfoRight(scaledResolutionIn);
|
||||
GlStateManager.popMatrix();
|
||||
if (this.mc.gameSettings.field_181657_aC) {
|
||||
this.func_181554_e();
|
||||
}
|
||||
} else {
|
||||
int i = 2;
|
||||
|
||||
if (this.mc.gameSettings.hudFps) {
|
||||
drawFPS(2, i);
|
||||
playerOffset = drawSingleplayerStats(scaledResolutionIn);
|
||||
i += 9;
|
||||
}
|
||||
|
||||
if (this.mc.gameSettings.hudCoords) {
|
||||
drawXYZ(2, i);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (this.mc.currentScreen == null || !(this.mc.currentScreen instanceof GuiChat)) {
|
||||
if (this.mc.gameSettings.hudStats) {
|
||||
drawStatsHUD(ww - 2, hh - 2);
|
||||
}
|
||||
|
||||
if (this.mc.gameSettings.hudWorld) {
|
||||
drawWorldHUD(2, hh - 2);
|
||||
}
|
||||
}
|
||||
|
||||
if (this.mc.gameSettings.hudCoords && this.mc.joinWorldTickCounter < 80) {
|
||||
if (this.mc.joinWorldTickCounter > 70) {
|
||||
GlStateManager.enableBlend();
|
||||
GlStateManager.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
}
|
||||
int i = this.mc.joinWorldTickCounter - 70;
|
||||
if (i < 0)
|
||||
i = 0;
|
||||
drawHideHUD(ww / 2, hh - 70, (10 - i) * 0xFF / 10);
|
||||
if (this.mc.joinWorldTickCounter > 70) {
|
||||
GlStateManager.disableBlend();
|
||||
}
|
||||
}
|
||||
|
||||
this.mc.mcProfiler.endSection();
|
||||
}
|
||||
|
||||
private void drawFPS(int x, int y) {
|
||||
this.fontRenderer.drawStringWithShadow(this.mc.renderGlobal.getDebugInfoShort(), x, y, 0xFFFFFF);
|
||||
}
|
||||
|
||||
private void drawXYZ(int x, int y) {
|
||||
Entity e = mc.getRenderViewEntity();
|
||||
BlockPos blockpos = new BlockPos(e.posX, e.getEntityBoundingBox().minY, e.posZ);
|
||||
this.fontRenderer.drawStringWithShadow(
|
||||
"x: " + blockpos.getX() + ", y: " + blockpos.getY() + ", z: " + blockpos.getZ(), x, y, 0xFFFFFF);
|
||||
}
|
||||
|
||||
private void drawStatsHUD(int x, int y) {
|
||||
int i = 9;
|
||||
|
||||
String line = "Walk: " + EnumChatFormatting.YELLOW + HString.format("%.2f", mc.thePlayer.getAIMoveSpeed())
|
||||
+ EnumChatFormatting.WHITE + " Flight: "
|
||||
+ (mc.thePlayer.capabilities.allowFlying
|
||||
? ("" + EnumChatFormatting.YELLOW + mc.thePlayer.capabilities.getFlySpeed())
|
||||
: EnumChatFormatting.RED + "No");
|
||||
int lw = fontRenderer.getStringWidth(line);
|
||||
this.fontRenderer.drawStringWithShadow(line, x - lw, y - i, 0xFFFFFF);
|
||||
i += 11;
|
||||
|
||||
line = "Food: " + EnumChatFormatting.YELLOW + mc.thePlayer.getFoodStats().getFoodLevel()
|
||||
+ EnumChatFormatting.WHITE + ", Sat: " + EnumChatFormatting.YELLOW
|
||||
+ HString.format("%.1f", mc.thePlayer.getFoodStats().getSaturationLevel());
|
||||
lw = fontRenderer.getStringWidth(line);
|
||||
this.fontRenderer.drawStringWithShadow(line, x - lw, y - i, 0xFFFFFF);
|
||||
i += 11;
|
||||
|
||||
line = "Amr: " + EnumChatFormatting.YELLOW + mc.thePlayer.getTotalArmorValue() + EnumChatFormatting.WHITE
|
||||
+ ", Health: " + EnumChatFormatting.RED + HString.format("%.1f", mc.thePlayer.getHealth());
|
||||
lw = fontRenderer.getStringWidth(line);
|
||||
this.fontRenderer.drawStringWithShadow(line, x - lw, y - i, 0xFFFFFF);
|
||||
i += 11;
|
||||
|
||||
int xpc = mc.thePlayer.xpBarCap();
|
||||
line = "XP: " + EnumChatFormatting.GREEN + MathHelper.floor_float(mc.thePlayer.experience * xpc)
|
||||
+ EnumChatFormatting.WHITE + " / " + EnumChatFormatting.GREEN + xpc;
|
||||
lw = fontRenderer.getStringWidth(line);
|
||||
this.fontRenderer.drawStringWithShadow(line, x - lw, y - i, 0xFFFFFF);
|
||||
i += 11;
|
||||
|
||||
Iterator<PotionEffect> potions = mc.thePlayer.getActivePotionEffects().iterator();
|
||||
if (potions.hasNext()) {
|
||||
while (potions.hasNext()) {
|
||||
i += 11;
|
||||
PotionEffect e = potions.next();
|
||||
int t = e.getDuration() / 20;
|
||||
int m = t / 60;
|
||||
int s = t % 60;
|
||||
int j = e.getAmplifier();
|
||||
if (j > 0) {
|
||||
line = I18n.format(e.getEffectName())
|
||||
+ (j > 0 ? (" " + EnumChatFormatting.YELLOW + EnumChatFormatting.BOLD
|
||||
+ I18n.format("potion.potency." + j) + EnumChatFormatting.RESET) : "")
|
||||
+ " [" + EnumChatFormatting.YELLOW + HString.format("%02d:%02d", m, s)
|
||||
+ EnumChatFormatting.RESET + "]";
|
||||
} else {
|
||||
line = I18n.format(e.getEffectName()) + " [" + EnumChatFormatting.YELLOW
|
||||
+ HString.format("%02d:%02d", m, s) + EnumChatFormatting.RESET + "]";
|
||||
}
|
||||
lw = fontRenderer.getStringWidth(line);
|
||||
this.fontRenderer.drawStringWithShadow(line, x - lw, y - i, 0xFFFFFF);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static final int ticksAtMidnight = 18000;
|
||||
public static final int ticksPerDay = 24000;
|
||||
public static final int ticksPerHour = 1000;
|
||||
public static final double ticksPerMinute = 1000d / 60d;
|
||||
public static final double ticksPerSecond = 1000d / 60d / 60d;
|
||||
private static final SimpleDateFormat SDFTwentyFour = new SimpleDateFormat("HH:mm", Locale.ENGLISH);
|
||||
private static final SimpleDateFormat SDFTwelve = new SimpleDateFormat("h:mm aa", Locale.ENGLISH);
|
||||
|
||||
private void drawWorldHUD(int x, int y) {
|
||||
/*
|
||||
* Math was taken from: https://github.com/EssentialsX/Essentials/blob/
|
||||
* dc7fb919391d62de45e17b51ae1e6fe3e66d7ac6/Essentials/src/main/java/com/
|
||||
* earth2me/essentials/utils/DescParseTickFormat.java
|
||||
*/
|
||||
long totalTicks = mc.theWorld.getWorldTime();
|
||||
long ticks = totalTicks;
|
||||
ticks = ticks - ticksAtMidnight + ticksPerDay;
|
||||
final long days = ticks / ticksPerDay;
|
||||
ticks -= days * ticksPerDay;
|
||||
final long hours = ticks / ticksPerHour;
|
||||
ticks -= hours * ticksPerHour;
|
||||
final long minutes = (long) Math.floor(ticks / ticksPerMinute);
|
||||
final double dticks = ticks - minutes * ticksPerMinute;
|
||||
final long seconds = (long) Math.floor(dticks / ticksPerSecond);
|
||||
|
||||
// TODO: why does desktop JRE not apply "GMT" correctly?
|
||||
final Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"), Locale.ENGLISH);
|
||||
|
||||
cal.setLenient(true);
|
||||
cal.set(0, Calendar.JANUARY, 1, 0, 0, 0);
|
||||
cal.add(Calendar.DAY_OF_YEAR, (int) days);
|
||||
cal.add(Calendar.HOUR_OF_DAY, (int) hours);
|
||||
cal.add(Calendar.MINUTE, (int) minutes);
|
||||
cal.add(Calendar.SECOND, (int) seconds + 1);
|
||||
|
||||
String timeString = EnumChatFormatting.WHITE + "Day " + ((totalTicks + 30000l) / 24000l) + " ("
|
||||
+ EnumChatFormatting.YELLOW
|
||||
+ (this.mc.gameSettings.hud24h ? SDFTwentyFour : SDFTwelve).format(cal.getTime())
|
||||
+ EnumChatFormatting.WHITE + ")";
|
||||
|
||||
Entity e = mc.getRenderViewEntity();
|
||||
BlockPos blockpos = new BlockPos(e.posX, MathHelper.clamp_double(e.getEntityBoundingBox().minY, 0.0D, 254.0D),
|
||||
e.posZ);
|
||||
BiomeGenBase biome = mc.theWorld.getBiomeGenForCoords(blockpos);
|
||||
|
||||
Chunk c = mc.theWorld.getChunkFromBlockCoords(blockpos);
|
||||
int blockLight = c.getLightFor(EnumSkyBlock.BLOCK, blockpos);
|
||||
int skyLight = c.getLightFor(EnumSkyBlock.SKY, blockpos) - mc.theWorld.calculateSkylightSubtracted(1.0f);
|
||||
int totalLight = Math.max(blockLight, skyLight);
|
||||
EnumChatFormatting lightColor = blockLight < 8
|
||||
? ((skyLight < 8 || !mc.theWorld.isDaytime()) ? EnumChatFormatting.RED : EnumChatFormatting.YELLOW)
|
||||
: EnumChatFormatting.GREEN;
|
||||
String lightString = "Light: " + lightColor + totalLight + EnumChatFormatting.WHITE;
|
||||
|
||||
float temp = biome.getFloatTemperature(blockpos);
|
||||
|
||||
String tempString = "Temp: "
|
||||
+ ((blockLight > 11 || temp > 0.15f) ? EnumChatFormatting.YELLOW : EnumChatFormatting.AQUA)
|
||||
+ HString.format("%.2f", temp) + EnumChatFormatting.WHITE;
|
||||
|
||||
this.fontRenderer.drawStringWithShadow(timeString, x, y - 30, 0xFFFFFF);
|
||||
this.fontRenderer.drawStringWithShadow("Biome: " + EnumChatFormatting.AQUA + biome.biomeName, x, y - 19,
|
||||
0xFFFFFF);
|
||||
this.fontRenderer.drawStringWithShadow(lightString + " " + tempString, x, y - 8, 0xFFFFFF);
|
||||
}
|
||||
|
||||
private void drawHideHUD(int x, int y, int fade) {
|
||||
drawCenteredString(fontRenderer, I18n.format("options.hud.note"), x, y, 0xEECC00 | (fade << 24));
|
||||
}
|
||||
|
||||
private boolean isReducedDebug() {
|
||||
return this.mc.thePlayer.hasReducedDebug() || this.mc.gameSettings.reducedDebugInfo;
|
||||
}
|
||||
|
||||
private int drawSingleplayerStats(ScaledResolution parScaledResolution) {
|
||||
if (mc.isDemo()) {
|
||||
return 13;
|
||||
}
|
||||
int i = 0;
|
||||
if (SingleplayerServerController.isWorldRunning()) {
|
||||
long tpsAge = SingleplayerServerController.getTPSAge();
|
||||
if (tpsAge < 20000l) {
|
||||
int color = tpsAge > 2000l ? 0x777777 : 0xFFFFFF;
|
||||
List<String> strs = SingleplayerServerController.getTPS();
|
||||
int l;
|
||||
boolean first = true;
|
||||
for (String str : strs) {
|
||||
l = (int) (this.fontRenderer.getStringWidth(str) * (!first ? 0.5f : 1.0f));
|
||||
GlStateManager.pushMatrix();
|
||||
GlStateManager.translate(parScaledResolution.getScaledWidth() - 2 - l, i + 2, 0.0f);
|
||||
if (!first) {
|
||||
GlStateManager.scale(0.5f, 0.5f, 0.5f);
|
||||
}
|
||||
this.fontRenderer.drawStringWithShadow(str, 0, 0, color);
|
||||
GlStateManager.popMatrix();
|
||||
i += (int) (this.fontRenderer.FONT_HEIGHT * (!first ? 0.5f : 1.0f));
|
||||
first = false;
|
||||
if (color == 0xFFFFFF) {
|
||||
color = 14737632;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return i > 0 ? i + 2 : i;
|
||||
}
|
||||
|
||||
protected void renderDebugInfoLeft() {
|
||||
List list = this.call();
|
||||
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
String s = (String) list.get(i);
|
||||
if (!Strings.isNullOrEmpty(s)) {
|
||||
int j = this.fontRenderer.FONT_HEIGHT;
|
||||
int k = this.fontRenderer.getStringWidth(s);
|
||||
boolean flag = true;
|
||||
int l = 2 + j * i;
|
||||
drawRect(1, l - 1, 2 + k + 1, l + j - 1, -1873784752);
|
||||
this.fontRenderer.drawString(s, 2, l, 14737632);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void renderDebugInfoRight(ScaledResolution parScaledResolution) {
|
||||
List list = this.getDebugInfoRight();
|
||||
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
String s = (String) list.get(i);
|
||||
if (!Strings.isNullOrEmpty(s)) {
|
||||
int j = this.fontRenderer.FONT_HEIGHT;
|
||||
int k = this.fontRenderer.getStringWidth(s);
|
||||
int l = parScaledResolution.getScaledWidth() - 2 - k;
|
||||
int i1 = 2 + j * i;
|
||||
drawRect(l - 1, i1 - 1, l + k + 1, i1 + j - 1, -1873784752);
|
||||
this.fontRenderer.drawString(s, l, i1, 14737632);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected List<String> call() {
|
||||
if (!this.mc.gameSettings.showDebugInfo) {
|
||||
BlockPos blockpos = new BlockPos(this.mc.getRenderViewEntity().posX,
|
||||
this.mc.getRenderViewEntity().getEntityBoundingBox().minY, this.mc.getRenderViewEntity().posZ);
|
||||
return Lists.newArrayList(new String[] { this.mc.renderGlobal.getDebugInfoShort(),
|
||||
"x: " + blockpos.getX() + ", y: " + blockpos.getY() + ", z: " + blockpos.getZ() });
|
||||
}
|
||||
|
||||
BlockPos blockpos = new BlockPos(this.mc.getRenderViewEntity().posX,
|
||||
this.mc.getRenderViewEntity().getEntityBoundingBox().minY, this.mc.getRenderViewEntity().posZ);
|
||||
if (this.isReducedDebug()) {
|
||||
return Lists.newArrayList(new String[] {
|
||||
"Minecraft 1.8.8 (" + this.mc.getVersion() + "/" + ClientBrandRetriever.getClientModName() + ")",
|
||||
this.mc.debug, this.mc.renderGlobal.getDebugInfoRenders(),
|
||||
this.mc.renderGlobal.getDebugInfoEntities(),
|
||||
"P: " + this.mc.effectRenderer.getStatistics() + ". T: "
|
||||
+ this.mc.theWorld.getDebugLoadedEntities(),
|
||||
this.mc.theWorld.getProviderName(), "",
|
||||
HString.format("Chunk-relative: %d %d %d", new Object[] { Integer.valueOf(blockpos.getX() & 15),
|
||||
Integer.valueOf(blockpos.getY() & 15), Integer.valueOf(blockpos.getZ() & 15) }) });
|
||||
} else {
|
||||
Entity entity = this.mc.getRenderViewEntity();
|
||||
EnumFacing enumfacing = entity.getHorizontalFacing();
|
||||
String s = "Invalid";
|
||||
switch (enumfacing) {
|
||||
case NORTH:
|
||||
s = "Towards negative Z";
|
||||
break;
|
||||
case SOUTH:
|
||||
s = "Towards positive Z";
|
||||
break;
|
||||
case WEST:
|
||||
s = "Towards negative X";
|
||||
break;
|
||||
case EAST:
|
||||
s = "Towards positive X";
|
||||
}
|
||||
|
||||
ArrayList arraylist = Lists.newArrayList(new String[] {
|
||||
"Minecraft 1.8.8 (" + this.mc.getVersion() + "/" + ClientBrandRetriever.getClientModName() + ")",
|
||||
this.mc.debug, this.mc.renderGlobal.getDebugInfoRenders(),
|
||||
this.mc.renderGlobal.getDebugInfoEntities(), "P: " + this.mc.effectRenderer.getStatistics()
|
||||
+ ". T: " + this.mc.theWorld.getDebugLoadedEntities(),
|
||||
this.mc.theWorld.getProviderName(), "",
|
||||
HString.format("XYZ: %.3f / %.5f / %.3f",
|
||||
new Object[] { Double.valueOf(this.mc.getRenderViewEntity().posX),
|
||||
Double.valueOf(this.mc.getRenderViewEntity().getEntityBoundingBox().minY),
|
||||
Double.valueOf(this.mc.getRenderViewEntity().posZ) }),
|
||||
HString.format("Block: %d %d %d",
|
||||
new Object[] { Integer.valueOf(blockpos.getX()), Integer.valueOf(blockpos.getY()),
|
||||
Integer.valueOf(blockpos.getZ()) }),
|
||||
HString.format("Chunk: %d %d %d in %d %d %d",
|
||||
new Object[] { Integer.valueOf(blockpos.getX() & 15), Integer.valueOf(blockpos.getY() & 15),
|
||||
Integer.valueOf(blockpos.getZ() & 15), Integer.valueOf(blockpos.getX() >> 4),
|
||||
Integer.valueOf(blockpos.getY() >> 4), Integer.valueOf(blockpos.getZ() >> 4) }),
|
||||
HString.format("Facing: %s (%s) (%.1f / %.1f)",
|
||||
new Object[] { enumfacing, s,
|
||||
Float.valueOf(MathHelper.wrapAngleTo180_float(entity.rotationYaw)),
|
||||
Float.valueOf(MathHelper.wrapAngleTo180_float(entity.rotationPitch)) }) });
|
||||
if (this.mc.theWorld != null && this.mc.theWorld.isBlockLoaded(blockpos)) {
|
||||
Chunk chunk = this.mc.theWorld.getChunkFromBlockCoords(blockpos);
|
||||
arraylist.add("Biome: " + chunk.getBiome(blockpos).biomeName);
|
||||
arraylist.add("Light: " + chunk.getLightSubtracted(blockpos, 0) + " ("
|
||||
+ chunk.getLightFor(EnumSkyBlock.SKY, blockpos) + " sky, "
|
||||
+ chunk.getLightFor(EnumSkyBlock.BLOCK, blockpos) + " block)");
|
||||
DifficultyInstance difficultyinstance = this.mc.theWorld.getDifficultyForLocation(blockpos);
|
||||
arraylist.add(HString.format("Local Difficulty: %.2f (Day %d)",
|
||||
new Object[] { Float.valueOf(difficultyinstance.getAdditionalDifficulty()),
|
||||
Long.valueOf(this.mc.theWorld.getWorldTime() / 24000L) }));
|
||||
}
|
||||
|
||||
if (this.mc.objectMouseOver != null
|
||||
&& this.mc.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK
|
||||
&& this.mc.objectMouseOver.getBlockPos() != null) {
|
||||
BlockPos blockpos1 = this.mc.objectMouseOver.getBlockPos();
|
||||
arraylist.add(HString.format("Looking at: %d %d %d", new Object[] { Integer.valueOf(blockpos1.getX()),
|
||||
Integer.valueOf(blockpos1.getY()), Integer.valueOf(blockpos1.getZ()) }));
|
||||
}
|
||||
|
||||
return arraylist;
|
||||
}
|
||||
}
|
||||
|
||||
protected List<String> getDebugInfoRight() {
|
||||
ArrayList arraylist;
|
||||
if (EagRuntime.getPlatformType() != EnumPlatformType.JAVASCRIPT) {
|
||||
long i = EagRuntime.maxMemory();
|
||||
long j = EagRuntime.totalMemory();
|
||||
long k = EagRuntime.freeMemory();
|
||||
long l = j - k;
|
||||
arraylist = Lists.newArrayList(new String[] {
|
||||
HString.format("Java: %s %dbit",
|
||||
new Object[] { System.getProperty("java.version"),
|
||||
Integer.valueOf(this.mc.isJava64bit() ? 64 : 32) }),
|
||||
HString.format("Mem: % 2d%% %03d/%03dMB",
|
||||
new Object[] { Long.valueOf(l * 100L / i), Long.valueOf(bytesToMb(l)),
|
||||
Long.valueOf(bytesToMb(i)) }),
|
||||
HString.format("Allocated: % 2d%% %03dMB",
|
||||
new Object[] { Long.valueOf(j * 100L / i), Long.valueOf(bytesToMb(j)) }),
|
||||
"", HString.format("CPU: %s", new Object[] { "eaglercraft" }), "",
|
||||
HString.format("Display: %dx%d (%s)",
|
||||
new Object[] { Integer.valueOf(Display.getWidth()), Integer.valueOf(Display.getHeight()),
|
||||
EaglercraftGPU.glGetString(7936) }),
|
||||
EaglercraftGPU.glGetString(7937), EaglercraftGPU.glGetString(7938) });
|
||||
} else {
|
||||
arraylist = Lists.newArrayList(
|
||||
new String[] { "Java: TeaVM", "", HString.format("CPU: %s", new Object[] { "eaglercraft" }), "",
|
||||
HString.format("Display: %dx%d (%s)",
|
||||
new Object[] { Integer.valueOf(Display.getWidth()),
|
||||
Integer.valueOf(Display.getHeight()), EaglercraftGPU.glGetString(7936) }),
|
||||
EaglercraftGPU.glGetString(7937), EaglercraftGPU.glGetString(7938) });
|
||||
}
|
||||
if (this.isReducedDebug()) {
|
||||
return arraylist;
|
||||
} else {
|
||||
if (this.mc.objectMouseOver != null
|
||||
&& this.mc.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK
|
||||
&& this.mc.objectMouseOver.getBlockPos() != null) {
|
||||
BlockPos blockpos = this.mc.objectMouseOver.getBlockPos();
|
||||
IBlockState iblockstate = this.mc.theWorld.getBlockState(blockpos);
|
||||
arraylist.add("");
|
||||
arraylist.add(String.valueOf(Block.blockRegistry.getNameForObject(iblockstate.getBlock())));
|
||||
|
||||
for (Entry entry : iblockstate.getProperties().entrySet()) {
|
||||
String s = ((Comparable) entry.getValue()).toString();
|
||||
if (entry.getValue() == Boolean.TRUE) {
|
||||
s = EnumChatFormatting.GREEN + s;
|
||||
} else if (entry.getValue() == Boolean.FALSE) {
|
||||
s = EnumChatFormatting.RED + s;
|
||||
}
|
||||
|
||||
arraylist.add(((IProperty) entry.getKey()).getName() + ": " + s);
|
||||
}
|
||||
}
|
||||
|
||||
return arraylist;
|
||||
}
|
||||
}
|
||||
|
||||
private void func_181554_e() {
|
||||
GlStateManager.disableDepth();
|
||||
FrameTimer frametimer = this.mc.func_181539_aj();
|
||||
int i = frametimer.func_181749_a();
|
||||
int j = frametimer.func_181750_b();
|
||||
long[] along = frametimer.func_181746_c();
|
||||
ScaledResolution scaledresolution = new ScaledResolution(this.mc);
|
||||
int k = i;
|
||||
int l = 0;
|
||||
drawRect(0, scaledresolution.getScaledHeight() - 60, 240, scaledresolution.getScaledHeight(), -1873784752);
|
||||
|
||||
while (k != j) {
|
||||
int i1 = frametimer.func_181748_a(along[k], 30);
|
||||
int j1 = this.func_181552_c(MathHelper.clamp_int(i1, 0, 60), 0, 30, 60);
|
||||
this.drawVerticalLine(l, scaledresolution.getScaledHeight(), scaledresolution.getScaledHeight() - i1, j1);
|
||||
++l;
|
||||
k = frametimer.func_181751_b(k + 1);
|
||||
}
|
||||
|
||||
drawRect(1, scaledresolution.getScaledHeight() - 30 + 1, 14, scaledresolution.getScaledHeight() - 30 + 10,
|
||||
-1873784752);
|
||||
this.fontRenderer.drawString("60", 2, scaledresolution.getScaledHeight() - 30 + 2, 14737632);
|
||||
this.drawHorizontalLine(0, 239, scaledresolution.getScaledHeight() - 30, -1);
|
||||
drawRect(1, scaledresolution.getScaledHeight() - 60 + 1, 14, scaledresolution.getScaledHeight() - 60 + 10,
|
||||
-1873784752);
|
||||
this.fontRenderer.drawString("30", 2, scaledresolution.getScaledHeight() - 60 + 2, 14737632);
|
||||
this.drawHorizontalLine(0, 239, scaledresolution.getScaledHeight() - 60, -1);
|
||||
this.drawHorizontalLine(0, 239, scaledresolution.getScaledHeight() - 1, -1);
|
||||
this.drawVerticalLine(0, scaledresolution.getScaledHeight() - 60, scaledresolution.getScaledHeight(), -1);
|
||||
this.drawVerticalLine(239, scaledresolution.getScaledHeight() - 60, scaledresolution.getScaledHeight(), -1);
|
||||
if (this.mc.gameSettings.limitFramerate <= 120) {
|
||||
this.drawHorizontalLine(0, 239,
|
||||
scaledresolution.getScaledHeight() - 60 + this.mc.gameSettings.limitFramerate / 2, -16711681);
|
||||
}
|
||||
|
||||
GlStateManager.enableDepth();
|
||||
}
|
||||
|
||||
private int func_181552_c(int parInt1, int parInt2, int parInt3, int parInt4) {
|
||||
return parInt1 < parInt3 ? this.func_181553_a(-16711936, -256, (float) parInt1 / (float) parInt3)
|
||||
: this.func_181553_a(-256, -65536, (float) (parInt1 - parInt3) / (float) (parInt4 - parInt3));
|
||||
}
|
||||
|
||||
private int func_181553_a(int parInt1, int parInt2, float parFloat1) {
|
||||
int i = parInt1 >> 24 & 255;
|
||||
int j = parInt1 >> 16 & 255;
|
||||
int k = parInt1 >> 8 & 255;
|
||||
int l = parInt1 & 255;
|
||||
int i1 = parInt2 >> 24 & 255;
|
||||
int j1 = parInt2 >> 16 & 255;
|
||||
int k1 = parInt2 >> 8 & 255;
|
||||
int l1 = parInt2 & 255;
|
||||
int i2 = MathHelper.clamp_int((int) ((float) i + (float) (i1 - i) * parFloat1), 0, 255);
|
||||
int j2 = MathHelper.clamp_int((int) ((float) j + (float) (j1 - j) * parFloat1), 0, 255);
|
||||
int k2 = MathHelper.clamp_int((int) ((float) k + (float) (k1 - k) * parFloat1), 0, 255);
|
||||
int l2 = MathHelper.clamp_int((int) ((float) l + (float) (l1 - l) * parFloat1), 0, 255);
|
||||
return i2 << 24 | j2 << 16 | k2 << 8 | l2;
|
||||
}
|
||||
|
||||
private static long bytesToMb(long bytes) {
|
||||
return bytes / 1024L / 1024L;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue