mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-16 10:51:55 -04:00
Add ExtraCells and Mekanism integration (#2629)
This commit is contained in:
parent
8f8974ac15
commit
823c9903a9
20
build.gradle
20
build.gradle
@ -141,10 +141,12 @@ repositories {
|
|||||||
name 'Galacticraft'
|
name 'Galacticraft'
|
||||||
artifactPattern "http://ci.cil.li/job/Galacticraft/${config.gc.build}/artifact/build/libs/[module]-1.7-[revision].${config.gc.build}.[ext]"
|
artifactPattern "http://ci.cil.li/job/Galacticraft/${config.gc.build}/artifact/build/libs/[module]-1.7-[revision].${config.gc.build}.[ext]"
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
ivy {
|
ivy {
|
||||||
name 'Mekanism'
|
name 'Mekanism'
|
||||||
artifactPattern "http://ci.cil.li/job/Mekanism/${config.mekanism.build}/artifact/output/[module]-${config.minecraft.version}-[revision].${config.mekanism.build}.[ext]"
|
artifactPattern "http://addons-origin.cursecdn.com/files/${config.mekanism.cf}/[module]-[revision].[ext]"
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
ivy {
|
ivy {
|
||||||
name 'immibis'
|
name 'immibis'
|
||||||
artifactPattern "https://dl.dropboxusercontent.com/u/2944265/mods/autobuilt/files/[module]-[revision].[ext]"
|
artifactPattern "https://dl.dropboxusercontent.com/u/2944265/mods/autobuilt/files/[module]-[revision].[ext]"
|
||||||
@ -169,10 +171,12 @@ repositories {
|
|||||||
name 'BloodMagic'
|
name 'BloodMagic'
|
||||||
artifactPattern "http://addons-origin.cursecdn.com/files/${config.bloodmagic.cf}/[module]-${config.minecraft.version}-[revision].[ext]"
|
artifactPattern "http://addons-origin.cursecdn.com/files/${config.bloodmagic.cf}/[module]-${config.minecraft.version}-[revision].[ext]"
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
ivy {
|
ivy {
|
||||||
name 'ExtraCells'
|
name 'ExtraCells'
|
||||||
artifactPattern "http://addons-origin.cursecdn.com/files/${config.ec.cf}/[module]-[revision].[ext]"
|
artifactPattern "http://addons-origin.cursecdn.com/files/${config.extracells.cf}/[module]-[revision].[ext]"
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
ivy {
|
ivy {
|
||||||
name 'ThaumicEnergistics'
|
name 'ThaumicEnergistics'
|
||||||
artifactPattern "http://addons-origin.cursecdn.com/files/${config.thaumicenergistics.cf}/[module]-[revision].[ext]"
|
artifactPattern "http://addons-origin.cursecdn.com/files/${config.thaumicenergistics.cf}/[module]-[revision].[ext]"
|
||||||
@ -250,7 +254,9 @@ dependencies {
|
|||||||
/*
|
/*
|
||||||
provided name: 'buildcraft', version: config.bc.version, classifier: "dev", ext: 'jar'
|
provided name: 'buildcraft', version: config.bc.version, classifier: "dev", ext: 'jar'
|
||||||
provided name: 'GalacticraftCoreAll', version: config.gc.version, ext: 'jar'
|
provided name: 'GalacticraftCoreAll', version: config.gc.version, ext: 'jar'
|
||||||
provided name: 'MekanismAll', version: config.mekanism.version, ext: 'jar'
|
*/
|
||||||
|
provided name: 'Mekanism', version: config.mekanism.version, ext: 'jar'
|
||||||
|
/*
|
||||||
provided name: 'redlogic', version: config.redlogic.version, ext: 'jar'
|
provided name: 'redlogic', version: config.redlogic.version, ext: 'jar'
|
||||||
|
|
||||||
provided name: 'CoFHLib', version: config.cofhlib.version, ext: 'jar'
|
provided name: 'CoFHLib', version: config.cofhlib.version, ext: 'jar'
|
||||||
@ -258,7 +264,9 @@ dependencies {
|
|||||||
provided name: 'MineFactoryReloaded', version: config.mfr.version, ext: 'jar'
|
provided name: 'MineFactoryReloaded', version: config.mfr.version, ext: 'jar'
|
||||||
provided name: 'Railcraft', version: config.rc.version, ext: 'jar'
|
provided name: 'Railcraft', version: config.rc.version, ext: 'jar'
|
||||||
provided name: 'BloodMagic', version: config.bloodmagic.version, ext: 'jar'
|
provided name: 'BloodMagic', version: config.bloodmagic.version, ext: 'jar'
|
||||||
provided name: 'ExtraCells', version: config.ec.version, ext: 'jar'
|
*/
|
||||||
|
provided name: 'ExtraCells', version: config.extracells.version, ext: 'jar'
|
||||||
|
/*
|
||||||
provided name: 'ThaumicEnergistics', version: config.thaumicenergistics.version, ext: 'jar'
|
provided name: 'ThaumicEnergistics', version: config.thaumicenergistics.version, ext: 'jar'
|
||||||
provided "cyano.poweradvantage:PowerAdvantage-API:${config.poweradvantage.version}"
|
provided "cyano.poweradvantage:PowerAdvantage-API:${config.poweradvantage.version}"
|
||||||
*/
|
*/
|
||||||
@ -291,13 +299,13 @@ sourceSets {
|
|||||||
exclude 'li/cil/oc/integration/cofh/**'
|
exclude 'li/cil/oc/integration/cofh/**'
|
||||||
//exclude 'li/cil/oc/integration/computercraft/**'
|
//exclude 'li/cil/oc/integration/computercraft/**'
|
||||||
exclude 'li/cil/oc/integration/dsu/**'
|
exclude 'li/cil/oc/integration/dsu/**'
|
||||||
exclude 'li/cil/oc/integration/ec/**'
|
//exclude 'li/cil/oc/integration/ec/**'
|
||||||
//exclude 'li/cil/oc/integration/enderio/**'
|
//exclude 'li/cil/oc/integration/enderio/**'
|
||||||
//exclude 'li/cil/oc/integration/enderstorage/**'
|
//exclude 'li/cil/oc/integration/enderstorage/**'
|
||||||
exclude 'li/cil/oc/integration/fmp/**'
|
exclude 'li/cil/oc/integration/fmp/**'
|
||||||
exclude 'li/cil/oc/integration/gc/**'
|
exclude 'li/cil/oc/integration/gc/**'
|
||||||
exclude 'li/cil/oc/integration/gregtech/**'
|
exclude 'li/cil/oc/integration/gregtech/**'
|
||||||
exclude 'li/cil/oc/integration/mekanism/**'
|
//exclude 'li/cil/oc/integration/mekanism/**'
|
||||||
exclude 'li/cil/oc/integration/mfr/**'
|
exclude 'li/cil/oc/integration/mfr/**'
|
||||||
exclude 'li/cil/oc/integration/mystcraft/**'
|
exclude 'li/cil/oc/integration/mystcraft/**'
|
||||||
exclude 'li/cil/oc/integration/nei/**'
|
exclude 'li/cil/oc/integration/nei/**'
|
||||||
|
@ -19,6 +19,8 @@ coloredlights.build=35
|
|||||||
ec.version=1.10.2-0.4.1.58-beta
|
ec.version=1.10.2-0.4.1.58-beta
|
||||||
eio.version=1.10.2-3.0.1.132_beta
|
eio.version=1.10.2-3.0.1.132_beta
|
||||||
es.version=2.2.1.106
|
es.version=2.2.1.106
|
||||||
|
extracells.cf=2499/811
|
||||||
|
extracells.version=1.10.2-2.4.2a9
|
||||||
fmp.version=1.1.0.308
|
fmp.version=1.1.0.308
|
||||||
forestry.version=5.2.17.376
|
forestry.version=5.2.17.376
|
||||||
gc.build=3
|
gc.build=3
|
||||||
@ -28,8 +30,8 @@ ic2.version=2.6.69-ex110
|
|||||||
igwmod.version=1.3.0-5
|
igwmod.version=1.3.0-5
|
||||||
jei.version=3.14.4.404
|
jei.version=3.14.4.404
|
||||||
mcmp.version=1.2.0_70
|
mcmp.version=1.2.0_70
|
||||||
mekanism.build=5
|
mekanism.cf=2475/800
|
||||||
mekanism.version=7.1.2
|
mekanism.version=1.10.2-9.2.4.103
|
||||||
mfr.cf=2229/626
|
mfr.cf=2229/626
|
||||||
mfr.version=[1.7.10]2.8.0RC8-86
|
mfr.version=[1.7.10]2.8.0RC8-86
|
||||||
nei.version=2.0.1.132
|
nei.version=2.0.1.132
|
||||||
|
@ -40,7 +40,7 @@ object Mods {
|
|||||||
val ElectricalAge = new SimpleMod(IDs.ElectricalAge)
|
val ElectricalAge = new SimpleMod(IDs.ElectricalAge)
|
||||||
val EnderIO = new SimpleMod(IDs.EnderIO, version = "@[1.10.2-3.0.1.132,)")
|
val EnderIO = new SimpleMod(IDs.EnderIO, version = "@[1.10.2-3.0.1.132,)")
|
||||||
val EnderStorage = new SimpleMod(IDs.EnderStorage)
|
val EnderStorage = new SimpleMod(IDs.EnderStorage)
|
||||||
val ExtraCells = new SimpleMod(IDs.ExtraCells, version = "@[2.2.73,)")
|
val ExtraCells = new SimpleMod(IDs.ExtraCells)
|
||||||
val Factorization = new SimpleMod(IDs.Factorization)
|
val Factorization = new SimpleMod(IDs.Factorization)
|
||||||
val Forestry = new SimpleMod(IDs.Forestry, version = "@[5.2,)")
|
val Forestry = new SimpleMod(IDs.Forestry, version = "@[5.2,)")
|
||||||
val Forge = new SimpleMod(IDs.Forge)
|
val Forge = new SimpleMod(IDs.Forge)
|
||||||
@ -106,7 +106,7 @@ object Mods {
|
|||||||
// integration.cofh.item.ModCoFHItem,
|
// integration.cofh.item.ModCoFHItem,
|
||||||
// integration.cofh.tileentity.ModCoFHTileEntity,
|
// integration.cofh.tileentity.ModCoFHTileEntity,
|
||||||
// integration.cofh.transport.ModCoFHTransport,
|
// integration.cofh.transport.ModCoFHTransport,
|
||||||
// integration.ec.ModExtraCells,
|
integration.ec.ModExtraCells,
|
||||||
integration.enderio.ModEnderIO,
|
integration.enderio.ModEnderIO,
|
||||||
integration.enderstorage.ModEnderStorage,
|
integration.enderstorage.ModEnderStorage,
|
||||||
// integration.dsu.ModDeepStorageUnit,
|
// integration.dsu.ModDeepStorageUnit,
|
||||||
@ -116,8 +116,8 @@ object Mods {
|
|||||||
// integration.gregtech.ModGregtech,
|
// integration.gregtech.ModGregtech,
|
||||||
integration.ic2.ModIndustrialCraft2,
|
integration.ic2.ModIndustrialCraft2,
|
||||||
integration.mcmp.ModMCMultiPart,
|
integration.mcmp.ModMCMultiPart,
|
||||||
// integration.mekanism.ModMekanism,
|
integration.mekanism.ModMekanism,
|
||||||
// integration.mekanism.gas.ModMekanismGas,
|
integration.mekanism.gas.ModMekanismGas,
|
||||||
// integration.mfr.ModMineFactoryReloaded,
|
// integration.mfr.ModMineFactoryReloaded,
|
||||||
integration.minecraftforge.ModMinecraftForge,
|
integration.minecraftforge.ModMinecraftForge,
|
||||||
// integration.mystcraft.ModMystcraft,
|
// integration.mystcraft.ModMystcraft,
|
||||||
|
@ -15,6 +15,8 @@ import li.cil.oc.api.machine.Context
|
|||||||
import li.cil.oc.api.network.Node
|
import li.cil.oc.api.network.Node
|
||||||
import li.cil.oc.api.prefab.AbstractValue
|
import li.cil.oc.api.prefab.AbstractValue
|
||||||
import li.cil.oc.common.EventHandler
|
import li.cil.oc.common.EventHandler
|
||||||
|
import li.cil.oc.integration.Mods
|
||||||
|
import li.cil.oc.integration.ec.ECUtil
|
||||||
import li.cil.oc.util.DatabaseAccess
|
import li.cil.oc.util.DatabaseAccess
|
||||||
import li.cil.oc.util.ExtendedArguments._
|
import li.cil.oc.util.ExtendedArguments._
|
||||||
import li.cil.oc.util.ExtendedNBT._
|
import li.cil.oc.util.ExtendedNBT._
|
||||||
@ -96,7 +98,7 @@ trait NetworkControl[AETile >: Null <: TileEntity with IActionHost] {
|
|||||||
@Callback(doc = "function():table -- Get a list of the stored fluids in the network.")
|
@Callback(doc = "function():table -- Get a list of the stored fluids in the network.")
|
||||||
def getFluidsInNetwork(context: Context, args: Arguments): Array[AnyRef] =
|
def getFluidsInNetwork(context: Context, args: Arguments): Array[AnyRef] =
|
||||||
result(AEUtil.getGridStorage(tile.getGridNode(pos).getGrid).getFluidInventory.getStorageList.filter(stack =>
|
result(AEUtil.getGridStorage(tile.getGridNode(pos).getGrid).getFluidInventory.getStorageList.filter(stack =>
|
||||||
stack != null).
|
stack != null && (!Mods.ExtraCells.isModAvailable || ECUtil.canSeeFluidInNetwork(stack))).
|
||||||
map(_.getFluidStack).toArray)
|
map(_.getFluidStack).toArray)
|
||||||
|
|
||||||
@Callback(doc = "function():number -- Get the average power injection into the network.")
|
@Callback(doc = "function():number -- Get the average power injection into the network.")
|
||||||
|
@ -1,22 +1,29 @@
|
|||||||
package li.cil.oc.integration.ec
|
package li.cil.oc.integration.ec
|
||||||
|
|
||||||
import appeng.tile.misc.TileInterface
|
|
||||||
|
import appeng.api.implementations.tiles.ISegmentedInventory
|
||||||
|
import appeng.api.networking.security.IActionHost
|
||||||
|
import appeng.api.util.AEPartLocation
|
||||||
import li.cil.oc.api.driver.EnvironmentProvider
|
import li.cil.oc.api.driver.EnvironmentProvider
|
||||||
import li.cil.oc.api.network.ManagedEnvironment
|
import li.cil.oc.api.network.ManagedEnvironment
|
||||||
import li.cil.oc.api.prefab.DriverSidedTileEntity
|
import li.cil.oc.api.prefab.DriverSidedTileEntity
|
||||||
import li.cil.oc.integration.ManagedTileEntityEnvironment
|
import li.cil.oc.integration.ManagedTileEntityEnvironment
|
||||||
import li.cil.oc.integration.appeng.AEUtil
|
import li.cil.oc.integration.appeng.AEUtil
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.tileentity.TileEntity
|
||||||
import net.minecraft.util.EnumFacing
|
import net.minecraft.util.EnumFacing
|
||||||
|
import net.minecraft.util.math.BlockPos
|
||||||
import net.minecraft.world.World
|
import net.minecraft.world.World
|
||||||
|
|
||||||
object DriverBlockInterface extends DriverSidedTileEntity {
|
object DriverBlockInterface extends DriverSidedTileEntity {
|
||||||
def getTileEntityClass: Class[_] = classOf[TileInterface]
|
def getTileEntityClass: Class[_] = AEUtil.interfaceClass
|
||||||
|
|
||||||
def createEnvironment(world: World, x: Int, y: Int, z: Int, side: EnumFacing): ManagedEnvironment =
|
def createEnvironment(world: World, pos: BlockPos, side: EnumFacing): ManagedEnvironment =
|
||||||
new Environment(world.getTileEntity(x, y, z).asInstanceOf[TileInterface])
|
new Environment(world.getTileEntity(pos).asInstanceOf[TileEntity with ISegmentedInventory with IActionHost])
|
||||||
|
|
||||||
final class Environment(val tile: TileInterface) extends ManagedTileEntityEnvironment[TileInterface](tile, "me_interface") with NetworkControl[TileInterface]
|
final class Environment(val tile: TileEntity with ISegmentedInventory with IActionHost) extends ManagedTileEntityEnvironment[TileEntity with ISegmentedInventory with IActionHost](tile, "me_interface") with NetworkControl[TileEntity with ISegmentedInventory with IActionHost]{
|
||||||
|
override def pos: AEPartLocation = AEPartLocation.INTERNAL
|
||||||
|
}
|
||||||
|
|
||||||
object Provider extends EnvironmentProvider {
|
object Provider extends EnvironmentProvider {
|
||||||
override def getEnvironment(stack: ItemStack): Class[_] =
|
override def getEnvironment(stack: ItemStack): Class[_] =
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package li.cil.oc.integration.ec
|
package li.cil.oc.integration.ec
|
||||||
|
|
||||||
import appeng.api.networking.security.IActionHost
|
import appeng.api.networking.security.IActionHost
|
||||||
import appeng.me.helpers.IGridProxyable
|
import appeng.api.util.AEPartLocation
|
||||||
import li.cil.oc.api.driver.EnvironmentProvider
|
import li.cil.oc.api.driver.EnvironmentProvider
|
||||||
import li.cil.oc.api.network.ManagedEnvironment
|
import li.cil.oc.api.network.ManagedEnvironment
|
||||||
import li.cil.oc.api.prefab.DriverSidedTileEntity
|
import li.cil.oc.api.prefab.DriverSidedTileEntity
|
||||||
@ -10,19 +10,22 @@ import li.cil.oc.integration.appeng.AEUtil
|
|||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraft.tileentity.TileEntity
|
import net.minecraft.tileentity.TileEntity
|
||||||
import net.minecraft.util.EnumFacing
|
import net.minecraft.util.EnumFacing
|
||||||
|
import net.minecraft.util.math.BlockPos
|
||||||
import net.minecraft.world.World
|
import net.minecraft.world.World
|
||||||
|
|
||||||
import scala.language.existentials
|
import scala.language.existentials
|
||||||
|
|
||||||
object DriverController extends DriverSidedTileEntity {
|
object DriverController extends DriverSidedTileEntity {
|
||||||
private type TileController = TileEntity with IGridProxyable with IActionHost
|
private type TileController = TileEntity with IActionHost
|
||||||
|
|
||||||
def getTileEntityClass = AEUtil.controllerClass
|
def getTileEntityClass = AEUtil.controllerClass
|
||||||
|
|
||||||
def createEnvironment(world: World, x: Int, y: Int, z: Int, side: EnumFacing): ManagedEnvironment =
|
def createEnvironment(world: World, pos: BlockPos, side: EnumFacing): ManagedEnvironment =
|
||||||
new Environment(world.getTileEntity(x, y, z).asInstanceOf[TileController])
|
new Environment(world.getTileEntity(pos).asInstanceOf[TileController])
|
||||||
|
|
||||||
final class Environment(val tile: TileController) extends ManagedTileEntityEnvironment[TileController](tile, "me_controller") with NetworkControl[TileController]
|
final class Environment(val tile: TileController) extends ManagedTileEntityEnvironment[TileController](tile, "me_controller") with NetworkControl[TileController]{
|
||||||
|
override def pos: AEPartLocation = AEPartLocation.INTERNAL
|
||||||
|
}
|
||||||
|
|
||||||
object Provider extends EnvironmentProvider {
|
object Provider extends EnvironmentProvider {
|
||||||
override def getEnvironment(stack: ItemStack): Class[_] =
|
override def getEnvironment(stack: ItemStack): Class[_] =
|
||||||
|
@ -1,23 +1,25 @@
|
|||||||
package li.cil.oc.integration.ec
|
package li.cil.oc.integration.ec
|
||||||
|
|
||||||
import appeng.api.networking.security.IActionHost
|
import appeng.api.networking.security.IActionHost
|
||||||
import appeng.me.helpers.IGridProxyable
|
import appeng.api.util.AEPartLocation
|
||||||
import extracells.api.ECApi
|
import extracells.api.ECApi
|
||||||
import li.cil.oc.api.machine.Arguments
|
import li.cil.oc.api.machine.Arguments
|
||||||
import li.cil.oc.api.machine.Callback
|
import li.cil.oc.api.machine.Callback
|
||||||
import li.cil.oc.api.machine.Context
|
import li.cil.oc.api.machine.Context
|
||||||
|
import li.cil.oc.integration.appeng.AEUtil
|
||||||
import li.cil.oc.util.ResultWrapper._
|
import li.cil.oc.util.ResultWrapper._
|
||||||
import net.minecraft.tileentity.TileEntity
|
import net.minecraft.tileentity.TileEntity
|
||||||
|
|
||||||
import scala.collection.convert.WrapAsScala._
|
import scala.collection.convert.WrapAsScala._
|
||||||
|
|
||||||
// Note to self: this class is used by ExtraCells (and potentially others), do not rename / drastically change it.
|
// Note to self: this class is used by ExtraCells (and potentially others), do not rename / drastically change it.
|
||||||
trait NetworkControl[AETile >: Null <: TileEntity with IGridProxyable with IActionHost] {
|
trait NetworkControl[AETile >: Null <: TileEntity with IActionHost] {
|
||||||
def tile: AETile
|
def tile: AETile
|
||||||
|
def pos: AEPartLocation
|
||||||
|
|
||||||
@Callback(doc = "function():table -- Get a list of the stored gases in the network.")
|
@Callback(doc = "function():table -- Get a list of the stored gases in the network.")
|
||||||
def getGasesInNetwork(context: Context, args: Arguments): Array[AnyRef] =
|
def getGasesInNetwork(context: Context, args: Arguments): Array[AnyRef] =
|
||||||
result(tile.getProxy.getStorage.getFluidInventory.getStorageList.filter(stack =>
|
result(AEUtil.getGridStorage(tile.getGridNode(pos).getGrid).getFluidInventory.getStorageList.filter(stack =>
|
||||||
ECApi.instance.isGasStack(stack)).
|
ECApi.instance.isGasStack(stack)).
|
||||||
map(ECApi.instance.createGasStack).toArray)
|
map(ECApi.instance.createGasStack).toArray)
|
||||||
}
|
}
|
||||||
|
@ -3,11 +3,13 @@ package li.cil.oc.integration.mekanism
|
|||||||
import mekanism.api.IMekWrench
|
import mekanism.api.IMekWrench
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.util.EnumHand
|
||||||
|
import net.minecraft.util.math.BlockPos
|
||||||
|
|
||||||
object EventHandlerMekanism {
|
object EventHandlerMekanism {
|
||||||
def useWrench(player: EntityPlayer, x: Int, y: Int, z: Int, changeDurability: Boolean): Boolean = {
|
def useWrench(player: EntityPlayer, pos: BlockPos, changeDurability: Boolean): Boolean = {
|
||||||
player.getHeldItem.getItem match {
|
player.getHeldItem(EnumHand.MAIN_HAND).getItem match {
|
||||||
case wrench: IMekWrench => wrench.canUseWrench(player, x, y, z)
|
case wrench: IMekWrench => wrench.canUseWrench(player.getHeldItem(EnumHand.MAIN_HAND), player, pos)
|
||||||
case _ => false
|
case _ => false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user