LocationRadiusProvider class
Пакет: com.hypixel.hytale.builtin.adventure.objectives.config.worldlocationproviders
Файл: com/hypixel/hytale/builtin/adventure/objectives/config/worldlocationproviders/LocationRadiusProvider.java
extends: WorldLocationProvider
Поля (7)
| Модификаторы | Тип | Имя |
|---|---|---|
|
int |
var1 |
|
LocationRadiusProvider |
var2 |
|
double |
var3 |
|
int |
var5 |
|
Vector3i |
var6 |
|
long |
var7 |
|
WorldChunk |
var9 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(var0.minRadius > var0.maxRadius) |
|
|
if if(var9 == null) |
|
|
if if(this == var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.objectives.config.worldlocationproviders;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.math.util.TrigMathUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3i;
class="kw">public class LocationRadiusProvider class="kw">extends WorldLocationProvider {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<LocationRadiusProvider> CODEC = BuilderCodec.builder(LocationRadiusProvider.class, LocationRadiusProvider::new, BASE_CODEC)
.append(new KeyedCodec<>("MinRadius", Codec.INTEGER), (var0, var1) -> var0.minRadius = var1, var0 -> var0.minRadius)
.addValidator(Validators.greaterThan(0))
.add()
.<Integer>append(new KeyedCodec<>("MaxRadius", Codec.INTEGER), (var0, var1) -> var0.maxRadius = var1, var0 -> var0.maxRadius)
.addValidator(Validators.greaterThanOrEqual(1))
.add()
.afterDecode(
var0 -> {
if (var0.minRadius > var0.maxRadius) {
throw new IllegalArgumentException(
"LocationRadiusCondition.MinRadius ("
+ var0.minRadius
+ ") needs to be greater than LocationRadiusCondition.MaxRadius ("
+ var0.maxRadius
+ ")"
);
}
}
)
.build();
class="kw">protected int minRadius = 10;
class="kw">protected int maxRadius = 50;
class="kw">public LocationRadiusProvider() {
}
@Nullable
@Override
class="kw">public Vector3i runCondition(@Nonnull World var1, @Nonnull Vector3i var2) {
double var3 = Math.random() * (float) (Math.PI * 2);
int var5 = MathUtil.randomInt(this.minRadius, this.maxRadius);
Vector3i var6 = new Vector3i(var2);
var6.add((int)(var5 * TrigMathUtil.cos(var3)), 0, (int)(var5 * TrigMathUtil.sin(var3)));
long var7 = ChunkUtil.indexChunkFromBlock(var6.x, var6.z);
WorldChunk var9 = var1.getChunk(var7);
if (var9 == null) {
class="kw">return null;
}
var6.y = var9.getHeight(var6.x, var6.z);
class="kw">return var6;
}
@Override
class="kw">public boolean equals(@Nullable Object var1) {
if (this == var1) {
class="kw">return true;
} else if (var1 != null && this.getClass() == var1.getClass()) {
LocationRadiusProvider var2 = (LocationRadiusProvider)var1;
class="kw">return this.minRadius != var2.minRadius ? false : this.maxRadius == var2.maxRadius;
} else {
class="kw">return false;
}
}
@Override
class="kw">public int hashCode() {
int var1 = this.minRadius;
class="kw">return 31 * var1 + this.maxRadius;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "LocationRadiusProvider{minRadius=" + this.minRadius + ", maxRadius=" + this.maxRadius + "} " + super.toString();
}
}