private void PreviewUnitMovement(IUnit unit, IntVector2 previewCoords) { // Move the unit in space, but do not actually execute a move command (since we are previewing) ITransformableUnit transformableUnit = _unitTransformRegistry.GetTransformableUnit(unit.UnitId); Vector3 worldPosition = _gridPositionCalculator.GetTileCenterWorldPosition(previewCoords); transformableUnit.Transform.position = new Vector3(worldPosition.x, worldPosition.y, transformableUnit.Transform.position.z); }
public void Undo() { ITransformableUnit unit = _unitRegistry.GetTransformableUnit(_data.unitId); if (unit == null) { string errorMsg = $"Unit not found in registry: {_data.unitId}"; _logger.LogError(LoggedFeature.Units, errorMsg); return; } // TODO: Maybe encapsulate rotation of units unit.Transform.Rotate(Vector3.forward, -_data.degrees); }
public IObservable <Unit> Run() { ITransformableUnit unit = _unitRegistry.GetTransformableUnit(_data.unitId); if (unit == null) { string errorMsg = $"Unit not found in registry: {_data.unitId}"; _logger.LogError(LoggedFeature.Units, errorMsg); return(Observable.Throw <Unit>(new Exception(errorMsg))); } // TODO: Maybe encapsulate rotation of units unit.Transform.Rotate(Vector3.forward, _data.degrees); return(Observable.ReturnUnit()); }