package joshie.harvest.core; import joshie.harvest.animals.tracker.AnimalTrackerServer; import joshie.harvest.core.handlers.DailyTickHandler; import joshie.harvest.core.lib.HFModInfo; import joshie.harvest.town.tracker.TownTrackerServer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.WorldSavedData; import javax.annotation.Nonnull; public class HFSavedData extends WorldSavedData { public static final String DATA_NAME = HFModInfo.CAPNAME + "-Data"; private final AnimalTrackerServer animals = new AnimalTrackerServer(); private final DailyTickHandler ticking = new DailyTickHandler(); //TODO: Remove in 0.7+ private NBTTagCompound temp; public HFSavedData(String string) { super(string); } public void setWorld(World world) { animals.setWorld(world); ticking.setWorld(world); //TODO: Remove in 0.7+ if (temp != null && world.provider.getDimension() == 0) { HFTrackers.<TownTrackerServer>getTowns(world).readFromNBT(temp); HFTrackers.markTownsDirty(); temp = null; //Reset the world } } public AnimalTrackerServer getAnimalTracker() { return animals; } public DailyTickHandler getTickables() { return ticking; } @Override public void readFromNBT(@Nonnull NBTTagCompound nbt) { if (nbt.hasKey("TownTracker")) { temp = nbt.getCompoundTag("TownTracker"); } } @Override @Nonnull public NBTTagCompound writeToNBT(@Nonnull NBTTagCompound nbt) { return nbt; } }