mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-18 03:36:47 -04:00
Merge branch 'master' of github.com:MightyPirates/OpenComputers into master-MC1.7.10
Conflicts: src/main/scala/li/cil/oc/client/Proxy.scala src/main/scala/li/cil/oc/common/Proxy.scala src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2Classic.scala src/main/scala/li/cil/oc/common/tileentity/traits/power/IndustrialCraft2Experimental.scala src/main/scala/li/cil/oc/common/tileentity/traits/power/ThermalExpansion.scala src/main/scala/li/cil/oc/common/tileentity/traits/power/UniversalElectricity.scala
This commit is contained in:
commit
81f99a74a5
@ -463,6 +463,13 @@ opencomputers {
|
||||
# controls the speed at which items are disassembled, basically.
|
||||
disassemblerTickAmount: 25
|
||||
|
||||
# If you don't want OpenComputers to accept power from one or more of the
|
||||
# supported power mods, for example because it doesn't suit the vision
|
||||
# of your mod pack, you can disable support for them here. To stop
|
||||
# OpenComputers accepting power from a mod, enter its mod id here, e.g.
|
||||
# `BuildCraftAPI|power`, `IC2`, `factorization`, ...
|
||||
modBlacklist: []
|
||||
|
||||
# Default "buffer" sizes, i.e. how much energy certain blocks can store.
|
||||
buffer {
|
||||
# The amount of energy a single capacitor can store.
|
||||
|
@ -111,13 +111,14 @@ class Settings(config: Config) {
|
||||
// power
|
||||
|
||||
val pureIgnorePower = config.getBoolean("power.ignorePower")
|
||||
val ignorePower = pureIgnorePower || !Mods.isPowerProvidingModPresent
|
||||
lazy val ignorePower = pureIgnorePower || !Mods.isPowerProvidingModPresent
|
||||
val tickFrequency = config.getDouble("power.tickFrequency") max 1
|
||||
val chargeRate = config.getDouble("power.chargerChargeRate")
|
||||
val generatorEfficiency = config.getDouble("power.generatorEfficiency")
|
||||
val solarGeneratorEfficiency = config.getDouble("power.solarGeneratorEfficiency")
|
||||
val assemblerTickAmount = config.getDouble("power.assemblerTickAmount") max 1
|
||||
val disassemblerTickAmount = config.getDouble("power.disassemblerTickAmount") max 1
|
||||
val powerModBlacklist = config.getStringList("power.modBlacklist")
|
||||
|
||||
// power.buffer
|
||||
val bufferCapacitor = config.getDouble("power.buffer.capacitor") max 0
|
||||
|
@ -2,7 +2,7 @@ package li.cil.oc.client
|
||||
|
||||
import cpw.mods.fml.client.registry.{ClientRegistry, RenderingRegistry}
|
||||
import cpw.mods.fml.common.FMLCommonHandler
|
||||
import cpw.mods.fml.common.event.{FMLInitializationEvent, FMLPostInitializationEvent, FMLPreInitializationEvent}
|
||||
import cpw.mods.fml.common.event.{FMLInitializationEvent, FMLPreInitializationEvent}
|
||||
import cpw.mods.fml.common.network.NetworkRegistry
|
||||
import li.cil.oc.client.renderer.block.BlockRenderer
|
||||
import li.cil.oc.client.renderer.item.ItemRenderer
|
||||
@ -27,7 +27,7 @@ private[oc] class Proxy extends CommonProxy {
|
||||
override def init(e: FMLInitializationEvent) {
|
||||
super.init(e)
|
||||
|
||||
NetworkRegistry.INSTANCE.registerGuiHandler(OpenComputers, GuiHandler)
|
||||
OpenComputers.channel.register(client.PacketHandler)
|
||||
|
||||
Settings.blockRenderId = RenderingRegistry.getNextAvailableRenderId
|
||||
RenderingRegistry.registerBlockHandler(BlockRenderer)
|
||||
@ -48,25 +48,20 @@ private[oc] class Proxy extends CommonProxy {
|
||||
|
||||
MinecraftForgeClient.registerItemRenderer(Items.multi, ItemRenderer)
|
||||
|
||||
OpenComputers.channel.register(client.PacketHandler)
|
||||
|
||||
ClientRegistry.registerKeyBinding(KeyBindings.extendedTooltip)
|
||||
ClientRegistry.registerKeyBinding(KeyBindings.materialCosts)
|
||||
ClientRegistry.registerKeyBinding(KeyBindings.clipboardPaste)
|
||||
}
|
||||
|
||||
override def postInit(e: FMLPostInitializationEvent) {
|
||||
super.postInit(e)
|
||||
|
||||
FMLCommonHandler.instance.bus.register(Audio)
|
||||
FMLCommonHandler.instance.bus.register(HologramRenderer)
|
||||
FMLCommonHandler.instance.bus.register(PetRenderer)
|
||||
FMLCommonHandler.instance.bus.register(ScreenRenderer)
|
||||
FMLCommonHandler.instance.bus.register(TextBufferRenderCache)
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(PetRenderer)
|
||||
MinecraftForge.EVENT_BUS.register(ServerRack)
|
||||
MinecraftForge.EVENT_BUS.register(TextBuffer)
|
||||
MinecraftForge.EVENT_BUS.register(WirelessNetworkDebugRenderer)
|
||||
|
||||
NetworkRegistry.INSTANCE.registerGuiHandler(OpenComputers, GuiHandler)
|
||||
|
||||
FMLCommonHandler.instance.bus.register(Audio)
|
||||
FMLCommonHandler.instance.bus.register(HologramRenderer)
|
||||
FMLCommonHandler.instance.bus.register(PetRenderer)
|
||||
FMLCommonHandler.instance.bus.register(TextBufferRenderCache)
|
||||
}
|
||||
}
|
@ -67,6 +67,9 @@ class Proxy {
|
||||
}
|
||||
|
||||
def init(e: FMLInitializationEvent) {
|
||||
OpenComputers.channel = NetworkRegistry.INSTANCE.newEventDrivenChannel("OpenComputers")
|
||||
OpenComputers.channel.register(server.PacketHandler)
|
||||
|
||||
OpenComputers.log.info("Initializing OpenComputers drivers.")
|
||||
api.Driver.add(driver.item.FileSystem)
|
||||
api.Driver.add(driver.item.GraphicsCard)
|
||||
@ -115,19 +118,26 @@ class Proxy {
|
||||
|
||||
OpenComputers.log.info("Initializing recipes.")
|
||||
Recipes.init()
|
||||
|
||||
OpenComputers.log.info("Initializing event handlers.")
|
||||
|
||||
ForgeChunkManager.setForcedChunkLoadingCallback(OpenComputers, ChunkloaderUpgradeHandler)
|
||||
OpenComputers.channel = NetworkRegistry.INSTANCE.newEventDrivenChannel("OpenComputers")
|
||||
OpenComputers.channel.register(server.PacketHandler)
|
||||
|
||||
Loot.init()
|
||||
FMLCommonHandler.instance.bus.register(EventHandler)
|
||||
FMLCommonHandler.instance.bus.register(SimpleComponentTickHandler.Instance)
|
||||
FMLCommonHandler.instance.bus.register(Tablet)
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(AngelUpgradeHandler)
|
||||
MinecraftForge.EVENT_BUS.register(ChunkloaderUpgradeHandler)
|
||||
MinecraftForge.EVENT_BUS.register(RobotCommonHandler)
|
||||
MinecraftForge.EVENT_BUS.register(EventHandler)
|
||||
MinecraftForge.EVENT_BUS.register(ExperienceUpgradeHandler)
|
||||
MinecraftForge.EVENT_BUS.register(Loot)
|
||||
MinecraftForge.EVENT_BUS.register(RobotCommonHandler)
|
||||
MinecraftForge.EVENT_BUS.register(SaveHandler)
|
||||
MinecraftForge.EVENT_BUS.register(Tablet)
|
||||
MinecraftForge.EVENT_BUS.register(WirelessNetwork)
|
||||
MinecraftForge.EVENT_BUS.register(WirelessNetworkCardHandler)
|
||||
|
||||
if (Mods.TinkersConstruct.isAvailable) {
|
||||
OpenComputers.log.info("Initializing Tinker's Construct tool support.")
|
||||
MinecraftForge.EVENT_BUS.register(TinkersConstructToolHandler)
|
||||
@ -136,13 +146,6 @@ class Proxy {
|
||||
OpenComputers.log.info("Initializing electric tool support.")
|
||||
MinecraftForge.EVENT_BUS.register(UniversalElectricityToolHandler)
|
||||
}
|
||||
MinecraftForge.EVENT_BUS.register(Loot)
|
||||
|
||||
if (Mods.Waila.isAvailable) {
|
||||
OpenComputers.log.info("Initializing Waila support.")
|
||||
FMLInterModComms.sendMessage("Waila", "register", "li.cil.oc.util.mods.Waila.init")
|
||||
}
|
||||
|
||||
if (Mods.VersionChecker.isAvailable) {
|
||||
UpdateCheck.info onSuccess {
|
||||
case Some(release) =>
|
||||
@ -156,19 +159,15 @@ class Proxy {
|
||||
FMLInterModComms.sendRuntimeMessage(OpenComputers.ID, Mods.IDs.VersionChecker, "addUpdate", nbt)
|
||||
}
|
||||
}
|
||||
if (Mods.Waila.isAvailable) {
|
||||
OpenComputers.log.info("Initializing Waila support.")
|
||||
FMLInterModComms.sendMessage("Waila", "register", "li.cil.oc.util.mods.Waila.init")
|
||||
}
|
||||
}
|
||||
|
||||
def postInit(e: FMLPostInitializationEvent) {
|
||||
// Don't allow driver registration after this point, to avoid issues.
|
||||
driver.Registry.locked = true
|
||||
|
||||
FMLCommonHandler.instance.bus.register(EventHandler)
|
||||
FMLCommonHandler.instance.bus.register(SimpleComponentTickHandler.Instance)
|
||||
FMLCommonHandler.instance.bus.register(Tablet)
|
||||
MinecraftForge.EVENT_BUS.register(EventHandler)
|
||||
MinecraftForge.EVENT_BUS.register(WirelessNetwork)
|
||||
MinecraftForge.EVENT_BUS.register(SaveHandler)
|
||||
MinecraftForge.EVENT_BUS.register(Tablet)
|
||||
}
|
||||
|
||||
private def registerExclusive(name: String, items: ItemStack*) {
|
||||
|
@ -7,9 +7,9 @@ import li.cil.oc.util.mods.Mods
|
||||
import net.minecraftforge.common.util.ForgeDirection
|
||||
|
||||
trait BuildCraft extends Common {
|
||||
private var powerHandler: Option[AnyRef] = None
|
||||
private lazy val useBuildCraftPower = isServer && Mods.BuildCraftPower.isAvailable
|
||||
|
||||
private lazy val useBuildCraftPower = isServer && !Settings.get.ignorePower && Mods.BuildCraftPower.isAvailable
|
||||
private var powerHandler: Option[AnyRef] = None
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
@ -30,7 +30,7 @@ trait BuildCraft extends Common {
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.BuildCraftPower)
|
||||
def getPowerProvider = {
|
||||
if (powerHandler.isEmpty) {
|
||||
if (Mods.BuildCraftPower.isAvailable && powerHandler.isEmpty) {
|
||||
val handler = new PowerHandler(this.asInstanceOf[IPowerReceptor], PowerHandler.Type.MACHINE)
|
||||
if (handler != null) {
|
||||
handler.configure(1, 320, Float.MaxValue, 640)
|
||||
@ -45,7 +45,7 @@ trait BuildCraft extends Common {
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.BuildCraftPower)
|
||||
def getPowerReceiver(side: ForgeDirection) =
|
||||
if (canConnectPower(side))
|
||||
if (Mods.BuildCraftPower.isAvailable && canConnectPower(side))
|
||||
getPowerProvider.getPowerReceiver
|
||||
else null
|
||||
|
||||
|
@ -7,11 +7,11 @@ import li.cil.oc.util.mods.Mods
|
||||
import net.minecraftforge.common.util.ForgeDirection
|
||||
|
||||
trait Factorization extends Common {
|
||||
private lazy val useFactorizationPower = isServer && Mods.Factorization.isAvailable
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.Factorization)
|
||||
private lazy val charge: AnyRef = new Charge(this.asInstanceOf[IChargeConductor])
|
||||
|
||||
private lazy val useFactorizationPower = isServer && !Settings.get.ignorePower && Mods.Factorization.isAvailable
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
override def updateEntity() {
|
||||
@ -45,7 +45,7 @@ trait Factorization extends Common {
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.Factorization)
|
||||
def getCharge = charge.asInstanceOf[Charge]
|
||||
def getCharge = if (Mods.Factorization.isAvailable) charge.asInstanceOf[Charge] else null
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.Factorization)
|
||||
def getInfo = ""
|
||||
|
@ -11,7 +11,7 @@ import net.minecraftforge.common.util.ForgeDirection
|
||||
trait IndustrialCraft2Classic extends Common with IndustrialCraft2Common {
|
||||
private var lastInjectedAmount = 0.0
|
||||
|
||||
private lazy val useIndustrialCraft2ClassicPower = isServer && !Settings.get.ignorePower && Mods.IndustrialCraft2Classic.isAvailable
|
||||
private lazy val useIndustrialCraft2ClassicPower = isServer && Mods.IndustrialCraft2Classic.isAvailable
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
@ -39,7 +39,7 @@ trait IndustrialCraft2Classic extends Common with IndustrialCraft2Common {
|
||||
def getMaxSafeInput = Integer.MAX_VALUE
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.IndustrialCraft2Classic)
|
||||
def acceptsEnergyFrom(emitter: TileEntity, direction: Direction) = canConnectPower(direction.toForgeDirection)
|
||||
def acceptsEnergyFrom(emitter: TileEntity, direction: Direction) = Mods.IndustrialCraft2Classic.isAvailable && canConnectPower(direction.toForgeDirection)
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.IndustrialCraft2Classic)
|
||||
def injectEnergy(directionFrom: Direction, amount: Int) = {
|
||||
@ -57,7 +57,7 @@ trait IndustrialCraft2Classic extends Common with IndustrialCraft2Common {
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.IndustrialCraft2Classic)
|
||||
def demandsEnergy = {
|
||||
if (Settings.get.ignorePower || isClient) 0
|
||||
if (!useIndustrialCraft2ClassicPower) 0
|
||||
else {
|
||||
var force = false
|
||||
val demand = ForgeDirection.VALID_DIRECTIONS.map(side => {
|
||||
|
@ -9,7 +9,7 @@ import net.minecraftforge.common.util.ForgeDirection
|
||||
trait IndustrialCraft2Experimental extends Common with IndustrialCraft2Common {
|
||||
private var lastInjectedAmount = 0.0
|
||||
|
||||
private lazy val useIndustrialCraft2Power = isServer && !Settings.get.ignorePower && Mods.IndustrialCraft2.isAvailable
|
||||
private lazy val useIndustrialCraft2Power = isServer && Mods.IndustrialCraft2.isAvailable
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
@ -34,7 +34,7 @@ trait IndustrialCraft2Experimental extends Common with IndustrialCraft2Common {
|
||||
def getSinkTier = Int.MaxValue
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.IndustrialCraft2)
|
||||
def acceptsEnergyFrom(emitter: net.minecraft.tileentity.TileEntity, direction: ForgeDirection) = canConnectPower(direction)
|
||||
def acceptsEnergyFrom(emitter: net.minecraft.tileentity.TileEntity, direction: ForgeDirection) = Mods.IndustrialCraft2.isAvailable && canConnectPower(direction)
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.IndustrialCraft2)
|
||||
def injectEnergy(directionFrom: ForgeDirection, amount: Double, voltage: Double): Double = {
|
||||
@ -52,7 +52,7 @@ trait IndustrialCraft2Experimental extends Common with IndustrialCraft2Common {
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.IndustrialCraft2)
|
||||
def getDemandedEnergy = {
|
||||
if (Settings.get.ignorePower || isClient) 0
|
||||
if (!useIndustrialCraft2Power) 0
|
||||
else {
|
||||
var force = false
|
||||
val demand = ForgeDirection.VALID_DIRECTIONS.map(side => {
|
||||
|
@ -7,10 +7,12 @@ import net.minecraftforge.common.util.ForgeDirection
|
||||
|
||||
trait Mekanism extends Common {
|
||||
@Optional.Method(modid = Mods.IDs.Mekanism)
|
||||
def canReceiveEnergy(side: ForgeDirection) = canConnectPower(side)
|
||||
def canReceiveEnergy(side: ForgeDirection) = Mods.Mekanism.isAvailable && canConnectPower(side)
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.Mekanism)
|
||||
def transferEnergyToAcceptor(side: ForgeDirection, amount: Double) = tryChangeBuffer(side, amount * Settings.ratioMekanism) / Settings.ratioMekanism
|
||||
def transferEnergyToAcceptor(side: ForgeDirection, amount: Double) =
|
||||
if (!Mods.Mekanism.isAvailable) 0
|
||||
else tryChangeBuffer(side, amount * Settings.ratioMekanism) / Settings.ratioMekanism
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.Mekanism)
|
||||
def getMaxEnergy = ForgeDirection.VALID_DIRECTIONS.map(globalBufferSize).max / Settings.ratioMekanism
|
||||
|
@ -7,11 +7,12 @@ import net.minecraftforge.common.util.ForgeDirection
|
||||
|
||||
trait RedstoneFlux extends Common {
|
||||
@Optional.Method(modid = Mods.IDs.RedstoneFlux)
|
||||
def canConnectEnergy(from: ForgeDirection) = canConnectPower(from)
|
||||
def canConnectEnergy(from: ForgeDirection) = Mods.RedstoneFlux.isAvailable && canConnectPower(from)
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.RedstoneFlux)
|
||||
def receiveEnergy(from: ForgeDirection, maxReceive: Int, simulate: Boolean) =
|
||||
(tryChangeBuffer(from, maxReceive * Settings.ratioRedstoneFlux, !simulate) / Settings.ratioRedstoneFlux).toInt
|
||||
if (!Mods.RedstoneFlux.isAvailable) 0
|
||||
else (tryChangeBuffer(from, maxReceive * Settings.ratioRedstoneFlux, !simulate) / Settings.ratioRedstoneFlux).toInt
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.RedstoneFlux)
|
||||
def getEnergyStored(from: ForgeDirection) = (globalBuffer(from) / Settings.ratioRedstoneFlux).toInt
|
||||
|
@ -8,9 +8,9 @@ import universalelectricity.api.core.grid.electric.IElectricNode
|
||||
import universalelectricity.api.core.grid.{INode, INodeProvider}
|
||||
|
||||
trait UniversalElectricity extends Common {
|
||||
private lazy val ueNode: AnyRef = universalelectricity.api.core.grid.NodeRegistry.get(this.asInstanceOf[INodeProvider], classOf[IElectricNode])
|
||||
private lazy val useUniversalElectricityPower = isServer && Mods.UniversalElectricity.isAvailable
|
||||
|
||||
private lazy val useUniversalElectricityPower = isServer && !Settings.get.ignorePower && Mods.BuildCraftPower.isAvailable
|
||||
private lazy val ueNode: AnyRef = universalelectricity.api.core.grid.NodeRegistry.get(this.asInstanceOf[INodeProvider], classOf[IElectricNode])
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
@ -33,8 +33,8 @@ trait UniversalElectricity extends Common {
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.UniversalElectricity)
|
||||
def getNode[N <: INode](nodeType: Class[N], from: ForgeDirection) = {
|
||||
if (canConnectPower(from) && nodeType == classOf[IElectricNode]) ueNode.asInstanceOf[N]
|
||||
else null.asInstanceOf[N]
|
||||
if (Mods.UniversalElectricity.isAvailable && canConnectPower(from) && nodeType == classOf[IElectricNode]) ueNode.asInstanceOf[N]
|
||||
else null
|
||||
}
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.UniversalElectricity)
|
||||
|
@ -2,6 +2,7 @@ package li.cil.oc.util.mods
|
||||
|
||||
import cpw.mods.fml.common.versioning.VersionParser
|
||||
import cpw.mods.fml.common.{Loader, ModAPIManager}
|
||||
import li.cil.oc.Settings
|
||||
|
||||
import scala.collection.mutable
|
||||
|
||||
@ -84,7 +85,9 @@ object Mods {
|
||||
else ModAPIManager.INSTANCE.hasAPI(version.getLabel)
|
||||
}
|
||||
|
||||
override def isAvailable = isModLoaded
|
||||
protected val isPowerModEnabled = !providesPower || (!Settings.get.pureIgnorePower && !Settings.get.powerModBlacklist.contains(id))
|
||||
|
||||
override def isAvailable = isModLoaded && isPowerModEnabled
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user