diff --git a/src/main/java/li/cil/oc/api/API.java b/src/main/java/li/cil/oc/api/API.java index cb1c13b76..7a89a5b96 100644 --- a/src/main/java/li/cil/oc/api/API.java +++ b/src/main/java/li/cil/oc/api/API.java @@ -1,7 +1,13 @@ package li.cil.oc.api; import com.typesafe.config.Config; -import li.cil.oc.api.detail.*; +import li.cil.oc.api.detail.DriverAPI; +import li.cil.oc.api.detail.FileSystemAPI; +import li.cil.oc.api.detail.ItemAPI; +import li.cil.oc.api.detail.MachineAPI; +import li.cil.oc.api.detail.ManualAPI; +import li.cil.oc.api.detail.NanomachinesAPI; +import li.cil.oc.api.detail.NetworkAPI; /** * Central reference for the API. @@ -12,7 +18,25 @@ import li.cil.oc.api.detail.*; */ public class API { public static final String ID_OWNER = "OpenComputers|Core"; - public static final String VERSION = "5.6.2"; + public static final String VERSION = "5.6.3"; + + // ----------------------------------------------------------------------- // + + /** + * The loaded config. + */ + public static Config config = null; + + /** + * Whether OpenComputers uses power. + *
+ * This is set in the init phase, so do not rely it before the post-init phase. + */ + public static boolean isPowerEnabled = false; + + // ----------------------------------------------------------------------- // + // Prefer using the static methods in the respective classes in this package + // over accessing these instances directly. public static DriverAPI driver = null; public static FileSystemAPI fileSystem = null; @@ -22,5 +46,8 @@ public class API { public static NanomachinesAPI nanomachines = null; public static NetworkAPI network = null; - public static Config config = null; + // ----------------------------------------------------------------------- // + + private API() { + } } diff --git a/src/main/resources/application.conf b/src/main/resources/application.conf index de65e0fc3..b75d1ad48 100644 --- a/src/main/resources/application.conf +++ b/src/main/resources/application.conf @@ -1153,6 +1153,10 @@ opencomputers { # the *worst case* is ~30KB/s/client. Again, for normal use-cases this # is actually barely noticeable. setRawDelay: 0.2 + + # Whether the hologram block should provide light. It'll also emit light + # when off, because having state-based light in MC is... painful. + emitLight: true } # Other settings that you might find useful to tweak. diff --git a/src/main/scala/li/cil/oc/Settings.scala b/src/main/scala/li/cil/oc/Settings.scala index 09b59fb15..fa07d0bad 100644 --- a/src/main/scala/li/cil/oc/Settings.scala +++ b/src/main/scala/li/cil/oc/Settings.scala @@ -309,6 +309,7 @@ class Settings(val config: Config) { Array(0.25, 0.5) } val hologramSetRawDelay = config.getDouble("hologram.setRawDelay") max 0 + val hologramLight = config.getBoolean("hologram.emitLight") // ----------------------------------------------------------------------- // // misc diff --git a/src/main/scala/li/cil/oc/common/Proxy.scala b/src/main/scala/li/cil/oc/common/Proxy.scala index fe59c117d..938a63380 100644 --- a/src/main/scala/li/cil/oc/common/Proxy.scala +++ b/src/main/scala/li/cil/oc/common/Proxy.scala @@ -101,6 +101,8 @@ class Proxy { OpenComputers.log.info("Initializing recipes.") Recipes.init() + + api.API.isPowerEnabled = !Settings.get.ignorePower } def postInit(e: FMLPostInitializationEvent) { diff --git a/src/main/scala/li/cil/oc/common/block/Hologram.scala b/src/main/scala/li/cil/oc/common/block/Hologram.scala index d3cee1f58..1c6e07a26 100644 --- a/src/main/scala/li/cil/oc/common/block/Hologram.scala +++ b/src/main/scala/li/cil/oc/common/block/Hologram.scala @@ -2,8 +2,8 @@ package li.cil.oc.common.block import java.util +import li.cil.oc.Settings import li.cil.oc.common.tileentity -import li.cil.oc.integration.coloredlights.ModColoredLights import li.cil.oc.util.Rarity import li.cil.oc.util.Tooltip import net.minecraft.block.state.IBlockState @@ -17,7 +17,9 @@ import net.minecraftforge.fml.relauncher.Side import net.minecraftforge.fml.relauncher.SideOnly class Hologram(val tier: Int) extends SimpleBlock { - ModColoredLights.setLightLevel(this, 15, 15, 15) + if (Settings.get.hologramLight) { + ModColoredLights.setLightLevel(this, 15, 15, 15) + } setBlockBounds(0, 0, 0, 1, 0.5f, 1) // ----------------------------------------------------------------------- //