diff options
author | Alkalus <Draknyte1@hotmail.com> | 2020-04-14 23:12:54 +0100 |
---|---|---|
committer | Alkalus <Draknyte1@hotmail.com> | 2020-04-14 23:12:54 +0100 |
commit | 86edf93e4bdf56ed4974d0c06eca5de309ca4f9a (patch) | |
tree | 18705bad31dbee1141cde6db94c5a4c9cade03de /src/Java/gtPlusPlus/xmod/gregtech/common/helpers/MachineUpdateHandler.java | |
parent | bc0b4b644dd410c86c925c7ef2422bd18789437c (diff) | |
download | GT5-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.java | 42 |
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); + } + } + } + +} |