package joshie.progression.criteria.filters.location; import joshie.progression.Progression; import joshie.progression.api.criteria.ProgressionRule; import joshie.progression.api.special.ICustomDescription; import joshie.progression.helpers.DimensionHelper; import joshie.progression.lib.WorldLocation; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.math.BlockPos; import net.minecraft.world.WorldServer; import net.minecraftforge.common.DimensionManager; @ProgressionRule(name="dimensionspawn", color=0xFFBBBBBB) public class FilterDimension extends FilterLocationBase implements ICustomDescription { public int dimensionID; @Override public String getDescription() { return Progression.format("filter.location.dimensionspawn.description", DimensionHelper.getDimensionNameFromID(dimensionID)); } @Override public WorldLocation getRandom(EntityPlayer player) { WorldServer world = DimensionManager.getWorld(dimensionID); if (world == null) return null; BlockPos pos = world.getSpawnCoordinate(); if (pos == null) pos = world.getSpawnPoint(); if (pos == null) return null; return new WorldLocation(dimensionID, pos); } @Override public boolean matches(WorldLocation location) { return location.dimension == dimensionID; } }