Skip to content

Commit 9e7b86c

Browse files
authored
Merge pull request #87 from bazyleu/feature/autoresolve-context
Rewrok StateMachine running mechanism
2 parents 76f4043 + a65bf16 commit 9e7b86c

File tree

50 files changed

+367
-417
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+367
-417
lines changed

Assets/Benchmarks/UniStateFixtures/UniBenchmarkTestBase.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@ protected async UniTask Run(int stateCount, bool withoutHistory)
1515

1616
benchmarkHelper.SetStatesCountTarget(stateCount);
1717

18-
IExecutableStateMachine stateMachine =
19-
withoutHistory
20-
? StateMachineHelper.CreateStateMachine<StateMachineWithoutHistory>(resolver)
21-
: StateMachineHelper.CreateStateMachine<StateMachine>(resolver);
18+
var stateMachine = withoutHistory
19+
? resolver.Resolve<StateMachineWithoutHistory>()
20+
: resolver.Resolve<StateMachine>();
21+
22+
stateMachine.SetResolver(resolver);
2223

2324
await stateMachine.Execute<FooState>(CancellationToken.None);
2425
}

Assets/Examples/Infrastructure/DiceEntryPoint.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,16 @@ namespace Examples.Infrastructure
99
{
1010
public class DiceEntryPoint : IStartable
1111
{
12-
private readonly IObjectResolver _objectResolver;
12+
private readonly IStateMachine _stateMachine;
1313

14-
public DiceEntryPoint(IObjectResolver objectResolver)
14+
public DiceEntryPoint(IStateMachine stateMachine)
1515
{
16-
_objectResolver = objectResolver;
16+
_stateMachine = stateMachine;
1717
}
1818

1919
public void Start()
2020
{
21-
var stateMachine = StateMachineHelper.CreateStateMachine<StateMachine>(_objectResolver.ToTypeResolver());
22-
23-
stateMachine.Execute<StartGameState>(CancellationToken.None).Forget();
21+
_stateMachine.Execute<StartGameState>(CancellationToken.None).Forget();
2422
}
2523
}
2624
}

Assets/Examples/Infrastructure/DiceScope.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ protected override void Configure(IContainerBuilder builder)
1111
{
1212
builder.RegisterEntryPoint<DiceEntryPoint>();
1313

14-
builder.RegisterStateMachine<StateMachine>();
14+
builder.RegisterStateMachine<IStateMachine, StateMachine>();
1515

1616
builder.RegisterState<StartGameState>();
1717
builder.RegisterState<RollDiceState>();

Assets/UniState/Runtime/Core/State/CompositeStateBase.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,6 @@ public override void SetPayload(TPayload payload)
3030
_subStatesContainer.SetPayload(payload);
3131
}
3232

33-
public override void SetStateMachineFactory(IStateMachineFactory stateMachineFactory)
34-
{
35-
base.SetStateMachineFactory(stateMachineFactory);
36-
_subStatesContainer.SetStateMachineFactory(stateMachineFactory);
37-
}
38-
3933
public override void SetTransitionFacade(IStateTransitionFacade transitionFacade)
4034
{
4135
base.SetTransitionFacade(transitionFacade);

Assets/UniState/Runtime/Core/State/Interfaces/IStateMachineFactorySetter.cs renamed to Assets/UniState/Runtime/Core/State/Interfaces/ISetTransitionFacadeSetter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace UniState
22
{
3-
public interface IStateMachineFactorySetter
3+
public interface ISetTransitionFacadeSetter
44
{
55
void SetTransitionFacade(IStateTransitionFacade transitionFacade);
66
}

Assets/UniState/Runtime/Core/State/Interfaces/IStateMachineFactorySetter.cs.meta renamed to Assets/UniState/Runtime/Core/State/Interfaces/ISetTransitionFacadeSetter.cs.meta

File renamed without changes.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
namespace UniState
22
{
3-
public interface ISetupable<TPayload> : IPayloadSetter<TPayload>, ITransitionFacadeSetter,
4-
IStateMachineFactorySetter
3+
public interface ISetupable<TPayload> : IPayloadSetter<TPayload>,
4+
ISetTransitionFacadeSetter
55
{
66
}
77
}

Assets/UniState/Runtime/Core/State/Interfaces/ITransitionFacadeSetter.cs

Lines changed: 0 additions & 7 deletions
This file was deleted.

Assets/UniState/Runtime/Core/State/Interfaces/ITransitionFacadeSetter.cs.meta

Lines changed: 0 additions & 3 deletions
This file was deleted.

Assets/UniState/Runtime/Core/State/StateBase.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ public abstract class StateBase<T> : IState<T>
1616
protected T Payload { get; private set; }
1717

1818
protected IStateTransitionFacade Transition { get; private set; }
19-
protected IStateMachineFactory StateMachineFactory { get; private set; }
2019
protected List<IDisposable> Disposables => _disposables ??= new(4);
2120

2221
public abstract UniTask<StateTransitionInfo> Execute(CancellationToken token);
@@ -38,9 +37,6 @@ public virtual void SetPayload(T payload)
3837

3938
public virtual void SetTransitionFacade(IStateTransitionFacade transitionFacade) => Transition = transitionFacade;
4039

41-
public virtual void SetStateMachineFactory(IStateMachineFactory stateMachineFactory) =>
42-
StateMachineFactory = stateMachineFactory;
43-
4440
public virtual void Dispose()
4541
{
4642
_disposables.Dispose();

0 commit comments

Comments
 (0)