PointPasteHandler class

Пакет: com.hypixel.hytale.builtin.points.prefab

Файл: com/hypixel/hytale/builtin/points/prefab/PointPasteHandler.java

extends: WorldEventSystem<EntityStore, PrefabPlaceEntityEvent>

Поля (13)

МодификаторыТипИмя
return
return
return
Vector3d var10
String var11
PointEntry var12
Holder var4
Point var5
PointManager var6
var6
TransformComponent var7
World var8
String var9

Методы (5)

МодификаторыВозвратСигнатура
public void handlevoid handle(@Nonnull Store<EntityStore> var1, @Nonnull CommandBuffer<EntityStore> var2, @Nonnull PrefabPlaceEntityEvent var3)
if if(var5 != null)
if if(var6 == null)
if if(var8 == null)
abstract super super(PrefabPlaceEntityEvent.class)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.points.prefab;

class="kw">import com.hypixel.hytale.builtin.points.component.Point;
class="kw">import com.hypixel.hytale.builtin.points.manager.PointEntry;
class="kw">import com.hypixel.hytale.builtin.points.manager.PointManager;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.system.WorldEventSystem;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.prefab.event.PrefabPlaceEntityEvent;
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 java.util.Locale;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class PointPasteHandler class="kw">extends WorldEventSystem<EntityStore, PrefabPlaceEntityEvent> {
   @Nonnull
   class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
   class="kw">private class="kw">final ResourceType<EntityStore, PointManager> managerResourceType;
   class="kw">private class="kw">final ComponentType<EntityStore, Point> pointComponentType;

   class="kw">public PointPasteHandler(@Nonnull ResourceType<EntityStore, PointManager> var1, @Nonnull ComponentType<EntityStore, Point> var2) {
      super(PrefabPlaceEntityEvent.class);
      this.managerResourceType = var1;
      this.pointComponentType = var2;
   }

   class="kw">public void handle(@Nonnull Store<EntityStore> var1, @Nonnull CommandBuffer<EntityStore> var2, @Nonnull PrefabPlaceEntityEvent var3) {
      Holder var4 = var3.getHolder();
      Point var5 = var4.getComponent(this.pointComponentType);
      if (var5 != null) {
         var3.setCancelled(true);
         PointManager var6 = null;

         try {
            TransformComponent var7 = var4.getComponent(TransformComponent.getComponentType());
            if (var7 == null || var7.getPosition() == null) {
               class="kw">return;
            }

            var6 = var1.getResource(this.managerResourceType);
            if (var6 == null) {
               class="kw">return;
            }

            World var8 = var6.getWorld();
            if (var8 == null) {
               class="kw">return;
            }

            String var9 = var8.getName().toLowerCase(Locale.ROOT);
            Vector3d var10 = new Vector3d(var7.getPosition());
            String var11 = var6.generateUniquePointId();
            PointEntry var12 = var5.toPointEntry(var11, var9, var10, var7.getRotation().yaw());
            var6.register(var11, var12);
            var6.notifyViewersAdd(var12);
            var6.markSpatialDirty();
         } catch (Exception var13) {
            ((HytaleLogger.Api)LOGGER.at(Level.WARNING).withCause(var13)).log("Skipping malformed point prefab entity");
         }
      }
   }
}