package net.minecraft.server; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import javax.annotation.Nullable; public abstract class LightEngineStorageArray<M extends LightEngineStorageArray<M>> { private final long[] b = new long[2]; private final NibbleArray[] c = new NibbleArray[2]; private boolean d; protected final Long2ObjectOpenHashMap<NibbleArray> a; protected LightEngineStorageArray(Long2ObjectOpenHashMap<NibbleArray> long2objectopenhashmap) { this.a = long2objectopenhashmap; this.c(); this.d = true; } public abstract M b(); public void a(long i) { this.a.put(i, ((NibbleArray) this.a.get(i)).b()); this.c(); } public boolean b(long i) { return this.a.containsKey(i); } @Nullable public NibbleArray c(long i) { if (this.d) { for (int j = 0; j < 2; ++j) { if (i == this.b[j]) { return this.c[j]; } } } NibbleArray nibblearray = (NibbleArray) this.a.get(i); if (nibblearray == null) { return null; } else { if (this.d) { for (int k = 1; k > 0; --k) { this.b[k] = this.b[k - 1]; this.c[k] = this.c[k - 1]; } this.b[0] = i; this.c[0] = nibblearray; } return nibblearray; } } @Nullable public NibbleArray d(long i) { return (NibbleArray) this.a.remove(i); } public void a(long i, NibbleArray nibblearray) { this.a.put(i, nibblearray); } public void c() { for (int i = 0; i < 2; ++i) { this.b[i] = Long.MAX_VALUE; this.c[i] = null; } } public void d() { this.d = false; } }