// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus).
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
using MoonSharp.Interpreter;
using Fungus.Utils;
namespace Fungus
{
///
/// Types of display operations supported by portraits.
///
public enum DisplayType
{
/// Do nothing.
None,
/// Show the portrait.
Show,
/// Hide the portrait.
Hide,
/// Replace the existing portrait.
Replace,
/// Move portrait to the front.
MoveToFront
}
///
/// Directions that character portraits can face.
///
public enum FacingDirection
{
/// Unknown direction
None,
/// Facing left.
Left,
/// Facing right.
Right
}
///
/// Offset direction for position.
///
public enum PositionOffset
{
/// Unknown offset direction.
None,
/// Offset applies to the left.
OffsetLeft,
/// Offset applies to the right.
OffsetRight
}
///
/// Controls the Portrait sprites on stage
///
public interface IPortraitController
{
///
/// Using all portrait options available, run any portrait command.
///
/// Portrait Options
/// The function that will run once the portrait command finishes
void RunPortraitCommand(PortraitOptions options, System.Action onComplete);
///
/// Moves Character in front of other characters on stage
///
void MoveToFront(Character character);
///
/// Moves Character in front of other characters on stage
///
void MoveToFront(PortraitOptions options);
///
/// Shows character at a named position in the stage
///
///
/// Named position on stage
void Show(Character character, string position);
///
/// Shows character moving from a position to a position
///
///
///
/// Where the character will appear
/// Where the character will move to
void Show(Character character, string portrait, string fromPosition, string toPosition);
///
/// From lua, you can pass an options table with named arguments
/// example:
/// stage.show{character=jill, portrait="happy", fromPosition="right", toPosition="left"}
/// Any option available in the PortraitOptions is available from Lua
///
/// Moonsharp Table
void Show(Table optionsTable);
///
/// Show portrait with the supplied portrait options
///
///
void Show(PortraitOptions options);
///
/// Simple show command that shows the character with an available named portrait
///
/// Character to show
/// Named portrait to show for the character, i.e. "angry", "happy", etc
void ShowPortrait(Character character, string portrait);
///
/// Simple character hide command
///
/// Character to hide
void Hide(Character character);
///
/// Move the character to a position then hide it
///
/// Character to hide
/// Where the character will disapear to
void Hide(Character character, string toPosition);
///
/// From lua, you can pass an options table with named arguments
/// example:
/// stage.hide{character=jill, toPosition="left"}
/// Any option available in the PortraitOptions is available from Lua
///
/// Moonsharp Table
void Hide(Table optionsTable);
///
/// Hide portrait with provided options
///
void Hide(PortraitOptions options);
}
}