mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-16 18:55:03 -04:00
Rip out power auto detection.
This commit is contained in:
parent
e54ae25f89
commit
6a97c012a6
@ -363,17 +363,6 @@ public final class IMC {
|
||||
FMLInterModComms.sendMessage(MOD_ID, "blacklistHost", nbt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies OpenComputers that there is some 3rd-party power system present
|
||||
* that adds integration on its side.
|
||||
* <p/>
|
||||
* This will suppress the "no power system found" message on start up, and
|
||||
* avoid auto-disabling power use.
|
||||
*/
|
||||
public static void registerCustomPowerSystem() {
|
||||
FMLInterModComms.sendMessage(MOD_ID, "registerCustomPowerSystem", "true");
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a mapping of program name to loot disk.
|
||||
* <p/>
|
||||
|
@ -142,9 +142,7 @@ class Settings(val config: Config) {
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
// power
|
||||
var is3rdPartyPowerSystemPresent = false
|
||||
val pureIgnorePower = config.getBoolean("power.ignorePower")
|
||||
lazy val ignorePower = pureIgnorePower || (!is3rdPartyPowerSystemPresent && !Mods.isPowerProvidingModPresent)
|
||||
val ignorePower = config.getBoolean("power.ignorePower")
|
||||
val tickFrequency = config.getDouble("power.tickFrequency") max 1
|
||||
val chargeRateExternal = config.getDouble("power.chargerChargeRate")
|
||||
val chargeRateTablet = config.getDouble("power.chargerChargeRateTablet")
|
||||
|
@ -321,7 +321,7 @@ object PacketHandler extends CommonPacketHandler {
|
||||
if (stack != null) {
|
||||
Loot.disksForClient += stack
|
||||
}
|
||||
if(Mods.JustEnoughItems.isAvailable) {
|
||||
if(Mods.JustEnoughItems.isModAvailable) {
|
||||
addDiskToJEI(stack)
|
||||
}
|
||||
}
|
||||
|
@ -92,7 +92,7 @@ abstract class DynamicGuiContainer[C <: Container](container: C) extends CustomG
|
||||
}
|
||||
*/
|
||||
|
||||
if (Mods.JustEnoughItems.isAvailable) {
|
||||
if (Mods.JustEnoughItems.isModAvailable) {
|
||||
drawJEIHighlights()
|
||||
}
|
||||
}
|
||||
@ -186,7 +186,7 @@ abstract class DynamicGuiContainer[C <: Container](container: C) extends CustomG
|
||||
|
||||
override def onGuiClosed(): Unit = {
|
||||
super.onGuiClosed()
|
||||
if(Mods.JustEnoughItems.isAvailable) {
|
||||
if(Mods.JustEnoughItems.isModAvailable) {
|
||||
resetJEIHighlights()
|
||||
}
|
||||
}
|
||||
|
@ -211,9 +211,6 @@ object EventHandler {
|
||||
if (!LuaStateFactory.isAvailable) {
|
||||
player.addChatMessage(Localization.Chat.WarningLuaFallback)
|
||||
}
|
||||
if (!Settings.get.pureIgnorePower && Settings.get.ignorePower) {
|
||||
player.addChatMessage(Localization.Chat.WarningPower)
|
||||
}
|
||||
if (Recipes.hadErrors) {
|
||||
player.addChatMessage(Localization.Chat.WarningRecipes)
|
||||
}
|
||||
@ -232,7 +229,7 @@ object EventHandler {
|
||||
})
|
||||
// Do update check in local games and for OPs.
|
||||
val server = FMLCommonHandler.instance.getMinecraftServerInstance
|
||||
if (!Mods.VersionChecker.isAvailable && (!server.isDedicatedServer || server.getPlayerList.canSendCommands(player.getGameProfile))) {
|
||||
if (!Mods.VersionChecker.isModAvailable && (!server.isDedicatedServer || server.getPlayerList.canSendCommands(player.getGameProfile))) {
|
||||
Future {
|
||||
UpdateCheck.info onSuccess {
|
||||
case Some(release) => player.addChatMessage(Localization.Chat.InfoNewVersion(release.tag_name))
|
||||
|
@ -94,10 +94,6 @@ object IMC {
|
||||
case t: Throwable => OpenComputers.log.warn("Failed registering ink provider.", t)
|
||||
}
|
||||
}
|
||||
else if (message.key == "registerCustomPowerSystem" && message.isStringMessage) {
|
||||
OpenComputers.log.info(s"Was told there is an unknown power system present by mod ${message.getSender}.")
|
||||
Settings.get.is3rdPartyPowerSystemPresent = message.getStringValue == "true"
|
||||
}
|
||||
else if (message.key == "registerProgramDiskLabel" && message.isNBTMessage) {
|
||||
OpenComputers.log.info(s"Registering new program location mapping for program '${message.getNBTValue.getString("program")}' being on disk '${message.getNBTValue.getString("label")}' from mod ${message.getSender}.")
|
||||
ProgramLocations.addMapping(message.getNBTValue.getString("program"), message.getNBTValue.getString("label"), message.getNBTValue.getTagList("architectures", NBT.TAG_STRING).map((tag: NBTTagString) => tag.getString()).toArray: _*)
|
||||
|
@ -82,7 +82,7 @@ class ClassTransformer extends IClassTransformer {
|
||||
case (Some(interfaceName: String), Some(modid: String)) =>
|
||||
Mods.All.find(_.id == modid) match {
|
||||
case Some(mod) =>
|
||||
if (mod.isAvailable) {
|
||||
if (mod.isModAvailable) {
|
||||
val interfaceDesc = interfaceName.replaceAllLiterally(".", "/")
|
||||
val node = classNodeFor(interfaceDesc)
|
||||
if (node == null) {
|
||||
@ -103,7 +103,6 @@ class ClassTransformer extends IClassTransformer {
|
||||
}
|
||||
else {
|
||||
log.info(s"Skipping interface $interfaceName from missing mod $modid.")
|
||||
mod.disablePower()
|
||||
}
|
||||
case _ =>
|
||||
log.warn(s"Skipping interface $interfaceName from unknown mod $modid.")
|
||||
|
@ -25,7 +25,7 @@ class DiskDrive extends SimpleBlock with traits.GUI {
|
||||
|
||||
override protected def tooltipTail(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: java.util.List[String], advanced: Boolean) {
|
||||
super.tooltipTail(metadata, stack, player, tooltip, advanced)
|
||||
if (Mods.ComputerCraft.isAvailable) {
|
||||
if (Mods.ComputerCraft.isModAvailable) {
|
||||
tooltip.addAll(Tooltip.get(getClass.getSimpleName + ".CC"))
|
||||
}
|
||||
}
|
||||
|
@ -25,16 +25,16 @@ class PowerConverter extends SimpleBlock with traits.PowerAcceptor {
|
||||
override protected def tooltipTail(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||
super.tooltipTail(metadata, stack, player, tooltip, advanced)
|
||||
|
||||
if (Mods.Factorization.isAvailable) {
|
||||
if (Mods.Factorization.isModAvailable) {
|
||||
addRatio(tooltip, "Factorization", Settings.get.ratioFactorization)
|
||||
}
|
||||
if (Mods.IndustrialCraft2.isAvailable || Mods.IndustrialCraft2Classic.isAvailable) {
|
||||
if (Mods.IndustrialCraft2.isModAvailable || Mods.IndustrialCraft2Classic.isModAvailable) {
|
||||
addRatio(tooltip, "IndustrialCraft2", Settings.get.ratioIndustrialCraft2)
|
||||
}
|
||||
if (Mods.Mekanism.isAvailable) {
|
||||
if (Mods.Mekanism.isModAvailable) {
|
||||
addRatio(tooltip, "Mekanism", Settings.get.ratioMekanism)
|
||||
}
|
||||
if (Mods.CoFHEnergy.isAvailable) {
|
||||
if (Mods.CoFHEnergy.isModAvailable) {
|
||||
addRatio(tooltip, "ThermalExpansion", Settings.get.ratioRedstoneFlux)
|
||||
}
|
||||
}
|
||||
|
@ -12,13 +12,13 @@ import net.minecraft.world.World
|
||||
class Redstone extends RedstoneAware {
|
||||
override protected def tooltipTail(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||
super.tooltipTail(metadata, stack, player, tooltip, advanced)
|
||||
if (Mods.ProjectRedTransmission.isAvailable) {
|
||||
if (Mods.ProjectRedTransmission.isModAvailable) {
|
||||
tooltip.addAll(Tooltip.get("RedstoneCard.ProjectRed"))
|
||||
}
|
||||
if (Mods.RedLogic.isAvailable) {
|
||||
if (Mods.RedLogic.isModAvailable) {
|
||||
tooltip.addAll(Tooltip.get("RedstoneCard.RedLogic"))
|
||||
}
|
||||
if (Mods.MineFactoryReloaded.isAvailable) {
|
||||
if (Mods.MineFactoryReloaded.isModAvailable) {
|
||||
tooltip.addAll(Tooltip.get("RedstoneCard.RedNet"))
|
||||
}
|
||||
}
|
||||
|
@ -542,8 +542,8 @@ object Items extends ItemAPI {
|
||||
val integration = newItem(new item.Delegator(), "integration")
|
||||
|
||||
// Only register recipes if the related mods are present.
|
||||
Recipes.addSubItem(new item.AbstractBusCard(integration), Constants.ItemName.AbstractBusCard, Mods.StargateTech2.isAvailable, "oc:abstractBusCard")
|
||||
Recipes.addSubItem(new item.WorldSensorCard(integration), Constants.ItemName.WorldSensorCard, Mods.Galacticraft.isAvailable, "oc:worldSensorCard")
|
||||
Recipes.addSubItem(new item.AbstractBusCard(integration), Constants.ItemName.AbstractBusCard, Mods.StargateTech2.isModAvailable, "oc:abstractBusCard")
|
||||
Recipes.addSubItem(new item.WorldSensorCard(integration), Constants.ItemName.WorldSensorCard, Mods.Galacticraft.isModAvailable, "oc:worldSensorCard")
|
||||
}
|
||||
|
||||
private def newItem[T <: Item](item: T, name: String): T = {
|
||||
|
@ -3,5 +3,5 @@ package li.cil.oc.common.item
|
||||
import li.cil.oc.integration.Mods
|
||||
|
||||
class AbstractBusCard(val parent: Delegator) extends traits.Delegate with traits.ItemTier {
|
||||
showInItemList = Mods.StargateTech2.isAvailable
|
||||
showInItemList = Mods.StargateTech2.isModAvailable
|
||||
}
|
||||
|
@ -18,19 +18,19 @@ class RedstoneCard(val parent: Delegator, val tier: Int) extends traits.Delegate
|
||||
override protected def tooltipExtended(stack: ItemStack, tooltip: util.List[String]) {
|
||||
super.tooltipExtended(stack, tooltip)
|
||||
if (tier == Tier.Two) {
|
||||
if (Mods.ProjectRedTransmission.isAvailable) {
|
||||
if (Mods.ProjectRedTransmission.isModAvailable) {
|
||||
tooltip.addAll(Tooltip.get(super.unlocalizedName + ".ProjectRed"))
|
||||
}
|
||||
if (Mods.RedLogic.isAvailable) {
|
||||
if (Mods.RedLogic.isModAvailable) {
|
||||
tooltip.addAll(Tooltip.get(super.unlocalizedName + ".RedLogic"))
|
||||
}
|
||||
if (Mods.MineFactoryReloaded.isAvailable) {
|
||||
if (Mods.MineFactoryReloaded.isModAvailable) {
|
||||
tooltip.addAll(Tooltip.get(super.unlocalizedName + ".RedNet"))
|
||||
}
|
||||
if (Mods.WirelessRedstoneCBE.isAvailable) {
|
||||
if (Mods.WirelessRedstoneCBE.isModAvailable) {
|
||||
tooltip.addAll(Tooltip.get(super.unlocalizedName + ".WirelessCBE"))
|
||||
}
|
||||
if (Mods.WirelessRedstoneSVE.isAvailable) {
|
||||
if (Mods.WirelessRedstoneSVE.isModAvailable) {
|
||||
tooltip.addAll(Tooltip.get(super.unlocalizedName + ".WirelessSV"))
|
||||
}
|
||||
}
|
||||
|
@ -3,5 +3,5 @@ package li.cil.oc.common.item
|
||||
import li.cil.oc.integration.Mods
|
||||
|
||||
class WorldSensorCard(val parent: Delegator) extends traits.Delegate with traits.ItemTier {
|
||||
showInItemList = Mods.Galacticraft.isAvailable
|
||||
showInItemList = Mods.Galacticraft.isModAvailable
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ object ExtendedRecipe {
|
||||
}
|
||||
}
|
||||
|
||||
private def weAreBeingCalledFromAppliedEnergistics2 = Mods.AppliedEnergistics2.isAvailable && new Exception().getStackTrace.exists(_.getClassName == "appeng.container.implementations.ContainerPatternTerm")
|
||||
private def weAreBeingCalledFromAppliedEnergistics2 = Mods.AppliedEnergistics2.isModAvailable && new Exception().getStackTrace.exists(_.getClassName == "appeng.container.implementations.ContainerPatternTerm")
|
||||
|
||||
private trait ItemDataWrapper {
|
||||
def components: Array[ItemStack]
|
||||
|
@ -120,7 +120,7 @@ class Relay extends traits.SwitchLike with traits.ComponentInventory with traits
|
||||
}
|
||||
|
||||
override def tryEnqueuePacket(sourceSide: Option[EnumFacing], packet: Packet): Boolean = {
|
||||
if (Mods.ComputerCraft.isAvailable) {
|
||||
if (Mods.ComputerCraft.isModAvailable) {
|
||||
packet.data.headOption match {
|
||||
case Some(answerPort: java.lang.Double) => queueMessage(packet.source, packet.destination, packet.port, answerPort.toInt, packet.data.drop(1))
|
||||
case _ => queueMessage(packet.source, packet.destination, packet.port, -1, packet.data)
|
||||
|
@ -35,7 +35,7 @@ class Switch extends traits.SwitchLike with traits.NotAnalyzable with traits.Com
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
override def tryEnqueuePacket(sourceSide: Option[EnumFacing], packet: Packet): Boolean = {
|
||||
if (Mods.ComputerCraft.isAvailable) {
|
||||
if (Mods.ComputerCraft.isModAvailable) {
|
||||
packet.data.headOption match {
|
||||
case Some(answerPort: java.lang.Double) => queueMessage(packet.source, packet.destination, packet.port, answerPort.toInt, packet.data.drop(1))
|
||||
case _ => queueMessage(packet.source, packet.destination, packet.port, -1, packet.data)
|
||||
|
@ -18,7 +18,7 @@ import net.minecraftforge.fml.common.eventhandler.Event
|
||||
trait IndustrialCraft2Experimental extends Common with IndustrialCraft2Common with traits.Tickable {
|
||||
private var conversionBuffer = 0.0
|
||||
|
||||
private lazy val useIndustrialCraft2Power = isServer && Mods.IndustrialCraft2.isAvailable
|
||||
private lazy val useIndustrialCraft2Power = isServer && Mods.IndustrialCraft2.isModAvailable
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
|
@ -12,7 +12,7 @@ trait RedstoneFlux extends Common {
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.CoFHEnergy)
|
||||
def receiveEnergy(from: EnumFacing, maxReceive: Int, simulate: Boolean): Int =
|
||||
if (!Mods.CoFHEnergy.isAvailable) 0
|
||||
if (!Mods.CoFHEnergy.isModAvailable) 0
|
||||
else Power.toRF(tryChangeBuffer(from, Power.fromRF(maxReceive), !simulate))
|
||||
|
||||
// IEnergyHandler
|
||||
@ -26,5 +26,5 @@ trait RedstoneFlux extends Common {
|
||||
// IEnergyConnection
|
||||
|
||||
@Optional.Method(modid = Mods.IDs.CoFHEnergy)
|
||||
def canConnectEnergy(from: EnumFacing): Boolean = Mods.CoFHEnergy.isAvailable && canConnectPower(from)
|
||||
def canConnectEnergy(from: EnumFacing): Boolean = Mods.CoFHEnergy.isModAvailable && canConnectPower(from)
|
||||
}
|
||||
|
@ -4,6 +4,4 @@ public interface Mod {
|
||||
String id();
|
||||
|
||||
boolean isModAvailable();
|
||||
|
||||
boolean providesPower();
|
||||
}
|
||||
|
@ -13,14 +13,12 @@ object Mods {
|
||||
|
||||
private val knownMods = mutable.ArrayBuffer.empty[ModBase]
|
||||
|
||||
lazy val isPowerProvidingModPresent = knownMods.exists(mod => mod.providesPower && mod.isAvailable)
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
def All = knownMods.clone()
|
||||
|
||||
val AgriCraft = new SimpleMod(IDs.AgriCraft, version = "@[1.4.0,)")
|
||||
val AppliedEnergistics2 = new SimpleMod(IDs.AppliedEnergistics2, version = "@[rv1,)", providesPower = true)
|
||||
val AppliedEnergistics2 = new SimpleMod(IDs.AppliedEnergistics2, version = "@[rv1,)")
|
||||
val BattleGear2 = new SimpleMod(IDs.BattleGear2)
|
||||
val BetterRecords = new SimpleMod(IDs.BetterRecords)
|
||||
val BloodMagic = new SimpleMod(IDs.BloodMagic)
|
||||
@ -31,30 +29,30 @@ object Mods {
|
||||
val BuildCraftTiles = new SimpleMod(IDs.BuildCraftTiles)
|
||||
val BuildCraftTools = new SimpleMod(IDs.BuildCraftTools)
|
||||
val BuildCraftTransport = new SimpleMod(IDs.BuildCraftTransport)
|
||||
val CoFHEnergy = new SimpleMod(IDs.CoFHEnergy, providesPower = true)
|
||||
val CoFHEnergy = new SimpleMod(IDs.CoFHEnergy)
|
||||
val CoFHItem = new SimpleMod(IDs.CoFHItem)
|
||||
val CoFHTileEntity = new SimpleMod(IDs.CoFHTileEntity)
|
||||
val CoFHTransport = new SimpleMod(IDs.CoFHTransport)
|
||||
val ColoredLights = new SimpleMod(IDs.ColoredLights)
|
||||
val ComputerCraft = new SimpleMod(IDs.ComputerCraft, version = "@[1.80,)")
|
||||
val CraftingCosts = new SimpleMod(IDs.CraftingCosts)
|
||||
val DeepStorageUnit = new ClassBasedMod(IDs.DeepStorageUnit, "powercrystals.minefactoryreloaded.api.IDeepStorageUnit")()
|
||||
val ElectricalAge = new SimpleMod(IDs.ElectricalAge, providesPower = true)
|
||||
val DeepStorageUnit = new ClassBasedMod(IDs.DeepStorageUnit, "powercrystals.minefactoryreloaded.api.IDeepStorageUnit")
|
||||
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 Factorization = new SimpleMod(IDs.Factorization, providesPower = true)
|
||||
val Factorization = new SimpleMod(IDs.Factorization)
|
||||
val Forestry = new SimpleMod(IDs.Forestry, version = "@[5.2,)")
|
||||
val Forge = new SimpleMod(IDs.Forge, providesPower = true)
|
||||
val Forge = new SimpleMod(IDs.Forge)
|
||||
val ForgeMultipart = new SimpleMod(IDs.ForgeMultipart)
|
||||
val Galacticraft = new SimpleMod(IDs.Galacticraft, providesPower = true)
|
||||
val GregTech = new ClassBasedMod(IDs.GregTech, "gregtech.api.GregTech_API")()
|
||||
val IndustrialCraft2 = new SimpleMod(IDs.IndustrialCraft2, providesPower = true)
|
||||
val IndustrialCraft2Classic = new SimpleMod(IDs.IndustrialCraft2Classic, providesPower = true)
|
||||
val Galacticraft = new SimpleMod(IDs.Galacticraft)
|
||||
val GregTech = new ClassBasedMod(IDs.GregTech, "gregtech.api.GregTech_API")
|
||||
val IndustrialCraft2 = new SimpleMod(IDs.IndustrialCraft2)
|
||||
val IndustrialCraft2Classic = new SimpleMod(IDs.IndustrialCraft2Classic)
|
||||
val IngameWiki = new SimpleMod(IDs.IngameWiki)
|
||||
val JustEnoughItems = new SimpleMod(IDs.JustEnoughItems)
|
||||
val MCMultiPart = new SimpleMod(IDs.MCMultiPart, version = "@[1.0.9,)")
|
||||
val Mekanism = new SimpleMod(IDs.Mekanism, providesPower = true)
|
||||
val Mekanism = new SimpleMod(IDs.Mekanism)
|
||||
val MekanismGas = new SimpleMod(IDs.MekanismGas)
|
||||
val Minecraft = new SimpleMod(IDs.Minecraft)
|
||||
val MineFactoryReloaded = new SimpleMod(IDs.MineFactoryReloaded)
|
||||
@ -63,7 +61,7 @@ object Mods {
|
||||
val NotEnoughKeys = new SimpleMod(IDs.NotEnoughKeys)
|
||||
val OpenComputers = new SimpleMod(IDs.OpenComputers)
|
||||
val PortalGun = new SimpleMod(IDs.PortalGun)
|
||||
val PowerAdvantage = new SimpleMod(IDs.PowerAdvantage, version = "@[1.2.0,)", providesPower = true)
|
||||
val PowerAdvantage = new SimpleMod(IDs.PowerAdvantage, version = "@[1.2.0,)")
|
||||
val ProjectRedCore = new SimpleMod(IDs.ProjectRedCore)
|
||||
val ProjectRedTransmission = new SimpleMod(IDs.ProjectRedTransmission)
|
||||
val Railcraft = new SimpleMod(IDs.Railcraft)
|
||||
@ -79,10 +77,10 @@ object Mods {
|
||||
|
||||
override def isModAvailable: Boolean = isModAvailable_
|
||||
}
|
||||
val Tesla = new SimpleMod(IDs.Tesla, providesPower = true)
|
||||
val Tesla = new SimpleMod(IDs.Tesla)
|
||||
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)
|
||||
val TinkersConstruct = new SimpleMod(IDs.TinkersConstruct)
|
||||
val TIS3D = new SimpleMod(IDs.TIS3D, version = "@[0.9,)")
|
||||
val TMechWorks = new SimpleMod(IDs.TMechWorks)
|
||||
@ -246,28 +244,16 @@ object Mods {
|
||||
trait ModBase extends Mod {
|
||||
knownMods += this
|
||||
|
||||
private var powerDisabled = false
|
||||
|
||||
protected lazy val isPowerModEnabled = !providesPower || (!Settings.get.pureIgnorePower && !Settings.get.powerModBlacklist.contains(id))
|
||||
|
||||
def isModAvailable: Boolean
|
||||
|
||||
def id: String
|
||||
|
||||
def isAvailable = !powerDisabled && isModAvailable && isPowerModEnabled
|
||||
|
||||
def providesPower: Boolean = false
|
||||
|
||||
// This is called from the class transformer when injecting an interface of
|
||||
// this power type fails, to avoid class not found / class cast exceptions.
|
||||
def disablePower() = powerDisabled = true
|
||||
|
||||
def container = Option(Loader.instance.getIndexedModList.get(id))
|
||||
|
||||
def version = container.map(_.getProcessedVersion)
|
||||
}
|
||||
|
||||
class SimpleMod(val id: String, override val providesPower: Boolean = false, version: String = "") extends ModBase {
|
||||
class SimpleMod(val id: String, version: String = "") extends ModBase {
|
||||
private lazy val isModAvailable_ = {
|
||||
val version = VersionParser.parseVersionReference(id + this.version)
|
||||
if (Loader.isModLoaded(version.getLabel))
|
||||
@ -278,7 +264,7 @@ object Mods {
|
||||
def isModAvailable = isModAvailable_
|
||||
}
|
||||
|
||||
class ClassBasedMod(val id: String, val classNames: String*)(override val providesPower: Boolean = false) extends ModBase {
|
||||
class ClassBasedMod(val id: String, val classNames: String*) extends ModBase {
|
||||
private lazy val isModAvailable_ = classNames.forall(className => try Class.forName(className) != null catch {
|
||||
case _: Throwable => false
|
||||
})
|
||||
|
@ -10,7 +10,7 @@ import net.minecraft.block.Block
|
||||
object ModColoredLights {
|
||||
def setLightLevel(block: Block, r: Int, g: Int, b: Int): Unit = {
|
||||
// Extra layer of indirection because I've learned to be paranoid when it comes to class loading...
|
||||
if (Mods.ColoredLights.isAvailable)
|
||||
if (Mods.ColoredLights.isModAvailable)
|
||||
setColoredLightLevel(block, r, g, b)
|
||||
else
|
||||
setPlainLightLevel(block, r, g, b)
|
||||
|
@ -12,7 +12,7 @@ object BundledRedstone {
|
||||
|
||||
def addProvider(provider: RedstoneProvider): Unit = providers += provider
|
||||
|
||||
def isAvailable = Mods.MineFactoryReloaded.isAvailable || providers.nonEmpty
|
||||
def isAvailable = Mods.MineFactoryReloaded.isModAvailable || providers.nonEmpty
|
||||
|
||||
def computeInput(pos: BlockPosition, side: EnumFacing): Int = {
|
||||
if (pos.world.get.blockExists(pos.offset(side)))
|
||||
|
@ -13,7 +13,7 @@ object PortalGun {
|
||||
|
||||
def isPortalGun(stack: ItemStack) =
|
||||
stack != null && stack.stackSize > 0 &&
|
||||
Mods.PortalGun.isAvailable &&
|
||||
Mods.PortalGun.isModAvailable &&
|
||||
portalGunClass != null &&
|
||||
portalGunClass.isAssignableFrom(stack.getItem.getClass)
|
||||
|
||||
|
@ -6,5 +6,5 @@ object Waila {
|
||||
// This is used to check if certain data actually has to be saved in
|
||||
// writeToNBT calls. For some stuff we write lots of data (e.g. computer
|
||||
// state), and we want to avoid that when Waila is calling us.
|
||||
def isSavingForTooltip = Mods.Waila.isAvailable && new Exception().getStackTrace.exists(_.getClassName.startsWith("mcp.mobius.waila"))
|
||||
def isSavingForTooltip = Mods.Waila.isModAvailable && new Exception().getStackTrace.exists(_.getClassName.startsWith("mcp.mobius.waila"))
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ class Player(val agent: internal.Agent) extends FakePlayer(agent.world.asInstanc
|
||||
|
||||
{
|
||||
val inventory = new Inventory(this, agent)
|
||||
if (Mods.BattleGear2.isAvailable) {
|
||||
if (Mods.BattleGear2.isModAvailable) {
|
||||
ObfuscationReflectionHelper.setPrivateValue(classOf[EntityPlayer], this, inventory, "inventory", "field_71071_by", "bm")
|
||||
}
|
||||
else this.inventory = inventory
|
||||
|
@ -59,7 +59,7 @@ object ItemCosts {
|
||||
terminate(Items.SLIME_BALL)
|
||||
terminate(Items.STICK)
|
||||
|
||||
def hasCosts(stack: ItemStack) = !Mods.CraftingCosts.isAvailable && {
|
||||
def hasCosts(stack: ItemStack) = !Mods.CraftingCosts.isModAvailable && {
|
||||
val ingredients = computeIngredients(stack)
|
||||
ingredients.nonEmpty && (ingredients.size > 1 || !ingredients.head._1.isItemEqual(stack))
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user