2018-02-06 01:04:38 +00:00
|
|
|
package WayofTime.bloodmagic.apibutnotreally.saving;
|
2016-06-12 20:41:02 +00:00
|
|
|
|
2018-02-06 01:04:38 +00:00
|
|
|
import WayofTime.bloodmagic.apibutnotreally.util.helper.PlayerHelper;
|
2016-06-12 20:41:02 +00:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
|
|
import net.minecraft.nbt.NBTTagList;
|
2017-08-15 03:53:42 +00:00
|
|
|
import net.minecraft.world.storage.WorldSavedData;
|
2016-06-12 20:41:02 +00:00
|
|
|
|
2017-08-16 04:30:48 +00:00
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.UUID;
|
2016-06-12 20:41:02 +00:00
|
|
|
|
2017-08-16 04:30:48 +00:00
|
|
|
public class BMWorldSavedData extends WorldSavedData {
|
2016-06-12 20:41:02 +00:00
|
|
|
public static final String ID = "BloodMagic-SoulNetworks";
|
|
|
|
|
|
|
|
private Map<UUID, SoulNetwork> soulNetworks = new HashMap<UUID, SoulNetwork>();
|
|
|
|
|
2017-08-16 04:30:48 +00:00
|
|
|
public BMWorldSavedData(String id) {
|
2016-06-12 20:41:02 +00:00
|
|
|
super(id);
|
|
|
|
}
|
|
|
|
|
2017-08-16 04:30:48 +00:00
|
|
|
public BMWorldSavedData() {
|
2016-06-12 20:41:02 +00:00
|
|
|
this(ID);
|
|
|
|
}
|
|
|
|
|
2017-08-16 04:30:48 +00:00
|
|
|
public SoulNetwork getNetwork(EntityPlayer player) {
|
2016-06-12 20:41:02 +00:00
|
|
|
return getNetwork(PlayerHelper.getUUIDFromPlayer(player));
|
|
|
|
}
|
|
|
|
|
2017-08-16 04:30:48 +00:00
|
|
|
public SoulNetwork getNetwork(UUID playerId) {
|
2016-06-12 20:41:02 +00:00
|
|
|
if (!soulNetworks.containsKey(playerId))
|
|
|
|
soulNetworks.put(playerId, SoulNetwork.newEmpty(playerId).setParent(this));
|
|
|
|
return soulNetworks.get(playerId);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2017-08-16 04:30:48 +00:00
|
|
|
public void readFromNBT(NBTTagCompound tagCompound) {
|
2016-06-12 20:41:02 +00:00
|
|
|
NBTTagList networkData = tagCompound.getTagList("networkData", 10);
|
|
|
|
|
2017-08-16 04:30:48 +00:00
|
|
|
for (int i = 0; i < networkData.tagCount(); i++) {
|
2016-06-12 20:41:02 +00:00
|
|
|
NBTTagCompound data = networkData.getCompoundTagAt(i);
|
|
|
|
SoulNetwork network = SoulNetwork.fromNBT(data);
|
|
|
|
network.setParent(this);
|
|
|
|
soulNetworks.put(network.getPlayerId(), network);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2017-08-16 04:30:48 +00:00
|
|
|
public NBTTagCompound writeToNBT(NBTTagCompound tagCompound) {
|
2016-06-12 20:41:02 +00:00
|
|
|
NBTTagList networkData = new NBTTagList();
|
|
|
|
for (SoulNetwork soulNetwork : soulNetworks.values())
|
|
|
|
networkData.appendTag(soulNetwork.serializeNBT());
|
|
|
|
|
|
|
|
tagCompound.setTag("networkData", networkData);
|
|
|
|
|
|
|
|
return tagCompound;
|
|
|
|
}
|
|
|
|
}
|