TriggerVolumeBlockEventSystems class

Пакет: com.hypixel.hytale.builtin.triggervolumes.system

Файл: com/hypixel/hytale/builtin/triggervolumes/system/TriggerVolumeBlockEventSystems.java

Поля (26)

МодификаторыТипИмя
private final ResourceType<EntityStore, TriggerVolumeManager> managerResourceType
private final ResourceType<EntityStore, TriggerVolumeManager> managerResourceType
private final ResourceType<EntityStore, TriggerVolumeManager> managerResourceType
private final ResourceType<EntityStore, TriggerVolumeManager> managerResourceType
private final ResourceType<EntityStore, TriggerVolumeManager> managerResourceType
Ref var10
TransformComponent var10
UUIDComponent var11
ItemComponent var2
ItemStack var3
TriggerVolumeManager var4
Vector3i var5
TriggerVolumeManager var6
ItemStack var6
TriggerVolumeManager var6
TriggerVolumeManager var6
Ref var7
Ref var7
Ref var7
UUIDComponent var8
UUIDComponent var8
UUIDComponent var8
Vector3i var9
TriggerVolumeManager var9
Vector3i var9
Ref var9

Методы (31)

МодификаторыВозвратСигнатура
public BlockBrokenpublic BlockBroken(@Nonnull ResourceType<EntityStore, TriggerVolumeManager> var1)
public BlockPlacedpublic BlockPlaced(@Nonnull ResourceType<EntityStore, TriggerVolumeManager> var1)
public BlockUsedpublic BlockUsed(@Nonnull ResourceType<EntityStore, TriggerVolumeManager> var1)
public EntityUsedpublic EntityUsed(@Nonnull ResourceType<EntityStore, TriggerVolumeManager> var1)
public EnvironmentBlockBrokenpublic EnvironmentBlockBroken(@Nonnull ResourceType<EntityStore, TriggerVolumeManager> var1)
private void enqueueprivate void enqueue(int var1, @Nonnull ArchetypeChunk<EntityStore> var2, @Nonnull Store<EntityStore> var3, int var4, int var5, int var6, @Nonnull String var7, @Nonnull TriggerEventType var8)
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public void handlepublic void handle(int var1, @Nonnull ArchetypeChunk<EntityStore> var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4, @Nonnull BreakBlockEvent var5)
public void handlepublic void handle(int var1, @Nonnull ArchetypeChunk<EntityStore> var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4, @Nonnull PlaceBlockEvent var5)
public void handlepublic void handle(int var1, @Nonnull ArchetypeChunk<EntityStore> var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4, @Nonnull UseBlockEvent.Post var5)
public void handlepublic void handle(int var1, @Nonnull ArchetypeChunk<EntityStore> var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4, @Nonnull UseEntityEvent.Post var5)
public void handlepublic void handle(@Nonnull Store<EntityStore> var1, @Nonnull CommandBuffer<EntityStore> var2, @Nonnull EnvironmentBreakBlockEvent var3)
if if(var6 != null)
if if(var8 != null)
if if(var9 != null)
if if(var11 != null)
if if(var6 != null)
if if(var8 != null)
if if(var6 != null)
if if(var8 != null)
if if(var2 != null)
if if(var3 != null)
private static String resolveEntityTypeIdprivate static String resolveEntityTypeId(@Nonnull Store<EntityStore> var0, @Nonnull Ref<EntityStore> var1)
abstract super super(BreakBlockEvent.class)
abstract super super(PlaceBlockEvent.class)
abstract super super(UseBlockEvent.Post.class)
abstract super super(UseEntityEvent.Post.class)
abstract super super(EnvironmentBreakBlockEvent.class)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEventType;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.TriggerVolumeManager;
class="kw">import com.hypixel.hytale.component.Archetype;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.EntityEventSystem;
class="kw">import com.hypixel.hytale.component.system.WorldEventSystem;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.event.events.ecs.BreakBlockEvent;
class="kw">import com.hypixel.hytale.server.core.event.events.ecs.EnvironmentBreakBlockEvent;
class="kw">import com.hypixel.hytale.server.core.event.events.ecs.PlaceBlockEvent;
class="kw">import com.hypixel.hytale.server.core.event.events.ecs.UseBlockEvent;
class="kw">import com.hypixel.hytale.server.core.event.events.ecs.UseEntityEvent;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.item.ItemComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;

