2015-04-12 12:39:06 +02:00
package techreborn.compat ;
2016-03-04 20:47:08 +01:00
import net.minecraftforge.fml.common.FMLCommonHandler ;
2015-11-23 15:40:30 +01:00
import net.minecraftforge.fml.common.Loader ;
2016-03-04 20:47:08 +01:00
import net.minecraftforge.fml.relauncher.Side ;
2016-03-05 11:48:13 +01:00
import techreborn.client.render.parts.ClientPartLoader ;
2016-03-21 17:56:20 +01:00
import techreborn.compat.waila.CompatModuleWaila ;
2015-12-18 20:17:11 +01:00
import techreborn.config.ConfigTechReborn ;
2016-03-06 15:51:13 +01:00
import techreborn.parts.StandalonePartCompact ;
2016-03-19 19:01:34 +01:00
import techreborn.parts.TechRebornParts ;
2016-03-21 20:45:48 +01:00
import techreborn.parts.walia.WailaMcMultiPartCompact ;
2015-06-12 19:40:08 +02:00
2016-03-24 01:41:47 +01:00
import java.util.ArrayList ;
public class CompatManager {
2015-04-12 12:39:06 +02:00
2016-03-24 01:41:47 +01:00
public ArrayList < ICompatModule > compatModules = new ArrayList < ICompatModule > ( ) ;
2015-06-12 19:40:08 +02:00
2016-03-24 01:41:47 +01:00
public static CompatManager INSTANCE = new CompatManager ( ) ;
2015-06-12 19:40:08 +02:00
2016-03-24 01:41:47 +01:00
public static boolean isIC2Loaded = false ;
public static boolean isIC2ClassicLoaded = false ;
public static boolean isClassicEnet = false ;
public static boolean isGregTechLoaded = false ;
2015-06-12 19:40:08 +02:00
2016-03-24 01:41:47 +01:00
public CompatManager ( ) {
isIC2Loaded = Loader . isModLoaded ( " IC2 " ) ;
isIC2ClassicLoaded = false ;
if ( isIC2ClassicLoaded ) {
isClassicEnet = true ;
}
if ( Loader . isModLoaded ( " Uncomplication " ) ) {
isClassicEnet = true ;
}
if ( Loader . isModLoaded ( " gregtech " ) ) {
isGregTechLoaded = true ;
}
registerCompact ( CompatModuleWaila . class , " Waila " ) ;
// registerCompact(MinetweakerCompat.class, "MineTweaker3");
// registerCompact(RecipesBiomesOPlenty.class, "BiomesOPlenty");
// registerCompact(RecipesBuildcraft.class, "BuildCraft|Builders");
// registerCompact(RecipesThaumcraft.class, "Thaumcraft");
registerCompact ( TechRebornParts . class , " mcmultipart " ) ;
registerCompact ( ClientPartLoader . class , " mcmultipart " , " @client " ) ;
registerCompact ( StandalonePartCompact . class , " !mcmultipart " ) ;
registerCompact ( WailaMcMultiPartCompact . class , " mcmultipart " , " Waila " ) ;
}
2015-05-30 12:47:01 +02:00
2016-03-24 01:41:47 +01:00
public void registerCompact ( Class < ? extends ICompatModule > moduleClass , Object . . . objs ) {
boolean shouldLoad = ConfigTechReborn . config . get ( ConfigTechReborn . CATEGORY_INTEGRATION , " Compat: " + moduleClass . getSimpleName ( ) , true , " Should the " + moduleClass . getSimpleName ( ) + " be loaded? " ) . getBoolean ( true ) ;
if ( ConfigTechReborn . config . hasChanged ( ) )
ConfigTechReborn . config . save ( ) ;
if ( ! shouldLoad ) {
return ;
}
for ( Object obj : objs ) {
if ( obj instanceof String ) {
String modid = ( String ) obj ;
if ( modid . startsWith ( " @ " ) ) {
if ( modid . equals ( " @client " ) ) {
if ( FMLCommonHandler . instance ( ) . getSide ( ) ! = Side . CLIENT ) {
return ;
}
}
} else if ( modid . startsWith ( " ! " ) ) {
if ( Loader . isModLoaded ( modid . replaceAll ( " ! " , " " ) ) ) {
return ;
}
} else {
if ( ! Loader . isModLoaded ( modid ) ) {
return ;
}
}
} else if ( obj instanceof Boolean ) {
Boolean boo = ( Boolean ) obj ;
if ( boo = = false ) {
}
return ;
}
}
try {
compatModules . add ( ( ICompatModule ) moduleClass . newInstance ( ) ) ;
} catch ( InstantiationException e ) {
e . printStackTrace ( ) ;
} catch ( IllegalAccessException e ) {
e . printStackTrace ( ) ;
}
}
2015-10-07 09:34:24 +02:00
2016-03-24 01:41:47 +01:00
public boolean isForestry4 ( ) {
try {
Class . forName ( " forestry.api.arboriculture.EnumWoodType " ) ;
return true ;
} catch ( ClassNotFoundException e ) {
return false ;
}
}
2015-11-11 18:08:41 +01:00
2015-04-12 12:39:06 +02:00
}