2 этап. Класс MapsCollection

This commit is contained in:
Daniel 2022-11-29 01:53:02 +04:00
parent 6806a3c9ca
commit ed2a685f66
3 changed files with 74 additions and 25 deletions

View File

@ -50,13 +50,9 @@ namespace WinFormsApp1
public Bitmap ShowOnMap() public Bitmap ShowOnMap()
{ {
Shaking(); Shaking();
for (int i = 0; i < _setTraktors.Count; i++) foreach (var traktor in _setTraktors.GetTraktor())
{ {
var bus = _setTraktors[i]; return _map.CreateMap(_pictureWidth, _pictureHeight, traktor);
if (bus != null)
{
return _map.CreateMap(_pictureWidth, _pictureHeight, bus);
}
} }
return new(_pictureWidth, _pictureHeight); return new(_pictureWidth, _pictureHeight);
} }
@ -113,31 +109,31 @@ namespace WinFormsApp1
private void DrawTraktors(Graphics g) private void DrawTraktors(Graphics g)
{ {
int widthEl = _pictureWidth / _placeSizeWidth;
int heightEl = _pictureHeight / _placeSizeHeight;
int curWidth = 0;
int curHeight = 0;
for (int i = _setTraktors.Count; i >= 0; i--) int currentWidth = _pictureWidth / _placeSizeWidth - 1;
int currentHeight = _pictureHeight / _placeSizeHeight - 1;
foreach (var traktor in _setTraktors.GetTraktor())
{ {
_setTraktors[i]?.SetObject( traktor?.SetObject(
_pictureWidth - _placeSizeWidth * curWidth - 60, currentWidth * _placeSizeWidth + 50, currentHeight * _placeSizeHeight + 10, _pictureWidth, _pictureHeight);
curHeight * _placeSizeHeight + 30, _pictureWidth, _pictureHeight); traktor?.DrawningObject(g);
_setTraktors[i]?.DrawningObject(g);
if (curWidth < widthEl) if (currentWidth > 0)
curWidth++; {
currentWidth -= 1;
}
else else
{ {
curWidth = 1; if (currentHeight > 0)
curHeight++; {
currentHeight -= 1;
currentWidth = _pictureWidth / _placeSizeWidth - 1;
}
else return;
} }
if (curHeight > heightEl)
{
return;
}
} }
} }
} }

View File

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WinFormsApp1
{
internal class MapsCollection
{
readonly Dictionary<string, MapWithSetTraktorGeneric<DrawningObjectTractor, AbstractMap>> _mapStorages;
public List<string> Keys => _mapStorages.Keys.ToList();
private readonly int _pictureWidth;
private readonly int _pictureHeight;
public MapsCollection(int pictureWidth, int pictureHeight)
{
_mapStorages = new Dictionary<string, MapWithSetTraktorGeneric<DrawningObjectTractor, AbstractMap>>();
_pictureWidth = pictureWidth;
_pictureHeight = pictureHeight;
}
public void AddMap(string name, AbstractMap map)
{
if (_mapStorages.ContainsKey(name)) return; //уникальное имя
else
{
_mapStorages.Add(name, new MapWithSetTraktorGeneric<DrawningObjectTractor, AbstractMap>(_pictureWidth, _pictureHeight, map));
}
}
public void DelMap(string name)
{
if (_mapStorages.ContainsKey(name))
{
_mapStorages.Remove(name);
}
}
public MapWithSetTraktorGeneric<DrawningObjectTractor, AbstractMap> this[string ind]
{
get
{
_mapStorages.TryGetValue(ind, out var MapWithSetDoubleDeckerBusGeneric);
return MapWithSetDoubleDeckerBusGeneric;
}
}
}
}

View File

@ -69,7 +69,7 @@ namespace WinFormsApp1
} }
} }
public IEnumerable<T> GetBuses() public IEnumerable<T> GetTraktor()
{ {
foreach (var traktor in _places) foreach (var traktor in _places)
{ {