UseCoopInteraction class

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

Файл: com/hypixel/hytale/builtin/adventure/farming/interactions/UseCoopInteraction.java

extends: SimpleBlockInteraction

Поля (14)

МодификаторыТипИмя
int var10
Store var11
Ref var12
BlockSection var13
BlockComponentSection var14
int var15
BlockType var16
Ref var17
var17
CoopBlock var18
Ref var19
CombinedItemContainer var20
int var8
int var9

Методы (3)

МодификаторыВозвратСигнатура
if if(var13 != null && var14 != null)
if if(var16 == null)
if if(var18 == null)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.adventure.farming.states.CoopBlock;
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.component.Store;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.protocol.InteractionState;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionContext;
class="kw">import com.hypixel.hytale.server.core.inventory.InventoryComponent;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.inventory.container.CombinedItemContainer;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockEntity;
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.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.BlockOperations;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.BlockComponentSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.BlockSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
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.Vector3i;

class="kw">public class UseCoopInteraction class="kw">extends SimpleBlockInteraction {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<UseCoopInteraction> CODEC = BuilderCodec.builder(
         UseCoopInteraction.class, UseCoopInteraction::new, SimpleBlockInteraction.CODEC
      )
      .build();

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

   @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
   ) {
      int var8 = var6.x();
      int var9 = var6.y();
      int var10 = var6.z();
      Store var11 = var1.getChunkStore().getStore();
      Ref var12 = var1.getChunkStore().getChunkSectionReferenceAtBlock(var8, var9, var10);
      if (var12 != null && var12.isValid()) {
         BlockSection var13 = var11.getComponent(var12, BlockSection.getComponentType());
         BlockComponentSection var14 = var11.getComponent(var12, BlockComponentSection.getComponentType());
         if (var13 != null && var14 != null) {
            int var15 = ChunkUtil.indexBlock(var8, var9, var10);
            BlockType var16 = BlockType.getAssetMap().getAsset(var13.get(var15));
            if (var16 == null) {
               var4.getState().state = InteractionState.Failed;
            } else {
               Ref var17 = var14.getBlockReference(var15);
               if ((var17 == null || !var17.isValid()) && BlockEntity.declaresComponent(var16, CoopBlock.getComponentType())) {
                  var17 = BlockEntity.ensureBlockEntity(var11, var12, var14, var8, var9, var10, var16, var13.getFiller(var15));
               }

               if (var17 != null && var17.isValid()) {
                  CoopBlock var18 = var11.getComponent(var17, CoopBlock.getComponentType());
                  if (var18 == null) {
                     var4.getState().state = InteractionState.Failed;
                  } else {
                     Ref var19 = var4.getEntity();
                     CombinedItemContainer var20 = InventoryComponent.getCombined(var2, var19, InventoryComponent.HOTBAR_FIRST);
                     var18.gatherProduceFromContainer(var20);
                     BlockOperations.setBlockInteractionState(
                        var1.getChunkStore(), var12, var8, var9, var10, var16, var18.hasProduce() ? "Produce_Ready" : "class="kw">default", false
                     );
                  }
               } else {
                  var4.getState().state = InteractionState.Failed;
               }
            }
         } else {
            var4.getState().state = InteractionState.Failed;
         }
      } else {
         var4.getState().state = InteractionState.Failed;
      }
   }

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