From ebdfcd21aa61bc5d3171f051a0563f6a68361b1e Mon Sep 17 00:00:00 2001 From: FalsePattern Date: Mon, 9 Jun 2025 14:38:31 +0200 Subject: [PATCH] restructure mixins --- ...nkRadiationHandlerPRISMSubChunkMixin.java} | 2 +- .../endlessids/mixin/plugin/Mixin.java | 690 ++++++++++-------- .../endlessids/mixin/plugin/TargetedMod.java | 6 + 3 files changed, 387 insertions(+), 311 deletions(-) rename src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/{ChunkRadiationHandlerPRISM_SubChunkMixin.java => ChunkRadiationHandlerPRISMSubChunkMixin.java} (96%) diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISM_SubChunkMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISMSubChunkMixin.java similarity index 96% rename from src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISM_SubChunkMixin.java rename to src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISMSubChunkMixin.java index 3a3e423..469ecc3 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISM_SubChunkMixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISMSubChunkMixin.java @@ -31,7 +31,7 @@ import org.spongepowered.asm.mixin.injection.Redirect; import net.minecraft.world.chunk.storage.ExtendedBlockStorage; @Mixin(ChunkRadiationHandlerPRISM.SubChunk.class) -public abstract class ChunkRadiationHandlerPRISM_SubChunkMixin { +public abstract class ChunkRadiationHandlerPRISMSubChunkMixin { @Redirect(method = "rebuild", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/chunk/storage/ExtendedBlockStorage;getBlockLSBArray()[B"), diff --git a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java index ad62736..73f46b5 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java @@ -26,327 +26,397 @@ import com.falsepattern.endlessids.config.GeneralConfig; import com.falsepattern.lib.mixin.IMixin; import com.falsepattern.lib.mixin.ITargetedMod; import lombok.Getter; -import lombok.RequiredArgsConstructor; +import lombok.val; import java.util.List; import java.util.function.Predicate; +import java.util.function.Supplier; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.ABYSSALCRAFT; import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.AM2; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.ANTIIDCONFLICT; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.ANTIQUEATLAS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.ATG; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.BIOMETWEAKER; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.BIOMEWAND; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.BOP; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.BUILDCRAFT; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.CLIMATECONTROL; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.COFHLIB; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.COMPACTMACHINES; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.DARKWORLD; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.DIMDOORS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.DRAGONAPI; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.EB; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.ENDERLICIOUS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.EREBUS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.EXTENDEDPLANETS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.EXTRAPLANETS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.EXTRAUTILITIES; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.FACTORIZATION; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.FUTUREPACK; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.GADOMANCY; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.GALACTICRAFTCORE; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.GALAXYSPACE; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.HBM_NTM; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.HIGHLANDS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.ICG; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.IR3; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.JAS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.LOTR; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.MATTERMEGADRIVE; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.MATTEROVERDRIVE; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.MFQM; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.NATURESCOMPASS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.NETHERLICIOUS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.NOMADICTENTS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.OWG; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.RANDOMTHINGS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.RESTRUCTURED; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.RTG; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.RWG; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.TARDIS; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.THAUMCRAFT; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.THUTCORE; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.TMOR; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.TROPICRAFT; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.TWILIGHTFOREST; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.UBC; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.WITCHERY; +import static com.falsepattern.endlessids.mixin.plugin.TargetedMod.WORLDEDIT; import static com.falsepattern.lib.mixin.IMixin.PredicateHelpers.avoid; import static com.falsepattern.lib.mixin.IMixin.PredicateHelpers.condition; import static com.falsepattern.lib.mixin.IMixin.PredicateHelpers.require; -@RequiredArgsConstructor -public enum Mixin implements IMixin { - //region common - //region AntiIDConflict - AIDCAntiIdConflictBaseMixin(Side.COMMON, require(TargetedMod.ANTIIDCONFLICT), "antiidconflict.AntiIdConflictBaseMixin"), - AIDCBiomesGenBasePlaceholderMixin(Side.COMMON, require(TargetedMod.ANTIIDCONFLICT), "antiidconflict.BiomeGenBasePlaceholderMixin"), - AIDCBiomesManagerMixin(Side.COMMON, require(TargetedMod.ANTIIDCONFLICT), "antiidconflict.BiomesManagerMixin"), - AIDCDimensionsManagerMixin(Side.COMMON, require(TargetedMod.ANTIIDCONFLICT), "antiidconflict.DimensionsManagerMixin"), - AIDCEnchantementsManagerMixin(Side.COMMON, require(TargetedMod.ANTIIDCONFLICT), "antiidconflict.EnchantementsManagerMixin"), - AIDCEntitiesManagerMixin(Side.COMMON, require(TargetedMod.ANTIIDCONFLICT), "antiidconflict.EntitiesManagerMixin"), - AIDCPotionsManagerMixin(Side.COMMON, require(TargetedMod.ANTIIDCONFLICT), "antiidconflict.PotionsManagerMixin"), - //endregion AntiIDConflict - //region biome - //region vanilla - BiomeDictionaryMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome), "biome.vanilla.BiomeDictionaryMixin"), - BiomeGenBaseMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome), "biome.vanilla.BiomeGenBaseMixin"), - BiomeGenBasePlaceholderMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome && GeneralConfig.biomeConflictAvoidancePlaceholders), "biome.vanilla.BiomeGenBasePlaceholderMixin"), - ChunkMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome), "biome.vanilla.ChunkMixin"), - GenLayerRiverMixMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(avoid(TargetedMod.DRAGONAPI)), "biome.vanilla.GenLayerRiverMixMixin"), - GenLayerVoronoiZoomMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome), "biome.vanilla.GenLayerVoronoiZoomMixin"), - //endregion vanilla - //region AbyssalCraft - AbyssalCraftMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.ABYSSALCRAFT)), "biome.abyssalcraft.AbyssalCraftMixin"), - //endregion AbyssalCraft - //region AntiqueAtlas - BiomeDetectorBaseMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.ANTIQUEATLAS)), "biome.antiqueatlas.BiomeDetectorBaseMixin"), - BiomeDetectorNetherMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.ANTIQUEATLAS)), "biome.antiqueatlas.BiomeDetectorNetherMixin"), - //endregion AntiqueAtlas - //region AdvancedRocketry - AdvancedRocketryMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.AROCKETRY)), "biome.arocketry.AdvancedRocketryMixin"), - ARocketryChunkProviderSpaceMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.AROCKETRY)), "biome.arocketry.ChunkProviderSpaceMixin"), - //endregion AdvancedRocketry - //region ATG - ATGBiomeConfigMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.ATG)), "biome.atg.ATGBiomeConfigMixin"), - ATGBiomeManagerMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.ATG)), "biome.atg.ATGBiomeManagerMixin"), - ATGWorldGenRocksMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.ATG)), "biome.atg.ATGWorldGenRocksMixin"), - //endregion ATG - //region BiomeTweaker - BiomeEventHandlerMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.BIOMETWEAKER)), "biome.biometweaker.BiomeEventHandlerMixin"), - //endregion BiomeTweaker - //region Biome Wand - BiomeWandItemMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.BIOMEWAND)), "biome.biomewand.BiomeWandItemMixin"), - //endregion Biome Wand - //region BoP - BOPBiomeManagerMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.BOP)), "biome.bop.BOPBiomeManagerMixin"), - BOPBiomesMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.BOP)), "biome.bop.BOPBiomesMixin"), - //endregion BoP - //region Buildcraft - BuildcraftEnergyMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.BUILDCRAFT)), "biome.buildcraft.BuildcraftEnergyMixin"), - //endregion Buildcraft - //region ClimateControl - ClimateControl_api_BiomeSettingsMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.api.BiomeSettingsMixin"), - ClimateControl_api_ClimateControlRulesMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.api.ClimateControlRulesMixin"), - ClimateControl_customGenLayer_ConfirmBiomeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.customGenLayer.ConfirmBiomeMixin"), - ClimateControl_customGenLayer_GenLayerBiomeByClimateMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.customGenLayer.GenLayerBiomeByClimateMixin"), - ClimateControl_customGenLayer_GenLayerBiomeByTaggedClimateMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.customGenLayer.GenLayerBiomeByTaggedClimateMixin"), - ClimateControl_customGenLayer_GenLayerDefineClimateMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.customGenLayer.GenLayerDefineClimateMixin"), - ClimateControl_customGenLayer_GenLayerLowlandRiverMixMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.customGenLayer.GenLayerLowlandRiverMixMixin"), - ClimateControl_customGenLayer_GenLayerSmoothCoastMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.customGenLayer.GenLayerSmoothCoastMixin"), - ClimateControl_customGenLayer_GenLayerSubBiomeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.customGenLayer.GenLayerSubBiomeMixin"), - ClimateControl_generator_AbstractWorldGeneratorMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.generator.AbstractWorldGeneratorMixin"), - ClimateControl_generator_BiomeSwapperMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.generator.BiomeSwapperMixin"), - ClimateControl_generator_SubBiomeChooserMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.generator.SubBiomeChooserMixin"), - ClimateControl_genLayerPack_GenLayerHillsMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.genLayerPack.GenLayerHillsMixin"), - ClimateControl_genLayerPack_GenLayerPackMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.genLayerPack.GenLayerPackMixin"), - ClimateControl_genLayerPack_GenLayerSmoothMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.genLayerPack.GenLayerSmoothMixin"), - ClimateControl_genLayerPack_GenLayerVoronoiZoomMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.genLayerPack.GenLayerVoronoiZoomMixin"), - ClimateControl_genLayerPack_GenLayerZoomMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.CLIMATECONTROL)), "biome.climatecontrol.genLayerPack.GenLayerZoomMixin"), - //endregion ClimateControl - //region CompactMachines - CMCubeToolsMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.COMPACTMACHINES)), "biome.compactmachines.CubeToolsMixin"), - //endregion CompactMachines - //region DarkWorld - DarkWorldModBiomesMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.DARKWORLD)), "biome.darkworld.ModBiomesMixin"), - //endregion DarkWorld - //region DimDoors - DDBiomeGenBaseMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.DIMDOORS)), "biome.dimdoors.DDBiomeGenBaseMixin"), - //endregion DimDoors - //region DragonAPI - DragonAPIGenLayerRiverMixVanillaMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.DRAGONAPI)), "biome.dragonapi.vanilla.GenLayerRiverMixMixin"), - DragonAPIGenLayerRiverEventMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.DRAGONAPI)), "biome.dragonapi.GenLayerRiverEventMixin"), - DragonAPIBiomeIDTypeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.DRAGONAPI)), "biome.dragonapi.IDTypeMixin"), - ReikaChunkHelperMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.DRAGONAPI)), "biome.dragonapi.ReikaChunkHelperMixin"), - ReikaWorldHelperMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.DRAGONAPI)), "biome.dragonapi.ReikaWorldHelperMixin"), - //endregion DragonAPI - //region EnhancedBiomes - EBBiomeIDsMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.EB)), "biome.eb.BiomeIDsMixin"), - EBGenLayerArchipelagoEdgeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.EB)), "biome.eb.GenLayerArchipelagoEdgeMixin"), - EBGenLayerEBHillsMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.EB)), "biome.eb.GenLayerEBHillsMixin"), - EBGenLayerEBRiverMixMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.EB)), "biome.eb.GenLayerEBRiverMixMixin"), - EBGenLayerEBVoronoiZoomMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.EB)), "biome.eb.GenLayerEBVoronoiZoomMixin"), - //endregion EnhancedBiomes - //region Enderlicious - EnderliciousBiomeConfigurationMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.ENDERLICIOUS)), "biome.enderlicious.BiomeConfigurationMixin"), - EnderliciousEndChunkProviderMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.ENDERLICIOUS)), "biome.enderlicious.EndChunkProviderMixin"), - //endregion Enderlicious - //region Erebus - ErebusModBiomesMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.EREBUS)), "biome.erebus.ModBiomesMixin"), - //endregion Erebus - //region Extended Planets - ChunkProviderOceanMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.EXTENDEDPLANETS)), "biome.extendedplanets.ChunkProviderOceanMixin"), - //endregion - //region ExtraPlanets - ExtraPlanetsConfigMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.EXTRAPLANETS)), "biome.extraplanets.ConfigMixin"), - //endregion ExtraPlanets - //region ExtraUtilities - ChunkProviderEndOfTimeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.EXTRAUTILITIES)), "biome.extrautilities.ChunkProviderEndOfTimeMixin"), - //endregion ExtraUtilities - //region Factorization - HammerChunkProviderMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.FACTORIZATION)), "biome.factorization.HammerChunkProviderMixin"), - //endregion - //region Futurepack - FuturepackBiomeGenSpaceMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.FUTUREPACK)), "biome.futurepack.BiomeGenSpaceMixin"), - //endregion Futurepack - //region Gadomancy - ChunkProviderTCOuterMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.GADOMANCY)), "biome.gadomancy.ChunkProviderTCOuterMixin"), - //endregion - //region GalactiCraftCore - GalactiCraftConfigManagerCoreMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.GALACTICRAFTCORE)), "biome.galacticraft.ConfigManagerCoreMixin"), - //endregion GalactiCraftCore - //region GalaxySpace - GSChunkProviderKuiperMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.GALAXYSPACE)), "biome.galaxyspace.ChunkProviderKuiperMixin"), - GSChunkProviderMarsSSMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.GALAXYSPACE)), "biome.galaxyspace.ChunkProviderMarsSSMixin"), - GSChunkProviderSpaceLakesMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.GALAXYSPACE)), "biome.galaxyspace.ChunkProviderSpaceLakesMixin"), - GSChunkProviderVenusSSMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.GALAXYSPACE)), "biome.galaxyspace.ChunkProviderVenusSSMixin"), - //endregion GalaxySpace - //region Highlands - HighlandsConfigMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.HIGHLANDS)), "biome.highlands.ConfigMixin"), - //endregion Highlands - //region ICG - ICGMysteriumPatchesFixesCaveMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.ICG)), "biome.icg.MysteriumPatchesFixesCaveMixin"), - //endregion ICG - //region Industrial Revolution by Redstone Rebooted - IR3IR2Mixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.IR3)), "biome.ir3.IR2Mixin"), - //endregion Industrial Revolution by Redstone Rebooted - //region Just Another Spawner - LegacyCreatureTypeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.JAS)), "biome.jas.LegacyCreatureTypeMixin"), - ModernCreatureTypeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.JAS)), "biome.jas.ModernCreatureTypeMixin"), - //endregion - //region LOTR - LOTRBiomeVariantStorageMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.LOTR)), "biome.lotr.LOTRBiomeVariantStorageMixin"), - LOTRChunkProviderMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.LOTR)), "biome.lotr.LOTRChunkProviderMixin"), - LOTRChunkProviderUtumnoMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.LOTR)), "biome.lotr.LOTRChunkProviderUtumnoMixin"), - LOTRDimensionMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.LOTR)), "biome.lotr.LOTRDimensionMixin"), - LOTRPacketBiomeVariantsWatchHandlerMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.LOTR)), "biome.lotr.LOTRPacketBiomeVariantsWatchHandlerMixin"), - LOTRWorldChunkManagerMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.LOTR)), "biome.lotr.LOTRWorldChunkManagerMixin"), - LOTRWorldProviderMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.LOTR)), "biome.lotr.LOTRWorldProviderMixin"), - //endregion LOTR - //region NaturesCompass - NaturesCompassBiomeUtilsMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.NATURESCOMPASS)), "biome.naturescompass.BiomeUtilsMixin"), - //endregion NaturesCompass - //region Netherlicious - NetherliciousBiomeConfigurationMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.NETHERLICIOUS)), "biome.netherlicious.BiomeConfigurationMixin"), - //endregion Netherlicious - //region NomadicTents - NomadicTentsTentChunkProviderMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.NOMADICTENTS)), "biome.nomadictents.TentChunkProviderMixin"), - //endregion NomadicTents - //region OWG - OWGChunkGeneratorBetaMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.OWG)), "biome.owg.ChunkGeneratorBetaMixin"), - //endregion OWG - //region RandomThings - ItemBiomePainterMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RANDOMTHINGS)), "biome.randomthings.ItemBiomePainterMixin"), - MessagePaintBiomeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RANDOMTHINGS)), "biome.randomthings.MessagePaintBiomeMixin"), - //endregion RandomThings - //region Restructured - RSBiomeHelperMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RESTRUCTURED)), "biome.restructured.BiomeHelperMixin"), - //endregion Restructured - //region RTG - RTGChunkProviderRTGMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RTG)), "biome.rtg.ChunkProviderRTGMixin"), - RTGLandscapeGeneratorMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RTG)), "biome.rtg.LandscapeGeneratorMixin"), - RTGWorldChunkManagerRTGMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RTG)), "biome.rtg.WorldChunkManagerRTGMixin"), - //endregion RTG - //region RWG - RWGChunkGeneratorRealisticMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RWG)), "biome.rwg.ChunkGeneratorRealisticMixin"), - RWGRealisticBiomeBaseMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RWG)), "biome.rwg.RealisticBiomeBaseMixin"), - RWGVillageMaterialsMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.RWG)), "biome.rwg.VillageMaterialsMixin"), - //endregion RWG - //region TARDIS Mod - TardisChunkProviderMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.TARDIS)), "biome.tardismod.TardisChunkProviderMixin"), - //endregion - //region Thaumcraft - ThaumcraftUtilsMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.THAUMCRAFT)), "biome.thaumcraft.UtilsMixin"), - //endregion Thaumcraft - //region ThutCore - ThutVector3Mixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.THUTCORE)), "biome.thut.Vector3Mixin"), - //endregion ThutCore - //region The Mists of RioV - ChunkProviderSanctuatiteMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.TMOR)), "biome.tmor.ChunkProviderSanctuatiteMixin"), - //endregion - //region Tropicraft - GenLayerTropiVoronoiZoomMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.TROPICRAFT)), "biome.tropicraft.GenLayerTropiVoronoiZoomMixin"), - //endregion Tropicraft - //region TwilightForest - TFBiomeBaseMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.TWILIGHTFOREST)), "biome.twilightforest.TFBiomeBaseMixin"), - //endregion TwilightForest - //region Witchery - WitcheryWorldChunkManagerMirrorMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.WITCHERY)), "biome.witchery.WorldChunkManagerMirrorMixin"), - WitcheryBrewActionBiomeChangeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.WITCHERY)), "biome.witchery.BrewActionBiomeChangeMixin"), - //endregion Witchery - //endregion biome - //region blockitem - //region vanilla - BlockFireMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.BlockFireMixin"), - BlockMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.BlockMixin"), - ExtendedBlockStorageMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.ExtendedBlockStorageMixin"), - ItemInWorldManagerMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.ItemInWorldManagerMixin"), - ItemStackMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.ItemStackMixin"), - PacketBufferMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.PacketBufferMixin"), - S22PacketMultiBlockChangeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.S22PacketMultiBlockChangeMixin"), - S24PacketBlockActionMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.S24PacketBlockActionMixin"), - StatListMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.StatListMixin"), - WorldMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.WorldMixin"), - //endregion vanilla - //region CoFHLib - CoFHLibCofhBlockHelperMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem).and(require(TargetedMod.COFHLIB)), "blockitem.cofhlib.BlockHelperMixin"), - //endregion CoFHLib - //region DragonAPI - DragonAPIBlockPropertiesMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem).and(require(TargetedMod.DRAGONAPI)), "blockitem.dragonapi.BlockPropertiesMixin"), - DragonAPIBlockItemIDTypeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem).and(require(TargetedMod.DRAGONAPI)), "blockitem.dragonapi.IDTypeMixin"), - //endregion DragonAPI - //region HBM's Nuclear Tech Nod - NTMChunkRadiationHandlerPRISMMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem).and(require(TargetedMod.HBM_NTM)), "blockitem.ntm.ChunkRadiationHandlerPRISMMixin"), - NTMChunkRadiationHandlerPRISM_SubChunkMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem).and(require(TargetedMod.HBM_NTM)), "blockitem.ntm.ChunkRadiationHandlerPRISM_SubChunkMixin"), - //endregion HBM's Nuclear Tech Nod - //region Matter Overdrive - MOInventoryMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem).and(require(TargetedMod.MATTEROVERDRIVE).or(require(TargetedMod.MATTERMEGADRIVE))), "blockitem.matteroverdrive.InventoryMixin"), - MOItemPatternMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem).and(require(TargetedMod.MATTEROVERDRIVE).or(require(TargetedMod.MATTERMEGADRIVE))), "blockitem.matteroverdrive.ItemPatternMixin"), - //endregion Matter Overdrive - //region MFQM - MFQMMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem).and(require(TargetedMod.MFQM)), "blockitem.mfqm.MFQMMixin"), - //endregion MFQM - //region WorldEdit - WorldEditBaseBlockMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem).and(require(TargetedMod.WORLDEDIT)), "blockitem.worldedit.BaseBlockMixin"), - //endregion WorldEdit - //region UBC - UBCOreUBifierMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem).and(require(TargetedMod.UBC)), "blockitem.ubc.OreUBifierMixin"), - UBCBiomeUndergroundDecoratorMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem).and(require(TargetedMod.UBC)), "blockitem.ubc.BiomeUndergroundDecoratorMixin"), - //endregion UBC - //endregion blockitem - //region datawatcher - //region vanilla - DataWatcherMixin(Side.COMMON, condition(() -> GeneralConfig.extendDataWatcher), "datawatcher.vanilla.DataWatcherMixin"), - //endregion vanilla - //region MFQM - MFQMDataWatcherMixin(Side.COMMON, condition(() -> GeneralConfig.extendDataWatcher).and(require(TargetedMod.MFQM)), "datawatcher.mfqm.MFQMDataWatcherMixin"), - //endregion MFQM - //endregion datawatcher - //region enchantment - //region vanilla - EnchantmentMixin(Side.COMMON, condition(() -> GeneralConfig.extendEnchantment), "enchantment.vanilla.EnchantmentMixin"), - //endregion vanilla - //endregion enchantment - //region potion - //region vanilla - PotionEffectMixin(Side.COMMON, condition(() -> GeneralConfig.extendPotion), "potion.vanilla.PotionEffectMixin"), - PotionMixin(Side.COMMON, condition(() -> GeneralConfig.extendPotion), "potion.vanilla.PotionMixin"), - S1DPacketEntityEffectMixin(Side.COMMON, condition(() -> GeneralConfig.extendPotion).and(avoid(AM2)), "potion.vanilla.network.S1DPacketEntityEffectMixin"), - S1EPacketRemoveEntityEffectMixin(Side.COMMON, condition(() -> GeneralConfig.extendPotion).and(avoid(AM2)), "potion.vanilla.network.S1EPacketRemoveEntityEffectMixin"), - //endregion vanilla - //region Thaumcraft - common_potion_Thaumcraft_ConfigMixin(Side.COMMON, condition(() -> GeneralConfig.extendPotion).and(require(TargetedMod.THAUMCRAFT)), "potion.thaumcraft.ConfigMixin"), - //endregion Thaumcraft - //endregion potion - //region entity - //region vanilla - EntityListMixin(Side.COMMON, condition(() -> GeneralConfig.extendEntity), "entity.vanilla.EntityListMixin"), - EntityRegistryMixin(Side.COMMON, condition(() -> GeneralConfig.extendEntity), "entity.vanilla.EntityRegistryMixin"), - S0FPacketSpawnMobMixin(Side.COMMON, condition(() -> GeneralConfig.extendEntity), "entity.vanilla.S0FPacketSpawnMobMixin"), - //endregion vanilla - //endregion entity - //endregion common +public class Mixin { + private Mixin() { + } - //region client - //region biome - //region Biome Wand - BiomeWandItemClientMixin(Side.CLIENT, condition(() -> GeneralConfig.extendBiome).and(require(TargetedMod.BIOMEWAND)), "biome.biomewand.BiomeWandItemMixin"), - //endregion Biome Wand - //endregion biome - //region blockitem - //region vanilla - NetHandlerPlayClientMixinBlockItem(Side.CLIENT, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.NetHandlerPlayClientMixin"), - PlayerControllerMPMixin(Side.CLIENT, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.PlayerControllerMPMixin"), - RenderGlobalMixin(Side.CLIENT, condition(() -> GeneralConfig.extendBlockItem), "blockitem.vanilla.RenderGlobalMixin"), - //endregion vanilla - //endregion blockitem - //region potion - //region vanilla - NetHandlerPlayClientMixinPotion(Side.CLIENT, condition(() -> GeneralConfig.extendPotion).and(avoid(AM2)), "potion.vanilla.NetHandlerPlayClientMixin"), - //endregion vanilla - //endregion potion - //endregion client + public enum Common implements IMixin { + //region antiidconflict + antiidconflict_AntiIdConflictBaseMixin(require(ANTIIDCONFLICT)), + antiidconflict_BiomeGenBasePlaceholderMixin(require(ANTIIDCONFLICT)), + antiidconflict_BiomesManagerMixin(require(ANTIIDCONFLICT)), + antiidconflict_DimensionsManagerMixin(require(ANTIIDCONFLICT)), + antiidconflict_EnchantementsManagerMixin(require(ANTIIDCONFLICT)), + antiidconflict_EntitiesManagerMixin(require(ANTIIDCONFLICT)), + antiidconflict_PotionsManagerMixin(require(ANTIIDCONFLICT)), + //endregion - //region redstone - //region common - BlockCompressedPoweredMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem && GeneralConfig.extendRedstone), "redstone.BlockCompressedPoweredMixin"), - BlockRedstoneDiodeMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem && GeneralConfig.extendRedstone), "redstone.BlockRedstoneDiodeMixin"), - BlockRedstoneTorchMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem && GeneralConfig.extendRedstone), "redstone.BlockRedstoneTorchMixin"), - RedstoneWorldMixin(Side.COMMON, condition(() -> GeneralConfig.extendBlockItem && GeneralConfig.extendRedstone), "redstone.WorldMixin"), - //endregion common - //region client - BlockRedstoneWireMixin(Side.CLIENT, condition(() -> GeneralConfig.extendBlockItem && GeneralConfig.extendRedstone), "redstone.BlockRedstoneWireMixin"), - RedstoneRenderBlocksMixin(Side.CLIENT, condition(() -> GeneralConfig.extendBlockItem && GeneralConfig.extendRedstone), "redstone.RenderBlocksMixin"), - //endregion client - //endregion redstone + //region biome + biome_vanilla_BiomeDictionaryMixin(EXT_BIOME), + biome_vanilla_BiomeGenBaseMixin(EXT_BIOME), + biome_vanilla_BiomeGenBasePlaceholderMixin( + all(EXT_BIOME, () -> GeneralConfig.biomeConflictAvoidancePlaceholders)), + biome_vanilla_ChunkMixin(EXT_BIOME), + biome_vanilla_GenLayerRiverMixMixin(EXT_BIOME, avoid(DRAGONAPI)), + biome_vanilla_GenLayerVoronoiZoomMixin(EXT_BIOME), - ; - @Getter - private final Side side; - @Getter - private final Predicate> filter; - @Getter - private final String mixin; + biome_abyssalcraft_AbyssalCraftMixin(EXT_BIOME, require(ABYSSALCRAFT)), + + biome_antiqueatlas_BiomeDetectorBaseMixin(EXT_BIOME, require(ANTIQUEATLAS)), + biome_antiqueatlas_BiomeDetectorNetherMixin(EXT_BIOME, require(ANTIQUEATLAS)), + + biome_atg_ATGBiomeConfigMixin(EXT_BIOME, require(ATG)), + biome_atg_ATGBiomeManagerMixin(EXT_BIOME, require(ATG)), + biome_atg_ATGWorldGenRocksMixin(EXT_BIOME, require(ATG)), + + biome_biometweaker_BiomeEventHandlerMixin(EXT_BIOME, require(BIOMETWEAKER)), + + biome_biomewand_BiomeWandItemMixin(EXT_BIOME, require(BIOMEWAND)), + + biome_bop_BOPBiomeManagerMixin(EXT_BIOME, require(BOP)), + biome_bop_BOPBiomesMixin(EXT_BIOME, require(BOP)), + + biome_buildcraft_BuildcraftEnergyMixin(EXT_BIOME, require(BUILDCRAFT)), + + biome_climatecontrol_api_BiomeSettingsMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_api_ClimateControlRulesMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_customGenLayer_ConfirmBiomeMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_customGenLayer_GenLayerBiomeByClimateMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_customGenLayer_GenLayerBiomeByTaggedClimateMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_customGenLayer_GenLayerDefineClimateMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_customGenLayer_GenLayerLowlandRiverMixMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_customGenLayer_GenLayerSmoothCoastMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_customGenLayer_GenLayerSubBiomeMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_generator_AbstractWorldGeneratorMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_generator_BiomeSwapperMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_generator_SubBiomeChooserMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_genLayerPack_GenLayerHillsMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_genLayerPack_GenLayerPackMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_genLayerPack_GenLayerSmoothMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_genLayerPack_GenLayerVoronoiZoomMixin(EXT_BIOME, require(CLIMATECONTROL)), + biome_climatecontrol_genLayerPack_GenLayerZoomMixin(EXT_BIOME, require(CLIMATECONTROL)), + + biome_compactmachines_CubeToolsMixin(EXT_BIOME, require(COMPACTMACHINES)), + + biome_darkworld_ModBiomesMixin(EXT_BIOME, require(DARKWORLD)), + + biome_dimdoors_DDBiomeGenBaseMixin(EXT_BIOME, require(DIMDOORS)), + + biome_dragonapi_vanilla_GenLayerRiverMixMixin(EXT_BIOME, require(DRAGONAPI)), + biome_dragonapi_GenLayerRiverEventMixin(EXT_BIOME, require(DRAGONAPI)), + biome_dragonapi_IDTypeMixin(EXT_BIOME, require(DRAGONAPI)), + biome_dragonapi_ReikaChunkHelperMixin(EXT_BIOME, require(DRAGONAPI)), + biome_dragonapi_ReikaWorldHelperMixin(EXT_BIOME, require(DRAGONAPI)), + + biome_eb_BiomeIDsMixin(EXT_BIOME, require(EB)), + biome_eb_GenLayerArchipelagoEdgeMixin(EXT_BIOME, require(EB)), + biome_eb_GenLayerEBHillsMixin(EXT_BIOME, require(EB)), + biome_eb_GenLayerEBRiverMixMixin(EXT_BIOME, require(EB)), + biome_eb_GenLayerEBVoronoiZoomMixin(EXT_BIOME, require(EB)), + + biome_enderlicious_BiomeConfigurationMixin(EXT_BIOME, require(ENDERLICIOUS)), + biome_enderlicious_EndChunkProviderMixin(EXT_BIOME, require(ENDERLICIOUS)), + + biome_erebus_ModBiomesMixin(EXT_BIOME, require(EREBUS)), + + biome_extendedplanets_ChunkProviderOceanMixin(EXT_BIOME, require(EXTENDEDPLANETS)), + + biome_extraplanets_ConfigMixin(EXT_BIOME, require(EXTRAPLANETS)), + + biome_extrautilities_ChunkProviderEndOfTimeMixin(EXT_BIOME, require(EXTRAUTILITIES)), + + biome_factorization_HammerChunkProviderMixin(EXT_BIOME, require(FACTORIZATION)), + + biome_futurepack_BiomeGenSpaceMixin(EXT_BIOME, require(FUTUREPACK)), + + biome_gadomancy_ChunkProviderTCOuterMixin(EXT_BIOME, require(GADOMANCY)), + + biome_galacticraft_ConfigManagerCoreMixin(EXT_BIOME, require(GALACTICRAFTCORE)), + + biome_galaxyspace_ChunkProviderKuiperMixin(EXT_BIOME, require(GALAXYSPACE)), + biome_galaxyspace_ChunkProviderMarsSSMixin(EXT_BIOME, require(GALAXYSPACE)), + biome_galaxyspace_ChunkProviderSpaceLakesMixin(EXT_BIOME, require(GALAXYSPACE)), + biome_galaxyspace_ChunkProviderVenusSSMixin(EXT_BIOME, require(GALAXYSPACE)), + + biome_highlands_ConfigMixin(EXT_BIOME, require(HIGHLANDS)), + + biome_icg_MysteriumPatchesFixesCaveMixin(EXT_BIOME, require(ICG)), + + biome_ir3_IR2Mixin(EXT_BIOME, require(IR3)), + + biome_jas_LegacyCreatureTypeMixin(EXT_BIOME, require(JAS)), + biome_jas_ModernCreatureTypeMixin(EXT_BIOME, require(JAS)), + + biome_lotr_LOTRBiomeVariantStorageMixin(EXT_BIOME, require(LOTR)), + biome_lotr_LOTRChunkProviderMixin(EXT_BIOME, require(LOTR)), + biome_lotr_LOTRChunkProviderUtumnoMixin(EXT_BIOME, require(LOTR)), + biome_lotr_LOTRDimensionMixin(EXT_BIOME, require(LOTR)), + biome_lotr_LOTRPacketBiomeVariantsWatchHandlerMixin(EXT_BIOME, require(LOTR)), + biome_lotr_LOTRWorldChunkManagerMixin(EXT_BIOME, require(LOTR)), + biome_lotr_LOTRWorldProviderMixin(EXT_BIOME, require(LOTR)), + + biome_naturescompass_BiomeUtilsMixin(EXT_BIOME, require(NATURESCOMPASS)), + + biome_netherlicious_BiomeConfigurationMixin(EXT_BIOME, require(NETHERLICIOUS)), + + biome_nomadictents_TentChunkProviderMixin(EXT_BIOME, require(NOMADICTENTS)), + + biome_owg_ChunkGeneratorBetaMixin(EXT_BIOME, require(OWG)), + + biome_randomthings_ItemBiomePainterMixin(EXT_BIOME, require(RANDOMTHINGS)), + biome_randomthings_MessagePaintBiomeMixin(EXT_BIOME, require(RANDOMTHINGS)), + + biome_restructured_BiomeHelperMixin(EXT_BIOME, require(RESTRUCTURED)), + biome_rtg_ChunkProviderRTGMixin(EXT_BIOME, require(RTG)), + biome_rtg_LandscapeGeneratorMixin(EXT_BIOME, require(RTG)), + biome_rtg_WorldChunkManagerRTGMixin(EXT_BIOME, require(RTG)), + + biome_rwg_ChunkGeneratorRealisticMixin(EXT_BIOME, require(RWG)), + biome_rwg_RealisticBiomeBaseMixin(EXT_BIOME, require(RWG)), + biome_rwg_VillageMaterialsMixin(EXT_BIOME, require(RWG)), + + biome_tardismod_TardisChunkProviderMixin(EXT_BIOME, require(TARDIS)), + + biome_thaumcraft_UtilsMixin(EXT_BIOME, require(THAUMCRAFT)), + + biome_thut_Vector3Mixin(EXT_BIOME, require(THUTCORE)), + + biome_tmor_ChunkProviderSanctuatiteMixin(EXT_BIOME, require(TMOR)), + + biome_tropicraft_GenLayerTropiVoronoiZoomMixin(EXT_BIOME, require(TROPICRAFT)), + + biome_twilightforest_TFBiomeBaseMixin(EXT_BIOME, require(TWILIGHTFOREST)), + + biome_witchery_WorldChunkManagerMirrorMixin(EXT_BIOME, require(WITCHERY)), + biome_witchery_BrewActionBiomeChangeMixin(EXT_BIOME, require(WITCHERY)), + //endregion + + //region blockitem + blockitem_vanilla_BlockFireMixin(EXT_BLOCK_ITEM), + blockitem_vanilla_BlockMixin(EXT_BLOCK_ITEM), + blockitem_vanilla_ExtendedBlockStorageMixin(EXT_BLOCK_ITEM), + blockitem_vanilla_ItemInWorldManagerMixin(EXT_BLOCK_ITEM), + blockitem_vanilla_ItemStackMixin(EXT_BLOCK_ITEM), + blockitem_vanilla_PacketBufferMixin(EXT_BLOCK_ITEM), + blockitem_vanilla_S22PacketMultiBlockChangeMixin(EXT_BLOCK_ITEM), + blockitem_vanilla_S24PacketBlockActionMixin(EXT_BLOCK_ITEM), + blockitem_vanilla_StatListMixin(EXT_BLOCK_ITEM), + blockitem_vanilla_WorldMixin(EXT_BLOCK_ITEM), + + blockitem_cofhlib_BlockHelperMixin(EXT_BLOCK_ITEM, require(COFHLIB)), + + blockitem_dragonapi_BlockPropertiesMixin(EXT_BLOCK_ITEM, require(DRAGONAPI)), + blockitem_dragonapi_IDTypeMixin(EXT_BLOCK_ITEM, require(DRAGONAPI)), + + blockitem_ntm_ChunkRadiationHandlerPRISMMixin(EXT_BLOCK_ITEM, require(HBM_NTM)), + blockitem_ntm_ChunkRadiationHandlerPRISMSubChunkMixin(EXT_BLOCK_ITEM, require(HBM_NTM)), + + blockitem_matteroverdrive_InventoryMixin(EXT_BLOCK_ITEM, require(MATTEROVERDRIVE).or(require(MATTERMEGADRIVE))), + blockitem_matteroverdrive_ItemPatternMixin(EXT_BLOCK_ITEM, + require(MATTEROVERDRIVE).or(require(MATTERMEGADRIVE))), + + blockitem_mfqm_MFQMMixin(EXT_BLOCK_ITEM, require(MFQM)), + + blockitem_worldedit_BaseBlockMixin(EXT_BLOCK_ITEM, require(WORLDEDIT)), + + blockitem_ubc_OreUBifierMixin(EXT_BLOCK_ITEM, require(UBC)), + blockitem_ubc_BiomeUndergroundDecoratorMixin(EXT_BLOCK_ITEM, require(UBC)), + //endregion + + //region datawatcher + datawatcher_vanilla_DataWatcherMixin(EXT_DATA_WATCHER), + + datawatcher_mfqm_MFQMDataWatcherMixin(EXT_DATA_WATCHER, require(MFQM)), + //endregion + + //region enchantment + enchantment_vanilla_EnchantmentMixin(EXT_ENCHANTMENT), + //endregion + + //region entity + entity_vanilla_EntityListMixin(EXT_ENTITY), + entity_vanilla_EntityRegistryMixin(EXT_ENTITY), + entity_vanilla_S0FPacketSpawnMobMixin(EXT_ENTITY), + //endregion + + //region potion + potion_vanilla_PotionEffectMixin(EXT_POTION), + potion_vanilla_PotionMixin(EXT_POTION), + potion_vanilla_network_S1DPacketEntityEffectMixin(EXT_POTION, avoid(AM2)), + potion_vanilla_network_S1EPacketRemoveEntityEffectMixin(EXT_POTION, avoid(AM2)), + + potion_thaumcraft_ConfigMixin(EXT_POTION, require(THAUMCRAFT)), + //endregion + + //region redstone + redstone_BlockCompressedPoweredMixin(all(EXT_BLOCK_ITEM, EXT_REDSTONE)), + redstone_BlockRedstoneDiodeMixin(all(EXT_BLOCK_ITEM, EXT_REDSTONE)), + redstone_BlockRedstoneTorchMixin(all(EXT_BLOCK_ITEM, EXT_REDSTONE)), + redstone_WorldMixin(all(EXT_BLOCK_ITEM, EXT_REDSTONE)), + //endregion + ; + + //region boilerplate + @Getter + private final Predicate> filter; + @Getter + private final String mixin; + + Common(Predicate> predicate) { + filter = predicate; + mixin = buildMixin(name()); + } + + Common(Supplier condition) { + filter = buildPredicate(condition); + mixin = buildMixin(name()); + } + + Common(Supplier condition, Predicate> predicate) { + filter = buildPredicate(condition).and(predicate); + mixin = buildMixin(name()); + } + + @Override + public Side getSide() { + return Side.COMMON; + } + //endregion + } + + public enum Client implements IMixin { + //region biome + biome_biomewand_BiomeWandItemMixin(EXT_BIOME, require(BIOMEWAND)), + //endregion + + //region blockitem + blockitem_vanilla_NetHandlerPlayClientMixin(EXT_BLOCK_ITEM), + blockitem_vanilla_PlayerControllerMPMixin(EXT_BLOCK_ITEM), + blockitem_vanilla_RenderGlobalMixin(EXT_BLOCK_ITEM), + //endregion + + //region potion + potion_vanilla_NetHandlerPlayClientMixin(EXT_POTION, avoid(AM2)), + //endregion + + //region redstone + redstone_BlockRedstoneWireMixin(all(EXT_BLOCK_ITEM, EXT_REDSTONE)), + redstone_RenderBlocksMixin(all(EXT_BLOCK_ITEM, EXT_REDSTONE)), + //endregion + ; + + //region boilerplate + @Getter + private final Predicate> filter; + @Getter + private final String mixin; + + Client(Supplier condition) { + filter = buildPredicate(condition); + mixin = buildMixin(name()); + } + + Client(Supplier condition, Predicate> predicate) { + filter = buildPredicate(condition).and(predicate); + mixin = buildMixin(name()); + } + + @Override + public Side getSide() { + return Side.CLIENT; + } + //endregion + } + + public static IMixin[] values() { + val common = Common.values(); + val client = Client.values(); + val result = new IMixin[common.length + client.length]; + System.arraycopy(common, 0, result, 0, common.length); + System.arraycopy(client, 0, result, common.length, client.length); + return result; + } + + //region boilerplate + private static Predicate> buildPredicate(Supplier condition) { + return condition(condition); + } + + private static String buildMixin(String name) { + return name.replace('_', '.'); + } + + private static final Supplier EXT_BIOME = () -> GeneralConfig.extendBiome; + private static final Supplier EXT_BLOCK_ITEM = () -> GeneralConfig.extendBlockItem; + private static final Supplier EXT_DATA_WATCHER = () -> GeneralConfig.extendDataWatcher; + private static final Supplier EXT_ENCHANTMENT = () -> GeneralConfig.extendEnchantment; + private static final Supplier EXT_POTION = () -> GeneralConfig.extendPotion; + private static final Supplier EXT_ENTITY = () -> GeneralConfig.extendEntity; + private static final Supplier EXT_REDSTONE = () -> GeneralConfig.extendRedstone; + + @SafeVarargs + private static Supplier all(Supplier... conds) { + return () -> { + for (Supplier cond : conds) { + if (!cond.get()) { + return false; + } + } + return true; + }; + } + //endregion } diff --git a/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java b/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java index 408e265..1d78588 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/TargetedMod.java @@ -93,4 +93,10 @@ public enum TargetedMod implements ITargetedMod { private final boolean loadInDevelopment; @Getter private final Predicate condition; + + + @Override + public String toString() { + return modName; + } }