class="kw">public class="kw">final class TriggerVolumeBlockEventSystems {
   class="kw">private TriggerVolumeBlockEventSystems() {
   }

   class="kw">public class="kw">static class="kw">final class BlockBroken class="kw">extends EntityEventSystem<EntityStore, BreakBlockEvent> {
      @Nonnull
      class="kw">private class="kw">final ResourceType<EntityStore, TriggerVolumeManager> managerResourceType;

      class="kw">public BlockBroken(@Nonnull ResourceType<EntityStore, TriggerVolumeManager> var1) {
         super(BreakBlockEvent.class);
         this.managerResourceType = var1;
      }

      class="kw">public void handle(
         int var1,
         @Nonnull ArchetypeChunk<EntityStore> var2,
         @Nonnull Store<EntityStore> var3,
         @Nonnull CommandBuffer<EntityStore> var4,
         @Nonnull BreakBlockEvent var5
      ) {
         TriggerVolumeManager var6 = var3.getResource(this.managerResourceType);
         if (var6 != null) {
            Ref var7 = var2.getReferenceTo(var1);
            UUIDComponent var8 = var3.getComponent(var7, UUIDComponent.getComponentType());
            if (var8 != null) {
               Vector3i var9 = var5.getTargetBlock();
               var6.enqueueBlockEvent(
                  TriggerEventType.BLOCK_BROKEN,
                  var7,
                  var8.getUuid(),
                  new Vector3d(var9.x() + 0.5, var9.y() + 0.5, var9.z() + 0.5),
                  var5.getBlockType().getId()
               );
            }
         }
      }

