package choonster.testmod3.capability.chunkenergy;
import choonster.testmod3.api.capability.chunkenergy.IChunkEnergy;
import choonster.testmod3.api.capability.chunkenergy.IChunkEnergyHolder;
import choonster.testmod3.api.capability.chunkenergy.IChunkEnergyHolderModifiable;
import net.minecraft.util.math.ChunkPos;
import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.Map;
/**
* Default implementation of {@link IChunkEnergyHolder}.
*
* @author Choonster
*/
public class ChunkEnergyHolder implements IChunkEnergyHolderModifiable {
private final Map<ChunkPos, IChunkEnergy> chunkEnergies = new HashMap<>();
/**
* Get the {@link IChunkEnergy} for the specified chunk position.
*
* @param chunkPos The chunk position
* @return The IChunkEnergy, or null if there isn't one (e.g. the chunk isn't loaded)
*/
@Nullable
@Override
public IChunkEnergy getChunkEnergy(final ChunkPos chunkPos) {
return chunkEnergies.get(chunkPos);
}
/**
* Set the {@link IChunkEnergy} for the specified chunk position.
*
* @param chunkPos The chunk position
* @param chunkEnergy The IChunkEnergy
*/
@Override
public void setChunkEnergy(final ChunkPos chunkPos, final IChunkEnergy chunkEnergy) {
chunkEnergies.put(chunkPos, chunkEnergy);
}
/**
* Remove the {@link IChunkEnergy} for the specified chunk position.
*
* @param chunkPos The chunk position
*/
@Override
public void removeChunkEnergy(final ChunkPos chunkPos) {
chunkEnergies.remove(chunkPos);
}
}