Split client & common sources + POC FPS counter

This commit is contained in:
2025-03-27 11:03:35 +01:00
parent b6bb6565a8
commit 045623a67b
9 changed files with 119 additions and 5 deletions

View File

@ -0,0 +1,39 @@
package wtf.hak.survivalfabric;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.util.InputUtil;
import net.minecraft.text.Text;
import org.lwjgl.glfw.GLFW;
import java.awt.*;
public class SurvivalFabricClient implements ClientModInitializer {
public static boolean SHOULD_SHOW_FPS = false;
KeyBinding keyBinding = KeyBindingHelper.registerKeyBinding(new KeyBinding(
"key.survivalfabric.fps", // The translation key of the keybinding's name
InputUtil.Type.KEYSYM, // The type of the keybinding, KEYSYM for keyboard, MOUSE for mouse.
GLFW.GLFW_KEY_PERIOD, // The keycode of the key
"category.survivalfabric.utils" // The translation key of the keybinding's category.
));
@Override
public void onInitializeClient() {
ClientTickEvents.END_CLIENT_TICK.register(client -> {
while (keyBinding.wasPressed()) {
MinecraftClient mc = MinecraftClient.getInstance();
SHOULD_SHOW_FPS = !SHOULD_SHOW_FPS;
if(SHOULD_SHOW_FPS) {
mc.player.sendMessage(Text.literal("FPS Counter is now on").withColor(Color.GREEN.getRGB()), true);
} else
mc.player.sendMessage(Text.literal("FPS Counter is now off").withColor(Color.RED.getRGB()), true);
}
});
}
}

View File

@ -0,0 +1,11 @@
package wtf.hak.survivalfabric;
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint;
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
public class SurvivalFabricDataGenerator implements DataGeneratorEntrypoint {
@Override
public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {
}
}

View File

@ -0,0 +1,28 @@
package wtf.hak.survivalfabric.mixin.client;
import net.minecraft.client.MinecraftClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.client.render.RenderTickCounter;
import wtf.hak.survivalfabric.SurvivalFabricClient;
import java.awt.*;
@Mixin(InGameHud.class)
public class InGameHudMixin {
private final int TEXT_COLOR = Color.GRAY.getRGB();
@Inject(method = "render", at = @At("RETURN"))
private void renderFPS(DrawContext context, RenderTickCounter tickCounter, CallbackInfo ci) {
if(SurvivalFabricClient.SHOULD_SHOW_FPS) {
MinecraftClient client = MinecraftClient.getInstance();
context.drawTextWithShadow(client.textRenderer, client.getCurrentFps() + " FPS", 5, 5, TEXT_COLOR);
}
}
}