// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.procedurallib.property;

import javax.annotation.Nonnull;

public class ScaleNoiseProperty implements NoiseProperty
{
    protected final NoiseProperty noiseProperty;
    protected final double scaleX;
    protected final double scaleY;
    protected final double scaleZ;
    
    public ScaleNoiseProperty(final NoiseProperty noiseProperty, final double scale) {
        this(noiseProperty, scale, scale, scale);
    }
    
    public ScaleNoiseProperty(final NoiseProperty noiseProperty, final double scaleX, final double scaleY, final double scaleZ) {
        this.noiseProperty = noiseProperty;
        this.scaleX = scaleX;
        this.scaleY = scaleY;
        this.scaleZ = scaleZ;
    }
    
    public NoiseProperty getNoiseProperty() {
        return this.noiseProperty;
    }
    
    public double getScaleX() {
        return this.scaleX;
    }
    
    public double getScaleY() {
        return this.scaleY;
    }
    
    public double getScaleZ() {
        return this.scaleZ;
    }
    
    @Override
    public double get(final int seed, final double x, final double y) {
        return this.noiseProperty.get(seed, x * this.scaleX, y * this.scaleY);
    }
    
    @Override
    public double get(final int seed, final double x, final double y, final double z) {
        return this.noiseProperty.get(seed, x * this.scaleX, y * this.scaleY, z * this.scaleZ);
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "ScaleNoiseProperty{noiseProperty=" + String.valueOf(this.noiseProperty) + ", scaleX=" + this.scaleX + ", scaleY=" + this.scaleY + ", scaleZ=" + this.scaleZ;
    }
}
