Created
October 1, 2016 05:02
-
-
Save adarapata/86189ae8a392e821eb518cae6e52409e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Arbor; | |
using UniRx; | |
using UniRx.Triggers; | |
namespace ArborExtention | |
{ | |
public class ObservableStateBehaviour : StateBehaviour | |
{ | |
private Subject<Unit> stateBeginStream = new Subject<Unit> (); | |
public IObservable<Unit> stateBeginAsObservable { | |
get { return stateBeginStream.AsObservable (); } | |
} | |
private Subject<Unit> stateEndStream = new Subject<Unit> (); | |
public IObservable<Unit> stateEndAsObservable { | |
get { return stateEndStream.AsObservable (); } | |
} | |
public Subject<Unit> stateAwakeStream = new Subject<Unit>(); | |
public IObservable<Unit> stateAwakeAsObservable | |
{ | |
get { return stateAwakeStream.AsObservable(); } | |
} | |
public IObservable<Unit> updateAsObservable { | |
get { | |
return this.UpdateAsObservable () | |
.SkipUntil (stateBeginAsObservable) | |
.TakeUntil (stateEndAsObservable) | |
.Repeat (); | |
} | |
} | |
public override void OnStateBegin () | |
{ | |
stateBeginStream.OnNext (default(Unit)); | |
} | |
public override void OnStateEnd () | |
{ | |
stateEndStream.OnNext (default(Unit)); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment