32 lines
954 B
Java
32 lines
954 B
Java
package games.dmg.spigotbase;
|
|
|
|
public final class PocketBasePolicy {
|
|
private final PluginSettingsProvider settings;
|
|
|
|
public PocketBasePolicy(PluginSettings settings) {
|
|
this(new PluginSettingsProvider(settings));
|
|
}
|
|
|
|
public PocketBasePolicy(PluginSettingsProvider settings) {
|
|
this.settings = settings;
|
|
}
|
|
|
|
public int size(int level) {
|
|
if (level < 1) {
|
|
throw new IllegalArgumentException("Pocket Base level must be positive");
|
|
}
|
|
return Math.addExact(64, Math.multiplyExact(32, level - 1));
|
|
}
|
|
|
|
public int price(PocketBaseState state) {
|
|
return state.level() == 0
|
|
? settings.current().pocketBaseUnlockCost()
|
|
: settings.current().pocketBaseUpgradeCost();
|
|
}
|
|
|
|
public boolean contains(int level, int x, int z) {
|
|
int halfSize = size(level) / 2;
|
|
return x >= -halfSize && x < halfSize && z >= -halfSize && z < halfSize;
|
|
}
|
|
}
|