Push or Ill kill your family

This commit is contained in:
Indyuce 2022-06-01 23:00:49 +02:00
parent eed3502029
commit 73fbb5844d

View File

@ -30,13 +30,13 @@ public class Waypoint extends PostLoadObject implements Unlockable {
* <p> * <p>
* If it's empty it can access any waypoint. * If it's empty it can access any waypoint.
*/ */
private final Map<Waypoint, Integer> destinations = new HashMap<>(); private final Map<Waypoint, Double> destinations = new HashMap<>();
/** /**
* Waypoint options saved here. * Waypoint options saved here.
*/ */
private final Map<WaypointOption, Boolean> options = new HashMap<>(); private final Map<WaypointOption, Boolean> options = new HashMap<>();
private final double dynamicCost, setSpawnCost; private final double dynamicCost, setSpawnCost, normalCost;
private final List<Condition> dynamicUseConditions = new ArrayList<>(); private final List<Condition> dynamicUseConditions = new ArrayList<>();
public Waypoint(ConfigurationSection config) { public Waypoint(ConfigurationSection config) {
@ -50,6 +50,7 @@ public class Waypoint extends PostLoadObject implements Unlockable {
radiusSquared = Math.pow(config.getDouble("radius"), 2); radiusSquared = Math.pow(config.getDouble("radius"), 2);
dynamicCost = config.getDouble("cost.dynamic-use"); dynamicCost = config.getDouble("cost.dynamic-use");
normalCost = config.getDouble("cost.normal-use");
setSpawnCost = config.getDouble("cost.set-spawnpoint"); setSpawnCost = config.getDouble("cost.set-spawnpoint");
for (WaypointOption option : WaypointOption.values()) for (WaypointOption option : WaypointOption.values())
@ -66,6 +67,7 @@ public class Waypoint extends PostLoadObject implements Unlockable {
} }
} }
@Override @Override
protected void whenPostLoaded(@NotNull ConfigurationSection config) { protected void whenPostLoaded(@NotNull ConfigurationSection config) {
@ -73,7 +75,7 @@ public class Waypoint extends PostLoadObject implements Unlockable {
if (config.contains("linked")) { if (config.contains("linked")) {
ConfigurationSection section = config.getConfigurationSection("linked"); ConfigurationSection section = config.getConfigurationSection("linked");
for (String key : section.getKeys(false)) for (String key : section.getKeys(false))
destinations.put(MMOCore.plugin.waypointManager.get(key), section.getInt(key)); destinations.put(MMOCore.plugin.waypointManager.get(key), section.getDouble(key));
} }
} }
@ -93,19 +95,11 @@ public class Waypoint extends PostLoadObject implements Unlockable {
return loc; return loc;
} }
/**
* @param other Another waypoint
* @return If any player standing on that waypoint can teleport to given waypoint
*/
@Deprecated
public boolean hasDestination(Waypoint other) {
return destinations.isEmpty() || destinations.containsKey(other);
}
public double getDynamicCost() { public double getDynamicCost() {
return dynamicCost; return dynamicCost;
} }
@Deprecated
public double getSetSpawnCost() { public double getSetSpawnCost() {
return setSpawnCost; return setSpawnCost;
} }
@ -125,8 +119,8 @@ public class Waypoint extends PostLoadObject implements Unlockable {
* @return Integer.POSITIVE_INFINITY if the way point is not linked * @return Integer.POSITIVE_INFINITY if the way point is not linked
* If it is, cost of the instant travel between the two waypoints. * If it is, cost of the instant travel between the two waypoints.
*/ */
public int getDirectCost(Waypoint waypoint) { public double getDirectCost(Waypoint waypoint) {
return destinations.getOrDefault(waypoint, Integer.MAX_VALUE); return destinations.isEmpty() ? normalCost : destinations.getOrDefault(waypoint, Double.POSITIVE_INFINITY);
} }
public List<WaypointPath> getAllPath() { public List<WaypointPath> getAllPath() {