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

package com.hypixel.hytale.server.npc.corecomponents.builders;

import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
import com.hypixel.hytale.server.npc.asset.builder.validators.DoubleArrayValidator;
import com.hypixel.hytale.server.npc.asset.builder.BuilderDescriptorState;
import com.hypixel.hytale.server.npc.asset.builder.validators.DoubleSequenceValidator;
import com.hypixel.hytale.server.npc.instructions.Action;
import com.hypixel.hytale.server.npc.asset.builder.Builder;
import javax.annotation.Nonnull;
import com.google.gson.JsonElement;
import com.hypixel.hytale.server.npc.asset.builder.holder.NumberArrayHolder;

public abstract class BuilderActionWithDelay extends BuilderActionBase
{
    public static final double[] DEFAULT_TIMEOUT_RANGE;
    protected final NumberArrayHolder delayRange;
    
    public BuilderActionWithDelay() {
        this.delayRange = new NumberArrayHolder();
    }
    
    @Nonnull
    @Override
    public Builder<Action> readCommonConfig(@Nonnull final JsonElement data) {
        super.readCommonConfig(data);
        this.getDoubleRange(data, "Delay", this.delayRange, this.getDefaultTimeoutRange(), DoubleSequenceValidator.betweenWeaklyMonotonic(0.0, Double.MAX_VALUE), BuilderDescriptorState.Stable, "Range of time to delay in seconds", null);
        return this;
    }
    
    public double[] getDelayRange(@Nonnull final BuilderSupport support) {
        return this.delayRange.get(support.getExecutionContext());
    }
    
    protected double[] getDefaultTimeoutRange() {
        return BuilderActionWithDelay.DEFAULT_TIMEOUT_RANGE;
    }
    
    static {
        DEFAULT_TIMEOUT_RANGE = new double[] { 1.0, 1.0 };
    }
}
