Added IMC message to notify OC of a 3rd party power system. Closes #1784.

This commit is contained in:
Florian Nücke 2016-06-06 20:52:54 +02:00
parent 37249142af
commit 2874f4720a
3 changed files with 16 additions and 1 deletions

View File

@ -361,6 +361,17 @@ 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");
}
// ----------------------------------------------------------------------- //
private static final String MOD_ID = "OpenComputers";

View File

@ -135,8 +135,9 @@ class Settings(val config: Config) {
// ----------------------------------------------------------------------- //
// power
var is3rdPartyPowerSystemPresent = false
val pureIgnorePower = config.getBoolean("power.ignorePower")
lazy val ignorePower = pureIgnorePower || !Mods.isPowerProvidingModPresent
lazy val ignorePower = pureIgnorePower || (!is3rdPartyPowerSystemPresent && !Mods.isPowerProvidingModPresent)
val tickFrequency = config.getDouble("power.tickFrequency") max 1
val chargeRateExternal = config.getDouble("power.chargerChargeRate")
val chargeRateTablet = config.getDouble("power.chargerChargeRateTablet")

View File

@ -90,6 +90,9 @@ object IMC {
case t: Throwable => OpenComputers.log.warn("Failed registering ink provider.", t)
}
}
else if (message.key == "registerCustomPowerSystem" && message.isStringMessage) {
Settings.get.is3rdPartyPowerSystemPresent = message.getStringValue == "true"
}
else {
OpenComputers.log.warn(s"Got an unrecognized or invalid IMC message '${message.key}' from mod ${message.getSender}.")
}