      @Nullable
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Archetype.empty();
      }
   }

   class="kw">public class="kw">static class="kw">final class BlockPlaced class="kw">extends EntityEventSystem<EntityStore, PlaceBlockEvent> {
      @Nonnull
      class="kw">private class="kw">final ResourceType<EntityStore, TriggerVolumeManager> managerResourceType;

      class="kw">public BlockPlaced(@Nonnull ResourceType<EntityStore, TriggerVolumeManager> var1) {
         super(PlaceBlockEvent.class);
         this.managerResourceType = var1;
      }

      class="kw">public void handle(
         int var1,
         @Nonnull ArchetypeChunk<EntityStore> var2,
         @Nonnull Store<EntityStore> var3,
         @Nonnull CommandBuffer<EntityStore> var4,
         @Nonnull PlaceBlockEvent var5
      ) {
         ItemStack var6 = var5.getItemInHand();
         if (var6 != null && var6.getItem() != null && var6.getItem().hasBlockType()) {
            this.enqueue(
               var1,
               var2,
               var3,
               var5.getTargetBlock().x(),
               var5.getTargetBlock().y(),
               var5.getTargetBlock().z(),
               var6.getItem().getBlockId(),
               TriggerEventType.BLOCK_PLACED
            );
         }
      }

      @Nullable
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Archetype.empty();
      }

      class="kw">private void enqueue(
         int var1,
         @Nonnull ArchetypeChunk<EntityStore> var2,
         @Nonnull Store<EntityStore> var3,
         int var4,
         int var5,
         int var6,
         @Nonnull String var7,
         @Nonnull TriggerEventType var8
      ) {
         TriggerVolumeManager var9 = var3.getResource(this.managerResourceType);
         if (var9 != null) {
            Ref var10 = var2.getReferenceTo(var1);
            UUIDComponent var11 = var3.getComponent(var10, UUIDComponent.getComponentType());
            if (var11 != null) {
               var9.enqueueBlockEvent(var8, var10, var11.getUuid(), new Vector3d(var4 + 0.5, var5 + 0.5, var6 + 0.5), var7);
            }
         }
      }
   }

   class="kw">public class="kw">static class="kw">final class BlockUsed class="kw">extends EntityEventSystem<EntityStore, UseBlockEvent.Post> {
      @Nonnull
      class="kw">private class="kw">final ResourceType<EntityStore, TriggerVolumeManager> managerResourceType;

      class="kw">public BlockUsed(@Nonnull ResourceType<EntityStore, TriggerVolumeManager> var1) {
         super(UseBlockEvent.Post.class);
         this.managerResourceType = var1;
      }

      class="kw">public void handle(
         int var1,
         @Nonnull ArchetypeChunk<EntityStore> var2,
         @Nonnull Store<EntityStore> var3,
         @Nonnull CommandBuffer<EntityStore> var4,
         @Nonnull UseBlockEvent.Post var5
      ) {
         TriggerVolumeManager var6 = var3.getResource(this.managerResourceType);
         if (var6 != null) {
            Ref var7 = var2.getReferenceTo(var1);
            UUIDComponent var8 = var3.getComponent(var7, UUIDComponent.getComponentType());
            if (var8 != null) {
               Vector3i var9 = var5.getTargetBlock();
               var6.enqueueBlockEvent(
                  TriggerEventType.BLOCK_USED,
                  var7,
                  var8.getUuid(),
                  new Vector3d(var9.x() + 0.5, var9.y() + 0.5, var9.z() + 0.5),
                  var5.getBlockType().getId(),
                  var5.getInteractionType()
               );
            }
         }
      }

      @Nullable
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Archetype.empty();
      }
   }

   class="kw">public class="kw">static class="kw">final class EntityUsed class="kw">extends EntityEventSystem<EntityStore, UseEntityEvent.Post> {
      @Nonnull
      class="kw">private class="kw">final ResourceType<EntityStore, TriggerVolumeManager> managerResourceType;

      class="kw">public EntityUsed(@Nonnull ResourceType<EntityStore, TriggerVolumeManager> var1) {
         super(UseEntityEvent.Post.class);
         this.managerResourceType = var1;
      }

      class="kw">public void handle(
         int var1,
         @Nonnull ArchetypeChunk<EntityStore> var2,
         @Nonnull Store<EntityStore> var3,
         @Nonnull CommandBuffer<EntityStore> var4,
         @Nonnull UseEntityEvent.Post var5
      ) {
         TriggerVolumeManager var6 = var3.getResource(this.managerResourceType);
         if (var6 != null) {
            Ref var7 = var2.getReferenceTo(var1);
            UUIDComponent var8 = var3.getComponent(var7, UUIDComponent.getComponentType());
            if (var8 != null) {
               Ref var9 = var5.getTargetEntity();
               if (var9.isValid()) {
                  TransformComponent var10 = var3.getComponent(var9, TransformComponent.getComponentType());
                  if (var10 != null && var10.getPosition() != null) {
                     var6.enqueueEntityUseEvent(
                        var7, var8.getUuid(), new Vector3d(var10.getPosition()), resolveEntityTypeId(var3, var9), var5.getInteractionType()
                     );
                  }
               }
            }
         }
      }

      @Nullable
      class="kw">private class="kw">static String resolveEntityTypeId(@Nonnull Store<EntityStore> var0, @Nonnull Ref<EntityStore> var1) {
         ItemComponent var2 = var0.getComponent(var1, ItemComponent.getComponentType());
         if (var2 != null) {
            ItemStack var3 = var2.getItemStack();
            if (var3 != null) {
               class="kw">return var3.getItemId();
            }
         }

         class="kw">return null;
      }

      @Nullable
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Archetype.empty();
      }
   }

   class="kw">public class="kw">static class="kw">final class EnvironmentBlockBroken class="kw">extends WorldEventSystem<EntityStore, EnvironmentBreakBlockEvent> {
      @Nonnull
      class="kw">private class="kw">final ResourceType<EntityStore, TriggerVolumeManager> managerResourceType;

      class="kw">public EnvironmentBlockBroken(@Nonnull ResourceType<EntityStore, TriggerVolumeManager> var1) {
         super(EnvironmentBreakBlockEvent.class);
         this.managerResourceType = var1;
      }

      class="kw">public void handle(@Nonnull Store<EntityStore> var1, @Nonnull CommandBuffer<EntityStore> var2, @Nonnull EnvironmentBreakBlockEvent var3) {
         TriggerVolumeManager var4 = var1.getResource(this.managerResourceType);
         if (var4 != null && var4.hasVolumes()) {
            Vector3i var5 = var3.getTargetBlock();
            var4.enqueueEnvironmentBlockEvent(
               TriggerEventType.BLOCK_BROKEN, new Vector3d(var5.x() + 0.5, var5.y() + 0.5, var5.z() + 0.5), var3.getBlockType().getId()
            );
         }
      }
   }
}