package mcjty.rftools.apideps; import li.cil.oc.api.Driver; import li.cil.oc.api.driver.EnvironmentAware; import li.cil.oc.api.network.Environment; import li.cil.oc.api.network.ManagedEnvironment; import li.cil.oc.api.prefab.DriverBlock; import mcjty.rftools.blocks.blockprotector.BlockProtectorSetup; import mcjty.rftools.blocks.blockprotector.BlockProtectorTileEntity; import mcjty.rftools.blocks.dimlets.DimensionBuilderTileEntity; import mcjty.rftools.blocks.dimlets.DimletSetup; import mcjty.rftools.blocks.environmental.EnvironmentalControllerTileEntity; import mcjty.rftools.blocks.environmental.EnvironmentalSetup; import mcjty.rftools.blocks.screens.ScreenControllerTileEntity; import mcjty.rftools.blocks.screens.ScreenSetup; import mcjty.rftools.blocks.shield.ShieldSetup; import mcjty.rftools.blocks.shield.ShieldTEBase; import mcjty.rftools.blocks.spaceprojector.BuilderTileEntity; import mcjty.rftools.blocks.spaceprojector.SpaceProjectorSetup; import mcjty.rftools.blocks.spaceprojector.SpaceProjectorTileEntity; import mcjty.rftools.blocks.teleporter.DialingDeviceTileEntity; import mcjty.rftools.blocks.teleporter.TeleporterSetup; import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class OpenComputersCompatibility { public static void registerOC() { Driver.add(new RFToolsEnvironmentAware()); } public static class RFToolsEnvironmentAware extends DriverBlock implements EnvironmentAware { @Override public Class<? extends Environment> providedEnvironment(ItemStack stack) { if (stack.getItem() instanceof ItemBlock) { ItemBlock itemBlock = (ItemBlock) stack.getItem(); Block b = itemBlock.field_150939_a; if (b == ShieldSetup.shieldBlock || b == ShieldSetup.shieldBlock2 || b == ShieldSetup.shieldBlock3 || b == ShieldSetup.shieldBlock4) { return (Class<? extends Environment>) (Object) ShieldTEBase.class; } else if (b == SpaceProjectorSetup.builderBlock) { return (Class<? extends Environment>) (Object) BuilderTileEntity.class; } else if (b == TeleporterSetup.dialingDeviceBlock) { return (Class<? extends Environment>) (Object) DialingDeviceTileEntity.class; } else if (b == DimletSetup.dimensionBuilderBlock || b == DimletSetup.creativeDimensionBuilderBlock) { return (Class<? extends Environment>) (Object) DimensionBuilderTileEntity.class; } else if (b == ScreenSetup.screenControllerBlock) { return (Class<? extends Environment>) (Object) ScreenControllerTileEntity.class; } else if (b == SpaceProjectorSetup.spaceProjectorBlock) { return (Class<? extends Environment>) (Object) SpaceProjectorTileEntity.class; } else if (b == BlockProtectorSetup.blockProtectorBlock) { return (Class<? extends Environment>) (Object) BlockProtectorTileEntity.class; } else if (b == EnvironmentalSetup.environmentalControllerBlock) { return (Class<? extends Environment>) (Object) EnvironmentalControllerTileEntity.class; } } return null; } @Override public ManagedEnvironment createEnvironment(World world, int x, int y, int z) { return null; } } }