classpublicPriority 3
MaskProviderJsonLoader
com.hypixel.hytale.server.worldgen.loader.MaskProviderJsonLoader
extends JsonLoader
2
Methods
2
Public Methods
3
Fields
1
Constructors
Constructors
public
MaskProviderJsonLoader(SeedString<SeedStringResource> seed, Path dataFolder, JsonElement json, Path file, Vector2i zoomSize, Vector2i worldOffset)Methods
Public Methods (2)
public
MaskProvider load()@Nonnull
publicstatic
BufferedImage loadImage(Path file)throws IOException
Fields
Protected Fields (3)
protected
Path fileprotected
Vector2i worldOffsetprotected
Vector2i zoomSizeInheritance
Parent
Current
Interface
Child
Use mouse wheel to zoom, drag to pan. Click nodes to navigate.
Related Classes
Source Code
package com.hypixel.hytale.server.worldgen.loader;
import com.google.gson.JsonElement;
import com.hypixel.hytale.math.vector.Vector2i;
import com.hypixel.hytale.procedurallib.json.CoordinateRandomizerJsonLoader;
import com.hypixel.hytale.procedurallib.json.JsonLoader;
import com.hypixel.hytale.procedurallib.json.SeedString;
import com.hypixel.hytale.server.worldgen.SeedStringResource;
import com.hypixel.hytale.server.worldgen.chunk.MaskProvider;
import com.hypixel.hytale.server.worldgen.zoom.FuzzyZoom;
import com.hypixel.hytale.server.worldgen.zoom.PixelProvider;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import javax.annotation.Nonnull;
import javax.imageio.ImageIO;
public class MaskProviderJsonLoader extends JsonLoader<SeedStringResource, MaskProvider> {
protected final Path file;
protected final Vector2i zoomSize;
protected final Vector2i worldOffset;
public MaskProviderJsonLoader(
@Nonnull SeedString<SeedStringResource> seed, Path dataFolder, JsonElement json, Path file, Vector2i zoomSize, Vector2i worldOffset
) {
super(seed.append(".MaskProvider"), dataFolder, json);
this.file = file;
this.zoomSize = zoomSize;
this.worldOffset = worldOffset;
}
@Nonnull
public MaskProvider load() {
try {
BufferedImage mask = loadImage(this.file);
return new MaskProvider(this.loadFuzzyZoom(mask));
} catch (Throwable var2) {
throw new Error("Error while loading MaskProvider in " + this.file.toAbsolutePath(), var2);
}
}
public static BufferedImage loadImage(@Nonnull Path file) throws IOException {
try {
return ImageIO.read(Files.newInputStream(file));
} catch (IOException var2) {
throw new IOException("Failed to load image " + file, var2);
}
}
@Nonnull
protected FuzzyZoom loadFuzzyZoom(@Nonnull BufferedImage mask) {
return new FuzzyZoom(
new CoordinateRandomizerJsonLoader<>(this.seed, this.dataFolder, this.json).load(),
new PixelProvider(mask),
(double)this.zoomSize.getX() / (double)mask.getWidth(),
(double)this.zoomSize.getY() / (double)mask.getHeight(),
this.worldOffset.x,
this.worldOffset.y
);
}
}