evo/src/main/java/defpackage/agc.java

637 lines
18 KiB
Java

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<String, Map<String, aga>> 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<aga> 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<String> 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<String, aga> 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");
}
}