fix: some factories not assigning fields correctly
This commit is contained in:
@@ -4,10 +4,10 @@ namespace Syntriax.Engine.Core.Factory;
|
||||
|
||||
public class BehaviourControllerFactory
|
||||
{
|
||||
public static IBehaviourController Instantiate(IUniverseObject universeObject)
|
||||
=> Instantiate<BehaviourController>(universeObject);
|
||||
public static IBehaviourController Instantiate(IUniverseObject universeObject, IStateEnable? stateEnable = null)
|
||||
=> Instantiate<BehaviourController>(universeObject, stateEnable);
|
||||
|
||||
public static T Instantiate<T>(IUniverseObject universeObject, params object?[]? args)
|
||||
public static T Instantiate<T>(IUniverseObject universeObject, IStateEnable? stateEnable = null, params object?[]? args)
|
||||
where T : class, IBehaviourController
|
||||
{
|
||||
T behaviourController = TypeFactory.Get<T>(args);
|
||||
@@ -18,6 +18,17 @@ public class BehaviourControllerFactory
|
||||
if (!behaviourController.Assign(universeObject))
|
||||
throw AssignFailedException.From(behaviourController, universeObject);
|
||||
|
||||
if (stateEnable is not null)
|
||||
{
|
||||
if (!stateEnable.Assign(behaviourController))
|
||||
throw AssignFailedException.From(stateEnable, behaviourController);
|
||||
|
||||
if (!behaviourController.Assign(stateEnable))
|
||||
throw AssignFailedException.From(behaviourController, stateEnable);
|
||||
}
|
||||
else
|
||||
StateEnableFactory.Instantiate(behaviourController);
|
||||
|
||||
return behaviourController;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user