Skip to content

Commit

Permalink
Implement Advancement Screenshot tweak
Browse files Browse the repository at this point in the history
Closes #626
  • Loading branch information
ACGaming committed Feb 19, 2025
1 parent 20d7a43 commit 7d4c9d1
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 1 deletion.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ All changes are toggleable via config files.
### **🔧 TWEAKS**

* **Accurate Potion Duration:** Always displays the actual potion duration instead of `**:**`
* **Advancement Screenshot:** Silently takes a screenshot every time an advancement is achieved
* **Advancement GUI**
* Allows increasing the Advancement GUI to scale with the screen size
* Moves the page buttons to in-line with the rest of the GUI instead of hovering significantly
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1471,6 +1471,10 @@ public static class MiscCategory
@Config.Comment("Always displays the actual potion duration instead of `**:**`")
public boolean utPotionDurationToggle = true;

@Config.Name("Advancement Screenshot")
@Config.Comment("Silently takes a screenshot every time an advancement is achieved")
public boolean utAdvancementScreenshotToggle = false;

@Config.RequiresMcRestart
@Config.Name("Always Return to Main Menu")
@Config.Comment("Always returns the player to the main menu when quitting the game")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package mod.acgaming.universaltweaks.tweaks.misc.advancements.screenshot;

import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.event.entity.player.AdvancementEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;

import mod.acgaming.universaltweaks.UniversalTweaks;
import mod.acgaming.universaltweaks.config.UTConfigGeneral;
import mod.acgaming.universaltweaks.config.UTConfigTweaks;
import mod.acgaming.universaltweaks.util.UTPacketHandler;

@Mod.EventBusSubscriber(modid = UniversalTweaks.MODID, value = Side.CLIENT)
public class UTAdvancementScreenshot
{
private static long lastScreenshotTick = 0;

@SubscribeEvent
public static void utAdvancementScreenshot(AdvancementEvent event)
{
if (!UTConfigTweaks.MISC.utAdvancementScreenshotToggle) return;
if (UTConfigGeneral.DEBUG.utDebugToggle) UniversalTweaks.LOGGER.debug("UTAdvancementScreenshot ::: Advancement event");
long currentTick = Minecraft.getMinecraft().world.getTotalWorldTime();
if (currentTick - lastScreenshotTick > 20)
{
UTPacketHandler.instance.sendTo(new UTAdvancementScreenshotMessage(), (EntityPlayerMP) event.getEntityPlayer());
lastScreenshotTick = currentTick;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package mod.acgaming.universaltweaks.tweaks.misc.advancements.screenshot;

import net.minecraft.client.Minecraft;
import net.minecraft.util.ScreenShotHelper;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;

import io.netty.buffer.ByteBuf;

public class UTAdvancementScreenshotMessage implements IMessage
{
public UTAdvancementScreenshotMessage() {}

@Override
public void fromBytes(ByteBuf buf) {}

@Override
public void toBytes(ByteBuf buf) {}

public static class Handler implements IMessageHandler<UTAdvancementScreenshotMessage, IMessage>
{
@Override
public IMessage onMessage(UTAdvancementScreenshotMessage message, MessageContext ctx)
{
Minecraft.getMinecraft().addScheduledTask(() -> {
Minecraft mc = Minecraft.getMinecraft();
ScreenShotHelper.saveScreenshot(mc.gameDir, mc.displayWidth, mc.displayHeight, mc.getFramebuffer());
});
return null;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import net.minecraftforge.fml.relauncher.Side;

import mod.acgaming.universaltweaks.UniversalTweaks;
import mod.acgaming.universaltweaks.tweaks.misc.advancements.screenshot.UTAdvancementScreenshotMessage;
import mod.acgaming.universaltweaks.tweaks.misc.damagetilt.UTDamageTiltMessage;
import mod.acgaming.universaltweaks.util.particle.UTParticleSpawnerMessage;

Expand All @@ -18,5 +19,6 @@ public static void init()
{
instance.registerMessage(UTDamageTiltMessage.Handler.class, UTDamageTiltMessage.class, id++, Side.CLIENT);
instance.registerMessage(UTParticleSpawnerMessage.Handler.class, UTParticleSpawnerMessage.class, id++, Side.CLIENT);
instance.registerMessage(UTAdvancementScreenshotMessage.Handler.class, UTAdvancementScreenshotMessage.class, id++, Side.CLIENT);
}
}
}

0 comments on commit 7d4c9d1

Please sign in to comment.