Skip to content

Commit

Permalink
Fixed small bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
Toshimichi0915 committed Aug 22, 2024
1 parent 5d6682a commit 458822f
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 20 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ minecraft_version=1.21.1
yarn_mappings=1.21.1+build.3
loader_version=0.16.2
# Mod Properties
mod_version=1.8.3
mod_version=1.8.4
maven_group=net.toshimichi
archives_base_name=thymine
# Dependencies
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/net/toshimichi/thymine/ThymineMod.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class ThymineMod implements ModInitializer {
public void onInitialize() {
sprintKeyBinding = new KeyBinding("thymine.options.toggleSprint", GLFW.GLFW_KEY_R, "thymine");
KeyBindingHelper.registerKeyBinding(sprintKeyBinding);
ClientTickEvents.START_CLIENT_TICK.register(new SprintStartTick());
ClientTickEvents.START_CLIENT_TICK.register(new ToggleSprintTick());
}

public static ThymineOptions getOptions() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,21 @@
import net.minecraft.client.MinecraftClient;
import net.toshimichi.thymine.options.ThymineOptions;

public class SprintStartTick implements ClientTickEvents.StartTick {
public class ToggleSprintTick implements ClientTickEvents.StartTick {

private boolean lastPressed;

@Override
public void onStartTick(MinecraftClient client) {
ThymineOptions opt = ThymineMod.getOptions();
if (!opt.toggleSprint) return;
if (!opt.toggleSprint) {
opt.sprint = false;
return;
}
boolean pressed = ThymineMod.getSprintKeyBinding().isPressed();
if (pressed && !lastPressed) {
opt.sprint = !opt.sprint;
if (!opt.sprint)
client.options.sprintKey.setPressed(false);
}
lastPressed = pressed;
if (opt.sprint)
client.options.sprintKey.setPressed(true);
this.lastPressed = pressed;
}
}
}
14 changes: 4 additions & 10 deletions src/main/java/net/toshimichi/thymine/mixin/GameRendererMixin.java
Original file line number Diff line number Diff line change
@@ -1,23 +1,17 @@
package net.toshimichi.thymine.mixin;

import net.minecraft.client.option.SimpleOption;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.toshimichi.thymine.ThymineMod;
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.Redirect;

@Mixin(GameRenderer.class)
abstract public class GameRendererMixin {

@Redirect(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/GameRenderer;bobView(Lnet/minecraft/client/util/math/MatrixStack;F)V"), method = "renderWorld")
public void bobView(GameRenderer instance, MatrixStack matrices, float tickDelta) {
if (!ThymineMod.getOptions().noScreenBobbing) {
bobView(matrices, tickDelta);
}
@Redirect(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/option/SimpleOption;getValue()Ljava/lang/Object;", ordinal = 0), method = "renderWorld", require = 0)
public Object bobView(SimpleOption<Boolean> instance) {
return !ThymineMod.getOptions().noScreenBobbing;
}

@Shadow
protected abstract void bobView(MatrixStack matrices, float tickDelta);
}
25 changes: 25 additions & 0 deletions src/main/java/net/toshimichi/thymine/mixin/KeyBindingMixin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package net.toshimichi.thymine.mixin;

import net.minecraft.client.option.KeyBinding;
import net.toshimichi.thymine.ThymineMod;
import org.spongepowered.asm.mixin.Final;
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.callback.CallbackInfoReturnable;

@Mixin(KeyBinding.class)
public class KeyBindingMixin {

@Final
@Shadow
private String translationKey;

@Inject(at = @At("HEAD"), method = "isPressed", cancellable = true)
public void isPressed(CallbackInfoReturnable<Boolean> cir) {
if (ThymineMod.getOptions().toggleSprint && translationKey.equals("key.sprint")) {
cir.setReturnValue(ThymineMod.getOptions().sprint);
}
}
}
1 change: 1 addition & 0 deletions src/main/resources/thymine.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"HeldItemRendererMixin",
"InGameHudMixin",
"InGameOverlayRendererMixin",
"KeyBindingMixin",
"LightmapTextureManagerMixin",
"MinecraftClientMixin",
"OptionsScreenMixin",
Expand Down

0 comments on commit 458822f

Please # to comment.