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.
119 lines
2.6 KiB
119 lines
2.6 KiB
using UnityEngine; |
|
using System; |
|
using System.Collections; |
|
|
|
namespace Fungus |
|
{ |
|
/** |
|
* Command classes have their own namespace to prevent them popping up in code completion. |
|
*/ |
|
namespace Command |
|
{ |
|
/** |
|
* Fades a sprite to a given alpha value over a period of time |
|
*/ |
|
public class FadeSprite : CommandQueue.Command |
|
{ |
|
SpriteRenderer spriteRenderer; |
|
Color targetColor; |
|
float fadeDuration; |
|
Vector2 slideOffset = Vector2.zero; |
|
|
|
public FadeSprite(SpriteRenderer _spriteRenderer, |
|
Color _targetColor, |
|
float _fadeDuration, |
|
Vector2 _slideOffset) |
|
{ |
|
if (_spriteRenderer == null) |
|
{ |
|
Debug.LogError("Sprite renderer must not be null."); |
|
return; |
|
} |
|
|
|
spriteRenderer = _spriteRenderer; |
|
targetColor = _targetColor; |
|
fadeDuration = _fadeDuration; |
|
slideOffset = _slideOffset; |
|
} |
|
|
|
public override void Execute(CommandQueue commandQueue, Action onComplete) |
|
{ |
|
SpriteFader.FadeSprite(spriteRenderer, targetColor, fadeDuration, slideOffset); |
|
|
|
// Fade is asynchronous, but command completes immediately. |
|
// If you need to wait for the fade to complete, just use an additional Wait() command |
|
if (onComplete != null) |
|
{ |
|
onComplete(); |
|
} |
|
} |
|
} |
|
|
|
/** |
|
* Sets an animator trigger to change the animator state for an animated sprite |
|
*/ |
|
public class SetAnimatorTrigger : CommandQueue.Command |
|
{ |
|
Animator animator; |
|
string triggerName; |
|
|
|
public SetAnimatorTrigger(Animator _animator, |
|
string _triggerName) |
|
{ |
|
if (_animator == null) |
|
{ |
|
Debug.LogError("Animator must not be null."); |
|
return; |
|
} |
|
|
|
animator = _animator; |
|
triggerName = _triggerName; |
|
} |
|
|
|
public override void Execute(CommandQueue commandQueue, Action onComplete) |
|
{ |
|
animator.SetTrigger(triggerName); |
|
|
|
if (onComplete != null) |
|
{ |
|
onComplete(); |
|
} |
|
} |
|
} |
|
|
|
/** |
|
* Display a button and set the method to be called when player clicks. |
|
*/ |
|
public class ShowButton : CommandQueue.Command |
|
{ |
|
Button button; |
|
bool visible; |
|
Action buttonAction; |
|
|
|
public ShowButton(Button _button, |
|
bool _visible, |
|
Action _buttonAction) |
|
{ |
|
if (_button == null) |
|
{ |
|
Debug.LogError("Button must not be null."); |
|
return; |
|
} |
|
|
|
button = _button; |
|
visible = _visible; |
|
buttonAction = _buttonAction; |
|
} |
|
|
|
public override void Execute(CommandQueue commandQueue, Action onComplete) |
|
{ |
|
button.Show(visible, buttonAction); |
|
|
|
if (onComplete != null) |
|
{ |
|
onComplete(); |
|
} |
|
} |
|
} |
|
} |
|
} |