CellDistanceFunctionJsonLoader class
Пакет: com.hypixel.hytale.procedurallib.json
Файл: com/hypixel/hytale/procedurallib/json/CellDistanceFunctionJsonLoader.java
extends: JsonLoader<K, CellDistanceFunction>
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
MeasurementMode |
measurementMode |
|
CellDistanceFunction |
var1 |
|
CellType |
var1 |
|
|
var1 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
CellDistanceFunction |
loadCellDistanceFunction load() |
|
return |
switchreturn switch(this.measurementMode) |
abstract |
|
this this(var1, var2, var3, MeasurementMode.CENTRE_DISTANCE, var4) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.procedurallib.json;
class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.CellDistanceFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.CellType;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.GridCellDistanceFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.HexCellDistanceFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.MeasurementMode;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.PointDistanceFunction;
class="kw">import java.nio.file.Path;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class CellDistanceFunctionJsonLoader<K class="kw">extends SeedResource> class="kw">extends JsonLoader<K, CellDistanceFunction> {
class="kw">protected class="kw">final MeasurementMode measurementMode;
class="kw">protected class="kw">final PointDistanceFunction pointDistanceFunction;
class="kw">public CellDistanceFunctionJsonLoader(@Nonnull SeedString<K> var1, Path var2, JsonElement var3, @Nullable PointDistanceFunction var4) {
this(var1, var2, var3, MeasurementMode.CENTRE_DISTANCE, var4);
}
class="kw">public CellDistanceFunctionJsonLoader(@Nonnull SeedString<K> var1, Path var2, JsonElement var3, MeasurementMode var4, @Nullable PointDistanceFunction var5) {
super(var1.append(".CellDistanceFunction"), var2, var3);
this.measurementMode = var4;
this.pointDistanceFunction = var5;
}
class="kw">public CellDistanceFunction load() {
CellDistanceFunction var1 = this.loadDistanceFunction();
class="kw">return class="kw">switch (this.measurementMode) {
case CENTRE_DISTANCE -> var1;
case BORDER_DISTANCE -> new CellBorderDistanceFunctionJsonLoader<>(this.seed, this.dataFolder, this.json, var1).load();
};
}
@Nonnull
class="kw">protected CellType loadCellType() {
CellType var1 = CellNoiseJsonLoader.Constants.DEFAULT_CELL_TYPE;
if (this.has("CellType")) {
var1 = CellType.valueOf(this.get("CellType").getAsString());
}
class="kw">return var1;
}
@Nonnull
class="kw">protected CellDistanceFunction loadDistanceFunction() {
class="kw">return class="kw">switch (this.loadCellType()) {
case SQUARE -> GridCellDistanceFunction.DISTANCE_FUNCTION;
case HEX -> HexCellDistanceFunction.DISTANCE_FUNCTION;
};
}
}