aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dulkirmod/mixins
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/dulkirmod/mixins')
-rw-r--r--src/main/java/dulkirmod/mixins/MixinGuiContainer.java6
-rw-r--r--src/main/java/dulkirmod/mixins/MixinGuiUtils.java21
-rw-r--r--src/main/java/dulkirmod/mixins/MixinItemRenderer.java (renamed from src/main/java/dulkirmod/mixins/ItemRendererMixin.java)2
-rw-r--r--src/main/java/dulkirmod/mixins/MixinItemStack.java27
-rw-r--r--src/main/java/dulkirmod/mixins/MixinOldAnimations.java30
5 files changed, 85 insertions, 1 deletions
diff --git a/src/main/java/dulkirmod/mixins/MixinGuiContainer.java b/src/main/java/dulkirmod/mixins/MixinGuiContainer.java
index 4a50163..50118f1 100644
--- a/src/main/java/dulkirmod/mixins/MixinGuiContainer.java
+++ b/src/main/java/dulkirmod/mixins/MixinGuiContainer.java
@@ -2,6 +2,7 @@ package dulkirmod.mixins;
import dulkirmod.features.Croesus;
import dulkirmod.features.DungeonLeap;
+import dulkirmod.features.ScalableTooltips;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
@@ -43,4 +44,9 @@ public abstract class MixinGuiContainer extends GuiScreen {
this.zLevel = 0.0F;
}
}
+ @Inject(method = "onGuiClosed", at = @At("HEAD"))
+ private void onGuiClosed(CallbackInfo ci) {
+ // reset values here
+ ScalableTooltips.INSTANCE.resetPos();
+ }
}
diff --git a/src/main/java/dulkirmod/mixins/MixinGuiUtils.java b/src/main/java/dulkirmod/mixins/MixinGuiUtils.java
new file mode 100644
index 0000000..414963b
--- /dev/null
+++ b/src/main/java/dulkirmod/mixins/MixinGuiUtils.java
@@ -0,0 +1,21 @@
+package dulkirmod.mixins;
+
+import dulkirmod.features.ScalableTooltips;
+import net.minecraft.client.gui.FontRenderer;
+import net.minecraftforge.fml.client.config.GuiUtils;
+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 java.util.List;
+
+@Mixin(value = {GuiUtils.class}, remap = false)
+public class MixinGuiUtils {
+
+ @Inject(method = "drawHoveringText", at = @At("HEAD"), cancellable = true)
+ private static void drawScaledHoveringText(List<String> textLines, int mouseX, int mouseY, int screenWidth, int screenHeight, int maxTextWidth, FontRenderer font, CallbackInfo ci) {
+ if (ScalableTooltips.INSTANCE.drawScaledHoveringText(textLines, mouseX, mouseY, screenWidth, screenHeight, maxTextWidth, font, ci))
+ ci.cancel();
+ }
+}
diff --git a/src/main/java/dulkirmod/mixins/ItemRendererMixin.java b/src/main/java/dulkirmod/mixins/MixinItemRenderer.java
index 0fb56e4..a81e67d 100644
--- a/src/main/java/dulkirmod/mixins/ItemRendererMixin.java
+++ b/src/main/java/dulkirmod/mixins/MixinItemRenderer.java
@@ -13,7 +13,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(value = {ItemRenderer.class})
-public class ItemRendererMixin {
+public class MixinItemRenderer {
@Shadow @Final private RenderItem itemRenderer;
diff --git a/src/main/java/dulkirmod/mixins/MixinItemStack.java b/src/main/java/dulkirmod/mixins/MixinItemStack.java
new file mode 100644
index 0000000..76440ef
--- /dev/null
+++ b/src/main/java/dulkirmod/mixins/MixinItemStack.java
@@ -0,0 +1,27 @@
+package dulkirmod.mixins;
+import dulkirmod.features.ScalableTooltips;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+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.CallbackInfoReturnable;
+
+import java.util.List;
+
+@Mixin(ItemStack.class)
+public abstract class MixinItemStack {
+
+ private static ItemStack previousStack;
+
+ @Inject(method = "getTooltip", at = @At("HEAD"))
+ public void onTooltip(EntityPlayer playerIn, boolean advanced, CallbackInfoReturnable<List<String>> cir) {
+
+ ItemStack currentStack = (ItemStack)(Object)this;
+ if (currentStack != previousStack) {
+ // reset values here for scrollable tooltips
+ ScalableTooltips.INSTANCE.resetPos();
+ previousStack = currentStack;
+ }
+ }
+}
diff --git a/src/main/java/dulkirmod/mixins/MixinOldAnimations.java b/src/main/java/dulkirmod/mixins/MixinOldAnimations.java
new file mode 100644
index 0000000..de38ddc
--- /dev/null
+++ b/src/main/java/dulkirmod/mixins/MixinOldAnimations.java
@@ -0,0 +1,30 @@
+package dulkirmod.mixins;
+
+import dulkirmod.DulkirMod;
+import net.minecraft.client.renderer.ItemRenderer;
+import net.minecraft.item.ItemStack;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Pseudo;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
+
+/**
+ * This method will basically just turn off all the oldanimations code that is breaking dulkirmod.
+ *
+ * It will only run if you have the global settings of Custom Animations turned on, so you can basically
+ * pick which one you want to have. Either custom animations or old. This is not a great fix, but
+ * to make them work together seamlessly I would *basically* be recoding the entirety of Old Animations into
+ * this mod, which I don't really want to do.
+ */
+
+@Pseudo
+@Mixin(targets = "club.sk1er.oldanimations.AnimationHandler", remap = false)
+public class MixinOldAnimations {
+
+ @Inject(method = "renderItemInFirstPerson", at = @At(value = "HEAD"), cancellable = true)
+ public void angy(ItemRenderer renderer, ItemStack stack, float equipProgress, float partialTicks, CallbackInfoReturnable<Boolean> cir) {
+ if (DulkirMod.Companion.getConfig().getCustomAnimations())
+ cir.setReturnValue(false);
+ }
+}