// Copyright (c) Pixel Crushers. All rights reserved.
namespace PixelCrushers.DialogueSystem
{
///
/// Interface for bark UI components. A bark is a one-off line of dialogue, typically spoken
/// by an NPC for atmosphere (e.g., "Nice weather today"). Barks can also be used to give the
/// player an idea of an NPC's internal state (e.g., "I'm reloading. Cover me!").
///
/// To display barks text, the dialogue system uses a component that implements the IBarkUI
/// interface. See UnityBarkUI for a reference implementation that uses Unity GUI to display
/// text above the NPC's head.
///
/// Typically the IBarkUI implementation is attached to the character that needs to bark.
/// You can disable subtitles by disabling the bark UI.
///
///
/// If a bark dialogue entry has a sequence, the BarkController also plays the sequence in
/// addition to using IBarkUI to show the text.
///
public interface IBarkUI
{
///
/// Barks the specified subtitle. Your implementation should do something with the text
/// in the FormattedText field.
///
/// The subtitle to bark.
void Bark(Subtitle subtitle);
///
/// Hides the currently-playing bark.
///
void Hide();
///
/// Indicates or sets whether a bark is playing.
///
bool isPlaying { get; }
}
}