Skip to content

Commit

Permalink
Fix safari timer resetting and show timer on tab
Browse files Browse the repository at this point in the history
  • Loading branch information
KaptainWutax committed Jan 13, 2025
1 parent 0361dda commit 073fa50
Show file tree
Hide file tree
Showing 12 changed files with 51 additions and 17 deletions.
1 change: 1 addition & 0 deletions common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ dependencies {
modImplementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version"
modImplementation "dev.architectury:architectury:$rootProject.architectury_api_version"
modImplementation("com.cobblemon:mod:1.5.2+1.20.1")
implementation(annotationProcessor("com.github.bawnorton.mixinsquared:mixinsquared-common:0.2.0"))

modImplementation files("jars/Bountiful-6.0.3+1.20.1-fabric.jar")
modImplementation files("jars/cloud-boots-1.20.1-fabric-3.0.0.jar")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package abeshutt.staracademy.compat.terrastorage;

import net.minecraft.client.gui.screen.ingame.ShulkerBoxScreen;
import net.p3pp3rf1y.sophisticatedbackpacks.client.gui.BackpackScreen;
import net.p3pp3rf1y.sophisticatedstorage.client.gui.StorageScreen;

public class TerraStorageCompat {

public static boolean shouldBlock(Object object) {
return object instanceof BackpackScreen || object instanceof StorageScreen;
return object instanceof BackpackScreen || object instanceof StorageScreen || object instanceof ShulkerBoxScreen;
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package abeshutt.staracademy.mixin;

import abeshutt.staracademy.StarAcademyMod;
import abeshutt.staracademy.screen.SafariWidget;
import abeshutt.staracademy.screen.StarterSelectionWidget;
import abeshutt.staracademy.util.ClientScheduler;
Expand All @@ -12,6 +13,7 @@
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
Expand Down Expand Up @@ -47,6 +49,12 @@ private void renderSafari(DrawContext context, float tickDelta) {
return;
}

ClientWorld world = MinecraftClient.getInstance().world;

if((world == null || world.getRegistryKey() != StarAcademyMod.SAFARI) && !MinecraftClient.getInstance().options.playerListKey.isPressed()) {
return;
}

SafariWidget widget = new SafariWidget();
widget.render(context, 0, 0, ClientScheduler.getTick(tickDelta));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(ForceSpawningUtils.class)
@Mixin(targets = { "com.github.d0ctorleon.mythsandlegends.utils.ForceSpawningUtils" })
public class MixinForceSpawningUtils {

@Inject(method = "forceSpawnv1", at = @At("HEAD"))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package abeshutt.staracademy.fabric.mixin.terrastorage;
package abeshutt.staracademy.mixin.terrastorage;

import abeshutt.staracademy.compat.terrastorage.TerraStorageCompat;
import com.bawnorton.mixinsquared.TargetHandler;
Expand All @@ -8,14 +8,16 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(value = HandledScreen.class, priority = 1500)
@Mixin(value = HandledScreen.class, priority = 15000)
public class MixinHandledScreenMixin {

@TargetHandler(mixin = "me.timvinci.mixin.client.HandledScreenMixin", name = "onInit")
@Inject(method = "@MixinSquared:Handler", at = @At("HEAD"))
public void onInit(CallbackInfo oci, CallbackInfo ci) {
@Inject(method = "@MixinSquared:Handler", at = @At("HEAD"), cancellable = true)
public void onInit(CallbackInfo ci) {
System.out.println("==================== MIXIN THE MIXIN ====================");

if(TerraStorageCompat.shouldBlock(this)) {
oci.cancel();
ci.cancel();
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package abeshutt.staracademy.fabric.mixin.terrastorage;
package abeshutt.staracademy.mixin.terrastorage;

import abeshutt.staracademy.compat.terrastorage.TerraStorageCompat;
import com.bawnorton.mixinsquared.TargetHandler;
Expand All @@ -8,14 +8,16 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(value = InventoryScreen.class, priority = 1500)
@Mixin(value = InventoryScreen.class, priority = 15000)
public class MixinInventoryScreenMixin {

@TargetHandler(mixin = "me.timvinci.mixin.client.InventoryScreenMixin", name = "onInit")
@Inject(method = "@MixinSquared:Handler", at = @At("HEAD"))
public void onInit(CallbackInfo oci, CallbackInfo ci) {
@Inject(method = "@MixinSquared:Handler", at = @At("HEAD"), cancellable = true)
public void onInit(CallbackInfo ci) {
System.out.println("==================== MIXIN THE MIXIN ====================");

if(TerraStorageCompat.shouldBlock(this)) {
oci.cancel();
ci.cancel();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,7 @@ public Optional<NbtCompound> writeNbt() {

nbt.put("entries", entries);
Adapters.LONG.writeNbt(this.timeLeft).ifPresent(tag -> nbt.put("timeLeft", tag));
Adapters.LONG.writeNbt(this.lastUpdated).ifPresent(tag -> nbt.put("lastUpdated", tag));
return nbt;
});
}
Expand Down Expand Up @@ -324,6 +325,7 @@ public void readNbt(NbtCompound nbt) {
}

this.timeLeft = Adapters.LONG.readNbt(nbt.get("timeLeft")).orElse(0L);
this.lastUpdated = Adapters.LONG.readNbt(nbt.get("lastUpdated")).orElse(0L);
}

public static void init() {
Expand Down
4 changes: 3 additions & 1 deletion common/src/main/resources/academy-common.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
"cobblemon.MixinSelectionButton",
"cobblemon.MixinStarterSelectionScreen",
"mousewheelie.MixinContainerScreenHelper",
"scout.MixinScoutUtilClient"
"scout.MixinScoutUtilClient",
"terrastorage.MixinHandledScreenMixin",
"terrastorage.MixinInventoryScreenMixin"
],
"mixins": [
"MixinAbstractFireBlock",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"parent": "academy:block/safari_portal"
"parent": "academy:block/safari_portal_ew"
}
2 changes: 1 addition & 1 deletion fabric/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ dependencies {
modImplementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version"
modImplementation "net.fabricmc.fabric-api:fabric-api:$rootProject.fabric_api_version"
modImplementation "dev.architectury:architectury-fabric:$rootProject.architectury_api_version"
include(implementation(annotationProcessor("com.github.bawnorton.mixinsquared:mixinsquared-fabric:0.2.0")))
implementation(include(annotationProcessor("com.github.bawnorton.mixinsquared:mixinsquared-fabric:0.2.0")))

modImplementation "com.cobblemon:fabric:1.5.2+1.20.1"
//modImplementation "maven.modrinth:enhanced-celestials:6.0.1.3-fabric"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package abeshutt.staracademy.fabric.mixin;

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;

@Mixin(MinecraftClient.class)
public class MixinMinecraftClient {

@Inject(method = "tick", at = @At("HEAD"))
private void tick(CallbackInfo ci) {

}

}
3 changes: 1 addition & 2 deletions fabric/src/main/resources/academy-fabric.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@
"compatibilityLevel": "JAVA_17",
"minVersion": "0.8",
"client": [
"terrastorage.MixinHandledScreenMixin",
"terrastorage.MixinInventoryScreenMixin"
],
"mixins": [
"MixinMinecraftClient"
],
"injectors": {
"defaultRequire": 1
Expand Down

0 comments on commit 073fa50

Please sign in to comment.