minecraft-src/net/minecraft/world/inventory/DataSlot.java
2025-07-04 01:41:11 +03:00

60 lines
1,014 B
Java

package net.minecraft.world.inventory;
public abstract class DataSlot {
private int prevValue;
public static DataSlot forContainer(ContainerData data, int idx) {
return new DataSlot() {
@Override
public int get() {
return data.get(idx);
}
@Override
public void set(int value) {
data.set(idx, value);
}
};
}
public static DataSlot shared(int[] data, int idx) {
return new DataSlot() {
@Override
public int get() {
return data[idx];
}
@Override
public void set(int value) {
data[idx] = value;
}
};
}
public static DataSlot standalone() {
return new DataSlot() {
private int value;
@Override
public int get() {
return this.value;
}
@Override
public void set(int value) {
this.value = value;
}
};
}
public abstract int get();
public abstract void set(int value);
public boolean checkAndClearUpdateFlag() {
int i = this.get();
boolean bl = i != this.prevValue;
this.prevValue = i;
return bl;
}
}