EntityUsed class
Пакет: com.hypixel.hytale.builtin.triggervolumes.system
Файл: com/hypixel/hytale/builtin/triggervolumes/system/TriggerVolumeBlockEventSystems.java
extends: EntityEventSystem<EntityStore, UseEntityEvent.Post>
Поля (8)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final ResourceType<EntityStore, TriggerVolumeManager> |
managerResourceType |
|
TransformComponent |
var10 |
|
ItemComponent |
var2 |
|
ItemStack |
var3 |
|
TriggerVolumeManager |
var6 |
|
Ref |
var7 |
|
UUIDComponent |
var8 |
|
Ref |
var9 |
Методы (8)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
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 UseEntityEvent.Post var5) |
|
|
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(UseEntityEvent.Post.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()
);
}
}
}
}