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

package com.hypixel.hytale.procedurallib.property;

import javax.annotation.Nonnull;

public class OffsetNoiseProperty implements NoiseProperty
{
    protected final NoiseProperty noiseProperty;
    protected final double offsetX;
    protected final double offsetY;
    protected final double offsetZ;
    
    public OffsetNoiseProperty(final NoiseProperty noiseProperty, final double offset) {
        this(noiseProperty, offset, offset, offset);
    }
    
    public OffsetNoiseProperty(final NoiseProperty noiseProperty, final double offsetX, final double offsetY, final double offsetZ) {
        this.noiseProperty = noiseProperty;
        this.offsetX = offsetX;
        this.offsetY = offsetY;
        this.offsetZ = offsetZ;
    }
    
    public NoiseProperty getNoiseProperty() {
        return this.noiseProperty;
    }
    
    public double getOffsetX() {
        return this.offsetX;
    }
    
    public double getOffsetY() {
        return this.offsetY;
    }
    
    public double getOffsetZ() {
        return this.offsetZ;
    }
    
    @Override
    public double get(final int seed, final double x, final double y) {
        return this.noiseProperty.get(seed, x + this.offsetX, y + this.offsetY);
    }
    
    @Override
    public double get(final int seed, final double x, final double y, final double z) {
        return this.noiseProperty.get(seed, x + this.offsetX, y + this.offsetY, z + this.offsetZ);
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "OffsetNoiseProperty{noiseProperty=" + String.valueOf(this.noiseProperty) + ", offsetX=" + this.offsetX + ", offsetY=" + this.offsetY + ", offsetZ=" + this.offsetZ;
    }
}
