Added both game and irl days played in the F3 debug menu

master
Wynd 2023-10-07 15:10:59 +03:00
parent 9df7d3cc2c
commit 166c43d9c4
6 changed files with 89 additions and 20 deletions

View File

@ -2,13 +2,13 @@
org.gradle.jvmargs=-Xmx1G
# Fabric Properties
minecraft_version=b1.7.3
loader_version=1.0.0
plasma_build=22
#This is actually 1.1.0, but that decided it didn't want to build on maven
api_version=1.1.0.1
minecraft_version=b1.7.3
loader_version=1.0.0
plasma_build=22
#This is actually 1.1.0, but that decided it didn't want to build on maven
api_version=1.1.0.1
# Mod Properties
mod_version = 1.0.0
maven_group = xyz.pixelatedw.finalbeta
archives_base_name = finalbeta
mod_version = 1.0.0
maven_group = xyz.pixelatedw.finalbeta
archives_base_name = finalbeta

View File

@ -2,8 +2,11 @@ package xyz.pixelatedw.finalbeta;
import java.lang.management.ManagementFactory;
import java.lang.reflect.Field;
import java.time.Duration;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.Player;
import net.minecraft.stat.Stats;
public class WyHelper {
@ -18,6 +21,25 @@ public class WyHelper {
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() {
return ManagementFactory.getRuntimeMXBean().getInputArguments().toString().indexOf("-agentlib:jdwp") > 0;
}
@ -30,7 +52,8 @@ public class WyHelper {
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));
// Random rand = new Random();
// 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().setThundering(false);
// player.level.getProperties().setThunderTime(0);
// }
}
}

View File

@ -2,6 +2,7 @@ package xyz.pixelatedw.finalbeta.mixin;
import java.util.Random;
import org.lwjgl.input.Keyboard;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
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.inventory.Inventory;
import xyz.pixelatedw.finalbeta.ModConfig;
import xyz.pixelatedw.finalbeta.WyHelper;
@Mixin(ClientPlayer.class)
public class ClientPlayerMixin {
@ -20,10 +22,10 @@ public class ClientPlayerMixin {
@Inject(method = "method_136", at = @At("TAIL"))
public void onKeyPressed(int key, boolean state, CallbackInfo ci) {
// if (WyHelper.isDebug() && key == 25 && state) {
// Player player = (Player) (Object) this;
// WyHelper.cheatCommand(player);
// }
if (WyHelper.isDebug() && key == Keyboard.KEY_Z && state) {
Player player = (Player) (Object) this;
WyHelper.cheatCommand(player);
}
}
@Inject(method = "openChestScreen", at = @At("TAIL"))

View File

@ -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))
public void onRender(int i, int j, float f, CallbackInfo ci) {
ContainerScreen screen = ((ContainerScreen) (Object) this);
PlayerInventory selectedItem = minecraft.player.inventory;
PlayerInventory selectedItem = this.minecraft.player.inventory;
int posX = (screen.width - this.containerWidth) / 2;
int posY = (screen.height - this.containerHeight) / 2;
@ -42,10 +42,8 @@ public class ContainerScreenMixin extends ScreenMixin {
if (selectedItem.getCursorItem() != null) {
GL11.glTranslatef(0.0F, 0.0F, 32.0F);
itemRenderer.renderItemInstance(minecraft.textRenderer, 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);
itemRenderer.renderItemInstance(this.minecraft.textRenderer, this.minecraft.textureManager, selectedItem.getCursorItem(), i - posX - 8, j - posY - 8);
itemRenderer.method_1488(this.minecraft.textRenderer, this.minecraft.textureManager, selectedItem.getCursorItem(), i - posX - 8, j - posY - 8);
}
GL11.glDisable(32826);

View File

@ -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);
}
}

View File

@ -27,7 +27,8 @@
"FurnaceEntityMixin",
"WorldRendererMixin",
"VideoSettingsScreenMixin",
"TileMixin"
"TileMixin",
"OverlayMixin"
],
"injectors": {
"defaultRequire": 1