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

package com.hypixel.hytale.builtin.hytalegenerator.tintproviders;

import com.hypixel.hytale.builtin.hytalegenerator.threadindexer.WorkerIndexer;
import com.hypixel.hytale.math.vector.Vector3i;
import com.hypixel.hytale.server.core.asset.util.ColorParseUtil;
import com.hypixel.hytale.protocol.Color;
import javax.annotation.Nonnull;

public abstract class TintProvider
{
    public static final int DEFAULT_TINT;
    
    public abstract Result getValue(@Nonnull final Context p0);
    
    @Nonnull
    public static TintProvider noTintProvider() {
        return new ConstantTintProvider(TintProvider.DEFAULT_TINT);
    }
    
    static {
        DEFAULT_TINT = ColorParseUtil.colorToARGBInt(new Color((byte)91, (byte)(-98), (byte)40));
    }
    
    public static class Result
    {
        public static final Result WITHOUT_VALUE;
        public final int tint;
        public final boolean hasValue;
        
        public Result(final int tint) {
            this.tint = tint;
            this.hasValue = true;
        }
        
        public Result() {
            this.tint = TintProvider.DEFAULT_TINT;
            this.hasValue = false;
        }
        
        static {
            WITHOUT_VALUE = new Result();
        }
    }
    
    public static class Context
    {
        public Vector3i position;
        public WorkerIndexer.Id workerId;
        
        public Context(@Nonnull final Vector3i position, final WorkerIndexer.Id workerId) {
            this.position = position;
            this.workerId = workerId;
        }
        
        public Context(@Nonnull final Context other) {
            this.position = other.position;
            this.workerId = other.workerId;
        }
    }
}
