KillSpawnBeaconObjectiveTask class
Пакет: com.hypixel.hytale.builtin.adventure.npcobjectives.task
Файл: com/hypixel/hytale/builtin/adventure/npcobjectives/task/KillSpawnBeaconObjectiveTask.java
extends: KillObjectiveTask
Поля (19)
| Модификаторы | Тип | Имя |
|---|---|---|
|
KillSpawnBeaconObjectiveTaskAsset.ObjectiveSpawnBeacon |
var10 |
|
String |
var11 |
|
int |
var12 |
|
Vector3d |
var13 |
|
WorldLocationProvider |
var14 |
|
Vector3i |
var15 |
|
Pair |
var16 |
|
UUIDComponent |
var17 |
|
BeaconSpawnWrapper |
var18 |
|
TransactionRecord[] |
var4 |
|
|
var4 |
|
Vector3d |
var4 |
|
KillTaskTransaction |
var5 |
|
KillSpawnBeaconObjectiveTaskAsset.ObjectiveSpawnBeacon[] |
var5 |
|
TransactionRecord[] |
var6 |
|
HytaleLogger |
var7 |
|
Vector3d |
var9 |
|
|
var9 |
|
|
var9 |
Методы (10)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var8 = 0; var8 < var5.length; var8++) |
|
|
if if(var4 == null) |
|
|
if if(var4 == null) |
|
|
if if(var12 == Integer.MIN_VALUE) |
|
|
if if(var13 != null) |
|
|
if if(var14 != null) |
|
|
if if(var15 != null) |
|
|
if if(var9 == null) |
|
|
if if(var17 == null) |
abstract |
|
super super(var1, var2, var3) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.npcobjectives.task;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.assets.KillSpawnBeaconObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.resources.KillTrackerResource;
class="kw">import com.hypixel.hytale.builtin.adventure.npcobjectives.transaction.KillTaskTransaction;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.Objective;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.ObjectivePlugin;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.worldlocationproviders.WorldLocationProvider;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.SpawnEntityTransactionRecord;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.TransactionRecord;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.TransactionUtil;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.WorldTransactionRecord;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.common.util.ArrayUtil;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.spawning.SpawningPlugin;
class="kw">import com.hypixel.hytale.server.spawning.assets.spawns.config.BeaconNPCSpawn;
class="kw">import com.hypixel.hytale.server.spawning.beacons.LegacySpawnBeaconEntity;
class="kw">import com.hypixel.hytale.server.spawning.wrappers.BeaconSpawnWrapper;
class="kw">import it.unimi.dsi.fastutil.Pair;
class="kw">import java.util.Arrays;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;
class="kw">public class KillSpawnBeaconObjectiveTask class="kw">extends KillObjectiveTask {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<KillSpawnBeaconObjectiveTask> CODEC = BuilderCodec.builder(
KillSpawnBeaconObjectiveTask.class, KillSpawnBeaconObjectiveTask::new, KillObjectiveTask.CODEC
)
.build();
class="kw">public KillSpawnBeaconObjectiveTask(@Nonnull KillSpawnBeaconObjectiveTaskAsset var1, int var2, int var3) {
super(var1, var2, var3);
}
class="kw">protected KillSpawnBeaconObjectiveTask() {
}
@Nonnull
class="kw">public KillSpawnBeaconObjectiveTaskAsset getAsset() {
class="kw">return (KillSpawnBeaconObjectiveTaskAsset)super.getAsset();
}
@Nonnull
@Override
class="kw">protected TransactionRecord[] setup0(@Nonnull Objective var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
TransactionRecord[] var4 = this.serializedTransactionRecords;
if (var4 == null) {
var4 = this.setupSpawnBeacons(var1, var2, var3);
if (TransactionUtil.anyFailed(var4)) {
class="kw">return var4;
}
}
KillTaskTransaction var5 = new KillTaskTransaction(this, var1, var3);
var3.getResource(KillTrackerResource.getResourceType()).watch(var5);
class="kw">return ArrayUtil.append(var4, var5);
}
@Nonnull
class="kw">private TransactionRecord[] setupSpawnBeacons(@Nonnull Objective var1, @Nonnull World var2, @Nonnull ComponentAccessor<EntityStore> var3) {
Vector3d var4 = var1.getPosition(var3);
if (var4 == null) {
class="kw">return TransactionRecord.appendFailedTransaction(null, new WorldTransactionRecord(), "No valid position found for the objective.");
}
KillSpawnBeaconObjectiveTaskAsset.ObjectiveSpawnBeacon[] var5 = this.getAsset().getSpawnBeacons();
TransactionRecord[] var6 = new TransactionRecord[var5.length];
HytaleLogger var7 = ObjectivePlugin.get().getLogger();
for (int var8 = 0; var8 < var5.length; var8++) {
Vector3d var9 = new Vector3d(var4);
KillSpawnBeaconObjectiveTaskAsset.ObjectiveSpawnBeacon var10 = var5[var8];
String var11 = var10.getSpawnBeaconId();
int var12 = BeaconNPCSpawn.getAssetMap().getIndex(var11);
if (var12 == Integer.MIN_VALUE) {
var6[var8] = new WorldTransactionRecord().fail("Failed to find spawn beacon " + var11);
class="kw">return Arrays.copyOf(var6, var8 + 1);
}
Vector3d var13 = var10.getOffset();
if (var13 != null) {
var9.add(var13);
}
WorldLocationProvider var14 = var10.getWorldLocationProvider();
if (var14 != null) {
Vector3i var15 = var14.runCondition(var2, Vector3dUtil.toVector3i(var9));
if (var15 != null) {
var9 = Vector3iUtil.toVector3d(var15);
} else {
var9 = null;
}
}
if (var9 == null) {
var6[var8] = new WorldTransactionRecord().fail("Failed to find a valid position to spawn beacon " + var11);
} else {
BeaconSpawnWrapper var18 = SpawningPlugin.get().getBeaconSpawnWrapper(var12);
Pair var16 = LegacySpawnBeaconEntity.create(var18, var9, Rotation3f.IDENTITY, var3);
((LegacySpawnBeaconEntity)var16.second()).setObjectiveUUID(var1.getObjectiveUUID());
UUIDComponent var17 = var3.getComponent((Ref<EntityStore>)var16.first(), UUIDComponent.getComponentType());
if (var17 == null) {
var6[var8] = new WorldTransactionRecord().fail("Failed to retrieve UUID component for spawned beacon " + var11);
} else {
var7.at(Level.INFO).log("Spawned SpawnBeacon '%s' at position: %s", var11, var4);
var6[var8] = new SpawnEntityTransactionRecord(var2.getWorldConfig().getUuid(), var17.getUuid());
}
}
}
class="kw">return var6;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "KillSpawnBeaconObjectiveTask{} " + super.toString();
}
}