Added both game and irl days played in the F3 debug menu
parent
9df7d3cc2c
commit
166c43d9c4
|
@ -2,13 +2,13 @@
|
||||||
org.gradle.jvmargs=-Xmx1G
|
org.gradle.jvmargs=-Xmx1G
|
||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
minecraft_version=b1.7.3
|
minecraft_version=b1.7.3
|
||||||
loader_version=1.0.0
|
loader_version=1.0.0
|
||||||
plasma_build=22
|
plasma_build=22
|
||||||
#This is actually 1.1.0, but that decided it didn't want to build on maven
|
#This is actually 1.1.0, but that decided it didn't want to build on maven
|
||||||
api_version=1.1.0.1
|
api_version=1.1.0.1
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 1.0.0
|
mod_version = 1.0.0
|
||||||
maven_group = xyz.pixelatedw.finalbeta
|
maven_group = xyz.pixelatedw.finalbeta
|
||||||
archives_base_name = finalbeta
|
archives_base_name = finalbeta
|
||||||
|
|
|
@ -2,8 +2,11 @@ package xyz.pixelatedw.finalbeta;
|
||||||
|
|
||||||
import java.lang.management.ManagementFactory;
|
import java.lang.management.ManagementFactory;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
import java.time.Duration;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.entity.player.Player;
|
||||||
|
import net.minecraft.stat.Stats;
|
||||||
|
|
||||||
public class WyHelper {
|
public class WyHelper {
|
||||||
|
|
||||||
|
@ -18,6 +21,25 @@ public class WyHelper {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isTimeBehind() {
|
||||||
|
// int currentPlayTime = WyHelper.getInstance().statManager.getStatAmount(Stats.playOneMinute)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long getTicksPlayed() {
|
||||||
|
return WyHelper.getInstance().statManager.getStatAmount(Stats.playOneMinute);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long getRealDaysPlayed() {
|
||||||
|
int seconds = WyHelper.getInstance().statManager.getStatAmount(Stats.playOneMinute) / 20;
|
||||||
|
return Duration.ofSeconds(seconds).toDays();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long getGameDaysPlayed() {
|
||||||
|
int seconds = WyHelper.getInstance().statManager.getStatAmount(Stats.playOneMinute) / 20;
|
||||||
|
return Duration.ofSeconds(seconds).toMinutes() / 20;
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isDebug() {
|
public static boolean isDebug() {
|
||||||
return ManagementFactory.getRuntimeMXBean().getInputArguments().toString().indexOf("-agentlib:jdwp") > 0;
|
return ManagementFactory.getRuntimeMXBean().getInputArguments().toString().indexOf("-agentlib:jdwp") > 0;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +52,8 @@ public class WyHelper {
|
||||||
return val < min ? min : Math.min(val, max);
|
return val < min ? min : Math.min(val, max);
|
||||||
}
|
}
|
||||||
|
|
||||||
// public static void cheatCommand(Player player) {
|
public static void cheatCommand(Player player) {
|
||||||
|
|
||||||
// player.dropItem(new ItemInstance(Tile.SNOW));
|
// player.dropItem(new ItemInstance(Tile.SNOW));
|
||||||
// Random rand = new Random();
|
// Random rand = new Random();
|
||||||
// player.level.playSound(player, "random.break", 1, (rand.nextFloat() - rand.nextFloat()) * 0.2F + 1.0F);
|
// player.level.playSound(player, "random.break", 1, (rand.nextFloat() - rand.nextFloat()) * 0.2F + 1.0F);
|
||||||
|
@ -59,5 +82,5 @@ public class WyHelper {
|
||||||
// player.level.getProperties().setRainTime(0);
|
// player.level.getProperties().setRainTime(0);
|
||||||
// player.level.getProperties().setThundering(false);
|
// player.level.getProperties().setThundering(false);
|
||||||
// player.level.getProperties().setThunderTime(0);
|
// player.level.getProperties().setThunderTime(0);
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package xyz.pixelatedw.finalbeta.mixin;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import org.lwjgl.input.Keyboard;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
@ -12,6 +13,7 @@ import net.minecraft.entity.player.ClientPlayer;
|
||||||
import net.minecraft.entity.player.Player;
|
import net.minecraft.entity.player.Player;
|
||||||
import net.minecraft.inventory.Inventory;
|
import net.minecraft.inventory.Inventory;
|
||||||
import xyz.pixelatedw.finalbeta.ModConfig;
|
import xyz.pixelatedw.finalbeta.ModConfig;
|
||||||
|
import xyz.pixelatedw.finalbeta.WyHelper;
|
||||||
|
|
||||||
@Mixin(ClientPlayer.class)
|
@Mixin(ClientPlayer.class)
|
||||||
public class ClientPlayerMixin {
|
public class ClientPlayerMixin {
|
||||||
|
@ -20,10 +22,10 @@ public class ClientPlayerMixin {
|
||||||
|
|
||||||
@Inject(method = "method_136", at = @At("TAIL"))
|
@Inject(method = "method_136", at = @At("TAIL"))
|
||||||
public void onKeyPressed(int key, boolean state, CallbackInfo ci) {
|
public void onKeyPressed(int key, boolean state, CallbackInfo ci) {
|
||||||
// if (WyHelper.isDebug() && key == 25 && state) {
|
if (WyHelper.isDebug() && key == Keyboard.KEY_Z && state) {
|
||||||
// Player player = (Player) (Object) this;
|
Player player = (Player) (Object) this;
|
||||||
// WyHelper.cheatCommand(player);
|
WyHelper.cheatCommand(player);
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject(method = "openChestScreen", at = @At("TAIL"))
|
@Inject(method = "openChestScreen", at = @At("TAIL"))
|
||||||
|
|
|
@ -27,7 +27,7 @@ public class ContainerScreenMixin extends ScreenMixin {
|
||||||
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/container/ContainerScreen;renderForeground()V", shift = Shift.AFTER))
|
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/container/ContainerScreen;renderForeground()V", shift = Shift.AFTER))
|
||||||
public void onRender(int i, int j, float f, CallbackInfo ci) {
|
public void onRender(int i, int j, float f, CallbackInfo ci) {
|
||||||
ContainerScreen screen = ((ContainerScreen) (Object) this);
|
ContainerScreen screen = ((ContainerScreen) (Object) this);
|
||||||
PlayerInventory selectedItem = minecraft.player.inventory;
|
PlayerInventory selectedItem = this.minecraft.player.inventory;
|
||||||
int posX = (screen.width - this.containerWidth) / 2;
|
int posX = (screen.width - this.containerWidth) / 2;
|
||||||
int posY = (screen.height - this.containerHeight) / 2;
|
int posY = (screen.height - this.containerHeight) / 2;
|
||||||
|
|
||||||
|
@ -42,10 +42,8 @@ public class ContainerScreenMixin extends ScreenMixin {
|
||||||
|
|
||||||
if (selectedItem.getCursorItem() != null) {
|
if (selectedItem.getCursorItem() != null) {
|
||||||
GL11.glTranslatef(0.0F, 0.0F, 32.0F);
|
GL11.glTranslatef(0.0F, 0.0F, 32.0F);
|
||||||
itemRenderer.renderItemInstance(minecraft.textRenderer, minecraft.textureManager, selectedItem.getCursorItem(), i - posX - 8,
|
itemRenderer.renderItemInstance(this.minecraft.textRenderer, this.minecraft.textureManager, selectedItem.getCursorItem(), i - posX - 8, j - posY - 8);
|
||||||
j - posY - 8);
|
itemRenderer.method_1488(this.minecraft.textRenderer, this.minecraft.textureManager, selectedItem.getCursorItem(), i - posX - 8, j - posY - 8);
|
||||||
itemRenderer.method_1488(minecraft.textRenderer, minecraft.textureManager, selectedItem.getCursorItem(), i - posX - 8,
|
|
||||||
j - posY - 8);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GL11.glDisable(32826);
|
GL11.glDisable(32826);
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
package xyz.pixelatedw.finalbeta.mixin;
|
||||||
|
|
||||||
|
import org.objectweb.asm.Opcodes;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Slice;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.DrawableHelper;
|
||||||
|
import net.minecraft.client.gui.Overlay;
|
||||||
|
import net.minecraft.client.render.TextRenderer;
|
||||||
|
import xyz.pixelatedw.finalbeta.WyHelper;
|
||||||
|
|
||||||
|
@Mixin(Overlay.class)
|
||||||
|
public class OverlayMixin extends DrawableHelper {
|
||||||
|
|
||||||
|
@Shadow
|
||||||
|
private Minecraft minecraft;
|
||||||
|
|
||||||
|
@Inject(
|
||||||
|
method = "render(FZII)V",
|
||||||
|
at = @At(
|
||||||
|
value = "INVOKE",
|
||||||
|
target = "Lorg/lwjgl/opengl/GL11;glPopMatrix()V"
|
||||||
|
),
|
||||||
|
slice = @Slice(
|
||||||
|
from = @At(
|
||||||
|
value = "INVOKE",
|
||||||
|
target = "drawTextWithShadow(Lnet/minecraft/client/render/TextRenderer;Ljava/lang/String;III)V"
|
||||||
|
),
|
||||||
|
to = @At(
|
||||||
|
value = "FIELD",
|
||||||
|
target = "jukeboxMessageTime:I",
|
||||||
|
opcode = Opcodes.GETFIELD
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
public void render(float f, boolean flag, int i, int j, CallbackInfo ci) {
|
||||||
|
TextRenderer textRenderer = this.minecraft.textRenderer;
|
||||||
|
this.drawTextWithShadow(textRenderer, "Days Played: " + WyHelper.getGameDaysPlayed() + " (" + WyHelper.getRealDaysPlayed() + ")", 2, 96, 14737632);
|
||||||
|
}
|
||||||
|
}
|
|
@ -27,7 +27,8 @@
|
||||||
"FurnaceEntityMixin",
|
"FurnaceEntityMixin",
|
||||||
"WorldRendererMixin",
|
"WorldRendererMixin",
|
||||||
"VideoSettingsScreenMixin",
|
"VideoSettingsScreenMixin",
|
||||||
"TileMixin"
|
"TileMixin",
|
||||||
|
"OverlayMixin"
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
|
|
Loading…
Reference in New Issue