Mask class

Пакет: com.hypixel.hytale.server.worldgen.util.condition

Файл: com/hypixel/hytale/server/worldgen/util/condition/BlockMaskCondition.java

Поля (3)

МодификаторыТипИмя
private final BlockMaskCondition.MaskEntry[] entries
private final boolean matchEmpty
BlockMaskCondition.Mask var2

Методы (7)

МодификаторыВозвратСигнатура
public boolean equalspublic boolean equals(@Nullable Object var1)
for for(BlockMaskCondition.MaskEntry var6 : this.entries)
public int hashCodepublic int hashCode()
if if(this == var1)
public boolean shouldReplacepublic boolean shouldReplace(int var1, int var2)
abstract this this(false, var1)
public String toStringpublic String toString()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.util.condition;

class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.worldgen.util.ResolvedBlockArray;
class="kw">import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.longs.Long2ObjectMaps;
class="kw">import java.util.Arrays;
class="kw">import java.util.Objects;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class BlockMaskCondition {
   class="kw">public class="kw">static class="kw">final BlockMaskCondition.Mask DEFAULT_MASK = new BlockMaskCondition.Mask(true, new BlockMaskCondition.MaskEntry[0]);
   class="kw">public class="kw">static class="kw">final BlockMaskCondition DEFAULT_TRUE = new BlockMaskCondition();
   class="kw">public class="kw">static class="kw">final BlockMaskCondition DEFAULT_FALSE = new BlockMaskCondition();
   @Nonnull
   class="kw">private BlockMaskCondition.Mask defaultMask = DEFAULT_MASK;
   @Nonnull
   class="kw">private Long2ObjectMap<BlockMaskCondition.Mask> specificMasks = Long2ObjectMaps.emptyMap();

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

   class="kw">public void set(@Nonnull BlockMaskCondition.Mask var1, @Nonnull Long2ObjectMap<BlockMaskCondition.Mask> var2) {
      this.defaultMask = var1;
      this.specificMasks = var2;
   }

   class="kw">public boolean eval(int var1, int var2, int var3, int var4) {
      BlockMaskCondition.Mask var5 = (BlockMaskCondition.Mask)this.specificMasks.getOrDefault(MathUtil.packLong(var3, var4), this.defaultMask);
      class="kw">return var5.shouldReplace(var1, var2);
   }

   @Override
   class="kw">public boolean equals(@Nullable Object var1) {
      if (this == var1) {
         class="kw">return true;
      } else if (var1 != null && this.getClass() == var1.getClass()) {
         BlockMaskCondition var2 = (BlockMaskCondition)var1;
         class="kw">return !this.defaultMask.equals(var2.defaultMask) ? false : Objects.equals(this.specificMasks, var2.specificMasks);
      } else {
         class="kw">return false;
      }
   }

   @Override
   class="kw">public int hashCode() {
      int var1 = this.defaultMask.hashCode();
      class="kw">return 31 * var1 + (this.specificMasks != null ? this.specificMasks.hashCode() : 0);
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "BlockMaskCondition{defaultMask=" + this.defaultMask + ", specificMasks=" + this.specificMasks + "}";
   }

   class="kw">public class="kw">static class Mask {
      class="kw">private class="kw">final boolean matchEmpty;
      class="kw">private class="kw">final BlockMaskCondition.MaskEntry[] entries;

      class="kw">public Mask(@Nonnull BlockMaskCondition.MaskEntry[] var1) {
         this(false, var1);
      }

      class="kw">private Mask(boolean var1, @Nonnull BlockMaskCondition.MaskEntry[] var2) {
         this.entries = var2;
         this.matchEmpty = var1;
      }

      class="kw">public boolean shouldReplace(int var1, int var2) {
         for (BlockMaskCondition.MaskEntry var6 : this.entries) {
            if (var6.shouldHandle(var1, var2)) {
               class="kw">return var6.shouldReplace();
            }
         }

         class="kw">return this.matchEmpty && (var1 == 0 || var2 == 0);
      }

      @Override
      class="kw">public boolean equals(@Nullable Object var1) {
         if (this == var1) {
            class="kw">return true;
         } else if (var1 != null && this.getClass() == var1.getClass()) {
            BlockMaskCondition.Mask var2 = (BlockMaskCondition.Mask)var1;
            class="kw">return Arrays.equals(this.entries, var2.entries);
         } else {
            class="kw">return false;
         }
      }

      @Override
      class="kw">public int hashCode() {
         class="kw">return Arrays.hashCode(this.entries);
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "Mask{entries=" + Arrays.toString(this.entries) + "}";
      }
   }

   class="kw">public class="kw">static class MaskEntry {
      class="kw">public class="kw">static class="kw">final BlockMaskCondition.MaskEntry WILDCARD_TRUE = new BlockMaskCondition.MaskEntry(true, true);
      class="kw">public class="kw">static class="kw">final BlockMaskCondition.MaskEntry WILDCARD_FALSE = new BlockMaskCondition.MaskEntry(true, false);
      class="kw">private ResolvedBlockArray blocks = ResolvedBlockArray.EMPTY;
      class="kw">private class="kw">final boolean any;
      class="kw">private boolean replace;

      class="kw">public MaskEntry() {
         this(false, false);
      }

      class="kw">public MaskEntry(boolean var1, boolean var2) {
         this.any = var1;
         this.replace = var2;
      }

      class="kw">public void set(ResolvedBlockArray var1, boolean var2) {
         this.blocks = var1;
         this.replace = var2;
      }

      class="kw">public boolean shouldHandle(int var1, int var2) {
         class="kw">return this.any || this.blocks.contains(var1, var2);
      }

      class="kw">public boolean shouldReplace() {
         class="kw">return this.replace;
      }

      @Override
      class="kw">public boolean equals(@Nullable Object var1) {
         if (this == var1) {
            class="kw">return true;
         }

         if (var1 != null && this.getClass() == var1.getClass()) {
            BlockMaskCondition.MaskEntry var2 = (BlockMaskCondition.MaskEntry)var1;
            if (this.any != var2.any) {
               class="kw">return false;
            } else {
               class="kw">return this.replace != var2.replace ? false : this.blocks.equals(var2.blocks);
            }
         } else {
            class="kw">return false;
         }
      }

      @Override
      class="kw">public int hashCode() {
         int var1 = this.blocks.hashCode();
         var1 = 31 * var1 + (this.any ? 1 : 0);
         class="kw">return 31 * var1 + (this.replace ? 1 : 0);
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "MaskEntry{blocks=" + this.blocks + ", replace=" + this.replace + "}";
      }
   }
}