diff options
author | Raven Szewczyk <git@eigenraven.me> | 2024-05-25 14:59:04 +0100 |
---|---|---|
committer | Raven Szewczyk <git@eigenraven.me> | 2024-05-25 14:59:04 +0100 |
commit | 14ac3f29c26a92ce52ca32aaf5848eeb84b54d9d (patch) | |
tree | 4e3006babed98e17c5471910504819ac53c01e30 /src/main/java/gregtech/mixin/Mixin.java | |
parent | a9cb5807616bb5f80e8225a8808bedaa82f60b75 (diff) | |
download | GT5-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.java | 50 |
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 + } +} |