public void Run() { foreach (var i in _filter) { _filter.Get2(i).Value += _filter.Get2(i).Value; } }
void IEcsRunSystem.Run() { if (_pieces.IsEmpty()) { return; } var board = _boards.Get1(0); var offsets = new int[board.Size.X]; foreach (var i in _pieces) { offsets[_pieces.Get2(i).Value.X]++; } foreach (var i in _pieces) { var value = _pieces.Get1(i).Value; var position = _pieces.Get2(i).Value; var view = _viewService.CreatePieceView(value, position.X, position.Y + offsets[position.X]); view.UpdatePosition(position.X, position.Y); _pieces.GetEntity(i).Get <View>().Value = view; } }
void IEcsRunSystem.Run() { if (!MultiplayerManager.IsMaster) { return; } foreach (var p in players) { var view = players.Get1(p).view; if (!view.GetComponent <PhotonView>()) { continue; } if (players.Get2(p).enemyTarget) { var playerPos = view.transform.position; var enemyPos = players.Get2(p).enemyTarget.position; var direction = enemyPos - playerPos; direction.x *= -1f; float angleTarget = Vector2.SignedAngle(direction, Vector2.up); float angleCurrent = view.transform.rotation.eulerAngles.z; float angle = Mathf.LerpAngle(angleCurrent, angleTarget, .1f); Quaternion rotation = Quaternion.Euler(0, 0, angle); view.transform.rotation = rotation; } } }
void IEcsRunSystem.Run() { if (_selected.GetEntitiesCount() < 2) { return; } var mismatch = false; var value = _selected.Get2(0).Value; foreach (var i in _selected) { if (_selected.Get2(i).Value != value) { mismatch = true; break; } } foreach (var i in _selected) { var entity = _selected.GetEntity(i); if (mismatch) { entity.Get <Mismatched>(); } else { entity.Get <Matched>(); } entity.Del <Selected>(); } }
void IEcsRunSystem.Run() { if (_tank.Get2(0)[email protected]) { _health.transform.position = _sceneInfo._cam.WorldToScreenPoint(_tank.Get2(0).transform.position + new Vector3(0, 0, 2.5f)); _health.value = _tank.Get3(0).health.Remap(0, _tank.Get3(0).startHealth, 0, 1); } else { _health.gameObject.SetActive(false); } foreach (var i in _state) { switch (_state.Get1(i).gameState) { case GameState.Play: break; case GameState.Pause: break; case GameState.End: _endGame.SetActive(true); break; case GameState.Quit: break; } } }
void IEcsRunSystem.Run() { foreach (var i in ecsFilter) { Rigidbody x = ecsFilter.Get1(i).rb; x.velocity = new Vector3(x.velocity.x, x.velocity.y, -ecsFilter.Get2(i).speed); if (x.transform.localPosition.z < -ecsFilter.Get2(i).tpDistance * 2) { x.transform.localPosition = new Vector3(x.transform.localPosition.x, x.transform.localPosition.y, ecsFilter.Get2(i).tpDistance * 2 * (ecsFilter.Get2(i).tylesCount - 1)); } } }
void IEcsRunSystem.Run() { float jumpForce = _injectData.JumpForce; foreach (var i in _filter) { var entity = _filter.GetEntity(i); _filter.Get1(i).Animator.SetBool(JUMP_PROPERTY_NAME, true); var up = _filter.Get2(i).NormalToGround; //Add Jump data ref var attractor = ref _filter.Get2(i); ref var jump = ref entity.Get <JumpData>();
void IEcsRunSystem.Run() { if (_inputFilter.IsEmpty() || !_movingFilter.IsEmpty()) { return; } _trajectory.Clear(); var position = _origin; var direction = _inputFilter.Get2(0).Value - position; var hitBubbleView = HitTest(position, direction, _trajectory); if (!hitBubbleView) { return; } Vector2Int hitBubblePosition = Vector2Int.zero; foreach (var i in _bubbleFilter) { if (_bubbleFilter.Get3(i).Value == hitBubbleView) { hitBubblePosition = _bubbleFilter.Get2(i).Value; break; } } var newBubblePosition = NewBubblePosition(hitBubblePosition, hitBubbleView.transform.position, _trajectory.Last()); if (!newBubblePosition.HasValue) { return; } foreach (var point in _trajectory) { var trajectory = _world.NewEntity(); trajectory.Get <Trajectory>(); trajectory.Get <WorldPosition>().Value = point; } var prediction = _world.NewEntity(); prediction.Get <Prediction>(); prediction.Get <Position>().Value = newBubblePosition.Value; }
public void Run() { if (_gameState.State == State.Game) { var deltaTime = Time.deltaTime; foreach (var index in _filter) { var transform = _filter.Get1(index).Transform; var direction = _filter.Get2(index).Direction; var speed = _filter.Get2(index).Speed; speed += _configuration.SpeedUpPerCoin * _gameState.CoinsCount; transform.Translate(direction * speed * deltaTime); } } }
void IEcsRunSystem.Run() { foreach (var e in events) { foreach (var p in players) { var view = players.Get1(p).view; if (view.photonView.ViewID == events.Get1(e).ViewID) { players.Get2(p).Value = events.Get1(e).hp; players.Get2(p).Value = Mathf.Clamp(players.Get2(p).Value, 0, int.MaxValue); } } } }
void IEcsRunSystem.Run() { _occupiedCache.Clear(); foreach (var i in _tiles) { _occupiedCache.Add(_tiles.Get2(i).Value); } foreach (var i in _tiles) { var position = _tiles.Get2(i).Value; var leftLocked = false; foreach (var coord in TileGridUtils.LeftNeighbours) { if (_occupiedCache.Contains(position + coord)) { leftLocked = true; break; } } var rightLocked = false; foreach (var coord in TileGridUtils.RightNeigbours) { if (_occupiedCache.Contains(position + coord)) { rightLocked = true; break; } } if (leftLocked && rightLocked) { _tiles.GetEntity(i).Get <Locked>(); continue; } foreach (var coord in TileGridUtils.TopNeigbours) { if (_occupiedCache.Contains(position + coord)) { _tiles.GetEntity(i).Get <Locked>(); continue; } } } }
void IEcsRunSystem.Run() { foreach (var p in events) { foreach (var idx in players) { ref var player = ref players.Get1(idx); if (player.view == events.Get1(p).player) { ref var hp = ref players.Get2(idx); if (player.view.IsMine()) { //Debug.Log(events.Get1(p).damageData.Damage); hp.Value -= events.Get1(p).damageData.Damage; hp.Value = Mathf.Clamp(hp.Value, 0, int.MaxValue); events.Get1(p).player.OnDamage(hp.Value); } if (hp.Value <= 0) { players.GetEntity(idx).Get <DestroyEvent>().DestroyerID = events.Get1(p).damageData.OwnerId; } } }
void IEcsRunSystem.Run() { float delta = Time.deltaTime; foreach (var i in _filter) { var body = _filter.Get1(i); ref var attractor = ref _filter.Get2(i); var entity = _filter.GetEntity(i); // If entity is moving if (entity.Has <PhysicTranslation>()) { SetNotSleepping(ref attractor, entity); continue; } bool wannaSleep = (body.Value.velocity.sqrMagnitude <= SLEEP_THRESHOLD); // Not want sleep if (!wannaSleep) { SetNotSleepping(ref attractor, entity); } // Put to sleep else if (attractor.TimeToSleep >= SLEEP_DELLAY) { entity.Get <WannaSleepTag>(); } // Tick else { attractor.TimeToSleep += delta; } }
public void Run() { foreach (var index in _filter) { var position = _filter.Get2(index).value.transform.position; var takenType = _filter.Get1(index).value; SignView signView = null; switch (takenType) { case SignType.Cross: signView = _configuration.CrossView; break; case SignType.Ring: signView = _configuration.RingView; break; default: throw new ArgumentOutOfRangeException(); } var instance = UnityEngine.Object.Instantiate(signView, position, Quaternion.identity); _filter.GetEntity(index).Get <TakenRef>().value = instance; } }
public void Run() { foreach (int machine in _machineEntities) { var machineComponent = _machineEntities.Get1(machine); var framesPerMachineFreq = (int)((1.0 / machineComponent.frequency) / Time.deltaTime); if (framesPerMachineFreq > 0 && Time.frameCount % framesPerMachineFreq == 0) { var positionComponent = _machineEntities.Get2(machine); ref var machineEntity = ref _machineEntities.GetEntity(machine); SpawnItem spawnItem; spawnItem.Position = positionComponent.Position; spawnItem.Rotation = Random.rotation; float angle1 = Random.Range(-machineComponent.angle, machineComponent.angle); float angle2 = Random.Range(-machineComponent.angle, machineComponent.angle); var velocityX = machineComponent.power * Mathf.Sin(Mathf.Deg2Rad * angle1); var velocityY = machineComponent.power * Mathf.Sin(Mathf.Deg2Rad * angle2); var velocityZ = -machineComponent.power; spawnItem.Velocity = new Vector3(velocityX, velocityY, velocityZ); spawnItem.SetNewPosition = true; spawnItem.SetNewRotation = true; spawnItem.SetNewVelocity = true; spawnItem.Tag = "Bomb"; spawnItem.PrefabIndex = -1; machineEntity.Get <PoolSpawnFrame>().ToSpawn = new List <SpawnItem> { spawnItem }; } }
public void Run() { foreach (var i in createRequests) { var newObject = createRequests.Get1(i).transform; var entity = createRequests.GetEntity(i); var position = newObject.position.ToVector2Int(); worldService.worldField[position.x][position.y].Add(entity); entity.Get <PositionComponent>().position = position; entity.Get <WorldObjectComponent>().transform = newObject; } foreach (var i in positionRequests) { ref var positionComponent = ref positionRequests.Get1(i); var oldPosition = positionComponent.position; var newPosition = positionRequests.Get2(i).newPosition; var entity = positionRequests.GetEntity(i); worldService.worldField[oldPosition.x][oldPosition.y].Remove(entity); worldService.worldField[newPosition.x][newPosition.y].Add(entity); positionComponent.position = newPosition; }
void IEcsRunSystem.Run() { // add your run code here. foreach (var index in _filterUnplaced) { ref Price pr = ref _filterUnplaced.Get2(index); if (Input.GetMouseButtonDown(0)) { if (!EventSystem.current.IsPointerOverGameObject()) { if (SingleTone.Wallet >= pr.value) { _filterUnplaced.GetEntity(index).Del <Unplaced>(); SingleTone.currentrlyHeld = null; SingleTone.IsMouseOccupied = false; SingleTone.Wallet -= pr.value; } else { SingleTone.ui.NotEnoughMoney(); } } } }
void IEcsRunSystem.Run() { if (_gameState.Score % 10 != 0 || _newCubeFilter.IsEmpty() || !NewCubeIsOnTop()) { return; } _scene.Camera.transform.DOLocalMove(new Vector3(0, 10f, 10f), 1f).SetRelative(true); bool NewCubeIsOnTop() { var maxCubeY = 0; foreach (var i in _cubeFilter) { var cubeY = _cubeFilter.Get2(i).Value.y; if (cubeY > maxCubeY) { maxCubeY = cubeY; } } var newCubeY = _newCubeFilter.Get3(0).Value.y; return(newCubeY > maxCubeY); } }
public void Run() { foreach (var index in _filter) { ref var position = ref _filter.Get1(index); position.value += _filter.Get2(index).value *_gameState.PlayerMovementSpeed *Time.deltaTime; }
void IEcsRunSystem.Run() { foreach (var p in players) { var view = players.Get1(p).view; ref var move = ref players.Get2(p); if (!view.GetComponent <PhotonView>()) { continue; } if (view.GetComponent <PhotonView>().IsMine) { if (joystick.Direction == Vector2.zero) { var x = Input.GetAxis("Horizontal"); var y = Input.GetAxis("Vertical"); move.Value = new Vector2(x, y) * Time.deltaTime * move.Speed; } else { move.Value = joystick.Direction * Time.deltaTime * move.Speed; } } }
void IEcsRunSystem.Run() { // add your run code here. foreach (var index in _asteroidFilter) { ref TransformRef asteroidTransformRefComponent = ref _asteroidFilter.Get2(index); ref ColliderRadius asteroidColliderRadiusComponent = ref _asteroidFilter.Get3(index);
public void Run() { for (int i = 0, iMax = _filter.GetEntitiesCount(); i < iMax; i++) { _filter.Get3(i).Value += (_filter.Get1(i).Value + _filter.Get2(i).Value) * Time; } }
public void Run() { foreach (var i in entities) { ref var movement = ref entities.Get2(i); var currentPosition = entities.Get1(i).position; var targetPosition = entities.Get3(i).target; Directions?newHeading = null; Directions?alternateHeading = null; var sqrMagnitude = (targetPosition - currentPosition).sqrMagnitude; foreach (var direction in DirectionUtils.availableDirections) { var possiblePosition = direction.GetPosition(currentPosition); if (WallOnPosition(possiblePosition)) { continue; } var possibleSqrMagnitude = (targetPosition - possiblePosition).sqrMagnitude; if (possibleSqrMagnitude <= sqrMagnitude) { newHeading = direction; sqrMagnitude = possibleSqrMagnitude; } else { alternateHeading = direction; } } movement.heading = newHeading ?? alternateHeading ?? movement.heading; }
void IEcsRunSystem.Run() { // add your run code here. foreach (var index in _filterBullet) { ref TargetID targetIDComponent = ref _filterBullet.Get2(index); ref TransformRef transformRefComponent = ref _filterBullet.Get3(index);
public void Run() { foreach (var i in _playerMovementPresentationFilter) { ref var movementPresentation = ref _playerMovementPresentationFilter.Get2(i); _playerMovementPresenter.Present(movementPresentation); }
void IEcsRunSystem.Run() { foreach (var i in _bubbleFilter) { var entity = _bubbleFilter.GetEntity(i); var view = _bubbleFilter.Get2(i).Value; Vector2 position; if (entity.Has <WorldPosition>()) { position = entity.Get <WorldPosition>().Value; } else if (entity.Has <Position>()) { position = Hex.ToWorldPosition(entity.Get <Position>().Value); } else { continue; } if ((Vector2)view.transform.position == position) { continue; } view.transform.DOComplete(); view.transform.DOLocalMove(position, _config.BubbleMoveSpeed) .SetEase(Ease.Linear) .SetSpeedBased(true); } }
public void Run() { if (!_filter.IsEmpty()) { var entity = _filter.GetEntity(0); var data = _dataFilter.Get2(0); entity.Get <ClearGridEvent>(); ref var drawData = ref entity.Get <LineDrawData>(); var drawList = new List <(Vector2Int, Sprite)>(); for (var i = 0; i < data.Points.Count; i++) { if (i == 0) { drawList.Add((data.Points[i], _spritesContainer.LineBeginningSprite)); } else if (i == data.Points.Count - 1) { drawList.Add((data.Points[i], _spritesContainer.LineEndSprite)); } else { drawList.Add((data.Points[i], _spritesContainer.FilledSprite)); } } drawData.drawData = drawList; }
public void Run() { foreach (var id in damageFilter) { var damageEntity = damageFilter.GetEntity(id); //если сущьность существует if (!damageEntity.IsAlive()) { return; } var damage = damageFilter.Get1(id).DamageAmount; ref var healthComponent = ref damageFilter.Get2(id); healthComponent.HP -= damage; if (healthComponent.HP <= 0) { damageEntity.Replace(new DestroyComponentEvent()); } //добавляем компонент-событие изменения HP damageEntity.Replace(new ChangeHPEvent()); }
void IEcsRunSystem.Run() { // add your run code here. foreach (var index in _filterTower) { ref Shooter shooterComponent = ref _filterTower.Get2(index); ref TransformRef towerTransformRefComponent = ref _filterTower.Get3(index);
public void Run() { foreach (var index in _filter) { ref var gameView = ref _filter.Get1(index); gameView.value.transform.position = _filter.Get2(index).value; }