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();
   }
}