FarmingStageData class

Пакет: com.hypixel.hytale.server.core.asset.type.blocktype.config.farming

Файл: com/hypixel/hytale/server/core/asset/type/blocktype/config/farming/FarmingStageData.java

Поля (7)

МодификаторыТипИмя
int var10
int var11
World var12
Store var13
int var6
ChunkSection var8
int var9

Методы (12)

МодификаторыВозвратСигнатура
public void applyvoid apply(@Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6, @Nullable FarmingStageData var7)
public boolean canApplyboolean canApply(@Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6)
public boolean consumesRemainingTimeboolean consumesRemainingTime()
public int getSoundEventIndexint getSoundEventIndex()
if if(var0.soundEventId != null)
if if(var3x == var3 && var4x == var4 && var5x == var5)
if if(var8 != null)
if if(var7 != null)
public boolean implementsShouldStopboolean implementsShouldStop()
public void removevoid remove(@Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6)
public boolean shouldStopboolean shouldStop(@Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6)
static boolean testFillerPositionsboolean testFillerPositions(@Nonnull ComponentAccessor<ChunkStore> var0, @Nonnull BlockSection var1, @Nonnull BlockType var2, int var3, int var4, int var5)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.blocktype.config.farming;

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.lookup.CodecMapCodec;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
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.Rangef;
class="kw">import com.hypixel.hytale.protocol.SoundCategory;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.asset.type.soundevent.config.SoundEvent;
class="kw">import com.hypixel.hytale.server.core.asset.type.soundevent.validator.SoundEventValidators;
class="kw">import com.hypixel.hytale.server.core.codec.ProtocolCodecs;
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.chunk.BlockOperations;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.BlockSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.ChunkSection;
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 com.hypixel.hytale.server.core.util.FillerBlockUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class="kw">abstract class FarmingStageData {
   @Nonnull
   class="kw">public class="kw">static class="kw">final CodecMapCodec<FarmingStageData> CODEC = new CodecMapCodec<>("Type");
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<FarmingStageData> BASE_CODEC = BuilderCodec.abstractBuilder(FarmingStageData.class)
      .append(new KeyedCodec<>("Duration", ProtocolCodecs.RANGEF), (var0, var1) -> var0.duration = var1, var0 -> var0.duration)
      .add()
      .<String>append(new KeyedCodec<>("SoundEventId", Codec.STRING), (var0, var1) -> var0.soundEventId = var1, var0 -> var0.soundEventId)
      .addValidator(SoundEvent.VALIDATOR_CACHE.getValidator())
      .addValidator(SoundEventValidators.MONO)
      .addValidator(SoundEventValidators.ONESHOT)
      .add()
      .afterDecode(var0 -> {
         if (var0.soundEventId != null) {
            var0.soundEventIndex = SoundEvent.getAssetMap().getIndex(var0.soundEventId);
         }
      })
      .build();
   class="kw">protected Rangef duration;
   @Nullable
   class="kw">protected String soundEventId;
   class="kw">protected class="kw">transient int soundEventIndex = 0;

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

   @Nullable
   class="kw">public Rangef getDuration() {
      class="kw">return this.duration;
   }

   @Nullable
   class="kw">public String getSoundEventId() {
      class="kw">return this.soundEventId;
   }

   class="kw">public int getSoundEventIndex() {
      class="kw">return this.soundEventIndex;
   }

   class="kw">public boolean implementsShouldStop() {
      class="kw">return false;
   }

   class="kw">public boolean consumesRemainingTime() {
      class="kw">return false;
   }

   class="kw">public boolean shouldStop(
      @Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6
   ) {
      class="kw">return false;
   }

   class="kw">public boolean canApply(
      @Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6
   ) {
      class="kw">return true;
   }

   class="kw">protected class="kw">static boolean testFillerPositions(
      @Nonnull ComponentAccessor<ChunkStore> var0, @Nonnull BlockSection var1, @Nonnull BlockType var2, int var3, int var4, int var5
   ) {
      int var6 = var1.getRotationIndex(var3, var4, var5);
      class="kw">return BlockOperations.testPlaceBlock(
         var0,
         var1,
         var3,
         var4,
         var5,
         var2,
         var6,
         (var3x, var4x, var5x, var6x, var7, var8) -> {
            if (var3x == var3 && var4x == var4 && var5x == var5) {
               class="kw">return true;
            } else {
               class="kw">return var8 == 0
                  ? false
                  : var3x - FillerBlockUtil.unpackX(var8) == var3
                     && var4x - FillerBlockUtil.unpackY(var8) == var4
                     && var5x - FillerBlockUtil.unpackZ(var8) == var5;
            }
         }
      );
   }

   class="kw">public void apply(
      @Nonnull ComponentAccessor<ChunkStore> var1,
      @Nonnull Ref<ChunkStore> var2,
      @Nonnull Ref<ChunkStore> var3,
      int var4,
      int var5,
      int var6,
      @Nullable FarmingStageData var7
   ) {
      ChunkSection var8 = var1.getComponent(var2, ChunkSection.getComponentType());
      if (var8 != null) {
         int var9 = ChunkUtil.worldCoordFromLocalCoord(var8.getX(), var4);
         int var10 = ChunkUtil.worldCoordFromLocalCoord(var8.getY(), var5);
         int var11 = ChunkUtil.worldCoordFromLocalCoord(var8.getZ(), var6);
         World var12 = var1.getExternalData().getWorld();
         Store var13 = var12.getEntityStore().getStore();
         SoundUtil.playSoundEvent3d(this.soundEventIndex, SoundCategory.SFX, var9, var10, var11, var13);
         if (var7 != null) {
            var7.remove(var1, var2, var3, var4, var5, var6);
         }
      }
   }

   class="kw">public void remove(@Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6) {
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "FarmingStageData{duration=" + this.duration + ", soundEventId='" + this.soundEventId + "'}";
   }
}