SeatingInteraction class

Пакет: com.hypixel.hytale.builtin.mounts.interactions

Файл: com/hypixel/hytale/builtin/mounts/interactions/SeatingInteraction.java

extends: SimpleBlockInteraction

Поля (9)

МодификаторыТипИмя
BlockPosition var10
Vector3d var11
BlockMountAPI.BlockMountResult var12
int var14
String var15
int var16
BlockSoundSet var17
Ref var8
PlayerRef var9

Методы (3)

МодификаторыВозвратСигнатура
if if(var9 != null)
if if(var12 == BlockMountAPI.DidNotMount.ALREADY_MOUNTED)
if if(var15 != null)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.mounts.BlockMountAPI;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import com.hypixel.hytale.protocol.BlockPosition;
class="kw">import com.hypixel.hytale.protocol.BlockSoundEvent;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.SoundCategory;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocksound.config.BlockSoundSet;
class="kw">import com.hypixel.hytale.server.core.asset.type.soundevent.config.SoundEvent;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionContext;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.CooldownHandler;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.client.SimpleBlockInteraction;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.SoundUtil;
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 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 SeatingInteraction class="kw">extends SimpleBlockInteraction {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<SeatingInteraction> CODEC = BuilderCodec.builder(
         SeatingInteraction.class, SeatingInteraction::new, SimpleBlockInteraction.CODEC
      )
      .documentation("Arranges perfect seating accommodations")
      .build();

   class="kw">public SeatingInteraction() {
   }

   @Override
   class="kw">protected void interactWithBlock(
      @Nonnull World var1,
      @Nonnull CommandBuffer<EntityStore> var2,
      @Nonnull InteractionType var3,
      @Nonnull InteractionContext var4,
      @Nullable ItemStack var5,
      @Nonnull Vector3i var6,
      @Nonnull CooldownHandler var7
   ) {
      Ref var8 = var4.getEntity();
      PlayerRef var9 = var2.getComponent(var8, PlayerRef.getComponentType());
      if (var9 != null) {
         BlockPosition var10 = var4.getMetaStore().getMetaObject(TARGET_BLOCK_RAW);
         Vector3d var11 = new Vector3d(var10.x + 0.5, var10.y + 0.5, var10.z + 0.5);
         BlockMountAPI.BlockMountResult var12 = BlockMountAPI.mountOnBlock(var8, var2, var6, var11);
         if (var12 == BlockMountAPI.DidNotMount.ALREADY_MOUNTED) {
            int var14 = SoundEvent.getAssetMap().getIndex("SFX_Creative_Play_Add_Mask");
            SoundUtil.playSoundEvent2d(var8, var14, SoundCategory.SFX, var2);
         } else if (var12 class="kw">instanceof BlockMountAPI.Mounted var13) {
            BlockSoundSet var17 = BlockSoundSet.getAssetMap().getAsset(var13.blockType().getBlockSoundSetIndex());
            String var15 = var17 == null ? null : var17.getSoundEventIds().getOrDefault(BlockSoundEvent.Walk, null);
            if (var15 != null) {
               int var16 = SoundEvent.getAssetMap().getIndex(var15);
               SoundUtil.playSoundEvent3dToPlayer(var8, var16, SoundCategory.SFX, Vector3iUtil.toVector3d(var6), var2);
            }
         } else {
            var9.sendMessage(Message.translation("server.interactions.didNotMount").param("state", var12.toString()));
         }
      }
   }

   @Override
   class="kw">protected void simulateInteractWithBlock(
      @Nonnull InteractionType var1, @Nonnull InteractionContext var2, @Nullable ItemStack var3, @Nonnull World var4, @Nonnull Vector3i var5
   ) {
   }
}