MaskProviderJsonLoader class

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

Файл: com/hypixel/hytale/server/worldgen/loader/MaskProviderJsonLoader.java

extends: JsonLoader<SeedStringResource, MaskProvider>

Поля (2)

МодификаторыТипИмя
final AssetLoader<BufferedImage> IMAGE_LOADER
BufferedImage var1

Методы (4)

МодификаторыВозвратСигнатура
abstract throw new IOExceptionthrow new IOException("Failed to load image " + var0, var2)
public BufferedImage loadpublic BufferedImage load(@Nonnull InputStream var1)
static BufferedImage loadImageBufferedImage loadImage(@Nonnull Path var0)
public Class<BufferedImage> typepublic Class<BufferedImage> type()

Исходный код

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

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.procedurallib.file.AssetLoader;
class="kw">import com.hypixel.hytale.procedurallib.file.FileIO;
class="kw">import com.hypixel.hytale.procedurallib.json.CoordinateRandomizerJsonLoader;
class="kw">import com.hypixel.hytale.procedurallib.json.JsonLoader;
class="kw">import com.hypixel.hytale.procedurallib.json.SeedString;
class="kw">import com.hypixel.hytale.server.worldgen.SeedStringResource;
class="kw">import com.hypixel.hytale.server.worldgen.chunk.MaskProvider;
class="kw">import com.hypixel.hytale.server.worldgen.zoom.FuzzyZoom;
class="kw">import com.hypixel.hytale.server.worldgen.zoom.PixelProvider;
class="kw">import java.awt.image.BufferedImage;
class="kw">import java.io.BufferedInputStream;
class="kw">import java.io.IOException;
class="kw">import java.io.InputStream;
class="kw">import java.nio.file.Path;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.imageio.ImageIO;
class="kw">import org.joml.Vector2i;

class="kw">public class MaskProviderJsonLoader class="kw">extends JsonLoader<SeedStringResource, MaskProvider> {
   class="kw">public class="kw">static class="kw">final AssetLoader<BufferedImage> IMAGE_LOADER = new AssetLoader<BufferedImage>() {
      @Override
      class="kw">public Class<BufferedImage> type() {
         class="kw">return BufferedImage.class;
      }

      @Nonnull
      class="kw">public BufferedImage load(@Nonnull InputStream var1) class="kw">throws IOException {
         class="kw">return ImageIO.read(new BufferedInputStream(var1));
      }
   };
   class="kw">protected class="kw">final Path file;
   class="kw">protected class="kw">final Vector2i zoomSize;
   class="kw">protected class="kw">final Vector2i worldOffset;

   class="kw">public MaskProviderJsonLoader(@Nonnull SeedString<SeedStringResource> var1, Path var2, JsonElement var3, Path var4, Vector2i var5, Vector2i var6) {
      super(var1.append(".MaskProvider"), var2, var3);
      this.file = var4;
      this.zoomSize = var5;
      this.worldOffset = var6;
   }

   @Nonnull
   class="kw">public MaskProvider load() {
      try {
         BufferedImage var1 = loadImage(this.file);
         class="kw">return new MaskProvider(this.loadFuzzyZoom(var1));
      } catch (Throwable var2) {
         throw new Error("Error while loading MaskProvider in " + this.file.toAbsolutePath(), var2);
      }
   }

   class="kw">public class="kw">static BufferedImage loadImage(@Nonnull Path var0) class="kw">throws IOException {
      try {
         class="kw">return FileIO.load(var0, IMAGE_LOADER);
      } catch (IOException var2) {
         throw new IOException("Failed to load image " + var0, var2);
      }
   }

   @Nonnull
   class="kw">protected FuzzyZoom loadFuzzyZoom(@Nonnull BufferedImage var1) {
      class="kw">return new FuzzyZoom(
         new CoordinateRandomizerJsonLoader<>(this.seed, this.dataFolder, this.json).load(),
         new PixelProvider(var1),
         (double)this.zoomSize.x() / var1.getWidth(),
         (double)this.zoomSize.y() / var1.getHeight(),
         this.worldOffset.x,
         this.worldOffset.y
      );
   }
}