me so indecisive

This commit is contained in:
Florian Nücke 2014-02-08 19:18:19 +01:00
parent 4dc5be944f
commit f28257a049
14 changed files with 58 additions and 41 deletions

View File

@ -3,7 +3,17 @@ package li.cil.occ;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import li.cil.occ.handler.*;
import li.cil.occ.handler.Registry;
import li.cil.occ.handler.appeng.ModAppEng;
import li.cil.occ.handler.atomicscience.ModAtomicScience;
import li.cil.occ.handler.buildcraft.ModBuildCraft;
import li.cil.occ.handler.computercraft.ModComputerCraft;
import li.cil.occ.handler.enderstorage.ModEnderStorage;
import li.cil.occ.handler.ic2.ModIndustrialCraft2;
import li.cil.occ.handler.mekanism.ModMekanism;
import li.cil.occ.handler.redstoneinmotion.ModRedstoneInMotion;
import li.cil.occ.handler.thermalexpansion.ModThermalExpansion;
import li.cil.occ.handler.vanilla.ModVanilla;
import net.minecraftforge.common.Configuration;
import java.util.logging.Logger;
@ -37,19 +47,19 @@ public class OpenComponents {
@Mod.EventHandler
public void init(final FMLInitializationEvent e) {
Registry.add(new HandlerAppEng());
Registry.add(new HandlerAtomicScience());
Registry.add(new HandlerBuildCraft());
Registry.add(new HandlerEnderStorage());
Registry.add(new HandlerIndustrialCraft2());
Registry.add(new HandlerMekanism());
Registry.add(new HandlerRedstoneInMotion());
Registry.add(new HandlerThermalExpansion());
Registry.add(new HandlerVanilla());
Registry.add(new ModAppEng());
Registry.add(new ModAtomicScience());
Registry.add(new ModBuildCraft());
Registry.add(new ModEnderStorage());
Registry.add(new ModIndustrialCraft2());
Registry.add(new ModMekanism());
Registry.add(new ModRedstoneInMotion());
Registry.add(new ModThermalExpansion());
Registry.add(new ModVanilla());
// Register the general IPeripheral driver last, if at all, to avoid it
// being used rather than other more concrete implementations, such as
// is the case in the Redstone in Motion driver (replaces 'move').
Registry.add(new HandlerComputerCraft());
Registry.add(new ModComputerCraft());
}
}

View File

