summaryrefslogtreecommitdiff
path: root/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules')
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java36
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GhostScaffold.java22
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoAttackCooldown.java11
3 files changed, 69 insertions, 0 deletions
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java
index 2cea608..5a69e0b 100644
--- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java
@@ -1,10 +1,20 @@
package net.justlearning.arslaan3102.arslaansmagichax.modules;
+import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.font.TextRenderer;
+import net.minecraft.client.gui.DrawContext;
+import net.minecraft.client.render.RenderTickCounter;
+import net.minecraft.text.Text;
+import net.minecraft.util.math.MathHelper;
+
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class ModuleManager {
+ private boolean hudRegistered = false;
+
private static List<Module> modules = new ArrayList<>();
public static ModuleManager INSTANCE = new ModuleManager();
public void register(Module module) {
@@ -24,4 +34,30 @@ public class ModuleManager {
module.tick();
}
}
+
+ public void registerHUD() {
+ if (!hudRegistered) {
+ HudRenderCallback.EVENT.register(this::onRenderHud);
+ hudRegistered = true;
+ }
+ }
+
+ private void onRenderHud(DrawContext drawContext, RenderTickCounter renderTickCounter) {
+ TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer;
+ float alpha = 1.0F;
+ int i = MathHelper.ceil(alpha * 255.0F) << 24; // I don't know what this dark magic is but it works
+ int x = 5;
+ int y = 5;
+
+ int titleColor = 16568909 | i; // weird magic
+
+ drawContext.drawTextWithBackground(textRenderer, Text.literal("Arslaan's Magic Hax"), x, y, 50, titleColor);
+ y += textRenderer.fontHeight + 2;
+
+ for (Module module : ModuleManager.getEnabledModules()) {
+ int color = 16777215 | i; // more magic I don't understand
+ drawContext.drawTextWithShadow(textRenderer, Text.literal(module.getName()), x, y, color);
+ y += textRenderer.fontHeight + 2;
+ }
+ }
}
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GhostScaffold.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GhostScaffold.java
new file mode 100644
index 0000000..156243e
--- /dev/null
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GhostScaffold.java
@@ -0,0 +1,22 @@
+package net.justlearning.arslaan3102.arslaansmagichax.modules.impl;
+
+import net.justlearning.arslaan3102.arslaansmagichax.modules.Module;
+import net.minecraft.block.BlockState;
+import net.minecraft.block.Blocks;
+import net.minecraft.util.math.BlockPos;
+
+public class GhostScaffold extends Module {
+ public GhostScaffold() {
+ super("GhostScaffold", "Allows you to scaffold but with ghost blocks");
+ }
+
+ @Override
+ public void tick() {
+ if (!this.isEnabled() || mc.player == null || mc.world == null) return;
+
+ BlockPos pos = mc.player.getBlockPos().down();
+ BlockState blockState = Blocks.STONE.getDefaultState();
+
+ mc.world.setBlockState(pos, blockState);
+ }
+}
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoAttackCooldown.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoAttackCooldown.java
new file mode 100644
index 0000000..6e36667
--- /dev/null
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoAttackCooldown.java
@@ -0,0 +1,11 @@
+package net.justlearning.arslaan3102.arslaansmagichax.modules.impl;
+
+import net.justlearning.arslaan3102.arslaansmagichax.modules.Module;
+
+public class NoAttackCooldown extends Module {
+ public NoAttackCooldown() {
+ super("NoAttackCooldown", "Removes attack cooldown");
+ }
+
+ // removing cooldown handled in PlayerEntityMixin
+}