private void HandleUnitPlacedAtTile(IUnit unit, IntVector2 tileCoords) { uint?unitIndex = _unitDataIndexResolver.ResolveUnitIndex(unit.UnitData); if (unitIndex == null) { _logger.LogError(LoggedFeature.Units, "Error adding unit with name: {0}. Index not resolved.", unit.UnitData.Name); return; } var unitDataReference = new UnitDataReference(unitIndex.Value, unit.UnitData.UnitType); _mapSectionData.AddInitialUnit(tileCoords, unitDataReference); }
public void HandleDrag(IntVector2 tileCoords) { uint?unitIndex = _unitDataIndexResolver.ResolveUnitIndex(_unit.UnitData); if (unitIndex == null) { _logger.LogError(LoggedFeature.Units, "Error dragging unit with name: {0}. Index not resolved.", _unit.UnitData.Name); return; } var unitDataReference = new UnitDataReference(unitIndex.Value, _unit.UnitData.UnitType); _mapSectionData.RemoveInitialUnit(_tileCoords, unitDataReference); var tileDistance = tileCoords - _tileCoords; _tileCoords = tileCoords; _commandQueue.Enqueue <MoveUnitCommand, MoveUnitData>(new MoveUnitData(_unit.UnitId, tileDistance), CommandSource.Game); _mapSectionData.AddInitialUnit(_tileCoords, unitDataReference); }