package crazypants.enderio.api.teleport; import crazypants.enderio.EnderIO; import crazypants.enderio.config.Config; public enum TravelSource { BLOCK() { @Override public int getMaxDistanceTravelled() { return Config.travelAnchorMaxDistance; } }, STAFF() { @Override public int getMaxDistanceTravelled() { return Config.travelStaffMaxDistance; } @Override public float getPowerCostPerBlockTraveledRF() { return Config.travelStaffPowerPerBlockRF; } }, STAFF_BLINK() { @Override public int getMaxDistanceTravelled() { return Config.travelStaffMaxBlinkDistance; } @Override public float getPowerCostPerBlockTraveledRF() { return Config.travelStaffPowerPerBlockRF; } }, TELEPAD(EnderIO.DOMAIN + ":telepad.teleport"); public static int getMaxDistance() { return STAFF.getMaxDistanceTravelledSq(); } public static int getMaxDistanceSq() { return STAFF.getMaxDistanceTravelledSq(); } public final String sound; private TravelSource() { this("mob.endermen.portal"); } private TravelSource(String sound) { this.sound = sound; } public boolean getConserveMomentum() { return this == STAFF_BLINK; } public int getMaxDistanceTravelled() { return 0; } public int getMaxDistanceTravelledSq() { return getMaxDistanceTravelled() * getMaxDistanceTravelled(); } public float getPowerCostPerBlockTraveledRF() { return 0; } }