basic-components/src/main/java/universalelectricity/compat/CompatHandler.java
Timo Ley a83fd143d8
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is failing
feat: big overhaul
2022-11-01 17:43:28 +01:00

54 lines
1.8 KiB
Java

package universalelectricity.compat;
import java.util.ArrayList;
import java.util.List;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.ForgeDirection;
import universalelectricity.compat.ic2.EventHandler;
import universalelectricity.compat.ic2.IC2CompatModule;
import universalelectricity.compat.ic2.TickHandler;
import universalelectricity.core.block.IConnector;
public class CompatHandler {
private static List<CompatiblityModule> modules;
public static void initCompatHandlers() {
modules = new ArrayList<>();
if (Loader.isModLoaded("IC2")) {
modules.add(new IC2CompatModule());
MinecraftForge.EVENT_BUS.register(new EventHandler());
FMLCommonHandler.instance().bus().register(new TickHandler());
}
}
public static void registerModule(CompatiblityModule module) {
if (modules != null)
modules.add(module);
}
public static boolean canConnect(TileEntity tileEntity, ForgeDirection side) {
if (tileEntity == null) return false;
if (tileEntity instanceof IConnector) return ((IConnector)tileEntity).canConnect(side);
for (CompatiblityModule module : modules) {
if (module.canConnect(tileEntity, side)) return true;
}
return false;
}
public static IElectricityTileHandler getHandler(TileEntity tileEntity) {
if (tileEntity instanceof IConnector || tileEntity == null) return null;
for (CompatiblityModule module : modules) {
if (module.isHandledBy(tileEntity)) {
return module.getHandler(tileEntity);
}
}
return null;
}
}