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

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

import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
import com.hypixel.hytale.server.npc.asset.builder.BuilderDescriptorState;
import com.hypixel.hytale.server.npc.asset.builder.Builder;
import javax.annotation.Nonnull;
import com.google.gson.JsonElement;
import com.hypixel.hytale.server.npc.instructions.Action;
import com.hypixel.hytale.server.npc.asset.builder.BuilderBase;

public abstract class BuilderActionBase extends BuilderBase<Action>
{
    protected boolean once;
    
    @Override
    public boolean canRequireFeature() {
        return true;
    }
    
    @Nonnull
    @Override
    public Builder<Action> readCommonConfig(@Nonnull final JsonElement data) {
        super.readCommonConfig(data);
        this.getBoolean(data, "Once", v -> this.once = v, false, BuilderDescriptorState.Stable, "Execute only once", null);
        return this;
    }
    
    @Nonnull
    @Override
    public final Class<Action> category() {
        return Action.class;
    }
    
    @Override
    public final boolean isEnabled(final ExecutionContext context) {
        return true;
    }
    
    public boolean isOnce() {
        return this.once;
    }
}
