Czoko_Smieciarka/Trunk/Interface/CzokoŚmieciarka.WPFv2/MainWindow.xaml.cs
2019-04-21 02:43:36 +02:00

150 lines
6.3 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using CzokoŚmieciarka.DataModels.Enums;
using CzokoŚmieciarka.DataModels.GeneralModels.Models;
using CzokoŚmieciarka.DataModels.Interfaces;
using CzokoŚmieciarka.DataModels.Interfaces.TrashCans;
using CzokoŚmieciarka.DataModels.Models;
using CzokoŚmieciarka.WPFv2.Interfaces;
using CzokoŚmieciarka.WPFv2.Models;
namespace CzokoŚmieciarka.WPFv2
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public static int Columns = 9;
public static int Rows = 9;
IWPFObject[,] Objects = new IWPFObject[Columns,Rows];
private IEnumerable<AGarbageCollectorContainer> GarbageCollectorContainers;
private WPFGarbageCollector garbageCollector;
public MainWindow()
{
InitializeComponent();
BoardInitialize();
}
private void MainWindow_OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space)
{
garbageCollector.MoveLeft();
//routePlanningEngine.PerformStep();
}
CollectorBoard.Children.Clear();
Grid.SetColumn(garbageCollector.Image, garbageCollector.Coords.X);
Grid.SetRow(garbageCollector.Image, garbageCollector.Coords.Y);
CollectorBoard.Children.Add(garbageCollector.Image);
Board.Children.Clear();
for (int x=0;x<Columns;x++)
{
for (int y = 0; y < Rows; y++)
{
var item = Objects[x, y];
Grid.SetColumn(item.Image, x);
Grid.SetRow(item.Image, y);
Board.Children.Add(item.Image);
}
}
}
private void BoardInitialize()
{
ColumnDefinition column;
RowDefinition row;
for (int y = 0; y < Rows; y++)
{
column = new ColumnDefinition();
row = new RowDefinition();
Board.ColumnDefinitions.Add(column);
Board.RowDefinitions.Add(row);
column = new ColumnDefinition();
row = new RowDefinition();
CollectorBoard.ColumnDefinitions.Add(column);
CollectorBoard.RowDefinitions.Add(row);
for (int x = 0; x < Columns; x++)
{
Road road = new Road();
Objects[x, y] = road;
Grid.SetRow(Objects[x, y].Image, y);
Grid.SetColumn(Objects[x, y].Image, x);
Board.Children.Add(Objects[x, y].Image);
}
}
Objects[2,7] = new WPFDump(new TypeOfGarbage(GarbageType.Glass,1,1), 10000,new Coords(2,7));
Grid.SetColumn(Objects[2, 7].Image, 2);
Grid.SetRow(Objects[2, 7].Image, 7);
Board.Children.Add(Objects[2, 7].Image);
Objects[3,7] = new WPFDump(new TypeOfGarbage(GarbageType.Organic,1,1),10000, new Coords(3,7));
Grid.SetColumn(Objects[3, 7].Image, 3);
Grid.SetRow(Objects[3, 7].Image, 7);
Board.Children.Add(Objects[3, 7].Image);
Objects[2,8] = new WPFDump(new TypeOfGarbage(GarbageType.Paper,1,1), 10000, new Coords(2,8));
Grid.SetColumn(Objects[2, 8].Image, 2);
Grid.SetRow(Objects[2, 8].Image, 8);
Board.Children.Add(Objects[2, 8].Image);
Objects[3,8] = new WPFDump(new TypeOfGarbage(GarbageType.PlasticMetal, 1,1), 10000, new Coords(3,8));
Grid.SetColumn(Objects[3, 8].Image, 3);
Grid.SetRow(Objects[3, 8].Image, 8);
Board.Children.Add(Objects[3, 8].Image);
GarbageCollectorContainers = new List<AGarbageCollectorContainer>()
{
new GarbageCollectorContainer(new TypeOfGarbage(GarbageType.Glass,1,1), 500),
new GarbageCollectorContainer(new TypeOfGarbage(GarbageType.Organic,1,1), 500),
new GarbageCollectorContainer(new TypeOfGarbage(GarbageType.PlasticMetal, 1,1),500),
new GarbageCollectorContainer(new TypeOfGarbage(GarbageType.Paper, 1,1), 500)
};
garbageCollector = new WPFGarbageCollector(new Coords(2, 1), GarbageCollectorContainers, Columns, Rows);
Grid.SetRow(garbageCollector.Image, garbageCollector.Coords.Y);
Grid.SetColumn(garbageCollector.Image, garbageCollector.Coords.X);
CollectorBoard.Children.Add(garbageCollector.Image);
CollectorBoard.ShowGridLines = true;
//CollectorInfo.ItemsSource = garbageCollector;
//CollectorInfo.Items.Add(garbageCollector);
//CollectorInfo.Columns.Add(new DataGridTextColumn {Header="X", Binding = new Binding("Coords.X")});
//CollectorInfo.Columns.Add(new DataGridTextColumn { Header = "Y", Binding = new Binding("Coords.Y") });
IEnumerable<TrashCan> trashCans = new List<TrashCan>()
{
new TrashCan(new TypeOfGarbage(GarbageType.Glass,1,1), 500, new Garbage(new TypeOfGarbage(GarbageType.Glass,1,1), 100)),
new TrashCan(new TypeOfGarbage(GarbageType.Organic,1,1), 500, new Garbage(new TypeOfGarbage(GarbageType.Organic,1,1), 100)),
new TrashCan(new TypeOfGarbage(GarbageType.Paper,1,1), 500, new Garbage(new TypeOfGarbage(GarbageType.Paper,1,1), 100)),
new TrashCan(new TypeOfGarbage(GarbageType.PlasticMetal,1,1), 500, new Garbage(new TypeOfGarbage(GarbageType.PlasticMetal,1,1), 100))
};
WPFHouse house = new WPFHouse(new Coords(1, 3), trashCans);
Objects[1, 3] = house;
Grid.SetRow(Objects[1, 3].Image, 3);
Grid.SetColumn(Objects[1, 3].Image, 1);
Board.Children.Add(Objects[1, 3].Image);
}
}
}