Add OC integration skeleton

This commit is contained in:
raoulvdberge
2017-05-08 21:48:40 +02:00
parent b44860d3ce
commit 0322a35bc4
4 changed files with 60 additions and 1 deletions

View File

@@ -0,0 +1,23 @@
package com.raoulvdberge.refinedstorage.integration.oc;
import com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy;
import li.cil.oc.api.driver.DriverBlock;
import li.cil.oc.api.network.ManagedEnvironment;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
public class DriverNetwork implements DriverBlock {
@Override
public boolean worksWith(World world, BlockPos pos, EnumFacing facing) {
TileEntity tile = world.getTileEntity(pos);
return tile != null && tile.hasCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, facing);
}
@Override
public ManagedEnvironment createEnvironment(World world, BlockPos pos, EnumFacing facing) {
return new EnvironmentNetwork(world.getTileEntity(pos).getCapability(CapabilityNetworkNodeProxy.NETWORK_NODE_PROXY_CAPABILITY, facing).getNode());
}
}

View File

@@ -0,0 +1,17 @@
package com.raoulvdberge.refinedstorage.integration.oc;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import li.cil.oc.api.Network;
import li.cil.oc.api.network.Visibility;
import li.cil.oc.api.prefab.AbstractManagedEnvironment;
public class EnvironmentNetwork extends AbstractManagedEnvironment {
protected final INetworkNode node;
public EnvironmentNetwork(INetworkNode node) {
this.node = node;
setNode(Network.newNode(this, Visibility.Network).withComponent("refinedstorage", Visibility.Network).create());
}
}

View File

@@ -0,0 +1,16 @@
package com.raoulvdberge.refinedstorage.integration.oc;
import li.cil.oc.api.Driver;
import net.minecraftforge.fml.common.Loader;
public final class IntegrationOC {
private static final String ID = "opencomputers";
public static boolean isLoaded() {
return Loader.isModLoaded(ID);
}
public static void register() {
Driver.add(new DriverNetwork());
}
}

View File

@@ -21,6 +21,7 @@ import com.raoulvdberge.refinedstorage.block.*;
import com.raoulvdberge.refinedstorage.gui.GuiHandler;
import com.raoulvdberge.refinedstorage.integration.craftingtweaks.IntegrationCraftingTweaks;
import com.raoulvdberge.refinedstorage.integration.forgeenergy.ReaderWriterHandlerForgeEnergy;
import com.raoulvdberge.refinedstorage.integration.oc.IntegrationOC;
import com.raoulvdberge.refinedstorage.integration.tesla.IntegrationTesla;
import com.raoulvdberge.refinedstorage.item.*;
import com.raoulvdberge.refinedstorage.network.*;
@@ -818,7 +819,9 @@ public class ProxyCommon {
}
public void init(FMLInitializationEvent e) {
// NO OP
if (IntegrationOC.isLoaded()) {
IntegrationOC.register();
}
}
public void postInit(FMLPostInitializationEvent e) {