aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/mixin/Mixin.java
diff options
context:
space:
mode:
authorRaven Szewczyk <git@eigenraven.me>2024-05-25 14:59:04 +0100
committerRaven Szewczyk <git@eigenraven.me>2024-05-25 14:59:04 +0100
commit14ac3f29c26a92ce52ca32aaf5848eeb84b54d9d (patch)
tree4e3006babed98e17c5471910504819ac53c01e30 /src/main/java/gregtech/mixin/Mixin.java
parenta9cb5807616bb5f80e8225a8808bedaa82f60b75 (diff)
downloadGT5-Unofficial-14ac3f29c26a92ce52ca32aaf5848eeb84b54d9d.tar.gz
GT5-Unofficial-14ac3f29c26a92ce52ca32aaf5848eeb84b54d9d.tar.bz2
GT5-Unofficial-14ac3f29c26a92ce52ca32aaf5848eeb84b54d9d.zip
Relocate KubaTech mixins
Diffstat (limited to 'src/main/java/gregtech/mixin/Mixin.java')
-rw-r--r--src/main/java/gregtech/mixin/Mixin.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main/java/gregtech/mixin/Mixin.java b/src/main/java/gregtech/mixin/Mixin.java
new file mode 100644
index 0000000000..347dec2c5e
--- /dev/null
+++ b/src/main/java/gregtech/mixin/Mixin.java
@@ -0,0 +1,50 @@
+package gregtech.mixin;
+
+import static gregtech.mixin.TargetedMod.VANILLA;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+
+import cpw.mods.fml.relauncher.FMLLaunchHandler;
+
+public enum Mixin {
+
+ // Minecraft
+ WorldMixin("minecraft.WorldMixin", VANILLA),
+ StringTranslateMixin("minecraft.StringTranslateMixin", VANILLA),
+ LanguageRegistryMixin("minecraft.LanguageRegistryMixin", VANILLA),
+ LocaleMixin("minecraft.LocaleMixin", Side.CLIENT, VANILLA),
+
+ ;
+
+ public final String mixinClass;
+ public final List<TargetedMod> targetedMods;
+ private final Side side;
+
+ Mixin(String mixinClass, Side side, TargetedMod... targetedMods) {
+ this.mixinClass = mixinClass;
+ this.targetedMods = Arrays.asList(targetedMods);
+ this.side = side;
+ }
+
+ Mixin(String mixinClass, TargetedMod... targetedMods) {
+ this.mixinClass = mixinClass;
+ this.targetedMods = Arrays.asList(targetedMods);
+ this.side = Side.BOTH;
+ }
+
+ public boolean shouldLoad(List<TargetedMod> loadedMods) {
+ return (side == Side.BOTH || side == Side.SERVER && FMLLaunchHandler.side()
+ .isServer()
+ || side == Side.CLIENT && FMLLaunchHandler.side()
+ .isClient())
+ && new HashSet<>(loadedMods).containsAll(targetedMods);
+ }
+
+ enum Side {
+ BOTH,
+ CLIENT,
+ SERVER
+ }
+}