Material class

Пакет: com.hypixel.hytale.builtin.buildertools.utils

Файл: com/hypixel/hytale/builtin/buildertools/utils/Material.java

Поля (13)

МодификаторыТипИмя
final Material EMPTY
BlockPattern.BlockEntry var1
BlockType var1
int var1
FluidPatternHelper.FluidInfo var2
String var2
BlockPattern.BlockEntry var2
int var3
Fluid var3
FluidPatternHelper.FluidInfo var3
FluidPatternHelper.FluidInfo var4
int var4
int var5

Методы (19)

МодификаторыВозвратСигнатура
abstract return blockreturn block(var0, 0)
public int getBlockIdint getBlockId()
public int getFillerint getFiller()
public int getFluidIdint getFluidId()
public byte getFluidLevelbyte getFluidLevel()
public int getRotationint getRotation()
public int getSupportint getSupport()
public boolean hasRotationboolean hasRotation()
if if(var1 != null)
if if(var2 != null)
if if(var3 != Integer.MIN_VALUE)
if if(var4 != null)
if if(this == var1)
if if(var2 != null)
if if(var3 != null)
if if(var4 != Integer.MIN_VALUE)
public boolean isBlockboolean isBlock()
public boolean isEmptyboolean isEmpty()
public boolean isFluidboolean isFluid()

Исходный код

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

class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.RotationTuple;
class="kw">import com.hypixel.hytale.server.core.asset.type.fluid.Fluid;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.mask.BlockPattern;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import java.util.Objects;
class="kw">import java.util.Random;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class="kw">final class Material {
   class="kw">public class="kw">static class="kw">final Material EMPTY = new Material(0, 0, (byte)0, 0, 0, 0, null);
   class="kw">private class="kw">final int blockId;
   class="kw">private class="kw">final int fluidId;
   class="kw">private class="kw">final byte fluidLevel;
   class="kw">private class="kw">final int rotation;
   class="kw">private class="kw">final int support;
   class="kw">private class="kw">final int filler;
   @Nullable
   class="kw">private class="kw">final Holder<ChunkStore> holder;

   class="kw">private Material(int var1, int var2, byte var3, int var4, int var5, int var6, @Nullable Holder<ChunkStore> var7) {
      this.blockId = var1;
      this.fluidId = var2;
      this.fluidLevel = var3;
      this.rotation = var4;
      this.support = var5;
      this.filler = var6;
      this.holder = var7;
   }

   @Nonnull
   class="kw">public class="kw">static Material block(int var0) {
      class="kw">return block(var0, 0);
   }

   @Nonnull
   class="kw">public class="kw">static Material block(int var0, int var1) {
      class="kw">return var0 == 0 ? EMPTY : new Material(var0, 0, (byte)0, var1, 0, 0, null);
   }

   @Nonnull
   class="kw">public class="kw">static Material fluid(int var0, byte var1) {
      class="kw">return var0 == 0 ? EMPTY : new Material(0, var0, var1, 0, 0, 0, null);
   }

   @Nonnull
   class="kw">public class="kw">static Material full(int var0, int var1, int var2, int var3, @Nullable Holder<ChunkStore> var4) {
      class="kw">return var0 == 0 ? EMPTY : new Material(var0, 0, (byte)0, var1, var2, var3, var4);
   }

   @Nonnull
   class="kw">public class="kw">static Material full(int var0, int var1, int var2, int var3, @Nullable Holder<ChunkStore> var4, int var5, byte var6) {
      class="kw">return new Material(var0, var5, var6, var1, var2, var3, var4);
   }

   @Nullable
   class="kw">public class="kw">static Material fromKey(@Nonnull String var0) {
      if (var0.equalsIgnoreCase("empty")) {
         class="kw">return EMPTY;
      }

