Wilderness class

Пакет: com.hypixel.hytale.builtin.adventure.wilderness.component

Файл: com/hypixel/hytale/builtin/adventure/wilderness/component/Wilderness.java

implements: Component<EntityStore>

Поля (20)

МодификаторыТипИмя
final int INVALID_COORD
int var10
int var11
int var12
int var13
int var14
int var15
int var16
int var17
int var4
int var4
int var5
long var5
int var5
int var6
int var6
int var7
int var7
int var8
int var9

Методы (22)

МодификаторыВозвратСигнатура
public int beginint begin()
public boolean emptyboolean empty()
for for(int var18 = var10; var18 <= var13; var18++)
for for(int var19 = var11; var19 <= var14; var17++)
public int getChunkXint getChunkX()
public int getChunkYint getChunkY()
public int getChunkZint getChunkZ()
static ComponentType<EntityStore, Wilderness> getComponentTypeComponentType<EntityStore, Wilderness> getComponentType()
public int getXint getX()
public int getYint getY()
public int getZint getZ()
if if(var5 != this.generation || var7 != this.chunkX || var8 != this.chunkY || var9 != this.chunkZ)
protected int indexint index(int var1, int var2, int var3)
public void movevoid move(int var1, int var2, int var3, @Nonnull WildernessTracker var4)
public int nextint next(int var1)
public boolean testboolean test(int var1, int var2, int var3)
abstract this this(0, 0)
abstract this this(var1.radiusXZ, var1.radiusY)
while while(var16 <= var15)
public int xFromIndexint xFromIndex(int var1)
public int yFromIndexint yFromIndex(int var1)
public int zFromIndexint zFromIndex(int var1)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.adventure.wilderness.WildernessPlugin;
class="kw">import com.hypixel.hytale.builtin.adventure.wilderness.resource.WildernessTracker;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.BitSet;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3i;

class="kw">public class Wilderness class="kw">implements Component<EntityStore> {
   class="kw">protected class="kw">static class="kw">final int INVALID_COORD = Integer.MIN_VALUE;
   class="kw">protected long generation = Long.MIN_VALUE;
   class="kw">protected int x;
   class="kw">protected int y;
   class="kw">protected int z;
   class="kw">protected int chunkX = Integer.MIN_VALUE;
   class="kw">protected int chunkY = Integer.MIN_VALUE;
   class="kw">protected int chunkZ = Integer.MIN_VALUE;
   class="kw">protected class="kw">final int sizeY;
   class="kw">protected class="kw">final int sizeXZ;
   class="kw">protected class="kw">final int sizeXZ2;
   class="kw">protected class="kw">final int radiusY;
   class="kw">protected class="kw">final int radiusXZ;
   class="kw">protected class="kw">final BitSet chunks = new BitSet();
   class="kw">protected class="kw">final class="kw">transient Vector3i vector = new Vector3i();

   class="kw">public Wilderness() {
      this(0, 0);
   }

   class="kw">public Wilderness(int var1, int var2) {
      this.radiusY = var2;
      this.radiusXZ = var1;
      this.sizeY = 1 + 2 * this.radiusY;
      this.sizeXZ = 1 + 2 * this.radiusXZ;
      this.sizeXZ2 = this.sizeY * this.sizeXZ;
   }

   class="kw">public Wilderness(@Nonnull Wilderness var1) {
      this(var1.radiusXZ, var1.radiusY);
      this.generation = var1.generation;
      this.x = var1.x;
      this.y = var1.y;
      this.z = var1.z;
      this.chunkX = var1.chunkX;
      this.chunkY = var1.chunkY;
      this.chunkZ = var1.chunkZ;
      this.chunks.or(var1.chunks);
      this.vector.set(var1.vector);
   }

   class="kw">public int getX() {
      class="kw">return this.x;
   }

   class="kw">public int getY() {
      class="kw">return this.y;
   }

   class="kw">public int getZ() {
      class="kw">return this.z;
   }

   class="kw">public int getChunkX() {
      class="kw">return this.chunkX;
   }

   class="kw">public int getChunkY() {
      class="kw">return this.chunkY;
   }

   class="kw">public int getChunkZ() {
      class="kw">return this.chunkZ;
   }

   class="kw">public int begin() {
      class="kw">return this.chunks.nextSetBit(0);
   }

   class="kw">public int next(int var1) {
      class="kw">return this.chunks.nextSetBit(var1 + 1);
   }

   class="kw">public boolean empty() {
      class="kw">return this.chunks.isEmpty();
   }

   class="kw">public int xFromIndex(int var1) {
      class="kw">return var1 / this.sizeY % this.sizeXZ + this.chunkX - this.radiusXZ;
   }

   class="kw">public int yFromIndex(int var1) {
      class="kw">return var1 % this.sizeY + this.chunkY - this.radiusY;
   }

   class="kw">public int zFromIndex(int var1) {
      class="kw">return var1 / this.sizeXZ2 + this.chunkZ - this.radiusXZ;
   }

   class="kw">public boolean test(int var1, int var2, int var3) {
      int var4 = ChunkUtil.chunkCoordinate(var1);
      int var5 = ChunkUtil.chunkCoordinate(var2);
      int var6 = ChunkUtil.chunkCoordinate(var3);
      int var7 = this.index(var4, var5, var6);
      class="kw">return var7 != -1 && this.chunks.get(var7);
   }

   class="kw">public void move(int var1, int var2, int var3, @Nonnull WildernessTracker var4) {
      this.x = var1;
      this.y = var2;
      this.z = var3;
      long var5 = var4.generation();
      int var7 = ChunkUtil.chunkCoordinate(var1);
      int var8 = ChunkUtil.chunkCoordinate(var2);
      int var9 = ChunkUtil.chunkCoordinate(var3);
      if (var5 != this.generation || var7 != this.chunkX || var8 != this.chunkY || var9 != this.chunkZ) {
         this.chunkX = var7;
         this.chunkY = var8;
         this.chunkZ = var9;
         this.generation = var5;
         int var10 = var7 - this.radiusXZ;
         int var11 = var8 - this.radiusY;
         int var12 = var9 - this.radiusXZ;
         int var13 = var7 + this.radiusXZ;
         int var14 = var8 + this.radiusY;
         int var15 = var9 + this.radiusXZ;
         this.chunks.clear();
         int var16 = var12;
         int var17 = 0;

         while (var16 <= var15) {
            this.vector.z = var16;

            for (int var18 = var10; var18 <= var13; var18++) {
               this.vector.x = var18;

               for (int var19 = var11; var19 <= var14; var17++) {
                  this.vector.y = var19;
                  this.chunks.set(var17, var4.isWildernessChunk(this.vector));
                  var19++;
               }
            }

            var16++;
         }
      }
   }

   @Nullable
   class="kw">public Wilderness clone() {
      class="kw">return new Wilderness(this);
   }

   class="kw">protected int index(int var1, int var2, int var3) {
      int var4 = var1 - this.chunkX + this.radiusXZ;
      int var5 = var2 - this.chunkY + this.radiusY;
      int var6 = var3 - this.chunkZ + this.radiusXZ;
      class="kw">return var4 >= 0 && var4 < this.sizeXZ && var5 >= 0 && var5 < this.sizeY && var6 >= 0 && var6 < this.sizeXZ
         ? var5 + var4 * this.sizeY + var6 * this.sizeXZ2
         : -1;
   }

   class="kw">public class="kw">static ComponentType<EntityStore, Wilderness> getComponentType() {
      class="kw">return WildernessPlugin.get().getWildernessComponentType();
   }
}