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

package com.hypixel.hytale.server.npc.decisionmaker.stateevaluator;

import com.hypixel.hytale.codec.validation.Validator;
import com.hypixel.hytale.codec.validation.Validators;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.Codec;
import javax.annotation.Nonnull;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.server.npc.decisionmaker.core.Option;

public class StateOption extends Option
{
    public static final BuilderCodec<StateOption> CODEC;
    protected String state;
    protected String subState;
    protected int stateIndex;
    protected int subStateIndex;
    
    protected StateOption() {
    }
    
    public String getState() {
        return this.state;
    }
    
    public String getSubState() {
        return this.subState;
    }
    
    public int getStateIndex() {
        return this.stateIndex;
    }
    
    public int getSubStateIndex() {
        return this.subStateIndex;
    }
    
    public void setStateIndex(final int stateIndex, final int subStateIndex) {
        this.stateIndex = stateIndex;
        this.subStateIndex = subStateIndex;
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "StateOption{state=" + this.state + ", stateIndex=" + this.stateIndex + "} " + super.toString();
    }
    
    static {
        CODEC = BuilderCodec.builder(StateOption.class, StateOption::new, Option.ABSTRACT_CODEC).append(new KeyedCodec<String>("State", Codec.STRING), (option, s) -> option.state = s, option -> option.state).documentation("The main state name.").addValidator(Validators.nonNull()).addValidator(Validators.nonEmptyString()).add().append(new KeyedCodec("SubState", Codec.STRING), (option, s) -> option.state = s, option -> option.state).documentation("The (optional) substate name.").add().build();
    }
}