      BlockPattern.BlockEntry var1 = BlockPattern.tryParseBlockTypeKey(var0);
      if (var1 != null) {
         FluidPatternHelper.FluidInfo var2 = FluidPatternHelper.getFluidInfo(var1.blockTypeKey());
         if (var2 != null) {
            class="kw">return fluid(var2.fluidId(), var2.fluidLevel());
         }

         int var3 = BlockType.getAssetMap().getIndex(var1.blockTypeKey());
         if (var3 != Integer.MIN_VALUE) {
            class="kw">return block(var3, var1.rotation());
         }
      }

      FluidPatternHelper.FluidInfo var4 = FluidPatternHelper.getFluidInfo(var0);
      if (var4 != null) {
         class="kw">return fluid(var4.fluidId(), var4.fluidLevel());
      }

      int var5 = BlockType.getAssetMap().getIndex(var0);
      class="kw">return var5 != Integer.MIN_VALUE ? block(var5) : null;
   }

   class="kw">public boolean isFluid() {
      class="kw">return this.fluidId != 0;
   }

   class="kw">public boolean isBlock() {
      class="kw">return this.blockId != 0 && this.fluidId == 0;
   }

   class="kw">public boolean isEmpty() {
      class="kw">return this.blockId == 0 && this.fluidId == 0;
   }

   class="kw">public int getBlockId() {
      class="kw">return this.blockId;
   }

   class="kw">public int getFluidId() {
      class="kw">return this.fluidId;
   }

   class="kw">public byte getFluidLevel() {
      class="kw">return this.fluidLevel;
   }

   class="kw">public int getRotation() {
      class="kw">return this.rotation;
   }

   class="kw">public boolean hasRotation() {
      class="kw">return this.rotation != 0;
   }

   class="kw">public int getSupport() {
      class="kw">return this.support;
   }

   class="kw">public int getFiller() {
      class="kw">return this.filler;
   }

   @Nullable
   class="kw">public Holder<ChunkStore> getHolder() {
      class="kw">return this.holder;
   }

   @Override
   class="kw">public String toString() {
      if (this.isEmpty()) {
         class="kw">return "Material[empty]";
      } else if (this.isFluid()) {
         Fluid var3 = Fluid.getAssetMap().getAsset(this.fluidId);
         class="kw">return "Material[fluid=" + (var3 != null ? var3.getId() : this.fluidId) + ", level=" + this.fluidLevel + "]";
      } else {
         BlockType var1 = BlockType.getAssetMap().getAsset(this.blockId);
         String var2 = this.hasRotation() ? ", rotation=" + RotationTuple.get(this.rotation) : "";
         class="kw">return "Material[block=" + (var1 != null ? var1.getId() : this.blockId) + var2 + "]";
      }
   }

   @Override
   class="kw">public boolean equals(Object var1) {
      if (this == var1) {
         class="kw">return true;
      } else {
         class="kw">return !(var1 class="kw">instanceof Material var2)
            ? false
            : this.blockId == var2.blockId
               && this.fluidId == var2.fluidId
               && this.fluidLevel == var2.fluidLevel
               && this.rotation == var2.rotation
               && this.support == var2.support
               && this.filler == var2.filler
               && Objects.equals(this.holder, var2.holder);
      }
   }

   @Override
   class="kw">public int hashCode() {
      int var1 = 31 * (31 * (31 * this.blockId + this.fluidId) + this.fluidLevel) + this.rotation;
      class="kw">return 31 * (31 * (31 * var1 + this.support) + this.filler) + Objects.hashCode(this.holder);
   }

   @Nonnull
   class="kw">public class="kw">static Material fromPattern(@Nonnull BlockPattern var0, @Nonnull Random var1) {
      BlockPattern.BlockEntry var2 = var0.nextBlockTypeKey(var1);
      if (var2 != null) {
         FluidPatternHelper.FluidInfo var3 = FluidPatternHelper.getFluidInfo(var2.blockTypeKey());
         if (var3 != null) {
            class="kw">return fluid(var3.fluidId(), var3.fluidLevel());
         }

         int var4 = BlockType.getAssetMap().getIndex(var2.blockTypeKey());
         if (var4 != Integer.MIN_VALUE) {
            class="kw">return block(var4, var2.rotation());
         }
      }

      class="kw">return block(var0.nextBlock(var1));
   }
}