Multimeters
Multimeters is a simple mod which allows players to view details about tile entities without actually opening their GUI.
The idea for this mod originated from the amazing look of the energy overlay made by Ellpeck for Actually Additions. The concept of how to use a multimeter is simple: if you have the multimeter in your hotbar or offhand slot, you can see the details about the tile entity you are looking at without opening the gui - take a look at the images below. As well as this, you can also bind a multimeter to a specific block by sneaking and right clicking that block with the multimeter selected. Now, as long as that block is loaded and the multimeter is in your hotbar, you will be able to see the appropriate information from that block without even being near it (which is awesome to say keep an eye on your power or something!)
NOTE: THIS MOD REQUIRES CJCORE VERSION 0.0.5.1+
Meet the multimeters:
Currently there are only three different multimeters:
- The energy multimeter - Crafted using 4 Gold Ingots and a Redstone Block, the energy multimeter allows the player to see the energy inside of any block which holds energy. By utilising the CJCore Energy Compatibility System, the energy works with RF, EU, FE, J, MJ and T different energy types.
- The inventory multimeter - Crafted using 4 Gold Ingots and a Chest, the inventory multimeter allows the player to see the inventory of any block which has an inventory. If the inventory is empty, no overlay will be shown. This works with sided inventories as well (just hold SNEAK to stop the multimeter from using the side you are looking at and simply the block you are looking at - Note this only works on blocks which have a case for a null side. E.g. when shifting and looking at a furnace, the overlay will show nothing as the furnace utilises ISidedInventory)
- The fluid multimeter - Crafted using 4 Gold Ingots and a Bucket, the fluid multimeter allows the player to see the fluid tanks inside of any block which holds fluids. This supports multiple fluid tanks within blocks as well as just one tank.
Configuration Options:
- Players can modify the way the multimeters display their information. The energy and fluid multimeter can be resized and repositioned. The inventory multimeter can change the number of items before starting a new row.
- Using CJCore, you can change the default energy unit used by the multimeters (the different ones are shown above).
- The look of the energy info string can be changed as well as the fluid info string using the CJCore config
Can I use this in my modpack?
Of course! I absolutely adore this mod - it just looks so pretty!
Known Issues:
There is a known issue where the multimeters will overlay over the Actually Additions overlay which I do hope to fix somehow.
This mod looks mighty useful! Does it still work flawlessly with 1.12?
Crash from the latest version while walking around the overworld holding an item multimeter in my hotbar but not hand about 30 seconds after using it to check an acacia chest from quark, was pointing it at either sand or empty air at the time, do not remember which:
java.lang.NullPointerException: null
at net.minecraft.world.World.func_189509_E(World.java:225) ~[amu.class:?]
at net.minecraft.world.World.func_175625_s(World.java:2387) ~[amu.class:?]
at cjminecraft.multimeters.client.gui.overlay.OverlayMultimeterBase.updateElementInformation(OverlayMultimeterBase.java:65) ~[OverlayMultimeterBase.class:?]
at cjminecraft.core.client.gui.GuiOverlay.updateElementInformation(GuiOverlay.java:143) ~[GuiOverlay.class:?]
at cjminecraft.multimeters.client.gui.GuiMultimeterOverlay.updateElementInformation(GuiMultimeterOverlay.java:45) ~[GuiMultimeterOverlay.class:?]
at cjminecraft.core.client.gui.GuiOverlay.drawScreen(GuiOverlay.java:82) ~[GuiOverlay.class:?]
at cjminecraft.multimeters.client.gui.GuiMultimeterOverlay.drawScreen(GuiMultimeterOverlay.java:53) ~[GuiMultimeterOverlay.class:?]
at cjminecraft.core.client.gui.GuiOverlay.drawOverlay(GuiOverlay.java:69) ~[GuiOverlay.class:?]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_2832_GuiOverlay_drawOverlay_Pre.invoke(.dynamic) ~[?:?]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) ~[EventBus.class:?]
at net.minecraftforge.client.GuiIngameForge.pre(GuiIngameForge.java:907) ~[GuiIngameForge.class:?]
at net.minecraftforge.client.GuiIngameForge.func_175180_a(GuiIngameForge.java:119) ~[GuiIngameForge.class:?]
at net.minecraft.client.renderer.EntityRenderer.func_181560_a(EntityRenderer.java:1098) ~[buq.class:?]
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1119) ~[bib.class:?]
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:398) [bib.class:?]
at net.minecraft.client.main.Main.main(SourceFile:123) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_201]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_201]
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196) [NewLaunch.jar:?]
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231) [NewLaunch.jar:?]
at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]
[01:40:46] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:func_179870_a:553]: ---- Minecraft Crash Report ----
WARNING: coremods are present:
RandomPatches (randompatches-1.12.2-1.18.1.1.jar)
BiggerPacketsPlzCoreMod (biggerpacketsplz-1.0.jar)
ToolProgressionPlugin (toolprogression-core-1.12.2-1.6.5.jar)
BewitchmentFMLLoadingPlugin (bewitchment-1.12.2-0.0.21.2.jar)
Quark Plugin (Quark-r1.6-177 (1).jar)
DCLoadingPlugin (DummyCoreUnofficial-2.4.112.5.jar)
TheBetweenlandsLoadingPlugin (TheBetweenlands-3.5.4-core.jar)
EnderCorePlugin (EnderCore-1.12.2-0.5.65-core.jar)
JEIDLoadingPlugin (JustEnoughIDs-1.0.2-26.jar)
ForgelinPlugin (Forgelin-1.8.2.jar)
JEIDsILoadingPlugin (jeidsi-1.3.4.53.jar)
CTMCorePlugin (CTM-MC1.12.2-0.3.3.22.jar)
FastLangLoadingPlugin (fastlang-1.1.jar)
llibrary (llibrary-core-1.0.11-1.12.2.jar)
AdvancedRocketryPlugin (AdvancedRocketry-1.12.2-1.6.0-162-universal.jar)
MekanismCoremod (Mekanism-1.12.2-9.8.1.383.jar)
PhosphorFMLLoadingPlugin (phosphor-1.12.2-0.2.6+build50-universal.jar)
FutureMC (future-mc-0.1.13.jar)
LucraftCoreCoreMod (LucraftCore-1.12.2-2.4.9.jar)
LoadingPlugin (RandomThings-MC1.12.2-4.2.7.3.jar)
pymtech (PymTech-1.12.2-1.0.2.jar)
LibrarianLib Plugin (librarianlib-1.12.2-4.15 (2).jar)
Contact their authors BEFORE contacting forge
// Hi. I'm Minecraft, and I'm a crashaholic.
Time: 12/14/19 1:40 AM
Description: Unexpected error
java.lang.NullPointerException: Unexpected error
at net.minecraft.world.World.func_189509_E(World.java:225)
at net.minecraft.world.World.func_175625_s(World.java:2387)
at cjminecraft.multimeters.client.gui.overlay.OverlayMultimeterBase.updateElementInformation(OverlayMultimeterBase.java:65)
at cjminecraft.core.client.gui.GuiOverlay.updateElementInformation(GuiOverlay.java:143)
at cjminecraft.multimeters.client.gui.GuiMultimeterOverlay.updateElementInformation(GuiMultimeterOverlay.java:45)
at cjminecraft.core.client.gui.GuiOverlay.drawScreen(GuiOverlay.java:82)
at cjminecraft.multimeters.client.gui.GuiMultimeterOverlay.drawScreen(GuiMultimeterOverlay.java:53)
at cjminecraft.core.client.gui.GuiOverlay.drawOverlay(GuiOverlay.java:69)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_2832_GuiOverlay_drawOverlay_Pre.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
at net.minecraftforge.client.GuiIngameForge.pre(GuiIngameForge.java:907)
at net.minecraftforge.client.GuiIngameForge.func_175180_a(GuiIngameForge.java:119)
at net.minecraft.client.renderer.EntityRenderer.func_181560_a(EntityRenderer.java:1098)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1119)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:398)
at net.minecraft.client.main.Main.main(SourceFile:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Client thread
Stacktrace:
at net.minecraft.world.World.func_189509_E(World.java:225)
at net.minecraft.world.World.func_175625_s(World.java:2387)
at cjminecraft.multimeters.client.gui.overlay.OverlayMultimeterBase.updateElementInformation(OverlayMultimeterBase.java:65)
at cjminecraft.core.client.gui.GuiOverlay.updateElementInformation(GuiOverlay.java:143)
at cjminecraft.multimeters.client.gui.GuiMultimeterOverlay.updateElementInformation(GuiMultimeterOverlay.java:45)
at cjminecraft.core.client.gui.GuiOverlay.drawScreen(GuiOverlay.java:82)
at cjminecraft.multimeters.client.gui.GuiMultimeterOverlay.drawScreen(GuiMultimeterOverlay.java:53)
at cjminecraft.core.client.gui.GuiOverlay.drawOverlay(GuiOverlay.java:69)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_2832_GuiOverlay_drawOverlay_Pre.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
at net.minecraftforge.client.GuiIngameForge.pre(GuiIngameForge.java:907)
at net.minecraftforge.client.GuiIngameForge.func_175180_a(GuiIngameForge.java:119)
-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityPlayerSP['ArloTheEpic'/335, l='MpServer', x=-968.08, y=80.80, z=-178.64]]
Chunk stats: MultiplayerChunkCache: 49, 49
Level seed: 0
Level generator: ID 12 - topography, ver 0. Features enabled: false
Level generator options:
Level spawn location: World: (-932,64,-291), Chunk: (at 12,4,13 in -59,-19; contains blocks -944,0,-304 to -929,255,-289), Region: (-2,-1; contains chunks -64,-32 to -33,-1, blocks -1024,0,-512 to -513,255,-1)
Level time: 22160 game time, 22160 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 4 total; [EntitySoul['Player Soul'/17218, l='MpServer', x=-844.08, y=79.00, z=-275.26], EntityRabbit['Rabbit'/17675, l='MpServer', x=-967.04, y=79.00, z=-180.66], EntityPlayerSP['ArloTheEpic'/335, l='MpServer', x=-968.08, y=80.80, z=-178.64], EntityPlayerSP['ArloTheEpic'/335, l='MpServer', x=-841.92, y=76.00, z=-277.17]]
Retry entities: 4 total; [EntitySoul['Player Soul'/17218, l='MpServer', x=-844.08, y=79.00, z=-275.26], EntityCobra['Cobra'/15667, l='MpServer', x=-852.50, y=79.00, z=-273.40], EntityItem['item.item.skull.char'/17227, l='MpServer', x=-844.46, y=79.00, z=-274.09], EntityMummy['Mummy'/17165, l='MpServer', x=-837.80, y=68.00, z=-276.53]]
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.func_72914_a(WorldClient.java:420)
at net.minecraft.client.Minecraft.func_71396_d(Minecraft.java:2741)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:427)
at net.minecraft.client.main.Main.main(SourceFile:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)
-- System Details --
Details:
Minecraft Version: 1.12.2
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_201, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 2278455448 bytes (2172 MB) / 7336361984 bytes (6996 MB) up to 10379853824 bytes (9899 MB)
JVM Flags: 3 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xms512m -Xmx11136m
IntCache: cache: 5, tcache: 64, allocated: 0, tallocated: 0
FML: MCP 9.42 Powered by Forge 14.23.5.2847 222 mods loaded, 222 mods active