industrial craft 2 stuff

This commit is contained in:
Florian Nücke 2014-02-05 19:08:46 +01:00
parent 1df0015d49
commit 331e89abf9
10 changed files with 323 additions and 12 deletions

View File

@ -5,6 +5,7 @@ import cpw.mods.fml.common.event.FMLInitializationEvent;
import li.cil.oc.driver.Registry;
import li.cil.oc.driver.buildcraft.HandlerBuildCraft;
import li.cil.oc.driver.enderstorage.HandlerEnderStorage;
import li.cil.oc.driver.ic2.HandlerIndustrialCraft2;
import li.cil.oc.driver.thermalexpansion.HandlerThermalExpansion;
import li.cil.oc.driver.vanilla.HandlerVanilla;
@ -17,6 +18,7 @@ public class OpenComponents {
public void init(final FMLInitializationEvent e) {
Registry.add(new HandlerBuildCraft());
Registry.add(new HandlerEnderStorage());
Registry.add(new HandlerIndustrialCraft2());
Registry.add(new HandlerThermalExpansion());
Registry.add(new HandlerVanilla());
}

View File

@ -0,0 +1,48 @@
package li.cil.oc.driver.ic2;
import ic2.api.energy.tile.IEnergyConductor;
import li.cil.oc.api.network.Arguments;
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.driver.ManagedTileEntityEnvironment;
import li.cil.oc.driver.TileEntityDriver;
import net.minecraft.world.World;
public final class DriverEnergyConductor extends TileEntityDriver {
@Override
public Class<?> getFilterClass() {
return IEnergyConductor.class;
}
@Override
public ManagedEnvironment createEnvironment(final World world, final int x, final int y, final int z) {
return new Environment((IEnergyConductor) world.getBlockTileEntity(x, y, z));
}
public static final class Environment extends ManagedTileEntityEnvironment<IEnergyConductor> {
public Environment(final IEnergyConductor tileEntity) {
super(tileEntity, "energy_conductor");
}
@Callback
public Object[] getConductionLoss(final Context context, final Arguments args) {
return new Object[]{tileEntity.getConductionLoss()};
}
@Callback
public Object[] getConductorBreakdownEnergy(final Context context, final Arguments args) {
return new Object[]{tileEntity.getConductorBreakdownEnergy()};
}
@Callback
public Object[] getInsulationBreakdownEnergy(final Context context, final Arguments args) {
return new Object[]{tileEntity.getInsulationBreakdownEnergy()};
}
@Callback
public Object[] getInsulationEnergyAbsorption(final Context context, final Arguments args) {
return new Object[]{tileEntity.getInsulationEnergyAbsorption()};
}
}
}

View File

@ -0,0 +1,33 @@
package li.cil.oc.driver.ic2;
import ic2.api.energy.tile.IEnergySink;
import li.cil.oc.api.network.Arguments;
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.driver.ManagedTileEntityEnvironment;
import li.cil.oc.driver.TileEntityDriver;
import net.minecraft.world.World;
public final class DriverEnergySink extends TileEntityDriver {
@Override
public Class<?> getFilterClass() {
return IEnergySink.class;
}
@Override
public ManagedEnvironment createEnvironment(final World world, final int x, final int y, final int z) {
return new Environment((IEnergySink) world.getBlockTileEntity(x, y, z));
}
public static final class Environment extends ManagedTileEntityEnvironment<IEnergySink> {
public Environment(final IEnergySink tileEntity) {
super(tileEntity, "energy_sink");
}
@Callback
public Object[] getMaxSafeInput(final Context context, final Arguments args) {
return new Object[]{tileEntity.getMaxSafeInput()};
}
}
}

View File

@ -0,0 +1,33 @@
package li.cil.oc.driver.ic2;
import ic2.api.energy.tile.IEnergySource;
import li.cil.oc.api.network.Arguments;
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.driver.ManagedTileEntityEnvironment;
import li.cil.oc.driver.TileEntityDriver;
import net.minecraft.world.World;
public final class DriverEnergySource extends TileEntityDriver {
@Override
public Class<?> getFilterClass() {
return IEnergySource.class;
}
@Override
public ManagedEnvironment createEnvironment(final World world, final int x, final int y, final int z) {
return new Environment((IEnergySource) world.getBlockTileEntity(x, y, z));
}
public static final class Environment extends ManagedTileEntityEnvironment<IEnergySource> {
public Environment(final IEnergySource tileEntity) {
super(tileEntity, "energy_source");
}
@Callback
public Object[] getOfferedEnergy(final Context context, final Arguments args) {
return new Object[]{tileEntity.getOfferedEnergy()};
}
}
}

View File

@ -0,0 +1,43 @@
package li.cil.oc.driver.ic2;
import ic2.api.tile.IEnergyStorage;
import li.cil.oc.api.network.Arguments;
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.driver.ManagedTileEntityEnvironment;
import li.cil.oc.driver.TileEntityDriver;
import net.minecraft.world.World;
public final class DriverEnergyStorage extends TileEntityDriver {
@Override
public Class<?> getFilterClass() {
return IEnergyStorage.class;
}
@Override
public ManagedEnvironment createEnvironment(final World world, final int x, final int y, final int z) {
return new Environment((IEnergyStorage) world.getBlockTileEntity(x, y, z));
}
public static final class Environment extends ManagedTileEntityEnvironment<IEnergyStorage> {
public Environment(final IEnergyStorage tileEntity) {
super(tileEntity, "energy_storage");
}
@Callback
public Object[] getCapacity(final Context context, final Arguments args) {
return new Object[]{tileEntity.getCapacity()};
}
@Callback
public Object[] getOutput(final Context context, final Arguments args) {
return new Object[]{tileEntity.getOutput()};
}
@Callback
public Object[] getStored(final Context context, final Arguments args) {
return new Object[]{tileEntity.getStored()};
}
}
}

View File

@ -0,0 +1,48 @@
package li.cil.oc.driver.ic2;
import ic2.api.reactor.IReactor;
import li.cil.oc.api.network.Arguments;
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.driver.ManagedTileEntityEnvironment;
import li.cil.oc.driver.TileEntityDriver;
import net.minecraft.world.World;
public final class DriverReactor extends TileEntityDriver {
@Override
public Class<?> getFilterClass() {
return IReactor.class;
}
@Override
public ManagedEnvironment createEnvironment(final World world, final int x, final int y, final int z) {
return new Environment((IReactor) world.getBlockTileEntity(x, y, z));
}
public static final class Environment extends ManagedTileEntityEnvironment<IReactor> {
public Environment(final IReactor tileEntity) {
super(tileEntity, "reactor");
}
@Callback
public Object[] getHeat(final Context context, final Arguments args) {
return new Object[]{tileEntity.getHeat()};
}
@Callback
public Object[] getMaxHeat(final Context context, final Arguments args) {
return new Object[]{tileEntity.getMaxHeat()};
}
@Callback
public Object[] getReactorEnergyOutput(final Context context, final Arguments args) {
return new Object[]{tileEntity.getReactorEnergyOutput()};
}
@Callback
public Object[] producesEnergy(final Context context, final Arguments args) {
return new Object[]{tileEntity.produceEnergy()};
}
}
}

View File

@ -0,0 +1,69 @@
package li.cil.oc.driver.ic2;
import ic2.api.reactor.IReactor;
import ic2.api.reactor.IReactorChamber;
import li.cil.oc.api.network.Arguments;
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.driver.ManagedTileEntityEnvironment;
import li.cil.oc.driver.TileEntityDriver;
import net.minecraft.world.World;
public final class DriverReactorChamber extends TileEntityDriver {
@Override
public Class<?> getFilterClass() {
return IReactorChamber.class;
}
@Override
public ManagedEnvironment createEnvironment(final World world, final int x, final int y, final int z) {
return new Environment((IReactorChamber) world.getBlockTileEntity(x, y, z));
}
public static final class Environment extends ManagedTileEntityEnvironment<IReactorChamber> {
public Environment(final IReactorChamber tileEntity) {
super(tileEntity, "reactor_chamber");
}
@Callback
public Object[] getHeat(final Context context, final Arguments args) {
final IReactor reactor = tileEntity.getReactor();
if (reactor != null) {
return new Object[]{reactor.getHeat()};
} else {
return new Object[]{0};
}
}
@Callback
public Object[] getMaxHeat(final Context context, final Arguments args) {
final IReactor reactor = tileEntity.getReactor();
if (reactor != null) {
return new Object[]{tileEntity.getReactor().getMaxHeat()};
} else {
return new Object[]{0};
}
}
@Callback
public Object[] getReactorEnergyOutput(final Context context, final Arguments args) {
final IReactor reactor = tileEntity.getReactor();
if (reactor != null) {
return new Object[]{tileEntity.getReactor().getReactorEnergyOutput()};
} else {
return new Object[]{0};
}
}
@Callback
public Object[] producesEnergy(final Context context, final Arguments args) {
final IReactor reactor = tileEntity.getReactor();
if (reactor != null) {
return new Object[]{tileEntity.getReactor().produceEnergy()};
} else {
return new Object[]{false};
}
}
}
}

View File

@ -0,0 +1,40 @@
package li.cil.oc.driver.ic2;
import ic2.api.item.ElectricItem;
import ic2.api.item.IElectricItem;
import li.cil.oc.api.Driver;
import li.cil.oc.driver.IModHandler;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import java.util.Map;
public class HandlerIndustrialCraft2 implements IModHandler {
@Override
public String getModId() {
return "IC2";
}
@Override
public void initialize() {
Driver.add(new DriverReactor());
Driver.add(new DriverReactorChamber());
Driver.add(new DriverEnergyConductor());
Driver.add(new DriverEnergySink());
Driver.add(new DriverEnergySource());
Driver.add(new DriverEnergyStorage());
}
@Override
public void populate(Map<String, Object> map, ItemStack stack) {
final Item item = stack.getItem();
if (item instanceof IElectricItem) {
final IElectricItem electricItem = (IElectricItem) item;
map.put("canProvideEnergy", electricItem.canProvideEnergy(stack));
map.put("charge", ElectricItem.manager.getCharge(stack));
map.put("maxCharge", electricItem.getMaxCharge(stack));
map.put("tier", electricItem.getTier(stack));
map.put("transferLimit", electricItem.getTransferLimit(stack));
}
}
}

View File

@ -18,7 +18,7 @@ public final class HandlerThermalExpansion implements IModHandler {
public void initialize() {
Driver.add(new DriverEnderAttuned());
Driver.add(new DriverEnergyHandler());
Driver.add(new DriverEnergyInfo()); ;
Driver.add(new DriverEnergyInfo());
Driver.add(new DriverRedstoneControl());
Driver.add(new DriverSecureTile());
}

View File

@ -3,23 +3,18 @@
"modlist": [{
"modid": "OpenComputers|Components",
"name": "OpenComponents",
"description": "This mod is an addon of OpenComputers that adds a bunch of drivers.",
"description": "This mod is an addon for OpenComputers that adds a bunch of drivers.",
"version": "1.0.0",
"mcversion": "1.6.4",
"url": "https://github.com/MightyPirates/OpenComputers/wiki",
"url": "https://github.com/MightyPirates/OpenComponents",
"authors": ["Florian 'Sangar' Nücke", "Johannes 'Lord Joda' Lohrer"],
"credits" : "Inspired by OpenPeripherals.",
"credits" : "OpenPeripherals",
"requiredMods": [ "Forge@[9.11.1.940,)", "OpenComputers@[1.2.0,)" ],
"dependencies": [
"BuildCraft|Energy",
"ComputerCraft",
"BuildCraft|Core",
"EnderStorage",
"IC2",
"MineFactoryReloaded",
"ProjRed|Transmission",
"RedLogic",
"StargateTech2",
"ThermalExpansion",
"UniversalElectricity"
"ThermalExpansion"
],
"useDependencyInformation": "true"
}]