Coord class

Пакет: com.hypixel.hytale.server.core.command.system.arguments.types

Файл: com/hypixel/hytale/server/core/command/system/arguments/types/Coord.java

Поля (13)

МодификаторыТипИмя
break
break
final double value
boolean var1
var1
boolean var2
var2
double var3
boolean var3
var3
int var4
String var5
WorldChunk var8

Методы (11)

МодификаторыВозвратСигнатура
public double getValuedouble getValue()
if if(this.height)
if if(var8 == null)
public boolean isChunkboolean isChunk()
public boolean isHeightboolean isHeight()
public boolean isNotBaseboolean isNotBase()
public boolean isRelativeboolean isRelative()
protected double resolvedouble resolve(double var1)
public double resolveXZdouble resolveXZ(double var1)
public double resolveYAtWorldCoordsdouble resolveYAtWorldCoords(double var1, @Nonnull World var3, double var4, double var6)
while while(true)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.command.system.arguments.types;

class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.exceptions.GeneralCommandException;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk;
class="kw">import javax.annotation.Nonnull;

class="kw">public class Coord {
   class="kw">private class="kw">final double value;
   class="kw">private class="kw">final boolean height;
   class="kw">private class="kw">final boolean relative;
   class="kw">private class="kw">final boolean chunk;

   class="kw">public Coord(double var1, boolean var3, boolean var4, boolean var5) {
      this.value = var1;
      this.height = var3;
      this.relative = var4;
      this.chunk = var5;
   }

   class="kw">public double getValue() {
      class="kw">return this.value;
   }

   class="kw">public boolean isNotBase() {
      class="kw">return !this.height && !this.relative && !this.chunk;
   }

   class="kw">public boolean isHeight() {
      class="kw">return this.height;
   }

   class="kw">public boolean isRelative() {
      class="kw">return this.relative;
   }

   class="kw">public boolean isChunk() {
      class="kw">return this.chunk;
   }

   class="kw">public double resolveXZ(double var1) {
      class="kw">return this.resolve(var1);
   }

   class="kw">public double resolveYAtWorldCoords(double var1, @Nonnull World var3, double var4, double var6) class="kw">throws GeneralCommandException {
      if (this.height) {
         WorldChunk var8 = var3.getNonTickingChunk(ChunkUtil.indexChunkFromBlock(var4, var6));
         if (var8 == null) {
            throw new GeneralCommandException(Message.raw("Failed to load chunk at (" + var4 + ", " + var6 + ")"));
         } else {
            class="kw">return var8.getHeight(MathUtil.floor(var4), MathUtil.floor(var6)) + 1 + this.resolve(0.0);
         }
      } else {
         class="kw">return this.resolve(var1);
      }
   }

   class="kw">protected double resolve(double var1) {
      double var3 = this.chunk ? this.value * 32.0 : this.value;
      class="kw">return this.relative ? var3 + var1 : var3;
   }

   @Nonnull
   class="kw">public class="kw">static Coord parse(@Nonnull String var0) {
      boolean var1 = false;
      boolean var2 = false;
      boolean var3 = false;
      int var4 = 0;

      label20:
      while (true) {
         class="kw">switch (var0.charAt(var4)) {
            case '_':
               var4++;
               var1 = true;
               if (var0.length() == var4) {
                  class="kw">return new Coord(0.0, true, var2, var3);
               }
               break;
            case 'c':
               var4++;
               var3 = true;
               if (var0.length() == var4) {
                  class="kw">return new Coord(0.0, var1, var2, true);
               }
               break label20;
            case '~':
               var4++;
               var2 = true;
               if (var0.length() == var4) {
                  class="kw">return new Coord(0.0, var1, true, var3);
               }
               break;
            class="kw">default:
               break label20;
         }
      }

      String var5 = var0.substring(var4);
      class="kw">return new Coord(Double.parseDouble(var5), var1, var2, var3);
   }
}