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

package com.hypixel.hytale.server.spawning;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import com.hypixel.hytale.server.npc.util.expression.Scope;
import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;

public interface ISpawnableWithModel extends ISpawnable
{
    @Nullable
    String getSpawnModelName(final ExecutionContext p0, final Scope p1);
    
    @Nullable
    default Scope createModifierScope(final ExecutionContext executionContext) {
        throw new IllegalStateException("Call to createModifierScope not valid for ISpawnableWithModel");
    }
    
    Scope createExecutionScope();
    
    void markNeedsReload();
    
    boolean isMemory(final ExecutionContext p0, @Nullable final Scope p1);
    
    String getMemoriesCategory(final ExecutionContext p0, @Nullable final Scope p1);
    
    String getMemoriesNameOverride(final ExecutionContext p0, @Nullable final Scope p1);
    
    @Nonnull
    String getNameTranslationKey(final ExecutionContext p0, @Nullable final Scope p1);
}
