Skip to content

Commit

Permalink
Rework AECapFix integration to not require AECF on the client side
Browse files Browse the repository at this point in the history
also condense mixin configs into one
  • Loading branch information
62832 committed May 6, 2024
1 parent 9c6cb65 commit 002c1dd
Show file tree
Hide file tree
Showing 12 changed files with 89 additions and 56 deletions.
1 change: 0 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ minecraft {
mixin {
add(sourceSets.main.get(), "$modId.refmap.json")
config("$modId.mixins.json")
config("deargodwhy.mixins.json")
}

dependencies {
Expand Down
14 changes: 1 addition & 13 deletions src/main/java/gripe/_90/appliede/AppliedE.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,11 @@
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraftforge.client.event.RegisterColorHandlersEvent;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.ModList;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.fml.loading.FMLEnvironment;
import net.minecraftforge.fml.loading.LoadingModList;
import net.minecraftforge.fml.loading.moddiscovery.ModInfo;
import net.minecraftforge.network.NetworkRegistry;
import net.minecraftforge.network.simple.SimpleChannel;
import net.minecraftforge.registries.DeferredRegister;
Expand Down Expand Up @@ -71,7 +68,6 @@
import gripe._90.appliede.part.EMCExportBusPart;
import gripe._90.appliede.part.EMCImportBusPart;
import gripe._90.appliede.part.EMCInterfacePart;
import gripe._90.appliede.part.EMCInterfacePartAECF;
import gripe._90.appliede.part.EMCModulePart;
import gripe._90.appliede.part.TransmutationTerminalPart;

Expand Down Expand Up @@ -110,9 +106,7 @@ public final class AppliedE {
ITEMS.register("emc_interface", () -> new BlockItem(block, new Item.Properties()));
return block;
});
public static final RegistryObject<Item> CABLE_EMC_INTERFACE = ITEMS.register("cable_emc_interface", () -> isModLoaded("aecapfix")
? part(EMCInterfacePartAECF.class, EMCInterfacePartAECF::new)
: part(EMCInterfacePart.class, EMCInterfacePart::new));
public static final RegistryObject<Item> CABLE_EMC_INTERFACE = ITEMS.register("cable_emc_interface", () -> part(EMCInterfacePart.class, EMCInterfacePart::new));

@SuppressWarnings("DataFlowIssue")
public static final RegistryObject<BlockEntityType<EMCInterfaceBlockEntity>> EMC_INTERFACE_BE = BE_TYPES.register("emc_interface", () -> {
Expand Down Expand Up @@ -203,12 +197,6 @@ public static ResourceLocation id(String path) {
return new ResourceLocation(MODID, path);
}

public static boolean isModLoaded(String modId) {
return ModList.get() != null
? ModList.get().isLoaded(modId)
: LoadingModList.get().getMods().stream().map(ModInfo::getModId).anyMatch(modId::equals);
}

public static long clampedLong(BigInteger toClamp) {
return toClamp.min(BigInteger.valueOf(Long.MAX_VALUE)).longValue();
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/gripe/_90/appliede/emc/P2PTunnelMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

import appeng.api.features.P2PTunnelAttunement;

import gripe._90.appliede.mixin.P2PTunnelAttunementAccessor;
import gripe._90.appliede.mixin.main.P2PTunnelAttunementAccessor;

import moze_intel.projecte.api.mapper.EMCMapper;
import moze_intel.projecte.api.mapper.IEMCMapper;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
import appeng.api.storage.MEStorage;
import appeng.me.storage.NullInventory;

import gripe._90.appliede.mixin.TransmutationOfflineAccessor;
import gripe._90.appliede.mixin.main.TransmutationOfflineAccessor;
import gripe._90.appliede.part.EMCModulePart;

import moze_intel.projecte.api.capabilities.IKnowledgeProvider;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@

import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.server.ServerStoppedEvent;

import gripe._90.appliede.AppliedE;
import net.minecraftforge.fml.ModList;

import cn.leomc.teamprojecte.TPTeam;
import cn.leomc.teamprojecte.TeamChangeEvent;
Expand Down Expand Up @@ -43,7 +42,7 @@ static class Proxy {
private Object handler;

Proxy() {
if (AppliedE.isModLoaded("teamprojecte")) {
if (ModList.get().isLoaded("teamprojecte")) {
handler = new TeamProjectEHandler();
}
}
Expand Down
43 changes: 43 additions & 0 deletions src/main/java/gripe/_90/appliede/mixin/Plugin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package gripe._90.appliede.mixin;

import java.util.List;
import java.util.Set;

import org.objectweb.asm.tree.ClassNode;
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;

import net.minecraftforge.fml.loading.LoadingModList;
import net.minecraftforge.fml.loading.moddiscovery.ModInfo;

public class Plugin implements IMixinConfigPlugin {
@Override
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
return !mixinClassName.contains("aecapfix")
|| LoadingModList.get().getMods().stream()
.map(ModInfo::getModId)
.anyMatch("aecapfix"::equals);
}

@Override
public void onLoad(String mixinPackage) {}

@Override
public String getRefMapperConfig() {
return "";
}

@Override
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {}

@Override
public List<String> getMixins() {
return List.of();
}

@Override
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {}

@Override
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package gripe._90.appliede.mixin.aecapfix;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;

import appeng.api.parts.IPartItem;
import appeng.parts.AEBasePart;

import gripe._90.aecapfix.AECapFix;
import gripe._90.appliede.me.misc.EMCInterfaceLogic;
import gripe._90.appliede.part.EMCInterfacePart;

@Mixin(value = EMCInterfacePart.class, remap = false)
public abstract class EMCInterfacePartMixin extends AEBasePart implements AECapFix.Invalidator {
public EMCInterfacePartMixin(IPartItem<?> partItem) {
super(partItem);
}

@Shadow
public abstract EMCInterfaceLogic getInterfaceLogic();

@Override
public void aecapfix$invalidate() {
getInterfaceLogic().invalidateCaps();
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package gripe._90.appliede.mixin;
package gripe._90.appliede.mixin.main;

import java.util.Map;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package gripe._90.appliede.mixin;
package gripe._90.appliede.mixin.main;

import java.util.UUID;

Expand Down
16 changes: 0 additions & 16 deletions src/main/java/gripe/_90/appliede/part/EMCInterfacePartAECF.java

This file was deleted.

14 changes: 13 additions & 1 deletion src/main/resources/appliede.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,17 @@
"required": true,
"compatibilityLevel": "JAVA_17",
"package": "gripe._90.appliede.mixin",
"mixins": ["P2PTunnelAttunementAccessor", "TransmutationOfflineAccessor"]
"refmap": "appliede.refmap.json",
"plugin": "gripe._90.appliede.mixin.Plugin",
"mixins": [
"aecapfix.EMCInterfacePartMixin",
"main.P2PTunnelAttunementAccessor",
"main.TransmutationOfflineAccessor",
"tooltip.BasePacketAccessor",
"tooltip.GridInventoryEntryMixin",
"tooltip.MEInventoryUpdatePacketAccessor",
"tooltip.MEInventoryUpdatePacketMixin",
"tooltip.MEStorageMenuMixin"
],
"client": ["tooltip.MEStorageScreenMixin", "tooltip.RepoMixin"]
}
18 changes: 0 additions & 18 deletions src/main/resources/deargodwhy.mixins.json

This file was deleted.

0 comments on commit 002c1dd

Please sign in to comment.