@ -4,7 +4,7 @@ import net.minecraft.item.ItemStack;
import java.util.Map;
public interface IHandler {
public interface IMod {
String getModId();
void initialize();

View File

@ -11,12 +11,12 @@ import java.util.Set;
import java.util.logging.Level;
public final class Registry {
private static final Set<IHandler> handlers = new HashSet<IHandler>();
private static final Set<IMod> handlers = new HashSet<IMod>();
private Registry() {
}
public static void add(final IHandler mod) {
public static void add(final IMod mod) {
final boolean alwaysEnabled = mod.getModId() == null || mod.getModId().isEmpty();
if ((alwaysEnabled || Loader.isModLoaded(mod.getModId())) && handlers.add(mod)) {
OpenComponents.Log.info(String.format("Initializing handler for '%s'.", mod.getModId()));
@ -33,7 +33,7 @@ public final class Registry {
return null;
}
final Map<String, Object> map = new HashMap<String, Object>();
for (IHandler handler : handlers) {
for (IMod handler : handlers) {
handler.populate(map, value);
}
return map;

View File

@ -9,7 +9,6 @@ import li.cil.oc.api.network.Callback;
import li.cil.oc.api.network.Context;
import li.cil.oc.api.network.ManagedEnvironment;
import li.cil.oc.api.prefab.DriverTileEntity;
import li.cil.occ.handler.HandlerAppEng;
import li.cil.occ.handler.ManagedTileEntityEnvironment;
import li.cil.occ.handler.Registry;
import net.minecraft.item.ItemStack;
@ -105,7 +104,7 @@ public final class DriverCellProvider extends DriverTileEntity {
}
final ArrayList<Map> list = new ArrayList<Map>();
for (IAEItemStack stack : cell.getAvailableItems()) {
list.add(HandlerAppEng.toMap(stack));
list.add(ModAppEng.toMap(stack));
}
return list.toArray();
}

View File

@ -1,16 +1,15 @@
package li.cil.occ.handler;
package li.cil.occ.handler.appeng;
import appeng.api.IAEItemStack;
import li.cil.oc.api.Driver;
import li.cil.occ.handler.appeng.DriverCellProvider;
import li.cil.occ.handler.appeng.DriverGridTileEntity;
import li.cil.occ.handler.appeng.DriverTileController;
import li.cil.occ.handler.IMod;
import li.cil.occ.handler.Registry;
import net.minecraft.item.ItemStack;
import java.util.Map;
public final class HandlerAppEng implements IHandler {
public final class ModAppEng implements IMod {
@Override
public String getModId() {
return "AppliedEnergistics";
@ -27,7 +26,7 @@ public final class HandlerAppEng implements IHandler {
public void populate(final Map<String, Object> map, final ItemStack stack) {
}
public static Map<String, Object> toMap(final IAEItemStack stack) {
static Map<String, Object> toMap(final IAEItemStack stack) {
// TODO Do we want to add more (isCraftable?) here? If not, inline.
// (Do we even need the 'requestable'?)
final Map<String, Object> map = Registry.toMap(stack.getItemStack());

View File

@ -1,13 +1,14 @@
package li.cil.occ.handler;
package li.cil.occ.handler.atomicscience;
import li.cil.oc.api.Driver;
import li.cil.occ.handler.IMod;
import li.cil.occ.handler.atomicscience.DriverReactor;
import li.cil.occ.handler.atomicscience.DriverTemperature;
import net.minecraft.item.ItemStack;
import java.util.Map;
public final class HandlerAtomicScience implements IHandler {
public final class ModAtomicScience implements IMod {
@Override
public String getModId() {
return "AtomicScience";

View File

@ -1,6 +1,7 @@
package li.cil.occ.handler;
package li.cil.occ.handler.buildcraft;
import li.cil.oc.api.Driver;
import li.cil.occ.handler.IMod;
import li.cil.occ.handler.buildcraft.DriverMachine;
import li.cil.occ.handler.buildcraft.DriverPipe;
import li.cil.occ.handler.buildcraft.DriverPipeTE;
@ -9,7 +10,7 @@ import net.minecraft.item.ItemStack;
import java.util.Map;
public final class HandlerBuildCraft implements IHandler {
public final class ModBuildCraft implements IMod {
@Override
public String getModId() {
return "BuildCraft|Core";

View File

@ -1,13 +1,14 @@
package li.cil.occ.handler;
package li.cil.occ.handler.computercraft;
import li.cil.oc.api.Driver;
import li.cil.occ.OpenComponents;
import li.cil.occ.handler.IMod;
import li.cil.occ.handler.computercraft.DriverPeripheral;
import net.minecraft.item.ItemStack;
import java.util.Map;
public final class HandlerComputerCraft implements IHandler {
public final class ModComputerCraft implements IMod {
@Override
public String getModId() {
return "ComputerCraft";

View File

@ -1,12 +1,13 @@
package li.cil.occ.handler;
package li.cil.occ.handler.enderstorage;
import li.cil.oc.api.Driver;
import li.cil.occ.handler.IMod;
import li.cil.occ.handler.enderstorage.DriverFrequencyOwner;
import net.minecraft.item.ItemStack;
import java.util.Map;
public final class HandlerEnderStorage implements IHandler {
public final class ModEnderStorage implements IMod {
@Override
public String getModId() {
return "EnderStorage";

View File

@ -1,15 +1,16 @@
package li.cil.occ.handler;
package li.cil.occ.handler.ic2;
import ic2.api.item.ElectricItem;
import ic2.api.item.IElectricItem;
import li.cil.oc.api.Driver;
import li.cil.occ.handler.IMod;
import li.cil.occ.handler.ic2.*;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import java.util.Map;
public final class HandlerIndustrialCraft2 implements IHandler {
public final class ModIndustrialCraft2 implements IMod {
@Override
public String getModId() {
return "IC2";

View File

@ -1,12 +1,13 @@
package li.cil.occ.handler;
package li.cil.occ.handler.mekanism;
import li.cil.oc.api.Driver;
import li.cil.occ.handler.IMod;
import li.cil.occ.handler.mekanism.*;
import net.minecraft.item.ItemStack;
import java.util.Map;
public final class HandlerMekanism implements IHandler {
public final class ModMekanism implements IMod {
@Override
public String getModId() {
return "Mekanism";

View File

@ -1,12 +1,13 @@
package li.cil.occ.handler;
package li.cil.occ.handler.redstoneinmotion;
import li.cil.oc.api.Driver;
import li.cil.occ.handler.IMod;
import li.cil.occ.handler.redstoneinmotion.DriverCarriageController;
import net.minecraft.item.ItemStack;
import java.util.Map;
public final class HandlerRedstoneInMotion implements IHandler {
public final class ModRedstoneInMotion implements IMod {
@Override
public String getModId() {
return "JAKJ_RedstoneInMotion";

View File

@ -1,14 +1,15 @@
package li.cil.occ.handler;
package li.cil.occ.handler.thermalexpansion;
import cofh.api.energy.IEnergyContainerItem;
import li.cil.oc.api.Driver;
import li.cil.occ.handler.IMod;
import li.cil.occ.handler.thermalexpansion.*;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import java.util.Map;
public final class HandlerThermalExpansion implements IHandler {
public final class ModThermalExpansion implements IMod {
@Override
public String getModId() {
return "ThermalExpansion";

View File

@ -1,12 +1,13 @@
package li.cil.occ.handler;
package li.cil.occ.handler.vanilla;
import li.cil.oc.api.Driver;
import li.cil.occ.handler.IMod;
import li.cil.occ.handler.vanilla.*;
import net.minecraft.item.ItemStack;
import java.util.Map;
public final class HandlerVanilla implements IHandler {
public final class ModVanilla implements IMod {
@Override
public String getModId() {
return null;