mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-11 16:28:12 -04:00
Add ThaumicEnergistics support
This commit is contained in:
parent
54de3fe89d
commit
590ecebc33
@ -167,6 +167,10 @@ repositories {
|
||||
name 'ExtraCells'
|
||||
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 {
|
||||
@ -213,6 +217,7 @@ dependencies {
|
||||
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: 'ThaumicEnergistics', version: config.thaumicenergistics.version, ext: 'jar'
|
||||
|
||||
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
|
||||
redlogic.version=59.0.3
|
||||
rotc.version=V5c
|
||||
thaumicenergistics.cf=2277/520
|
||||
thaumicenergistics.version=1.0.0.1-RV2
|
||||
tis3d.version=MC1.7.10-0.7.1.53
|
||||
tmech.version=75.0afb56c
|
||||
re.version=3.0.0.342
|
||||
|
@ -76,6 +76,7 @@ object Mods {
|
||||
override def isModAvailable: Boolean = isModAvailable_
|
||||
}
|
||||
val Thaumcraft = new SimpleMod(IDs.Thaumcraft)
|
||||
val ThaumicEnergistics = new SimpleMod(IDs.ThaumicEnergistics)
|
||||
val ThermalExpansion = new SimpleMod(IDs.ThermalExpansion, providesPower = true)
|
||||
val TinkersConstruct = new SimpleMod(IDs.TinkersConstruct)
|
||||
val TIS3D = new SimpleMod(IDs.TIS3D, version = "@[0.7,)")
|
||||
@ -122,6 +123,7 @@ object Mods {
|
||||
integration.rotarycraft.ModRotaryCraft,
|
||||
integration.stargatetech2.ModStargateTech2,
|
||||
integration.thaumcraft.ModThaumcraft,
|
||||
integration.thaumicenergistics.ModThaumicEnergistics,
|
||||
integration.thermalexpansion.ModThermalExpansion,
|
||||
integration.tcon.ModTinkersConstruct,
|
||||
integration.tis3d.ModTIS3D,
|
||||
@ -214,6 +216,7 @@ object Mods {
|
||||
final val RotaryCraft = "RotaryCraft"
|
||||
final val StargateTech2 = "StargateTech2"
|
||||
final val Thaumcraft = "Thaumcraft"
|
||||
final val ThaumicEnergistics = "thaumicenergistics"
|
||||
final val ThermalExpansion = "ThermalExpansion"
|
||||
final val TinkersConstruct = "TConstruct"
|
||||
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