ZonePatternGenerator class

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

Файл: com/hypixel/hytale/server/worldgen/zone/ZonePatternGenerator.java

Поля (9)

МодификаторыТипИмя
final IPointGenerator pointGenerator
int var11
Zone[] var12
double var13
var13
double var7
ResultBuffer.ResultBuffer2d var8
double var9
int var9

Методы (6)

МодификаторыВозвратСигнатура
abstract throw new Errorthrow new Error("Unknown zone colour mapping for mask: " + var11)
public Zone.Unique[] getUniqueZonesZone.Unique[] getUniqueZones()
protected void getZonevoid getZone(int var1, double var2, double var4, @Nonnull ZoneGeneratorResult var6, @Nonnull Zone[] var7)
public Zone[] getZonesZone[] getZones()
if if(var12 == null)
if if(var12.length == 1)

Исходный код

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

class="kw">import com.hypixel.hytale.math.util.HashUtil;
class="kw">import com.hypixel.hytale.procedurallib.logic.ResultBuffer;
class="kw">import com.hypixel.hytale.procedurallib.logic.point.IPointGenerator;
class="kw">import com.hypixel.hytale.server.worldgen.chunk.MaskProvider;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;

class="kw">public class ZonePatternGenerator {
   class="kw">protected class="kw">final IPointGenerator pointGenerator;
   class="kw">protected class="kw">final Zone[] zones;
   class="kw">protected class="kw">final Zone.Unique[] uniqueZones;
   class="kw">protected class="kw">final MaskProvider maskProvider;
   class="kw">protected class="kw">final ZoneColorMapping zoneColorMapping;

   class="kw">public ZonePatternGenerator(IPointGenerator var1, Zone[] var2, Zone.Unique[] var3, MaskProvider var4, ZoneColorMapping var5) {
      this.pointGenerator = var1;
      this.zones = var2;
      this.uniqueZones = var3;
      this.maskProvider = var4;
      this.zoneColorMapping = var5;
   }

   class="kw">public Zone[] getZones() {
      class="kw">return this.zones;
   }

   class="kw">public Zone.Unique[] getUniqueZones() {
      class="kw">return this.uniqueZones;
   }

   @Nonnull
   class="kw">public ZoneGeneratorResult generate(int var1, double var2, double var4) {
      class="kw">return this.generate(var1, var2, var4, new ZoneGeneratorResult());
   }

   @Nonnull
   class="kw">public ZoneGeneratorResult generate(int var1, double var2, double var4, @Nonnull ZoneGeneratorResult var6) {
      double var7 = this.maskProvider.getX(var1, var2, var4);
      double var9 = this.maskProvider.getY(var1, var2, var4);
      int var11 = this.maskProvider.get(var1, var7, var9) & 16777215;
      Zone[] var12 = this.zoneColorMapping.get(var11);
      if (var12 == null) {
         throw new Error("Unknown zone colour mapping for mask: " + var11);
      }

      if (var12.length == 1) {
         double var13 = Double.POSITIVE_INFINITY;
         if (this.maskProvider.inBounds(var7, var9)) {
            var13 = this.maskProvider.distance(var7, var9);
         }

         var6.setZone(var12[0]);
         var6.setBorderDistance(var13);
      } else {
         this.getZone(var1, var2, var4, var6, var12);
      }

      class="kw">return var6;
   }

   class="kw">protected void getZone(int var1, double var2, double var4, @Nonnull ZoneGeneratorResult var6, @Nonnull Zone[] var7) {
      ResultBuffer.ResultBuffer2d var8 = this.pointGenerator.nearest2D(var1, var2, var4);
      int var9 = ((int)HashUtil.hash(var1, var8.ix, var8.iy) & 2147483647) % var7.length;
      var6.setZone(var7[var9]);
      var6.setBorderDistance(var8.distance);
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "ZonePatternGenerator{pointGenerator="
         + this.pointGenerator
         + ", zones="
         + Arrays.toString(this.zones)
         + ", maskProvider="
         + this.maskProvider
         + ", zoneColorMapping="
         + this.zoneColorMapping
         + "}";
   }
}