aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrepo_alt <wvk17@yandex.ru>2021-09-09 14:07:28 +0300
committerrepo_alt <wvk17@yandex.ru>2021-09-09 14:07:28 +0300
commit8c64f13922200ef1c5c8a5196752bc6797b2cc71 (patch)
tree813c519f71aa1c253fd6f07ad069f123bc317a84 /src
parent9829fdf6ef13c2784897d836d41751908fb2e62f (diff)
downloadGT5-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.java48
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));
+ }
}
}
}