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

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

import java.util.List;
import com.hypixel.hytale.server.npc.corecomponents.utility.BodyMotionSequence;
import javax.annotation.Nonnull;
import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
import com.hypixel.hytale.server.npc.asset.builder.BuilderContext;
import com.hypixel.hytale.server.npc.instructions.Motion;
import com.hypixel.hytale.server.npc.asset.builder.BuilderObjectListHelper;
import com.hypixel.hytale.server.npc.instructions.BodyMotion;

public class BuilderBodyMotionSequence extends BuilderMotionSequence<BodyMotion>
{
    public static final BodyMotion[] EMPTY_SEQUENCE;
    
    public BuilderBodyMotionSequence() {
        this.steps = (BuilderObjectListHelper<T>)new BuilderObjectListHelper<Motion>(BodyMotion.class, this);
    }
    
    @Nonnull
    @Override
    public BodyMotionSequence build(@Nonnull final BuilderSupport builderSupport) {
        return new BodyMotionSequence(this, builderSupport);
    }
    
    @Nonnull
    @Override
    public final Class<BodyMotion> category() {
        return BodyMotion.class;
    }
    
    @Nonnull
    public BodyMotion[] getSteps(@Nonnull final BuilderSupport builderSupport) {
        final List<BodyMotion> motions = (List<BodyMotion>)this.steps.build(builderSupport);
        return (motions == null) ? BuilderBodyMotionSequence.EMPTY_SEQUENCE : motions.toArray(BodyMotion[]::new);
    }
    
    static {
        EMPTY_SEQUENCE = new BodyMotion[0];
    }
}
