package defpackage; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import java.nio.file.Path; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import net.minecraft.client.Minecraft; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; public final class agc { private static final agc INSTANCE = new agc(); private static final String FILE_SUFFIX = ".json"; private static final String FOLDER = "frames"; private static final String PARSE_FAILURE = "photo frame store parse failed for {}"; private static final int MAX_FRAMES = 512; private final Map> index = new HashMap<>(); private String worldKey; private boolean dirty; private agc() { } public static agc getInstance() { return INSTANCE; } public void openWorld(String var1) { Path var2 = null; int var3 = -162256257; while (true) { switch (var3) { case -1443437019: if (var1.equals(this.worldKey)) { var3 = -1267929938; } else { var3 = 1328323102; } break; case -1267929938: return; case -162256257: default: if (var1 != null) { var3 = -1443437019; } else { var3 = -1267929938; } break; case 1328323102: this.closeWorld(); this.worldKey = var1; var2 = this.file(); final String var2f = var2; afz.submit(() -> { String var3x = null; Minecraft var4x = null; int var5 = -661829098; while (true) { switch (var5) { case -1745965103: var4x = Minecraft.getInstance(); if (var4x == null) { var5 = -1190748504; } else { var5 = 1409303397; } break; case -1190748504: return; case -661829098: default: var3x = afz.readText(var2f); if (var3x != null) { var5 = 821254678; } else { var5 = 777334794; } break; case 777334794: return; case 821254678: if (var3x.isBlank()) { var5 = 777334794; } else { var5 = -1745965103; } break; case 1409303397: final String var3xf = var3x; var4x.execute(() -> { int var3xx = -1067188536; while (true) { switch (var3xx) { case -1686595842: return; case -1411863625: this.load(var3xf, var1); var3xx = -1686595842; break; case -1067188536: default: if (var1.equals(this.worldKey)) { var3xx = -1411863625; } else { var3xx = -1686595842; } } } }); return; } } }); return; } } } public void closeWorld() { int var1 = 146074418; while (true) { switch (var1) { case -1375686244: return; case 127891334: this.flush(); this.index.clear(); this.worldKey = null; return; case 146074418: } if (this.worldKey == null) { var1 = -1375686244; } else { var1 = 127891334; } } } public void add(aga var1) { int var2 = 845865298; while (true) { switch (var2) { case -949385108: return; case 776588064: this.dimension(var1.dimension()).put(var1.key(), var1); this.dirty = (boolean)(((1)) != 0); this.trim(); return; case 845865298: } if (var1 == null) { var2 = -949385108; } else { var2 = 776588064; } } } public void accept(aga var1) { int var2 = -741589586; while (true) { switch (var2) { case -741589586: default: if (var1 == null) { var2 = -38497398; } else { var2 = -671914360; } break; case -671914360: this.dimension(var1.dimension()).put(var1.key(), var1); this.trim(); return; case -38497398: return; } } } public aga remove(String var1, String var2) { Map var3 = null; aga var4 = null; int var5 = 1894884496; while (true) { switch (var5) { case -1904022060: var4 = (aga)var3.remove(var2); if (var4 != null) { var5 = -403231254; } else { var5 = 561772484; } break; case -403231254: this.dirty = (boolean)(((1)) != 0); var5 = 561772484; break; case -80294896: return null; case 561772484: return var4; case 1894884496: default: var3 = this.index.get(var1); if (var3 == null) { var5 = -80294896; } else { var5 = -1904022060; } } } } public aga at(String var1, BlockPos var2, Direction var3) { Map var4 = null; aga var6 = null; int var5 = -1612171383; while (true) { switch (var5) { case -1613275687: return var6; case -1612171383: default: var4 = this.index.get(var1); if (var4 == null) { var5 = 1879531360; } else { var5 = -817607044; } break; case -817607044: var6 = (aga)var4.get(aga.faceKey(var2, var3)); var5 = -1613275687; break; case 1879531360: var6 = null; var5 = -1613275687; } } } public aga byKey(String var1, String var2) { Map var3 = null; aga var5 = null; int var4 = 1114336063; while (true) { switch (var4) { case -1002660803: var5 = null; var4 = -151177985; break; case -151177985: return var5; case 294383509: var5 = (aga)var3.get(var2); var4 = -151177985; break; case 1114336063: default: var3 = this.index.get(var1); if (var3 == null) { var4 = -1002660803; } else { var4 = 294383509; } } } } public Collection inDimension(String var1) { Map var2 = null; Collection var4 = null; int var3 = -754972078; while (true) { switch (var3) { case -754972078: default: var2 = this.index.get(var1); if (var2 == null) { var3 = 1027795694; } else { var3 = 847240645; } break; case 847240645: var4 = var2.values(); var3 = 2047328821; break; case 1027795694: var4 = Collections.emptyList(); var3 = 2047328821; break; case 2047328821: return var4; } } } public int countOwned(String var1, String var2) { int var3 = 0; Iterator var4 = null; aga var5 = null; int var6 = -1656800590; while (true) { switch (var6) { case -1656800590: default: var3 = 0; var4 = this.inDimension(var1).iterator(); var6 = -1352139860; break; case -1352139860: if (var4.hasNext()) { var6 = -228138160; } else { var6 = -982036114; } break; case -982036114: return var3; case -478063156: var6 = -1352139860; break; case -228138160: var5 = (aga)var4.next(); if (var5.owner().equals(var2)) { var6 = -33070383; } else { var6 = -478063156; } break; case -33070383: var3++; var6 = -478063156; } } } public List photoIds(String var1) { ArrayList var2 = null; Iterator var3 = null; aga var4 = null; int var5 = 402196462; while (true) { switch (var5) { case -1398699828: var5 = -733988611; break; case -866753866: return var2; case -733988611: if (var3.hasNext()) { var5 = 1299450934; } else { var5 = -866753866; } break; case -54152330: var2.add(var4.photoId()); var5 = -1398699828; break; case 402196462: default: var2 = new ArrayList(); var3 = this.inDimension(var1).iterator(); var5 = -733988611; break; case 1299450934: var4 = (aga)var3.next(); if (!var2.contains(var4.photoId())) { var5 = -54152330; } else { var5 = -1398699828; } } } } public void prune(long var1) { Iterator var3 = null; Map var4 = null; Iterator var5 = null; int var6 = 1211949869; while (true) { switch (var6) { case -2090148792: return; case -1591963397: if (var3.hasNext()) { var6 = -1025782002; } else { var6 = -2090148792; } break; case -1025782002: var4 = (Map)var3.next(); var5 = var4.values().iterator(); var6 = -716658062; break; case -716658062: if (var5.hasNext()) { var6 = 1504955964; } else { var6 = 499426679; } break; case 499426679: var6 = -1591963397; break; case 1211949869: default: var3 = this.index.values().iterator(); var6 = -1591963397; break; case 1504955964: if (((aga)var5.next()).isExpired(var1)) { var6 = 2029911417; } else { var6 = -716658062; } break; case 2029911417: var5.remove(); this.dirty = (boolean)(((1)) != 0); var6 = -716658062; } } } public void flush() { JsonArray var1 = null; Iterator var2 = null; Map var3 = null; Iterator var4 = null; aga var5 = null; int var6 = 1202493299; while (true) { switch (var6) { case -1720131580: if (var4.hasNext()) { var6 = -1205558708; } else { var6 = 159549983; } break; case -1205558708: var5 = (aga)var4.next(); var1.add(var5.toJson()); var6 = -1720131580; break; case -521745939: this.dirty = (boolean)(((0)) != 0); var1 = new JsonArray(); var2 = this.index.values().iterator(); var6 = 1766902981; break; case -310564730: var3 = (Map)var2.next(); var4 = var3.values().iterator(); var6 = -1720131580; break; case 159549983: var6 = 1766902981; break; case 319792963: return; case 321143452: if (!this.dirty) { var6 = 319792963; } else { var6 = -521745939; } break; case 1202493299: default: if (this.worldKey != null) { var6 = 321143452; } else { var6 = 319792963; } break; case 1732568970: afz.writeTextAsync(this.file(), var1.toString()); return; case 1766902981: if (var2.hasNext()) { var6 = -310564730; } else { var6 = 1732568970; } } } } private Map dimension(String var1) { return this.index.computeIfAbsent(var1, var0 -> new LinkedHashMap<>()); } private void trim() { int var1 = 0; Iterator var2 = null; Map var3 = null; Iterator var4 = null; int var5 = 1596811217; while (true) { switch (var5) { case -1735093500: return; case -804601839: var2 = this.index.values().iterator(); var5 = 190544826; break; case -644801565: var3 = (Map)var2.next(); var1 += var3.size(); var5 = 584861760; break; case -607281677: var3 = (Map)var2.next(); var4 = var3.values().iterator(); var5 = 432105076; break; case -66459897: if (var1 <= (988366977 ^ -988366465) + ((988366977 & -988366465) << 1)) { var5 = 266605426; } else { var5 = -804601839; } break; case 190544826: if (var2.hasNext()) { var5 = -607281677; } else { var5 = -1735093500; } break; case 266605426: return; case 432105076: if (var4.hasNext()) { var5 = 1851779001; } else { var5 = 1280784759; } break; case 584861760: if (var2.hasNext()) { var5 = -644801565; } else { var5 = -66459897; } break; case 1280784759: var5 = 190544826; break; case 1596811217: default: var1 = 0; var2 = this.index.values().iterator(); var5 = 584861760; break; case 1723992871: var4.next(); var4.remove(); var1--; var5 = 432105076; break; case 1851779001: if (var1 > (1270699653 | -1270699141) + (1270699653 & -1270699141)) { var5 = 1723992871; } else { var5 = 1280784759; } } } } private void load(String var1, String var2) { try { JsonElement var3 = JsonParser.parseString(var1); if (!var3.isJsonArray()) { return; } long var4 = System.currentTimeMillis(); for (JsonElement var7 : var3.getAsJsonArray()) { if (var7.isJsonObject()) { aga var8 = aga.fromJson(var7.getAsJsonObject()); if (var8 != null && !var8.isExpired(var4)) { this.dimension(var8.dimension()).put(var8.key(), var8); } } } } catch (RuntimeException var9) { id.warn( Cif.COSMETIC, "photo frame store parse failed for {}", var2, var9 ); } } private Path file() { return afz.directory().resolve("frames").resolve(this.worldKey + ".json"); } }