protected virtual void PerformMessage(Tile targetTile, ActionStateX action, bool activated) { targetTile.ExecuteContentActivator(new LogicTileActivator(action)); switch (action.Action) { case ActionState.Clear: if (activated) { targetTile.DeactivateTileContent(); } break; case ActionState.Set: if (activated) { targetTile.ActivateTileContent(); } break; case ActionState.Toggle: if (activated) { Toggle(targetTile); } break; case ActionState.Hold: Toggle(targetTile); break; default: throw new ArgumentOutOfRangeException(); } }
protected async Task SendOneMessageAsync(Tile targetTile, ActionStateX action, bool activated) { if (!action.IsOnceOnly || !action.Used) { await Task.Delay(action.TimeDelay); PerformMessage(targetTile, action, activated); action.Used = true; } }
protected SimpleRemoteActuator(Tile targetTile, ActionStateX targetAction, Vector3 position) : base(position) { if (targetTile == null || targetAction == null) throw new ArgumentNullException(); TargetTile = targetTile; TargetAction = targetAction; }
protected SimpleRemoteActuator(Tile targetTile, ActionStateX targetAction, Vector3 position) : base(position) { if (targetTile == null || targetAction == null) { throw new ArgumentNullException(); } TargetTile = targetTile; TargetAction = targetAction; }
protected virtual void PerformMessage(Tile targetTile, ActionStateX action, bool activated) { targetTile.ExecuteContentActivator(new LogicTileActivator(action)); switch (action.Action) { case ActionState.Clear: if (activated) targetTile.DeactivateTileContent(); break; case ActionState.Set: if (activated) targetTile.ActivateTileContent(); break; case ActionState.Toggle: if (activated) Toggle(targetTile); break; case ActionState.Hold: Toggle(targetTile); break; default: throw new ArgumentOutOfRangeException(); } }
protected sealed override void PerformMessage(Tile targetTile, ActionStateX action, bool activated) { base.PerformMessage(targetTile, action, activated); }