public OperationControl CreateOperation(ComponentOperation operation) { var defaultOperationStateMachine = StateMachineFor(operation, _backgroundTasks); _operationMachinesByControlObject.Register(defaultOperationStateMachine); return(defaultOperationStateMachine); }
//bug move to factory private static DefaultOperationStateMachine StateMachineFor(ComponentOperation componentOperation, BackgroundTasks backgroundTasks) { return(new DefaultOperationStateMachine( componentOperation, new UnavailableOperationState(), new OperationStatesFactory(backgroundTasks))); }
public DefaultOperationStateMachine( ComponentOperation operation, OperationState operationState, OperationStatesFactory operationStatesFactory) { _operation = operation; _operationState = operationState; _observers = new List <OperationDependencyObserver>(); _operationStatesFactory = operationStatesFactory; }
public void remove(Entity entity) { if (delayed.value()) { ComponentOperation operation = operationPool.obtain(); operation.makeRemove(entity); operations.Add(operation); } else { entity.notifyComponentRemoved(); } }
public void processOperations() { for (int i = 0; i < operations.Count; ++i) { ComponentOperation operation = operations[i]; switch (operation.type) { case ComponentOperation.Type.Add: operation.entity.notifyComponentAdded(); break; case ComponentOperation.Type.Remove: operation.entity.notifyComponentRemoved(); break; default: break; } operationPool.free(operation); } operations.Clear(); }
/// <summary> /// Performs an operation on each component of a vector. /// </summary> /// <param name="v">The vector to operate on</param> /// <param name="c">The operation to perform (ComponentOperation - single float parameter, returns float).</param> /// <returns></returns> public static Vector2 ComponentWise(this Vector2 v, ComponentOperation c) { return(new Vector2(c(v.x), c(v.y))); }
/// <summary> /// Performs an operation on each component of a vector. /// </summary> /// <param name="v">The vector to operate on</param> /// <param name="c">The operation to perform (ComponentOperation - single float parameter, returns float).</param> /// <returns></returns> public static Vector3 Componentwise(this Vector3 v, ComponentOperation c) { return(new Vector3(c(v.x), c(v.y), c(v.z))); }
public ServerSyncService() { SyncWorker = new ComponentOperation <EmptyOperationRequest, BasicOperationResponse>(this, nameof(SyncWorker), SyncWorkerAsync); ScheduleImmediateSync = new ComponentOperation <EmptyOperationRequest, BasicOperationResponse>(this, nameof(ScheduleImmediateSync), ScheduleImmediateSyncAsync); }