mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
130 lines
2.6 KiB
Java
130 lines
2.6 KiB
Java
package com.hbm.saveddata;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import net.minecraft.world.World;
|
|
import net.minecraft.world.WorldSavedData;
|
|
|
|
public class AuxSavedData extends WorldSavedData {
|
|
|
|
public List<DataPair> data = new ArrayList();
|
|
|
|
private World worldObj;
|
|
|
|
public AuxSavedData(String p_i2141_1_) {
|
|
super(p_i2141_1_);
|
|
}
|
|
|
|
public AuxSavedData(World p_i1678_1_)
|
|
{
|
|
super("hbmauxdata");
|
|
this.worldObj = p_i1678_1_;
|
|
this.markDirty();
|
|
}
|
|
|
|
static class DataPair {
|
|
|
|
String key = "";
|
|
int value;
|
|
|
|
public DataPair() { }
|
|
|
|
public DataPair(String s, int i) {
|
|
key = s;
|
|
value = i;
|
|
}
|
|
|
|
void readFromNBT(NBTTagCompound nbt, int i) {
|
|
this.key = nbt.getString("aux_key_" + i);
|
|
this.value = nbt.getInteger("aux_val_" + i);
|
|
}
|
|
|
|
void writeToNBT(NBTTagCompound nbt, int i) {
|
|
nbt.setString("aux_key_" + i, key);
|
|
nbt.setInteger("aux_val_" + i, value);
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
public void readFromNBT(NBTTagCompound nbt) {
|
|
|
|
int count = nbt.getInteger("dCount");
|
|
|
|
for(int i = 0; i < count; i++) {
|
|
DataPair struct = new DataPair();
|
|
struct.readFromNBT(nbt, i);
|
|
|
|
data.add(struct);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void writeToNBT(NBTTagCompound nbt) {
|
|
|
|
nbt.setInteger("dCount", data.size());
|
|
|
|
for(int i = 0; i < data.size(); i++) {
|
|
data.get(i).writeToNBT(nbt, i);
|
|
}
|
|
}
|
|
|
|
public static AuxSavedData getData(World worldObj) {
|
|
|
|
AuxSavedData data = (AuxSavedData)worldObj.perWorldStorage.loadData(AuxSavedData.class, "hbmauxdata");
|
|
if(data == null) {
|
|
worldObj.perWorldStorage.setData("hbmauxdata", new AuxSavedData(worldObj));
|
|
|
|
data = (AuxSavedData)worldObj.perWorldStorage.loadData(AuxSavedData.class, "hbmauxdata");
|
|
}
|
|
|
|
return data;
|
|
}
|
|
|
|
public static void setThunder(World world, int dura) {
|
|
AuxSavedData data = getData(world);
|
|
|
|
if(data.data == null) {
|
|
data.data = new ArrayList();
|
|
data.data.add(new DataPair("thunder", dura));
|
|
|
|
} else {
|
|
|
|
DataPair thunder = null;
|
|
|
|
for(DataPair pair : data.data) {
|
|
if(pair.key.equals("thunder")) {
|
|
thunder = pair;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(thunder == null) {
|
|
data.data.add(new DataPair("thunder", dura));
|
|
} else {
|
|
thunder.value = dura;
|
|
}
|
|
}
|
|
|
|
data.markDirty();
|
|
}
|
|
|
|
public static int getThunder(World world) {
|
|
|
|
AuxSavedData data = getData(world);
|
|
|
|
if(data == null)
|
|
return 0;
|
|
|
|
for(DataPair pair : data.data) {
|
|
if(pair.key.equals("thunder")) {
|
|
return pair.value;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
}
|