blob: e97b6add117cc3075687eea72a8e41c811b510d4 [file] [log] [blame] [raw]
Florian Nückedf509e92014-02-08 19:01:50 +01001package li.cil.occ;
Florian Nücke75c67682014-02-05 14:16:50 +01002
3import cpw.mods.fml.common.Mod;
4import cpw.mods.fml.common.event.FMLInitializationEvent;
Florian Nückeac0c8c82014-02-08 01:00:46 +01005import cpw.mods.fml.common.event.FMLPreInitializationEvent;
Florian Nücke8da6b4b2014-02-08 19:19:31 +01006import li.cil.occ.mods.Registry;
7import li.cil.occ.mods.appeng.ModAppEng;
Florian Nücke8da6b4b2014-02-08 19:19:31 +01008import li.cil.occ.mods.buildcraft.ModBuildCraft;
9import li.cil.occ.mods.computercraft.ModComputerCraft;
10import li.cil.occ.mods.enderstorage.ModEnderStorage;
marcin212f9a78182014-05-27 01:07:40 +020011import li.cil.occ.mods.forestry.ModForestry;
Florian Nücke8da6b4b2014-02-08 19:19:31 +010012import li.cil.occ.mods.ic2.ModIndustrialCraft2;
Johannes Lohrer08561dc2014-02-09 00:27:08 +010013import li.cil.occ.mods.railcraft.ModRailcraft;
Florian Nücke8da6b4b2014-02-08 19:19:31 +010014import li.cil.occ.mods.redstoneinmotion.ModRedstoneInMotion;
15import li.cil.occ.mods.thermalexpansion.ModThermalExpansion;
Johannes Lohrer08561dc2014-02-09 00:27:08 +010016import li.cil.occ.mods.tmechworks.ModTMechworks;
Florian Nücke8da6b4b2014-02-08 19:19:31 +010017import li.cil.occ.mods.vanilla.ModVanilla;
Florian Nückeac0c8c82014-02-08 01:00:46 +010018import net.minecraftforge.common.Configuration;
Florian Nücke75c67682014-02-05 14:16:50 +010019
Florian Nückee80f68f2014-02-07 17:07:16 +010020import java.util.logging.Logger;
21
Florian Nückeac0c8c82014-02-08 01:00:46 +010022@Mod(modid = "OpenComponents", useMetadata = true)
Florian Nücke75c67682014-02-05 14:16:50 +010023public class OpenComponents {
24 @Mod.Instance
25 public static OpenComponents instance;
26
Florian Nückee80f68f2014-02-07 17:07:16 +010027 public static final Logger Log = Logger.getLogger("OpenComponents");
28
Florian Nücke98cbaff2014-02-08 22:29:39 +010029 public static String[] peripheralBlacklist = new String[]{
Johannes Lohrer4c06cb52014-05-25 17:57:26 +020030 "JAKJ.RedstoneInMotion.CarriageControllerEntity",
31 "appeng.api.me.tiles.ICellProvider",
32 "appeng.api.me.tiles.ICellProvider",
33 "appeng.me.tile.TileController"
Florian Nücke98cbaff2014-02-08 22:29:39 +010034 };
Florian Nücke8459e8c2014-05-30 17:58:02 +020035
36 public static Boolean allowItemStackInspection = false;
Florian Nückeac0c8c82014-02-08 01:00:46 +010037
38 @Mod.EventHandler
39 public void preInit(final FMLPreInitializationEvent e) {
40 final Configuration config = new Configuration(e.getSuggestedConfigurationFile());
41
Florian Nücke98cbaff2014-02-08 22:29:39 +010042 peripheralBlacklist = config.get("computercraft", "blacklist", peripheralBlacklist, "" +
43 "A list of tile entities by class name that should NOT be\n" +
44 "accessible via the Adapter block. Add blocks here that can\n" +
45 "lead to crashes or deadlocks (and report them, please!)").
46 getStringList();
Florian Nücke8459e8c2014-05-30 17:58:02 +020047 allowItemStackInspection = config.get("vanilla", "allowItemStackInspection", false).getBoolean(false);
Florian Nückeac0c8c82014-02-08 01:00:46 +010048 config.save();
49 }
50
Florian Nücke75c67682014-02-05 14:16:50 +010051 @Mod.EventHandler
Florian Nücke9c4a6372014-02-05 16:28:39 +010052 public void init(final FMLInitializationEvent e) {
Florian Nückef28257a2014-02-08 19:18:19 +010053 Registry.add(new ModAppEng());
Florian Nückef28257a2014-02-08 19:18:19 +010054 Registry.add(new ModBuildCraft());
55 Registry.add(new ModEnderStorage());
marcin21216117442014-05-28 02:16:06 +020056 Registry.add(new ModForestry());
Florian Nückef28257a2014-02-08 19:18:19 +010057 Registry.add(new ModIndustrialCraft2());
Johannes Lohrer08561dc2014-02-09 00:27:08 +010058 Registry.add(new ModRailcraft());
Florian Nückef28257a2014-02-08 19:18:19 +010059 Registry.add(new ModRedstoneInMotion());
60 Registry.add(new ModThermalExpansion());
Johannes Lohrer08561dc2014-02-09 00:27:08 +010061 Registry.add(new ModTMechworks());
Florian Nückef28257a2014-02-08 19:18:19 +010062 Registry.add(new ModVanilla());
Florian Nücke6659d0e2014-02-08 16:30:32 +010063
64 // Register the general IPeripheral driver last, if at all, to avoid it
65 // being used rather than other more concrete implementations, such as
66 // is the case in the Redstone in Motion driver (replaces 'move').
Florian Nückef28257a2014-02-08 19:18:19 +010067 Registry.add(new ModComputerCraft());
Florian Nücke75c67682014-02-05 14:16:50 +010068 }
69}