mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-15 18:30:27 -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'
|
||||
artifactPattern "http://ci.cil.li/job/Galacticraft/${config.gc.build}/artifact/build/libs/[module]-1.7-[revision].${config.gc.build}.[ext]"
|
||||
}
|
||||
*/
|
||||
ivy {
|
||||
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 {
|
||||
name 'immibis'
|
||||
artifactPattern "https://dl.dropboxusercontent.com/u/2944265/mods/autobuilt/files/[module]-[revision].[ext]"
|
||||
@ -169,10 +171,12 @@ repositories {
|
||||
name 'BloodMagic'
|
||||
artifactPattern "http://addons-origin.cursecdn.com/files/${config.bloodmagic.cf}/[module]-${config.minecraft.version}-[revision].[ext]"
|
||||
}
|
||||
*/
|
||||
ivy {
|
||||
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 {
|
||||
name 'ThaumicEnergistics'
|
||||
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: '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: 'CoFHLib', version: config.cofhlib.version, ext: 'jar'
|
||||
@ -258,7 +264,9 @@ dependencies {
|
||||
provided name: 'MineFactoryReloaded', version: config.mfr.version, ext: 'jar'
|
||||
provided name: 'Railcraft', version: config.rc.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 "cyano.poweradvantage:PowerAdvantage-API:${config.poweradvantage.version}"
|
||||
*/
|
||||
@ -291,13 +299,13 @@ sourceSets {
|
||||
exclude 'li/cil/oc/integration/cofh/**'
|
||||
//exclude 'li/cil/oc/integration/computercraft/**'
|
||||
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/enderstorage/**'
|
||||
exclude 'li/cil/oc/integration/fmp/**'
|
||||
exclude 'li/cil/oc/integration/gc/**'
|
||||
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/mystcraft/**'
|
||||
exclude 'li/cil/oc/integration/nei/**'
|
||||
|
@ -19,6 +19,8 @@ coloredlights.build=35
|
||||
ec.version=1.10.2-0.4.1.58-beta
|
||||
eio.version=1.10.2-3.0.1.132_beta
|
||||
es.version=2.2.1.106
|
||||
extracells.cf=2499/811
|
||||
extracells.version=1.10.2-2.4.2a9
|
||||
fmp.version=1.1.0.308
|
||||
forestry.version=5.2.17.376
|
||||
gc.build=3
|
||||
@ -28,8 +30,8 @@ ic2.version=2.6.69-ex110
|
||||
igwmod.version=1.3.0-5
|
||||
jei.version=3.14.4.404
|
||||
mcmp.version=1.2.0_70
|
||||
mekanism.build=5
|
||||
mekanism.version=7.1.2
|
||||
mekanism.cf=2475/800
|
||||
mekanism.version=1.10.2-9.2.4.103
|
||||
mfr.cf=2229/626
|
||||
mfr.version=[1.7.10]2.8.0RC8-86
|
||||
nei.version=2.0.1.132
|
||||
|
@ -40,7 +40,7 @@ object Mods {
|
||||
val ElectricalAge = new SimpleMod(IDs.ElectricalAge)
|
||||
val EnderIO = new SimpleMod(IDs.EnderIO, version = "@[1.10.2-3.0.1.132,)")
|
||||
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 Forestry = new SimpleMod(IDs.Forestry, version = "@[5.2,)")
|
||||
val Forge = new SimpleMod(IDs.Forge)
|
||||
@ -106,7 +106,7 @@ object Mods {
|
||||
// integration.cofh.item.ModCoFHItem,
|
||||
// integration.cofh.tileentity.ModCoFHTileEntity,
|
||||
// integration.cofh.transport.ModCoFHTransport,
|
||||
// integration.ec.ModExtraCells,
|
||||
integration.ec.ModExtraCells,
|
||||
integration.enderio.ModEnderIO,
|
||||
integration.enderstorage.ModEnderStorage,
|
||||
// integration.dsu.ModDeepStorageUnit,
|
||||
@ -116,8 +116,8 @@ object Mods {
|
||||
// integration.gregtech.ModGregtech,
|
||||
integration.ic2.ModIndustrialCraft2,
|
||||
integration.mcmp.ModMCMultiPart,
|
||||
// integration.mekanism.ModMekanism,
|
||||
// integration.mekanism.gas.ModMekanismGas,
|
||||
integration.mekanism.ModMekanism,
|
||||
integration.mekanism.gas.ModMekanismGas,
|
||||
// integration.mfr.ModMineFactoryReloaded,
|
||||
integration.minecraftforge.ModMinecraftForge,
|
||||
// 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.prefab.AbstractValue
|
||||
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.ExtendedArguments._
|
||||
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.")
|
||||
def getFluidsInNetwork(context: Context, args: Arguments): Array[AnyRef] =
|
||||
result(AEUtil.getGridStorage(tile.getGridNode(pos).getGrid).getFluidInventory.getStorageList.filter(stack =>
|
||||
stack != null).
|
||||
stack != null && (!Mods.ExtraCells.isModAvailable || ECUtil.canSeeFluidInNetwork(stack))).
|
||||
map(_.getFluidStack).toArray)
|
||||
|
||||
@Callback(doc = "function():number -- Get the average power injection into the network.")
|
||||
|
@ -1,22 +1,29 @@
|
||||
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.network.ManagedEnvironment
|
||||
import li.cil.oc.api.prefab.DriverSidedTileEntity
|
||||
import li.cil.oc.integration.ManagedTileEntityEnvironment
|
||||
import li.cil.oc.integration.appeng.AEUtil
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
import net.minecraft.util.EnumFacing
|
||||
import net.minecraft.util.math.BlockPos
|
||||
import net.minecraft.world.World
|
||||
|
||||
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 =
|
||||
new Environment(world.getTileEntity(x, y, z).asInstanceOf[TileInterface])
|
||||
def createEnvironment(world: World, pos: BlockPos, side: EnumFacing): ManagedEnvironment =
|
||||
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 {
|
||||
override def getEnvironment(stack: ItemStack): Class[_] =
|
||||
|
@ -1,7 +1,7 @@
|
||||
package li.cil.oc.integration.ec
|
||||
|
||||
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.network.ManagedEnvironment
|
||||
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.tileentity.TileEntity
|
||||
import net.minecraft.util.EnumFacing
|
||||
import net.minecraft.util.math.BlockPos
|
||||
import net.minecraft.world.World
|
||||
|
||||
import scala.language.existentials
|
||||
|
||||
object DriverController extends DriverSidedTileEntity {
|
||||
private type TileController = TileEntity with IGridProxyable with IActionHost
|
||||
private type TileController = TileEntity with IActionHost
|
||||
|
||||
def getTileEntityClass = AEUtil.controllerClass
|
||||
|
||||
def createEnvironment(world: World, x: Int, y: Int, z: Int, side: EnumFacing): ManagedEnvironment =
|
||||
new Environment(world.getTileEntity(x, y, z).asInstanceOf[TileController])
|
||||
def createEnvironment(world: World, pos: BlockPos, side: EnumFacing): ManagedEnvironment =
|
||||
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 {
|
||||
override def getEnvironment(stack: ItemStack): Class[_] =
|
||||
|
@ -1,23 +1,25 @@
|
||||
package li.cil.oc.integration.ec
|
||||
|
||||
import appeng.api.networking.security.IActionHost
|
||||
import appeng.me.helpers.IGridProxyable
|
||||
import appeng.api.util.AEPartLocation
|
||||
import extracells.api.ECApi
|
||||
import li.cil.oc.api.machine.Arguments
|
||||
import li.cil.oc.api.machine.Callback
|
||||
import li.cil.oc.api.machine.Context
|
||||
import li.cil.oc.integration.appeng.AEUtil
|
||||
import li.cil.oc.util.ResultWrapper._
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
|
||||
import scala.collection.convert.WrapAsScala._
|
||||
|
||||
// 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 pos: AEPartLocation
|
||||
|
||||
@Callback(doc = "function():table -- Get a list of the stored gases in the network.")
|
||||
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)).
|
||||
map(ECApi.instance.createGasStack).toArray)
|
||||
}
|
||||
|
@ -3,11 +3,13 @@ package li.cil.oc.integration.mekanism
|
||||
import mekanism.api.IMekWrench
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.util.EnumHand
|
||||
import net.minecraft.util.math.BlockPos
|
||||
|
||||
object EventHandlerMekanism {
|
||||
def useWrench(player: EntityPlayer, x: Int, y: Int, z: Int, changeDurability: Boolean): Boolean = {
|
||||
player.getHeldItem.getItem match {
|
||||
case wrench: IMekWrench => wrench.canUseWrench(player, x, y, z)
|
||||
def useWrench(player: EntityPlayer, pos: BlockPos, changeDurability: Boolean): Boolean = {
|
||||
player.getHeldItem(EnumHand.MAIN_HAND).getItem match {
|
||||
case wrench: IMekWrench => wrench.canUseWrench(player.getHeldItem(EnumHand.MAIN_HAND), player, pos)
|
||||
case _ => false
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user