aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/MachineUpdateHandler.java
diff options
context:
space:
mode:
authorAlkalus <Draknyte1@hotmail.com>2020-04-14 23:12:54 +0100
committerAlkalus <Draknyte1@hotmail.com>2020-04-14 23:12:54 +0100
commit86edf93e4bdf56ed4974d0c06eca5de309ca4f9a (patch)
tree18705bad31dbee1141cde6db94c5a4c9cade03de /src/Java/gtPlusPlus/xmod/gregtech/common/helpers/MachineUpdateHandler.java
parentbc0b4b644dd410c86c925c7ef2422bd18789437c (diff)
downloadGT5-Unofficial-86edf93e4bdf56ed4974d0c06eca5de309ca4f9a.tar.gz
GT5-Unofficial-86edf93e4bdf56ed4974d0c06eca5de309ca4f9a.tar.bz2
GT5-Unofficial-86edf93e4bdf56ed4974d0c06eca5de309ca4f9a.zip
+ Added a way to register blocks that will cause MachineUpdates when placed. (Useful for non-GT blocks used in Multis)
$ Fixed Industrial Cutting Machine defaulting to slicing mode. $ Fixed reInit() on recipe maps causing absurd crashes. (Doesn't seem to break anything at the moment not doing it, so.. I won't)
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/helpers/MachineUpdateHandler.java')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/helpers/MachineUpdateHandler.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/MachineUpdateHandler.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/MachineUpdateHandler.java
new file mode 100644
index 0000000000..0b52560e0d
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/MachineUpdateHandler.java
@@ -0,0 +1,42 @@
+package gtPlusPlus.xmod.gregtech.common.helpers;
+
+import java.util.HashMap;
+
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import gregtech.api.GregTech_API;
+import net.minecraft.block.Block;
+import net.minecraftforge.event.world.BlockEvent;
+
+public class MachineUpdateHandler {
+
+ private static final HashMap<String, Block> mBlockCache = new HashMap<String, Block>();
+
+ public static void registerBlockToCauseMachineUpdate(String aUnlocalName, Block aBlock) {
+ mBlockCache.put(aUnlocalName, aBlock);
+ }
+
+ @SubscribeEvent
+ public void onBlockEvent(BlockEvent event) {
+ Block aBlock = event.block;
+ String aUnlocalName = aBlock != null ? aBlock.getUnlocalizedName() : "NULL";
+ boolean aDoUpdate = false;
+ if (aBlock != null && aUnlocalName != null && !aUnlocalName.equals("NULL")) {
+ for (String aCachedName : mBlockCache.keySet()) {
+ if (aCachedName.equals(aUnlocalName)) {
+ aDoUpdate = true;
+ break;
+ }
+ else {
+ if (aBlock == mBlockCache.get(aCachedName)) {
+ aDoUpdate = true;
+ break;
+ }
+ }
+ }
+ if (aDoUpdate) {
+ GregTech_API.causeMachineUpdate(event.world, event.x, event.y, event.z);
+ }
+ }
+ }
+
+}