package joshie.progression.lib; import joshie.progression.api.criteria.IFilterProvider; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.math.BlockPos; import java.util.List; public class WorldLocation { public EntityPlayer player; public int dimension; public BlockPos pos; public WorldLocation(int dimension, double x, double y, double z) { this.dimension = dimension; this.pos = new BlockPos(x, y, z); } public WorldLocation(int dimension, BlockPos pos) { this.dimension = dimension; this.pos = new BlockPos(pos); } public WorldLocation(EntityPlayer player) { this.dimension = player.dimension; this.pos = new BlockPos(player); this.player = player; } public void setPlayer(EntityPlayer player) { this.player = player; } public static WorldLocation getRandomLocationFromFilters(List<IFilterProvider> locality, EntityPlayer player) { int size = locality.size(); if (size == 0) return null; if (size == 1) return (WorldLocation) locality.get(0).getProvided().getRandom(player); else { return (WorldLocation) locality.get(player.worldObj.rand.nextInt(size)).getProvided().getRandom(player); } } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; WorldLocation location = (WorldLocation) o; if (dimension != location.dimension) return false; return pos != null ? pos.equals(location.pos) : location.pos == null; } @Override public int hashCode() { int result = dimension; result = 31 * result + (pos != null ? pos.hashCode() : 0); return result; } }