LocalCachedChunkAccessor class

Пакет: com.hypixel.hytale.server.core.universe.world.accessor

Файл: com/hypixel/hytale/server/core/universe/world/accessor/LocalCachedChunkAccessor.java

implements: OverridableChunkAccessor

Поля (43)

МодификаторыТипИмя
final ChunkAccessor delegate
int var2
LocalCachedChunkAccessor var3
int var3
int var3
int var3
int var3
int var3
int var3
int var3
int var3
int var3
int var3
int var4
WorldChunk var4
int var4
int var4
int var4
int var4
int var4
int var4
int var4
int var4
int var4
int var5
int var5
int var5
int var5
int var5
int var5
int var5
int var5
WorldChunk var6
WorldChunk var6
WorldChunk var6
WorldChunk var6
var6
WorldChunk var6
var6
WorldChunk var6
var6
WorldChunk var6
WorldChunk var6

Методы (23)

МодификаторыВозвратСигнатура
public void cacheChunksInRadiusvoid cacheChunksInRadius()
for for(int var1 = 0; var1 < this.length; var1++)
for for(int var2 = 0; var2 < this.length; var2++)
public int getCenterXint getCenterX()
public int getCenterZint getCenterZ()
public ChunkAccessor getDelegateChunkAccessor getDelegate()
public int getLengthint getLength()
public int getMinXint getMinX()
public int getMinZint getMinZ()
if if(var4 == null)
if if(var2 >= 0 && var2 < this.length && var3 >= 0 && var3 < this.length)
if if(var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length)
if if(var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length)
if if(var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length)
if if(var6 != null)
if if(var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length)
if if(var6 == null)
if if(var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length)
if if(var6 == null)
if if(var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length)
if if(var6 == null)
if if(var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length)
if if(var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.accessor;

class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.ChunkFlag;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

@Deprecated(forRemoval = true)
class="kw">public class LocalCachedChunkAccessor class="kw">implements OverridableChunkAccessor {
   class="kw">private class="kw">final ChunkAccessor delegate;
   class="kw">private class="kw">final int minX;
   class="kw">private class="kw">final int minZ;
   class="kw">private class="kw">final int length;
   @Nonnull
   class="kw">private class="kw">final WorldChunk[] chunks;

   @Nonnull
   class="kw">public class="kw">static LocalCachedChunkAccessor atWorldCoords(ChunkAccessor var0, int var1, int var2, int var3) {
      int var4 = ChunkUtil.chunkCoordinate(var3) + 1;
      class="kw">return atChunkCoords(var0, ChunkUtil.chunkCoordinate(var1), ChunkUtil.chunkCoordinate(var2), var4);
   }

   @Nonnull
   class="kw">public class="kw">static LocalCachedChunkAccessor atChunkCoords(ChunkAccessor var0, int var1, int var2, int var3) {
      class="kw">return new LocalCachedChunkAccessor(var0, var1, var2, var3);
   }

   @Nonnull
   class="kw">public class="kw">static LocalCachedChunkAccessor atChunk(ChunkAccessor var0, @Nonnull WorldChunk var1, int var2) {
      LocalCachedChunkAccessor var3 = new LocalCachedChunkAccessor(var0, var1.getX(), var1.getZ(), var2);
      var3.overwrite(var1);
      class="kw">return var3;
   }

   class="kw">protected LocalCachedChunkAccessor(ChunkAccessor var1, int var2, int var3, int var4) {
      this.delegate = var1;
      this.minX = var2 - var4;
      this.minZ = var3 - var4;
      this.length = var4 * 2 + 1;
      this.chunks = new WorldChunk[this.length * this.length];
   }

   class="kw">public ChunkAccessor getDelegate() {
      class="kw">return this.delegate;
   }

   class="kw">public int getMinX() {
      class="kw">return this.minX;
   }

   class="kw">public int getMinZ() {
      class="kw">return this.minZ;
   }

   class="kw">public int getLength() {
      class="kw">return this.length;
   }

   class="kw">public int getCenterX() {
      class="kw">return this.minX + this.length / 2;
   }

   class="kw">public int getCenterZ() {
      class="kw">return this.minZ + this.length / 2;
   }

   class="kw">public void cacheChunksInRadius() {
      for (int var1 = 0; var1 < this.length; var1++) {
         for (int var2 = 0; var2 < this.length; var2++) {
            int var3 = var1 * this.length + var2;
            WorldChunk var4 = this.chunks[var3];
            if (var4 == null) {
               this.chunks[var3] = this.delegate.getChunkIfInMemory(ChunkUtil.indexChunk(this.minX + var1, this.minZ + var2));
            }
         }
      }
   }

   @Override
   class="kw">public void overwrite(@Nonnull WorldChunk var1) {
      int var2 = var1.getX();
      int var3 = var1.getZ();
      var2 -= this.minX;
      var3 -= this.minZ;
      if (var2 >= 0 && var2 < this.length && var3 >= 0 && var3 < this.length) {
         int var4 = var2 * this.length + var3;
         this.chunks[var4] = var1;
      }
   }

   @Override
   class="kw">public WorldChunk getChunkIfInMemory(long var1) {
      int var3 = ChunkUtil.xOfChunkIndex(var1);
      int var4 = ChunkUtil.zOfChunkIndex(var1);
      var3 -= this.minX;
      var4 -= this.minZ;
      if (var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length) {
         int var5 = var3 * this.length + var4;
         WorldChunk var6 = this.chunks[var5];
         class="kw">return var6 != null ? var6 : (this.chunks[var5] = this.delegate.getChunkIfInMemory(var1));
      } else {
         class="kw">return this.delegate.getChunkIfInMemory(var1);
      }
   }

   @Nullable
   class="kw">public WorldChunk getChunkIfInMemory(int var1, int var2) {
      int var3 = var1 - this.minX;
      int var4 = var2 - this.minZ;
      if (var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length) {
         int var5 = var3 * this.length + var4;
         WorldChunk var6 = this.chunks[var5];
         class="kw">return var6 != null ? var6 : (this.chunks[var5] = this.delegate.getChunkIfInMemory(ChunkUtil.indexChunk(var1, var2)));
      } else {
         class="kw">return this.delegate.getChunkIfInMemory(ChunkUtil.indexChunk(var1, var2));
      }
   }

   @Override
   class="kw">public WorldChunk loadChunkIfInMemory(long var1) {
      int var3 = ChunkUtil.xOfChunkIndex(var1);
      int var4 = ChunkUtil.zOfChunkIndex(var1);
      var3 -= this.minX;
      var4 -= this.minZ;
      if (var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length) {
         int var5 = var3 * this.length + var4;
         WorldChunk var6 = this.chunks[var5];
         if (var6 != null) {
            var6.setFlag(ChunkFlag.TICKING, true);
            class="kw">return var6;
         } else {
            class="kw">return this.chunks[var5] = this.delegate.loadChunkIfInMemory(var1);
         }
      } else {
         class="kw">return this.delegate.loadChunkIfInMemory(var1);
      }
   }

   @Nullable
   @Override
   class="kw">public WorldChunk getChunkIfLoaded(long var1) {
      int var3 = ChunkUtil.xOfChunkIndex(var1);
      int var4 = ChunkUtil.zOfChunkIndex(var1);
      var3 -= this.minX;
      var4 -= this.minZ;
      if (var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length) {
         int var5 = var3 * this.length + var4;
         WorldChunk var6 = this.chunks[var5];
         if (var6 == null) {
            var6 = this.chunks[var5] = this.delegate.getChunkIfInMemory(var1);
         }

         class="kw">return var6 != null && var6.is(ChunkFlag.TICKING) ? var6 : null;
      } else {
         class="kw">return this.delegate.getChunkIfLoaded(var1);
      }
   }

   @Nullable
   class="kw">public WorldChunk getChunkIfLoaded(int var1, int var2) {
      int var3 = var1 - this.minX;
      int var4 = var2 - this.minZ;
      if (var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length) {
         int var5 = var3 * this.length + var4;
         WorldChunk var6 = this.chunks[var5];
         if (var6 == null) {
            var6 = this.chunks[var5] = this.delegate.getChunkIfInMemory(ChunkUtil.indexChunk(var1, var2));
         }

         class="kw">return var6 != null && var6.is(ChunkFlag.TICKING) ? var6 : null;
      } else {
         class="kw">return this.delegate.getChunkIfLoaded(ChunkUtil.indexChunk(var1, var2));
      }
   }

   @Nullable
   @Override
   class="kw">public WorldChunk getChunkIfNonTicking(long var1) {
      int var3 = ChunkUtil.xOfChunkIndex(var1);
      int var4 = ChunkUtil.zOfChunkIndex(var1);
      var3 -= this.minX;
      var4 -= this.minZ;
      if (var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length) {
         int var5 = var3 * this.length + var4;
         WorldChunk var6 = this.chunks[var5];
         if (var6 == null) {
            var6 = this.chunks[var5] = this.delegate.getChunkIfInMemory(var1);
         }

         class="kw">return var6 != null && var6.is(ChunkFlag.TICKING) ? null : var6;
      } else {
         class="kw">return this.delegate.getChunkIfNonTicking(var1);
      }
   }

   @Override
   class="kw">public WorldChunk getChunk(long var1) {
      int var3 = ChunkUtil.xOfChunkIndex(var1);
      int var4 = ChunkUtil.zOfChunkIndex(var1);
      var3 -= this.minX;
      var4 -= this.minZ;
      if (var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length) {
         int var5 = var3 * this.length + var4;
         WorldChunk var6 = this.chunks[var5];
         class="kw">return var6 != null ? var6 : (this.chunks[var5] = this.delegate.getChunk(var1));
      } else {
         class="kw">return this.delegate.getChunk(var1);
      }
   }

   @Override
   class="kw">public WorldChunk getNonTickingChunk(long var1) {
      int var3 = ChunkUtil.xOfChunkIndex(var1);
      int var4 = ChunkUtil.zOfChunkIndex(var1);
      var3 -= this.minX;
      var4 -= this.minZ;
      if (var3 >= 0 && var3 < this.length && var4 >= 0 && var4 < this.length) {
         int var5 = var3 * this.length + var4;
         WorldChunk var6 = this.chunks[var5];
         class="kw">return var6 != null ? var6 : (this.chunks[var5] = this.delegate.getNonTickingChunk(var1));
      } else {
         class="kw">return this.delegate.getNonTickingChunk(var1);
      }
   }
}