You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
4.9 KiB
139 lines
4.9 KiB
// 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 |
|
{ |
|
/// <summary> |
|
/// Types of display operations supported by portraits. |
|
/// </summary> |
|
public enum DisplayType |
|
{ |
|
/// <summary> Do nothing. </summary> |
|
None, |
|
/// <summary> Show the portrait. </summary> |
|
Show, |
|
/// <summary> Hide the portrait. </summary> |
|
Hide, |
|
/// <summary> Replace the existing portrait. </summary> |
|
Replace, |
|
/// <summary> Move portrait to the front. </summary> |
|
MoveToFront |
|
} |
|
|
|
/// <summary> |
|
/// Directions that character portraits can face. |
|
/// </summary> |
|
public enum FacingDirection |
|
{ |
|
/// <summary> Unknown direction </summary> |
|
None, |
|
/// <summary> Facing left. </summary> |
|
Left, |
|
/// <summary> Facing right. </summary> |
|
Right |
|
} |
|
|
|
/// <summary> |
|
/// Offset direction for position. |
|
/// </summary> |
|
public enum PositionOffset |
|
{ |
|
/// <summary> Unknown offset direction. </summary> |
|
None, |
|
/// <summary> Offset applies to the left. </summary> |
|
OffsetLeft, |
|
/// <summary> Offset applies to the right. </summary> |
|
OffsetRight |
|
} |
|
|
|
/// <summary> |
|
/// Controls the Portrait sprites on stage |
|
/// </summary> |
|
public interface IPortraitController |
|
{ |
|
/// <summary> |
|
/// Using all portrait options available, run any portrait command. |
|
/// </summary> |
|
/// <param name="options">Portrait Options</param> |
|
/// <param name="onComplete">The function that will run once the portrait command finishes</param> |
|
void RunPortraitCommand(PortraitOptions options, System.Action onComplete); |
|
|
|
/// <summary> |
|
/// Moves Character in front of other characters on stage |
|
/// </summary> |
|
void MoveToFront(Character character); |
|
|
|
/// <summary> |
|
/// Moves Character in front of other characters on stage |
|
/// </summary> |
|
void MoveToFront(PortraitOptions options); |
|
|
|
/// <summary> |
|
/// Shows character at a named position in the stage |
|
/// </summary> |
|
/// <param name="character"></param> |
|
/// <param name="position">Named position on stage</param> |
|
void Show(Character character, string position); |
|
|
|
/// <summary> |
|
/// Shows character moving from a position to a position |
|
/// </summary> |
|
/// <param name="character"></param> |
|
/// <param name="portrait"></param> |
|
/// <param name="fromPosition">Where the character will appear</param> |
|
/// <param name="toPosition">Where the character will move to</param> |
|
void Show(Character character, string portrait, string fromPosition, string toPosition); |
|
|
|
/// <summary> |
|
/// 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 |
|
/// </summary> |
|
/// <param name="optionsTable">Moonsharp Table</param> |
|
void Show(Table optionsTable); |
|
|
|
/// <summary> |
|
/// Show portrait with the supplied portrait options |
|
/// </summary> |
|
/// <param name="options"></param> |
|
void Show(PortraitOptions options); |
|
|
|
/// <summary> |
|
/// Simple show command that shows the character with an available named portrait |
|
/// </summary> |
|
/// <param name="character">Character to show</param> |
|
/// <param name="portrait">Named portrait to show for the character, i.e. "angry", "happy", etc</param> |
|
void ShowPortrait(Character character, string portrait); |
|
|
|
/// <summary> |
|
/// Simple character hide command |
|
/// </summary> |
|
/// <param name="character">Character to hide</param> |
|
void Hide(Character character); |
|
|
|
/// <summary> |
|
/// Move the character to a position then hide it |
|
/// </summary> |
|
/// <param name="character">Character to hide</param> |
|
/// <param name="toPosition">Where the character will disapear to</param> |
|
void Hide(Character character, string toPosition); |
|
|
|
/// <summary> |
|
/// 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 |
|
/// </summary> |
|
/// <param name="optionsTable">Moonsharp Table</param> |
|
void Hide(Table optionsTable); |
|
|
|
/// <summary> |
|
/// Hide portrait with provided options |
|
/// </summary> |
|
void Hide(PortraitOptions options); |
|
} |
|
} |