Skip to content

Commit cc05eb5

Browse files
committed
🚧 wip flashback mixins [1 done, 1 not done]
1 parent e05c15f commit cc05eb5

File tree

12 files changed

+90
-14
lines changed

12 files changed

+90
-14
lines changed

‎README.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Winter's Summer Fixes
22

3-
Some datapack [and maybe code?] fixes done for the Winter's Summer modpack, packaged as a mod
3+
Some fixes done for the Winter's Summer modpack.
44

55
## Fixes [so far]
66
- Allow the Grappling Hook from Limits' Grapple fork to have Durability-based enchantments [Unbreaking, Mending, etc]
7-
- [WIP] Properly center the Grappling Hook's crosshair if in use with Centered Crosshair mod [but not if in use with Dynamic Crosshair as well]
87

98
## Additions
109
- Raccoon trinkets slot for Raccoons & Rabies [thanks Cartrigger for the idea]
11-
- also thanks Cartrigger for the Normal and Alternative slot texture for the Raccoon Slot
10+
- also thanks Cartrigger for the Normal and Alternative slot texture for the Raccoon Slot
11+
- Be able to change the Grappling Hook's HUD color through the Winter's Summer Fixes config

‎build.gradle.kts‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,10 @@ dependencies {
4444
include(modImplementation(libs.midnightlib.get())!!)
4545

4646
// modImplementation(files("localLibs/centered-crosshair+1.21-1.0.8.jar"))
47-
// modImplementation(files("localLibs/limits_grapple-0.7.3-1.21.1.jar"))
48-
// modImplementation(files("localLibs/trinkets-3.10.0.jar"))
47+
modImplementation(files("localLibs/limits_grapple-0.7.3-1.21.1.jar"))
48+
modImplementation(files("localLibs/trinkets-3.10.0.jar"))
49+
modImplementation(files("localLibs/Flashback-0.36.0-for-MC1.21.1.jar"))
50+
modImplementation(files("localLibs/lattice-1.2.10.jar"))
4951

5052
include(modImplementation(libs.fmw.get())!!) // just to avoid the basic long metadata calls
5153
include(implementation(annotationProcessor(libs.mixinsquared.get())!!)!!)

‎src/main/java/one/devos/nautical/winterssummerfixes/config/Config.java‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,16 @@ public class Config extends MidnightConfig {
1111

1212
@Entry(category = "client", isColor = true)
1313
public static String limitsGrappleMissColor = "#99994c";
14+
15+
@Comment(category = "client", centered = true)
16+
public static String flashback;
17+
18+
@Comment(category = "client", centered = true)
19+
public static String flashbackSpacer;
20+
21+
@Comment(category = "client")
22+
public static String flashbackReplayForceAllowIncompatibleModsExtremeWarning;
23+
24+
@Entry(category = "client")
25+
public static Boolean flashbackReplayForceAllowIncompatibleMods = false;
1426
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package one.devos.nautical.winterssummerfixes.mixin.compat.client.flashback;
2+
3+
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
4+
import com.moulberry.flashback.Flashback;
5+
import com.moulberry.mixinconstraints.annotations.IfModLoaded;
6+
import one.devos.nautical.winterssummerfixes.config.Config;
7+
import org.spongepowered.asm.mixin.Mixin;
8+
import org.spongepowered.asm.mixin.injection.At;
9+
10+
import java.util.List;
11+
12+
@IfModLoaded("flashback")
13+
@Mixin(value = Flashback.class, priority = 1800, remap = false)
14+
public class FlashbackReplayIncompatibleModsMixin {
15+
@ModifyReturnValue(
16+
method = "getReplayIncompatibleMods",
17+
at = @At(value = "RETURN",
18+
target = "Lcom/moulberry/flashback/Flashback;getReplayIncompatibleMods()Ljava/util/List;"
19+
)
20+
)
21+
private static List<String> getReplayIncompatibleMods(List<String> original) {
22+
if (Config.flashbackReplayForceAllowIncompatibleMods) {
23+
original.clear();
24+
}
25+
26+
return original;
27+
}
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package one.devos.nautical.winterssummerfixes.mixin.compat.client.flashback;
2+
3+
import com.bawnorton.mixinsquared.TargetHandler;
4+
import com.moulberry.mixinconstraints.annotations.IfModLoaded;
5+
import net.minecraft.client.gui.screens.TitleScreen;
6+
import org.spongepowered.asm.mixin.Mixin;
7+
import org.spongepowered.asm.mixin.injection.At;
8+
import org.spongepowered.asm.mixin.injection.ModifyArg;
9+
10+
@Mixin(value = TitleScreen.class, priority = 1800, remap = false)
11+
@IfModLoaded("flashback")
12+
public class FlashbackReplayIncompatibleModsTitleScreenMixin {
13+
@TargetHandler(mixin = "com.moulberry.flashback.mixin.ui.MixinTitleScreen", name = "createOrPositionOpenSelectReplayScreenButton")
14+
@ModifyArg(method = "@MixinSquared:Handler", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/chat/Component;translatable(Ljava/lang/String;)Lnet/minecraft/network/chat/MutableComponent;"))
15+
private static String modifyWarning(String key) {
16+
return "winterssummerfixes.flashback.incompatible_with_recording_description";
17+
}
18+
}

src/main/java/one/devos/nautical/winterssummerfixes/mixin/compat/client/LimitsGrappleInGameHudColorMixin.java renamed to src/main/java/one/devos/nautical/winterssummerfixes/mixin/compat/client/limitsgrapple/LimitsGrappleInGameHudColorMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package one.devos.nautical.winterssummerfixes.mixin.compat.client;
1+
package one.devos.nautical.winterssummerfixes.mixin.compat.client.limitsgrapple;
22

33
import com.bawnorton.mixinsquared.TargetHandler;
44
import net.minecraft.client.gui.Gui;

‎src/main/kotlin/one/devos/nautical/winterssummerfixes/WintersSummerFixes.kt‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ package one.devos.nautical.winterssummerfixes
33
import eu.midnightdust.lib.config.MidnightConfig
44
import gay.asoji.fmw.FMW
55
import net.fabricmc.api.ModInitializer
6+
import net.fabricmc.fabric.api.resource.ResourceManagerHelper
7+
import net.fabricmc.fabric.api.resource.ResourcePackActivationType
8+
import net.fabricmc.loader.api.FabricLoader
9+
import net.minecraft.network.chat.Component
10+
import net.minecraft.resources.ResourceLocation
611
import one.devos.nautical.winterssummerfixes.config.Config
712
import org.slf4j.Logger
813
import org.slf4j.LoggerFactory

‎src/main/kotlin/one/devos/nautical/winterssummerfixes/client/WintersSummerFixesClient.kt‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,12 @@ object WintersSummerFixesClient : ClientModInitializer {
1616
Component.literal("Alt Raccoon Trinket Texture"),
1717
ResourcePackActivationType.NORMAL
1818
)
19+
20+
ResourceManagerHelper.registerBuiltinResourcePack(
21+
ResourceLocation.fromNamespaceAndPath(WintersSummerFixes.MOD_ID, "flashbacklang"),
22+
FabricLoader.getInstance().getModContainer(WintersSummerFixes.MOD_ID).get(),
23+
Component.literal("Flashback Warning Override"),
24+
ResourcePackActivationType.ALWAYS_ENABLED
25+
)
1926
}
2027
}

‎src/main/resources/assets/flashback/lang/en_us.json‎

Lines changed: 0 additions & 3 deletions
This file was deleted.

‎src/main/resources/assets/winterssummerfixes/lang/en_us.json‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,10 @@
22
"winterssummerfixes.midnightconfig.title": "Winter's Summer Fixes",
33
"winterssummerfixes.midnightconfig.limitsGrapple" : "Limits' Grapple",
44
"winterssummerfixes.midnightconfig.limitsGrappleHitColor": "Hit Color",
5-
"winterssummerfixes.midnightconfig.limitsGrappleMissColor": "Miss Color"
5+
"winterssummerfixes.midnightconfig.limitsGrappleMissColor": "Miss Color",
6+
7+
"winterssummerfixes.midnightconfig.flashback" : "Flashback",
8+
"winterssummerfixes.midnightconfig.flashbackReplayForceAllowIncompatibleModsExtremeWarning" : "§l§4WARNING: §rDO NOT TOUCH THIS SETTING UNLESS YOU KNOW EXACTLY WHAT YOU'RE GETTING YOURSELF INTO.\nFLASHBACK DISABLES THE USAGE OF VIEWING REPLAYS WITH C2ME FOR A VERY GOOD REASON.",
9+
10+
"winterssummerfixes.flashback.incompatible_with_recording_description": "You have mods which are known to cause issues when recording replays\nPlease go back to the Main Menu screen, Mods, open the Config for Winter's Summer Fixes,\nand enable the Flashback Allow Incompatible Mods in order to\nbe able to view replays.\n\n"
611
}

0 commit comments

Comments
 (0)