mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-12 08:50:04 -04:00
Add ThaumicEnergistics support
This commit is contained in:
parent
54de3fe89d
commit
590ecebc33
@ -167,6 +167,10 @@ repositories {
|
|||||||
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.ec.cf}/[module]-[revision].[ext]"
|
||||||
}
|
}
|
||||||
|
ivy {
|
||||||
|
name 'ThaumicEnergistics'
|
||||||
|
artifactPattern "http://addons-origin.cursecdn.com/files/${config.thaumicenergistics.cf}/[module]-[revision].[ext]"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
@ -213,6 +217,7 @@ dependencies {
|
|||||||
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.ec.version, ext: 'jar'
|
||||||
|
provided name: 'ThaumicEnergistics', version: config.thaumicenergistics.version, ext: 'jar'
|
||||||
|
|
||||||
compile 'com.google.code.findbugs:jsr305:1.3.9' // Annotations used by google libs.
|
compile 'com.google.code.findbugs:jsr305:1.3.9' // Annotations used by google libs.
|
||||||
|
|
||||||
|
@ -40,6 +40,8 @@ rc.cf=2219/321
|
|||||||
rc.version=1.7.10-9.4.0.0
|
rc.version=1.7.10-9.4.0.0
|
||||||
redlogic.version=59.0.3
|
redlogic.version=59.0.3
|
||||||
rotc.version=V5c
|
rotc.version=V5c
|
||||||
|
thaumicenergistics.cf=2277/520
|
||||||
|
thaumicenergistics.version=1.0.0.1-RV2
|
||||||
tis3d.version=MC1.7.10-0.7.1.53
|
tis3d.version=MC1.7.10-0.7.1.53
|
||||||
tmech.version=75.0afb56c
|
tmech.version=75.0afb56c
|
||||||
re.version=3.0.0.342
|
re.version=3.0.0.342
|
||||||
|
@ -76,6 +76,7 @@ object Mods {
|
|||||||
override def isModAvailable: Boolean = isModAvailable_
|
override def isModAvailable: Boolean = isModAvailable_
|
||||||
}
|
}
|
||||||
val Thaumcraft = new SimpleMod(IDs.Thaumcraft)
|
val Thaumcraft = new SimpleMod(IDs.Thaumcraft)
|
||||||
|
val ThaumicEnergistics = new SimpleMod(IDs.ThaumicEnergistics)
|
||||||
val ThermalExpansion = new SimpleMod(IDs.ThermalExpansion, providesPower = true)
|
val ThermalExpansion = new SimpleMod(IDs.ThermalExpansion, providesPower = true)
|
||||||
val TinkersConstruct = new SimpleMod(IDs.TinkersConstruct)
|
val TinkersConstruct = new SimpleMod(IDs.TinkersConstruct)
|
||||||
val TIS3D = new SimpleMod(IDs.TIS3D, version = "@[0.7,)")
|
val TIS3D = new SimpleMod(IDs.TIS3D, version = "@[0.7,)")
|
||||||
@ -122,6 +123,7 @@ object Mods {
|
|||||||
integration.rotarycraft.ModRotaryCraft,
|
integration.rotarycraft.ModRotaryCraft,
|
||||||
integration.stargatetech2.ModStargateTech2,
|
integration.stargatetech2.ModStargateTech2,
|
||||||
integration.thaumcraft.ModThaumcraft,
|
integration.thaumcraft.ModThaumcraft,
|
||||||
|
integration.thaumicenergistics.ModThaumicEnergistics,
|
||||||
integration.thermalexpansion.ModThermalExpansion,
|
integration.thermalexpansion.ModThermalExpansion,
|
||||||
integration.tcon.ModTinkersConstruct,
|
integration.tcon.ModTinkersConstruct,
|
||||||
integration.tis3d.ModTIS3D,
|
integration.tis3d.ModTIS3D,
|
||||||
@ -214,6 +216,7 @@ object Mods {
|
|||||||
final val RotaryCraft = "RotaryCraft"
|
final val RotaryCraft = "RotaryCraft"
|
||||||
final val StargateTech2 = "StargateTech2"
|
final val StargateTech2 = "StargateTech2"
|
||||||
final val Thaumcraft = "Thaumcraft"
|
final val Thaumcraft = "Thaumcraft"
|
||||||
|
final val ThaumicEnergistics = "thaumicenergistics"
|
||||||
final val ThermalExpansion = "ThermalExpansion"
|
final val ThermalExpansion = "ThermalExpansion"
|
||||||
final val TinkersConstruct = "TConstruct"
|
final val TinkersConstruct = "TConstruct"
|
||||||
final val TIS3D = "tis3d"
|
final val TIS3D = "tis3d"
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package li.cil.oc.integration.thaumicenergistics
|
||||||
|
|
||||||
|
import appeng.tile.misc.TileInterface
|
||||||
|
import li.cil.oc.api.driver.EnvironmentProvider
|
||||||
|
import li.cil.oc.api.network.ManagedEnvironment
|
||||||
|
import li.cil.oc.api.prefab.DriverTileEntity
|
||||||
|
import li.cil.oc.integration.ManagedTileEntityEnvironment
|
||||||
|
import li.cil.oc.integration.appeng.AEUtil
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.world.World
|
||||||
|
|
||||||
|
object DriverBlockInterface extends DriverTileEntity {
|
||||||
|
def getTileEntityClass: Class[_] = classOf[TileInterface]
|
||||||
|
|
||||||
|
def createEnvironment(world: World, x: Int, y: Int, z: Int): ManagedEnvironment =
|
||||||
|
new Environment(world.getTileEntity(x, y, z).asInstanceOf[TileInterface])
|
||||||
|
|
||||||
|
final class Environment(val tile: TileInterface) extends ManagedTileEntityEnvironment[TileInterface](tile, "me_interface") with NetworkControl[TileInterface]
|
||||||
|
|
||||||
|
object Provider extends EnvironmentProvider {
|
||||||
|
override def getEnvironment(stack: ItemStack): Class[_] =
|
||||||
|
if (AEUtil.isBlockInterface(stack))
|
||||||
|
classOf[Environment]
|
||||||
|
else null
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
package li.cil.oc.integration.thaumicenergistics
|
||||||
|
|
||||||
|
import appeng.api.networking.security.IActionHost
|
||||||
|
import appeng.me.helpers.IGridProxyable
|
||||||
|
import li.cil.oc.api.driver.EnvironmentProvider
|
||||||
|
import li.cil.oc.api.network.ManagedEnvironment
|
||||||
|
import li.cil.oc.api.prefab.DriverTileEntity
|
||||||
|
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.world.World
|
||||||
|
|
||||||
|
import scala.language.existentials
|
||||||
|
|
||||||
|
object DriverController extends DriverTileEntity {
|
||||||
|
private type TileController = TileEntity with IGridProxyable with IActionHost
|
||||||
|
|
||||||
|
def getTileEntityClass = AEUtil.controllerClass
|
||||||
|
|
||||||
|
def createEnvironment(world: World, x: Int, y: Int, z: Int): ManagedEnvironment =
|
||||||
|
new Environment(world.getTileEntity(x, y, z).asInstanceOf[TileController])
|
||||||
|
|
||||||
|
final class Environment(val tile: TileController) extends ManagedTileEntityEnvironment[TileController](tile, "me_controller") with NetworkControl[TileController]
|
||||||
|
|
||||||
|
object Provider extends EnvironmentProvider {
|
||||||
|
override def getEnvironment(stack: ItemStack): Class[_] =
|
||||||
|
if (AEUtil.isController(stack))
|
||||||
|
classOf[Environment]
|
||||||
|
else null
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package li.cil.oc.integration.thaumicenergistics
|
||||||
|
|
||||||
|
import li.cil.oc.api.Driver
|
||||||
|
import li.cil.oc.integration.Mod
|
||||||
|
import li.cil.oc.integration.ModProxy
|
||||||
|
import li.cil.oc.integration.Mods
|
||||||
|
|
||||||
|
object ModThaumicEnergistics extends ModProxy {
|
||||||
|
override def getMod: Mod = Mods.ThaumicEnergistics
|
||||||
|
|
||||||
|
override def initialize(): Unit = {
|
||||||
|
Driver.add(DriverController)
|
||||||
|
Driver.add(DriverBlockInterface)
|
||||||
|
|
||||||
|
Driver.add(DriverController.Provider)
|
||||||
|
Driver.add(DriverBlockInterface.Provider)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package li.cil.oc.integration.thaumicenergistics
|
||||||
|
|
||||||
|
import appeng.api.networking.security.IActionHost
|
||||||
|
import appeng.me.helpers.IGridProxyable
|
||||||
|
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.util.ResultWrapper._
|
||||||
|
import net.minecraft.tileentity.TileEntity
|
||||||
|
import thaumicenergistics.api.IThEEssentiaGas
|
||||||
|
|
||||||
|
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] {
|
||||||
|
def tile: AETile
|
||||||
|
|
||||||
|
@Callback(doc = "function():table -- Get a list of the stored essentia in the network.")
|
||||||
|
def getEssentiaInNetwork(context: Context, args: Arguments): Array[AnyRef] =
|
||||||
|
result(tile.getProxy.getStorage.getFluidInventory.getStorageList.filter(stack =>
|
||||||
|
stack.getFluid != null && stack.getFluid.isInstanceOf[IThEEssentiaGas]).
|
||||||
|
map(ThaumicEnergisticsUtils.getAspect).toArray)
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package li.cil.oc.integration.thaumicenergistics
|
||||||
|
|
||||||
|
import appeng.api.storage.data.IAEFluidStack
|
||||||
|
|
||||||
|
|
||||||
|
object ThaumicEnergisticsUtils {
|
||||||
|
def getAspect(fluid: IAEFluidStack) ={
|
||||||
|
val aspect = fluid.getFluidStack.copy()
|
||||||
|
aspect.amount = (fluid.getStackSize / 128).toInt
|
||||||
|
aspect
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user