diff options
author | repo_alt <wvk17@yandex.ru> | 2021-09-09 14:07:28 +0300 |
---|---|---|
committer | repo_alt <wvk17@yandex.ru> | 2021-09-09 14:07:28 +0300 |
commit | 8c64f13922200ef1c5c8a5196752bc6797b2cc71 (patch) | |
tree | 813c519f71aa1c253fd6f07ad069f123bc317a84 /src | |
parent | 9829fdf6ef13c2784897d836d41751908fb2e62f (diff) | |
download | GT5-Unofficial-8c64f13922200ef1c5c8a5196752bc6797b2cc71.tar.gz GT5-Unofficial-8c64f13922200ef1c5c8a5196752bc6797b2cc71.tar.bz2 GT5-Unofficial-8c64f13922200ef1c5c8a5196752bc6797b2cc71.zip |
allow differentiating cleanroom additional blocks by meta
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java | 48 |
1 files changed, 37 insertions, 11 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java index 203fe4a08d..fb8ab838f3 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Cleanroom.java @@ -226,13 +226,22 @@ public class GT_MetaTileEntity_Cleanroom extends GT_MetaTileEntity_MultiBlockBas } return false; } - } else { - if (config.containsKey(tBlock.getUnlocalizedName())) - otherBlocks.compute(tBlock.getUnlocalizedName(), (k,v) -> v == null ? 1 : v + 1 ); + } + else { + String key = tBlock.getUnlocalizedName() + ":"+ tMeta; + if (config.containsKey(key)) { // check with meta first + otherBlocks.compute(key, (k, v) -> v == null ? 1 : v + 1); + } else { - if (debugCleanroom) - GT_Log.out.println("Cleanroom: not allowed block " + tBlock.getUnlocalizedName()); - return false; + key = tBlock.getUnlocalizedName(); + if (config.containsKey(key)) { + otherBlocks.compute(key, (k, v) -> v == null ? 1 : v + 1); + } + else { + if (debugCleanroom) + GT_Log.out.println("Cleanroom: not allowed block " + tBlock.getUnlocalizedName()); + return false; + } } } } @@ -361,34 +370,51 @@ public class GT_MetaTileEntity_Cleanroom extends GT_MetaTileEntity_MultiBlockBas private static class ConfigEntry { int percentage; int allowedCount; - ConfigEntry(int percentage, int count) { + int meta; + ConfigEntry(int percentage, int count, int meta) { this.percentage = percentage; this.allowedCount = count; + this.meta = meta; } } private final static HashMap<String, ConfigEntry> config = new HashMap<>(); private static final String category = "cleanroom_allowed_blocks"; + private static final int wildcard_meta = Short.MAX_VALUE; private static void setDefaultConfigValues(Configuration cfg) { cfg.get("cleanroom_allowed_blocks.reinforced_glass", "Name","blockAlloyGlass"); cfg.get("cleanroom_allowed_blocks.reinforced_glass", "Percentage",5); + cfg.get("cleanroom_allowed_blocks.bw_reinforced_glass_0", "Name","BW_GlasBlocks"); + cfg.get("cleanroom_allowed_blocks.bw_reinforced_glass_0", "Percentage",50); + cfg.get("cleanroom_allowed_blocks.bw_reinforced_glass_0", "Meta",0); cfg.get("cleanroom_allowed_blocks.bw_reinforced_glass", "Name","BW_GlasBlocks"); cfg.get("cleanroom_allowed_blocks.bw_reinforced_glass", "Percentage",100); cfg.get("cleanroom_allowed_blocks.elevator", "Name","tile.openblocks.elevator"); cfg.get("cleanroom_allowed_blocks.elevator", "Count",1); cfg.get("cleanroom_allowed_blocks.travel_anchor", "Name","tile.blockTravelAnchor"); cfg.get("cleanroom_allowed_blocks.travel_anchor", "Count",1); + cfg.get("cleanroom_allowed_blocks.warded_glass", "Name","tile.blockCosmeticOpaque"); + cfg.get("cleanroom_allowed_blocks.warded_glass", "Meta",2); + cfg.get("cleanroom_allowed_blocks.warded_glass", "Percentage",50); } public static void loadConfig(Configuration cfg) { if (!cfg.hasCategory(category)) setDefaultConfigValues(cfg); for (ConfigCategory cc : cfg.getCategory(category).getChildren()) { String name = cc.get("Name").getString(); - if (cc.containsKey("Count")) - config.put(name, new ConfigEntry(0, cc.get("Count").getInt())); - else if (cc.containsKey("Percentage")) - config.put(name, new ConfigEntry(cc.get("Percentage").getInt(), 0)); + if (cc.containsKey("Count")) { + if (cc.containsKey("Meta")) + config.put(name+":"+cc.get("Meta").getInt(), new ConfigEntry(0, cc.get("Count").getInt(), cc.get("Meta").getInt())); + else + config.put(name, new ConfigEntry(0, cc.get("Count").getInt(), wildcard_meta)); + } + else if (cc.containsKey("Percentage")) { + if (cc.containsKey("Meta")) + config.put(name+":"+cc.get("Meta").getInt(), new ConfigEntry(cc.get("Percentage").getInt(), 0, cc.get("Meta").getInt())); + else + config.put(name, new ConfigEntry(cc.get("Percentage").getInt(), 0, wildcard_meta)); + } } } } |