Compare commits

...

11 Commits

Author SHA1 Message Date
ryuga4
6e6d115a59 inny interfejs 2019-03-26 23:59:58 +01:00
ryuga4
aaeb1b3adb Finish 3 / wiecej clonów 2019-03-26 20:36:37 +01:00
ryuga4
680b87e369 Finish 3 / wiecej clonów 2019-03-26 19:46:14 +01:00
ryuga4
5429ed9346 Finish 2 2019-03-26 19:37:23 +01:00
ryuga4
a78fd3cc60 Finish 2 2019-03-26 19:37:15 +01:00
ryuga4
5af6bea5ce Init / Finish 2019-03-26 18:25:53 +01:00
Michał Dulski
b635de5a5f Organizacja kodu 2019-03-20 18:54:57 +01:00
Michał Dulski
31a9e9109c Dodano wysypisko i drobne poprawki 2019-03-20 18:27:11 +01:00
Michał Dulski
b14fd9f43f Dodano poruszanie się śmieciarki przy pomocy strzałek 2019-03-20 16:51:35 +01:00
Michał Dulski
22814fc944 Dodano grafiki domu, śmieciarki i skrzyżowania, interfejs IObject po którym dziedziczą obiekty na mapie, model śmieciarki i drogi, zmieniono nazwę Home.cs na House.cs, dodano pole Object w Tile, ale usunięto atrybut Background. Dodano łączenie obrazków i rysowanie śmieciarki. 2019-03-20 16:02:05 +01:00
s434678
bc8c6ae912 Board 2019-03-20 12:34:03 +01:00
33 changed files with 1849 additions and 65 deletions

299
Trunk/CodeMap1.dgml Normal file
View File

@ -0,0 +1,299 @@
<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph DataVirtualized="True" Layout="Sugiyama" ZoomLevel="-1" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
<Nodes>
<Node Id="(@1 Namespace=CzokoŚmieciarka.WPF.Properties)" Category="CodeSchema_Namespace" Bounds="25.145,-159.5001,229.333333333333,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" Group="Collapsed" Label="CzokoŚmieciarka.WPF.Properties" UseManualLocation="True" />
<Node Id="(@1 Namespace=XamlGeneratedNamespace)" Category="CodeSchema_Namespace" Bounds="25.145,-214.5001,200.463333333333,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" Group="Collapsed" Label="XamlGeneratedNamespace" UseManualLocation="True" />
<Node Id="(@3)" Bounds="37,-84.5,240.496666666667,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="NotFetched" ErrorLevel="Error" FilePath="$(f2e11fee-c5ac-47d2-ba9c-819909b6dff7.OutputPath)" Group="Collapsed" Label="CzokoŚmieciarka.DataModels.dll" UseManualLocation="True" />
<Node Id="(@4)" Bounds="37,-29.4999,323.01,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="NotFetched" ErrorLevel="Error" FilePath="$(a3d5da96-69d7-463f-b1ee-6fc70716e3b2.OutputPath)" Group="Collapsed" Label="CzokoŚmieciarka.DataModels.GeneralModels.dll" UseManualLocation="True" />
<Node Id="@2" Bounds="37,-252.000183333306,205.623333333333,25" CodeSchemaProperty_StrongName="CzokoŚmieciarka.WPF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" ErrorLevel="Error" FetchedChildrenCount="4" FilePath="$(VsSolution)\Interface\CzokoŚmieciarka.WPF\bin\Debug\CzokoŚmieciarka.WPF.exe" Group="Collapsed" Label="CzokoŚmieciarka.WPF.exe" UseManualLocation="True" />
<Node Id="@5" Category="CodeSchema_Namespace" Bounds="46.02,-324.5001,172.963333333333,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" Group="Collapsed" Label="CzokoŚmieciarka.WPF" UseManualLocation="True" />
<Node Id="@6" Category="CodeSchema_Namespace" Bounds="25.145,-269.5001,214.713333333333,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" Group="Collapsed" Label="CzokoŚmieciarka.WPF.Models" UseManualLocation="True" />
</Nodes>
<Links>
<Link Source="@2" Target="(@1 Namespace=CzokoŚmieciarka.WPF.Properties)" Category="Contains" FetchingParent="@2" />
<Link Source="@2" Target="(@1 Namespace=XamlGeneratedNamespace)" Category="Contains" FetchingParent="@2" />
<Link Source="@2" Target="@5" Category="Contains" FetchingParent="@2" />
<Link Source="@2" Target="@6" Category="Contains" FetchingParent="@2" />
<Link Source="@5" Target="@6" Category="CodeSchema_Calls" Bounds="132.501663208008,-299.500091552734,0,21" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="1" />
</Links>
<Categories>
<Category Id="CodeSchema_Calls" Label="Calls" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="Called By" OutgoingActionLabel="Calls" />
<Category Id="CodeSchema_Namespace" Label="Namespace" CanBeDataDriven="True" DefaultAction="Node:Both:CodeSchema_Type" Icon="CodeSchema_Namespace" NavigationActionLabel="Namespaces" />
<Category Id="Contains" Label="Contains" Description="Whether the source of the link contains the target object" CanBeDataDriven="False" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="Contained By" IsContainment="True" OutgoingActionLabel="Contains" />
</Categories>
<Properties>
<Property Id="Bounds" DataType="System.Windows.Rect" />
<Property Id="CanBeDataDriven" Label="CanBeDataDriven" Description="CanBeDataDriven" DataType="System.Boolean" />
<Property Id="CanLinkedNodesBeDataDriven" Label="CanLinkedNodesBeDataDriven" Description="CanLinkedNodesBeDataDriven" DataType="System.Boolean" />
<Property Id="CodeSchemaProperty_StrongName" Label="StrongName" Description="StrongName" DataType="System.String" />
<Property Id="DataVirtualized" Label="Data Virtualized" Description="If true, the graph can contain nodes and links that represent data for virtualized nodes/links (i.e. not actually created in the graph)." DataType="System.Boolean" />
<Property Id="DefaultAction" Label="DefaultAction" Description="DefaultAction" DataType="System.String" />
<Property Id="DelayedChildNodesState" Label="Delayed Child Nodes State" Description="Unspecified if the delayed child nodes state is not specified. NotFetched if the group contains child nodes that are not fetched into the graph yet. Fetched if the group has all its delayed child nodes already fetched." DataType="Microsoft.VisualStudio.GraphModel.DelayedDataState" />
<Property Id="DelayedCrossGroupLinksState" Label="Delayed Cross-Group Links State" Description="Unspecified if the delayed cross-group links state is not specified. NotFetched if delayed cross-group links on this node are not fetched into the graph yet. Fetched if all delayed cross-group links have already fetched." DataType="Microsoft.VisualStudio.GraphModel.DelayedDataState" />
<Property Id="ErrorLevel" Label="Error Level" Description="Used to associate an error level with a node or link in the graph" Group="Analysis" DataType="Microsoft.VisualStudio.Progression.ErrorLevel" />
<Property Id="Expression" DataType="System.String" />
<Property Id="FetchedChildrenCount" DataType="System.Int32" />
<Property Id="FetchingParent" DataType="Microsoft.VisualStudio.GraphModel.GraphNodeId" />
<Property Id="FilePath" Label="File Path" Description="File Path" DataType="System.String" />
<Property Id="Group" Label="Group" Description="Display the node as a group" DataType="Microsoft.VisualStudio.GraphModel.GraphGroupStyle" />
<Property Id="GroupLabel" DataType="System.String" />
<Property Id="Icon" Label="Icon" Description="Icon" DataType="System.String" />
<Property Id="IncomingActionLabel" Label="IncomingActionLabel" Description="IncomingActionLabel" DataType="System.String" />
<Property Id="IsContainment" DataType="System.Boolean" />
<Property Id="IsEnabled" DataType="System.Boolean" />
<Property Id="IsSourceVirtualized" Label="Link Source Virtualized" Description="If true, the link source end contains data for virtualized nodes/links (i.e. not actually created in the graph)." DataType="System.Boolean" />
<Property Id="IsTargetVirtualized" Label="Link Target Virtualized" Description="If true, the link target end contains data for virtualized nodes/links (i.e. not actually created in the graph)." DataType="System.Boolean" />
<Property Id="Label" Label="Label" Description="Displayable label of an Annotatable object" DataType="System.String" />
<Property Id="Layout" DataType="System.String" />
<Property Id="NavigationActionLabel" Label="NavigationActionLabel" Description="NavigationActionLabel" DataType="System.String" />
<Property Id="OutgoingActionLabel" Label="OutgoingActionLabel" Description="OutgoingActionLabel" DataType="System.String" />
<Property Id="TargetType" DataType="System.Type" />
<Property Id="UseManualLocation" DataType="System.Boolean" />
<Property Id="Value" DataType="System.String" />
<Property Id="ValueLabel" DataType="System.String" />
<Property Id="Visibility" Label="Visibility" Description="Defines whether a node in the graph is visible or not" DataType="System.Windows.Visibility" />
<Property Id="Weight" Label="Weight" Description="Weight" DataType="System.Double" />
<Property Id="ZoomLevel" DataType="System.String" />
</Properties>
<QualifiedNames>
<Name Id="Assembly" Label="Assembly" ValueType="Uri" />
<Name Id="Namespace" Label="Namespace" ValueType="System.String" />
</QualifiedNames>
<IdentifierAliases>
<Alias n="1" Uri="Assembly=$(VsSolutionUri)/Interface/CzokoŚmieciarka.WPF/bin/Debug/CzokoŚmieciarka.WPF.exe" />
<Alias n="2" Id="(@1)" />
<Alias n="3" Uri="Assembly=$(f2e11fee-c5ac-47d2-ba9c-819909b6dff7.OutputPathUri)" />
<Alias n="4" Uri="Assembly=$(a3d5da96-69d7-463f-b1ee-6fc70716e3b2.OutputPathUri)" />
<Alias n="5" Id="(@1 Namespace=CzokoŚmieciarka.WPF)" />
<Alias n="6" Id="(@1 Namespace=CzokoŚmieciarka.WPF.Models)" />
</IdentifierAliases>
<Styles>
<Style TargetType="Node" GroupLabel="Error" ValueLabel="Error Level">
<Condition Expression="HasValue('ErrorLevel')" />
<Setter Property="Icon" Value="Node.Error" />
</Style>
<Style TargetType="Node" GroupLabel="Results" ValueLabel="True">
<Condition Expression="HasCategory('QueryResult')" />
<Setter Property="Background" Value="#FFBCFFBE" />
</Style>
<Style TargetType="Node" GroupLabel="Test Project" ValueLabel="Test Project">
<Condition Expression="HasCategory('CodeMap_TestProject')" />
<Setter Property="Icon" Value="CodeMap_TestProject" />
<Setter Property="Background" Value="#FF307A69" />
</Style>
<Style TargetType="Node" GroupLabel="Web Project" ValueLabel="Web Project">
<Condition Expression="HasCategory('CodeMap_WebProject')" />
<Setter Property="Icon" Value="CodeMap_WebProject" />
</Style>
<Style TargetType="Node" GroupLabel="Windows Store Project" ValueLabel="Windows Store Project">
<Condition Expression="HasCategory('CodeMap_WindowsStoreProject')" />
<Setter Property="Icon" Value="CodeMap_WindowsStoreProject" />
</Style>
<Style TargetType="Node" GroupLabel="Phone Project" ValueLabel="Phone Project">
<Condition Expression="HasCategory('CodeMap_PhoneProject')" />
<Setter Property="Icon" Value="CodeMap_PhoneProject" />
</Style>
<Style TargetType="Node" GroupLabel="Portable Library" ValueLabel="Portable Library">
<Condition Expression="HasCategory('CodeMap_PortableLibraryProject')" />
<Setter Property="Icon" Value="CodeMap_PortableLibraryProject" />
</Style>
<Style TargetType="Node" GroupLabel="WPF Project" ValueLabel="WPF Project">
<Condition Expression="HasCategory('CodeMap_WpfProject')" />
<Setter Property="Icon" Value="CodeMap_WpfProject" />
</Style>
<Style TargetType="Node" GroupLabel="VSIX Project" ValueLabel="VSIX Project">
<Condition Expression="HasCategory('CodeMap_VsixProject')" />
<Setter Property="Icon" Value="CodeMap_VsixProject" />
</Style>
<Style TargetType="Node" GroupLabel="Modeling Project" ValueLabel="Modeling Project">
<Condition Expression="HasCategory('CodeMap_ModelingProject')" />
<Setter Property="Icon" Value="CodeMap_ModelingProject" />
</Style>
<Style TargetType="Node" GroupLabel="Assembly" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Assembly')" />
<Setter Property="Background" Value="#FF094167" />
<Setter Property="Stroke" Value="#FF094167" />
<Setter Property="Icon" Value="CodeSchema_Assembly" />
</Style>
<Style TargetType="Node" GroupLabel="Namespace" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Namespace')" />
<Setter Property="Background" Value="#FF0E619A" />
<Setter Property="Stroke" Value="#FF0E619A" />
<Setter Property="Icon" Value="CodeSchema_Namespace" />
</Style>
<Style TargetType="Node" GroupLabel="Interface" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Interface')" />
<Setter Property="Background" Value="#FF1382CE" />
<Setter Property="Stroke" Value="#FF1382CE" />
<Setter Property="Icon" Value="CodeSchema_Interface" />
</Style>
<Style TargetType="Node" GroupLabel="Struct" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Struct')" />
<Setter Property="Background" Value="#FF1382CE" />
<Setter Property="Stroke" Value="#FF1382CE" />
<Setter Property="Icon" Value="CodeSchema_Struct" />
</Style>
<Style TargetType="Node" GroupLabel="Enumeration" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Enum')" />
<Setter Property="Background" Value="#FF1382CE" />
<Setter Property="Stroke" Value="#FF1382CE" />
<Setter Property="Icon" Value="CodeSchema_Enum" />
<Setter Property="LayoutSettings" Value="List" />
</Style>
<Style TargetType="Node" GroupLabel="Delegate" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Delegate')" />
<Setter Property="Background" Value="#FF1382CE" />
<Setter Property="Stroke" Value="#FF1382CE" />
<Setter Property="Icon" Value="CodeSchema_Delegate" />
</Style>
<Style TargetType="Node" GroupLabel="Class" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Type')" />
<Setter Property="Background" Value="#FF0E70C0" />
<Setter Property="Stroke" Value="#FF0E70C0" />
<Setter Property="Icon" Value="CodeSchema_Class" />
</Style>
<Style TargetType="Node" GroupLabel="Property" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Property')" />
<Setter Property="Background" Value="#FFE0E0E0" />
<Setter Property="Stroke" Value="#FFE0E0E0" />
<Setter Property="Icon" Value="CodeSchema_Property" />
</Style>
<Style TargetType="Node" GroupLabel="Method" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Method') Or HasCategory('CodeSchema_CallStackUnresolvedMethod')" />
<Setter Property="Background" Value="#FFE0E0E0" />
<Setter Property="Stroke" Value="#FFE0E0E0" />
<Setter Property="Icon" Value="CodeSchema_Method" />
<Setter Property="LayoutSettings" Value="List" />
</Style>
<Style TargetType="Node" GroupLabel="Event" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Event')" />
<Setter Property="Background" Value="#FFE0E0E0" />
<Setter Property="Stroke" Value="#FFE0E0E0" />
<Setter Property="Icon" Value="CodeSchema_Event" />
</Style>
<Style TargetType="Node" GroupLabel="Field" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Field')" />
<Setter Property="Background" Value="#FFE0E0E0" />
<Setter Property="Stroke" Value="#FFE0E0E0" />
<Setter Property="Icon" Value="CodeSchema_Field" />
</Style>
<Style TargetType="Node" GroupLabel="Out Parameter" ValueLabel="Has category">
<Condition Expression="CodeSchemaProperty_IsOut = 'True'" />
<Setter Property="Icon" Value="CodeSchema_OutParameter" />
</Style>
<Style TargetType="Node" GroupLabel="Parameter" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_Parameter')" />
<Setter Property="Icon" Value="CodeSchema_Parameter" />
</Style>
<Style TargetType="Node" GroupLabel="Local Variable" ValueLabel="Has category">
<Condition Expression="HasCategory('CodeSchema_LocalExpression')" />
<Setter Property="Icon" Value="CodeSchema_LocalExpression" />
</Style>
<Style TargetType="Node" GroupLabel="Externals" ValueLabel="Has category">
<Condition Expression="HasCategory('Externals')" />
<Setter Property="Background" Value="#FF424242" />
<Setter Property="Stroke" Value="#FF424242" />
</Style>
<Style TargetType="Link" GroupLabel="Inherits From" ValueLabel="True">
<Condition Expression="HasCategory('InheritsFrom')" />
<Setter Property="Stroke" Value="#FF00A600" />
<Setter Property="StrokeDashArray" Value="2 0" />
<Setter Property="DrawArrow" Value="true" />
</Style>
<Style TargetType="Link" GroupLabel="Implements" ValueLabel="True">
<Condition Expression="HasCategory('Implements')" />
<Setter Property="Stroke" Value="#8000A600" />
<Setter Property="StrokeDashArray" Value="2 2" />
<Setter Property="DrawArrow" Value="true" />
</Style>
<Style TargetType="Link" GroupLabel="Calls" ValueLabel="True">
<Condition Expression="HasCategory('CodeSchema_Calls')" />
<Setter Property="Stroke" Value="#FFFF00FF" />
<Setter Property="StrokeDashArray" Value="2 0" />
<Setter Property="DrawArrow" Value="true" />
</Style>
<Style TargetType="Link" GroupLabel="Function Pointer" ValueLabel="True">
<Condition Expression="HasCategory('CodeSchema_FunctionPointer')" />
<Setter Property="Stroke" Value="#FFFF00FF" />
<Setter Property="StrokeDashArray" Value="2 2" />
<Setter Property="DrawArrow" Value="true" />
</Style>
<Style TargetType="Link" GroupLabel="Field Read" ValueLabel="True">
<Condition Expression="HasCategory('CodeSchema_FieldRead')" />
<Setter Property="Stroke" Value="#FF00AEEF" />
<Setter Property="StrokeDashArray" Value="2 2" />
<Setter Property="DrawArrow" Value="true" />
</Style>
<Style TargetType="Link" GroupLabel="Field Write" ValueLabel="True">
<Condition Expression="HasCategory('CodeSchema_FieldWrite')" />
<Setter Property="Stroke" Value="#FF00AEEF" />
<Setter Property="DrawArrow" Value="true" />
<Setter Property="IsHidden" Value="false" />
</Style>
<Style TargetType="Link" GroupLabel="Inherits From" ValueLabel="True" Visibility="Hidden">
<Condition Expression="HasCategory('InheritsFrom') And Target.HasCategory('CodeSchema_Class')" />
<Setter Property="TargetDecorator" Value="OpenArrow" />
</Style>
<Style TargetType="Link" GroupLabel="Implements" ValueLabel="True" Visibility="Hidden">
<Condition Expression="HasCategory('Implements') And Target.HasCategory('CodeSchema_Interface')" />
<Setter Property="TargetDecorator" Value="OpenArrow" />
</Style>
<Style TargetType="Link" GroupLabel="Comment Link" ValueLabel="True" Visibility="Hidden">
<Condition Expression="Source.HasCategory('Comment')" />
<Setter Property="Stroke" Value="#FFE5C365" />
</Style>
<Style TargetType="Node" GroupLabel="Cursor Location Changed" ValueLabel="True" Visibility="Hidden">
<Condition Expression="IsCursorLocation" />
<Setter Property="IndicatorWest" Value="WestIndicator" />
</Style>
<Style TargetType="Node" GroupLabel="Disabled Breakpoint Location Changed" ValueLabel="True" Visibility="Hidden">
<Condition Expression="DisabledBreakpointCount" />
<Setter Property="IndicatorWest" Value="WestIndicator" />
</Style>
<Style TargetType="Node" GroupLabel="Enabled Breakpoint Location Changed" ValueLabel="True" Visibility="Hidden">
<Condition Expression="EnabledBreakpointCount" />
<Setter Property="IndicatorWest" Value="WestIndicator" />
</Style>
<Style TargetType="Node" GroupLabel="Instruction Pointer Location Changed" ValueLabel="True" Visibility="Hidden">
<Condition Expression="IsInstructionPointerLocation" />
<Setter Property="IndicatorWest" Value="WestIndicator" />
</Style>
<Style TargetType="Node" GroupLabel="Current Callstack Changed" ValueLabel="True" Visibility="Hidden">
<Condition Expression="IsCurrentCallstackFrame" />
<Setter Property="IndicatorWest" Value="WestIndicator" />
</Style>
<Style TargetType="Link" GroupLabel="Return" ValueLabel="True" Visibility="Hidden">
<Condition Expression="HasCategory('CodeSchema_ReturnTypeLink')" />
</Style>
<Style TargetType="Link" GroupLabel="References" ValueLabel="True" Visibility="Hidden">
<Condition Expression="HasCategory('References')" />
</Style>
<Style TargetType="Link" GroupLabel="Uses Attribute" ValueLabel="True" Visibility="Hidden">
<Condition Expression="HasCategory('CodeSchema_AttributeUse')" />
</Style>
<Style TargetType="Node" GroupLabel="Solution Folder" ValueLabel="True" Visibility="Hidden">
<Condition Expression="HasCategory('CodeMap_SolutionFolder')" />
<Setter Property="Background" Value="#FFDEBA83" />
</Style>
<Style TargetType="Link" GroupLabel="Project Reference" ValueLabel="Project Reference">
<Condition Expression="HasCategory('CodeMap_ProjectReference')" />
<Setter Property="Stroke" Value="#9A9A9A" />
<Setter Property="StrokeDashArray" Value="2 2" />
<Setter Property="DrawArrow" Value="true" />
</Style>
<Style TargetType="Link" GroupLabel="External Reference" ValueLabel="External Reference">
<Condition Expression="HasCategory('CodeMap_ExternalReference')" />
<Setter Property="Stroke" Value="#9A9A9A" />
<Setter Property="StrokeDashArray" Value="2 2" />
<Setter Property="DrawArrow" Value="true" />
</Style>
</Styles>
<Paths>
<Path Id="a3d5da96-69d7-463f-b1ee-6fc70716e3b2.OutputPath" Value="C:\Users\s434678\Source\Repos\Czoko_Smieciarka\Trunk\Components\CzokoŚmieciarka.DataModels.GeneralModels\bin\Debug\CzokoŚmieciarka.DataModels.GeneralModels.dll" />
<Path Id="a3d5da96-69d7-463f-b1ee-6fc70716e3b2.OutputPathUri" Value="file:///C:/Users/s434678/Source/Repos/Czoko_Smieciarka/Trunk/Components/CzokoŚmieciarka.DataModels.GeneralModels/bin/Debug/CzokoŚmieciarka.DataModels.GeneralModels.dll" />
<Path Id="f2e11fee-c5ac-47d2-ba9c-819909b6dff7.OutputPath" Value="C:\Users\s434678\Source\Repos\Czoko_Smieciarka\Trunk\Components\CzokoŚmieciarka.DataModels\bin\Debug\CzokoŚmieciarka.DataModels.dll" />
<Path Id="f2e11fee-c5ac-47d2-ba9c-819909b6dff7.OutputPathUri" Value="file:///C:/Users/s434678/Source/Repos/Czoko_Smieciarka/Trunk/Components/CzokoŚmieciarka.DataModels/bin/Debug/CzokoŚmieciarka.DataModels.dll" />
<Path Id="VsSolution" Value="C:\Users\s434678\Source\Repos\Czoko_Smieciarka\Trunk" />
<Path Id="VsSolutionUri" Value="file:///C:/Users/s434678/Source/Repos/Czoko_Smieciarka/Trunk" />
</Paths>
</DirectedGraph>

View File

@ -31,8 +31,6 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />

View File

@ -35,8 +35,13 @@ namespace CzokoŚmieciarka.DataModels.Interfaces.GarbageCollector
public Coords MoveRight()
{
return new Coords(Position.X+1, Position.Y);
}
}
public object Clone()
{
return this.MemberwiseClone();
}
public IEnumerable<AGarbageCollectorContainer> TrashContainers { get; }
}
}

View File

@ -8,7 +8,7 @@ using CzokoŚmieciarka.DataModels.Models;
namespace CzokoŚmieciarka.DataModels.Interfaces
{
public interface IGarbageCollector
public interface IGarbageCollector : ICloneable
{
Coords Position { get; }
Coords MoveUp();

View File

@ -8,7 +8,7 @@ using CzokoŚmieciarka.DataModels.Models;
namespace CzokoŚmieciarka.DataModels.Interfaces
{
public interface IGarbageLocalization
public interface IGarbageLocalization : ICloneable
{
Coords Coords { get; }

View File

@ -9,6 +9,6 @@ namespace CzokoŚmieciarka.DataModels.Interfaces.RoutePlanningEngine
{
public interface IRoutePlanningEngine
{
IEnumerable<IStep> CalculateStep();
void PerformStep();
}
}

View File

@ -2,7 +2,7 @@
namespace CzokoŚmieciarka.DataModels.Interfaces.TrashCans
{
public abstract class ATrashCan
public abstract class ATrashCan : ICloneable
{
protected ATrashCan(ITypeOfGarbage typeOfGarbage, int maxVolume)
{
@ -32,8 +32,13 @@ namespace CzokoŚmieciarka.DataModels.Interfaces.TrashCans
this.Garbage = newGarbage;
return true;
}
}
public object Clone()
{
return this.MemberwiseClone();
}
public virtual AGarbage TakeGarbage()
{
var result = (AGarbage)this.Garbage.Clone();

View File

@ -26,5 +26,14 @@ namespace CzokoŚmieciarka.DataModels.Models
{
return !(a == b);
}
public static Coords operator + (Coords a, Coords b)
{
return new Coords(a.X + b.X, a.Y + b.Y);
}
public static Coords operator -(Coords a, Coords b)
{
return new Coords(a.X - b.X, a.Y - b.Y);
}
}
}

View File

@ -4,7 +4,6 @@ using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Shapes;
using CzokoŚmieciarka.DataModels.Interfaces;
namespace CzokoŚmieciarka.DataModels.Models

View File

@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Components\CzokoŚmieciarka.DataModels\CzokoŚmieciarka.DataModels.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,113 @@
using CzokoŚmieciarka.DataModels.Enums;
using CzokoŚmieciarka.DataModels.Interfaces;
using CzokoŚmieciarka.DataModels.Interfaces.RoutePlanningEngine;
using CzokoŚmieciarka.DataModels.Interfaces.TrashCans;
using CzokoŚmieciarka.DataModels.Models;
using CzokoŚmieciarka.DataModels.Models.Steps;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Czoko_Smieciarka.AI_Naive
{
public class RoutePlanningEngine : IRoutePlanningEngine
{
public IGarbageCollector Collector { get; }
public IEnumerable<IGarbageLocalization> Cans { get; }
public IEnumerable<ADump> Dumps { get; }
enum State { TravelToDump, TravelToCan, Wait, Finish }
public Coords Destination { get; set; }
public object DestinationObject { get; set; }
private State CurrentState { get; set; }
public void PerformStep()
{
PerformMove();
}
public RoutePlanningEngine(IGarbageCollector collector, IEnumerable<IGarbageLocalization> cans, IEnumerable<ADump> dumps)
{
this.Collector = collector;
this.Cans = cans;
this.Dumps = dumps;
this.CurrentState = State.Wait;
}
private bool PerformMove()
{
switch (CurrentState)
{
case State.TravelToDump:
if (Destination == Collector.Position)
{
var dump = (DestinationObject as ADump);
var step = new SpillStep(Collector, dump, dump.TypeOfGarbage);
step.Invoke();
this.CurrentState = State.Wait;
} else
{
var dif = Destination - Collector.Position;
Direction nextDirection = (dif.X == 0) ?
((dif.Y > 0) ? Direction.Up : Direction.Down) :
((dif.X > 0) ? Direction.Right : Direction.Left);
var step = new MoveStep(nextDirection, Collector);
step.Invoke();
}
break;
case State.TravelToCan:
if (Destination == Collector.Position)
{
var garbage = (DestinationObject as IGarbageLocalization);
foreach (var item in garbage.TrashCans)
{
var step = new CollectStep(Collector, garbage, item.TypeOfGarbage);
step.Invoke();
}
this.CurrentState = State.Wait;
}
else
{
var dif = Destination - Collector.Position;
Direction nextDirection = (dif.X == 0) ?
((dif.Y > 0) ? Direction.Up : Direction.Down) :
((dif.X > 0) ? Direction.Right : Direction.Left);
var step = new MoveStep(nextDirection, Collector);
step.Invoke();
}
break;
case State.Wait:
var notEmpty = Collector.TrashContainers.Where(i => i.FillPercent > 0);
if (notEmpty.Any())
{
var destDump = Dumps.First(i => i.TypeOfGarbage == notEmpty.First().TypeOfGarbage);
this.Destination = destDump.Localization;
this.CurrentState = State.TravelToDump;
} else
{
var notEmptyCans = Cans.Where(i => i.TrashCans.Any(j => j.FillPercent > 0));
if (notEmptyCans.Any())
{
this.Destination = notEmptyCans.First().Coords;
this.CurrentState = State.TravelToCan;
} else
{
this.CurrentState = State.Finish;
}
}
break;
case State.Finish:
return false;
}
return true;
}
}
}

View File

@ -1,37 +1,43 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.136
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CzokoŚmieciarka.DataModels", "Components\CzokoŚmieciarka.DataModels\CzokoŚmieciarka.DataModels.csproj", "{F2E11FEE-C5AC-47D2-BA9C-819909B6DFF7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CzokoŚmieciarka.DataModels.GeneralModels", "Components\CzokoŚmieciarka.DataModels.GeneralModels\CzokoŚmieciarka.DataModels.GeneralModels.csproj", "{A3D5DA96-69D7-463F-B1EE-6FC70716E3B2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CzokoŚmieciarka.WPF", "Interface\CzokoŚmieciarka.WPF\CzokoŚmieciarka.WPF.csproj", "{06937DFB-242D-46BD-9A4B-486D156B62A9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F2E11FEE-C5AC-47D2-BA9C-819909B6DFF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F2E11FEE-C5AC-47D2-BA9C-819909B6DFF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F2E11FEE-C5AC-47D2-BA9C-819909B6DFF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F2E11FEE-C5AC-47D2-BA9C-819909B6DFF7}.Release|Any CPU.Build.0 = Release|Any CPU
{A3D5DA96-69D7-463F-B1EE-6FC70716E3B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A3D5DA96-69D7-463F-B1EE-6FC70716E3B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A3D5DA96-69D7-463F-B1EE-6FC70716E3B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A3D5DA96-69D7-463F-B1EE-6FC70716E3B2}.Release|Any CPU.Build.0 = Release|Any CPU
{06937DFB-242D-46BD-9A4B-486D156B62A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{06937DFB-242D-46BD-9A4B-486D156B62A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{06937DFB-242D-46BD-9A4B-486D156B62A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{06937DFB-242D-46BD-9A4B-486D156B62A9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AAED00C0-3CC4-470C-8623-232E844D6FF2}
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.136
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CzokoŚmieciarka.DataModels", "Components\CzokoŚmieciarka.DataModels\CzokoŚmieciarka.DataModels.csproj", "{F2E11FEE-C5AC-47D2-BA9C-819909B6DFF7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CzokoŚmieciarka.DataModels.GeneralModels", "Components\CzokoŚmieciarka.DataModels.GeneralModels\CzokoŚmieciarka.DataModels.GeneralModels.csproj", "{A3D5DA96-69D7-463F-B1EE-6FC70716E3B2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CzokoŚmieciarka.WPF", "Interface\CzokoŚmieciarka.WPF\CzokoŚmieciarka.WPF.csproj", "{06937DFB-242D-46BD-9A4B-486D156B62A9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Czoko_Smieciarka.AI_Naive", "Czoko_Smieciarka.AI_Naive\Czoko_Smieciarka.AI_Naive.csproj", "{A1F1D99A-4E5B-4389-B776-321D8A5976EE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F2E11FEE-C5AC-47D2-BA9C-819909B6DFF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F2E11FEE-C5AC-47D2-BA9C-819909B6DFF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F2E11FEE-C5AC-47D2-BA9C-819909B6DFF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F2E11FEE-C5AC-47D2-BA9C-819909B6DFF7}.Release|Any CPU.Build.0 = Release|Any CPU
{A3D5DA96-69D7-463F-B1EE-6FC70716E3B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A3D5DA96-69D7-463F-B1EE-6FC70716E3B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A3D5DA96-69D7-463F-B1EE-6FC70716E3B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A3D5DA96-69D7-463F-B1EE-6FC70716E3B2}.Release|Any CPU.Build.0 = Release|Any CPU
{06937DFB-242D-46BD-9A4B-486D156B62A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{06937DFB-242D-46BD-9A4B-486D156B62A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{06937DFB-242D-46BD-9A4B-486D156B62A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{06937DFB-242D-46BD-9A4B-486D156B62A9}.Release|Any CPU.Build.0 = Release|Any CPU
{A1F1D99A-4E5B-4389-B776-321D8A5976EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A1F1D99A-4E5B-4389-B776-321D8A5976EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A1F1D99A-4E5B-4389-B776-321D8A5976EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A1F1D99A-4E5B-4389-B776-321D8A5976EE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AAED00C0-3CC4-470C-8623-232E844D6FF2}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,2 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeInspection/CodeAnnotations/NamespacesWithAnnotations/=Czoko_015Amieciarka_002EWPF_002EAnnotations/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@ -13,5 +13,6 @@ namespace CzokoŚmieciarka.WPF
/// </summary>
public partial class App : Application
{
}
}

View File

@ -37,6 +37,7 @@
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
@ -70,7 +71,13 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Models\Board.cs" />
<Compile Include="Interfaces\IObject.cs" />
<Compile Include="Models\DumpWPF.cs" />
<Compile Include="Models\GarbageCollectorWPF.cs" />
<Compile Include="Models\House.cs" />
<Compile Include="Models\Road.cs" />
<Compile Include="Models\Tile.cs" />
<Compile Include="Properties\Annotations.cs" />
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
@ -96,5 +103,15 @@
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Components\CzokoŚmieciarka.DataModels.GeneralModels\CzokoŚmieciarka.DataModels.GeneralModels.csproj">
<Project>{a3d5da96-69d7-463f-b1ee-6fc70716e3b2}</Project>
<Name>CzokoŚmieciarka.DataModels.GeneralModels</Name>
</ProjectReference>
<ProjectReference Include="..\..\Components\CzokoŚmieciarka.DataModels\CzokoŚmieciarka.DataModels.csproj">
<Project>{f2e11fee-c5ac-47d2-ba9c-819909b6dff7}</Project>
<Name>CzokoŚmieciarka.DataModels</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,18 @@
using CzokoŚmieciarka.DataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
namespace CzokoŚmieciarka.WPF.Models
{
public interface IObject
{
Coords Location { get; set; }
string ImagePath { get; set; }
string Data { get; set; }
ImageBrush Image { get; set; }
}
}

View File

@ -6,12 +6,13 @@
xmlns:local="clr-namespace:CzokoŚmieciarka.WPF"
xmlns:models="clr-namespace:CzokoŚmieciarka.WPF.Models"
mc:Ignorable="d"
Title="MainWindow" Height="800" Width="800">
Title="MainWindow" Height="800" Width="800"
KeyDown="MainWindow_OnKeyDown">
<ItemsControl ItemsSource="{Binding Tiles}">
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type models:Tile}">
<Grid Background="{Binding Background}">
<TextBlock Text="{Binding Data}"></TextBlock>
<Grid Background="{Binding Object.Image}">
<TextBlock Text="{Binding Object.Data}"></TextBlock>
</Grid>
</DataTemplate>
</ItemsControl.Resources>

View File

@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
@ -13,6 +14,10 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
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.WPF.Models;
namespace CzokoŚmieciarka.WPF
@ -22,12 +27,51 @@ namespace CzokoŚmieciarka.WPF
/// </summary>
public partial class MainWindow : Window
{
public List<IObject> Objects = new List<IObject>();
public GarbageCollector garbageCollector = new GarbageCollector(new Coords(0,0), new List<AGarbageCollectorContainer>());
public Board board;
private int rows = 9;
private int columns = 9;
public MainWindow()
{
InitializeComponent();
this.DataContext = new Board(10, 10);
InitializeComponent();
Objects.Add(new House(columns, new Coords(3, 2)));
Objects.Add(new House(columns, new Coords(5, 8)));
Objects.Add(new House(columns, new Coords(7, 5)));
Objects.Add(new DumpWPF(columns, new Coords(2, 4), new TypeOfGarbage("glass",0,0)));
Objects.Add(new DumpWPF(columns, new Coords(2, 5), new TypeOfGarbage("plasticmetal", 0, 0)));
Objects.Add(new DumpWPF(columns, new Coords(3, 4), new TypeOfGarbage("organic", 0, 0)));
Objects.Add(new DumpWPF(columns, new Coords(3, 5), new TypeOfGarbage("paper", 0, 0)));
board = new Board(Objects, garbageCollector);
this.DataContext = board;
}
private void MainWindow_OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Up)
{
garbageCollector.Position.Y -= 1;
}
if (e.Key == Key.Down)
{
garbageCollector.Position.Y += 1;
}
if (e.Key == Key.Left)
{
garbageCollector.Position.X -= 1;
}
if (e.Key == Key.Right)
{
garbageCollector.Position.X += 1;
}
//board = board.BoardRefresh(Objects, garbageCollector);
//this.DataContext = board;
this.DataContext = new Board(Objects, garbageCollector);
}
}
}

View File

@ -1,37 +1,62 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using CzokoŚmieciarka.DataModels.GeneralModels.Models;
using CzokoŚmieciarka.DataModels.Models;
namespace CzokoŚmieciarka.WPF.Models
{
public class Board
{
int _rows;
int _columns;
static int _rows = 9;
static int _columns = 9;
List<Tile> _tiles = new List<Tile>();
private GarbageCollectorWPF garbageCollectorWPF = new GarbageCollectorWPF(_columns, new Coords(0,0), AppDomain.CurrentDomain.BaseDirectory + @"..\..\Images\garbageCollector.png");
public Board(int rows, int columns)
public Board(List<IObject> objects, GarbageCollector garbageCollector)
{
_rows = rows;
_columns = columns;
ImageBrush imgBrush = new ImageBrush(new BitmapImage(new Uri(@"F:\Projects\In-progress\CzokoSmieciarka\Trunk\CzokoŚmieciarka.WPF\Images\dirt.jpg")));
for (int r = 0; r < rows; r++)
for (int r = 0; r < _rows; r++)
{
for (int c = 0; c < columns; c++)
for (int c = 0; c < _columns; c++)
{
Road road = new Road(AppDomain.CurrentDomain.BaseDirectory + @"..\..\Images\intersection.png");
_tiles.Add(new Tile()
{
Data = string.Format("Dirt {0}", r * 10 + c),
Background = imgBrush
Data = string.Format(""),
Object = road
});
}
}
foreach(var item in objects)
{
_tiles[item.Location.X + item.Location.Y].Object = item;
}
garbageCollectorWPF.Move(_columns, garbageCollector);
_tiles[garbageCollectorWPF.Location.X + garbageCollectorWPF.Location.Y].Object.Image = MergedBitmaps(
new Bitmap(_tiles[garbageCollectorWPF.Location.X + garbageCollectorWPF.Location.Y].Object.ImagePath),
new Bitmap(garbageCollectorWPF.ImagePath));
}
//public void BoardRefresh(List<IObject> objects, GarbageCollector garbageCollector)
//{
// foreach (var item in objects)
// {
// _tiles[item.Location.X + item.Location.Y * _columns].Object = item;
// }
// garbageCollectorWPF.Move(_columns, garbageCollector);
// _tiles[garbageCollectorWPF.Location.X + garbageCollectorWPF.Location.Y].Object.Image = MergedBitmaps(
// new Bitmap(_tiles[garbageCollectorWPF.Location.X + garbageCollectorWPF.Location.Y].Object.ImagePath),
// new Bitmap(garbageCollectorWPF.ImagePath));
//}
public int Rows
{
get { return _rows; }
@ -49,5 +74,22 @@ namespace CzokoŚmieciarka.WPF.Models
get { return _tiles; }
set { _tiles = value; }
}
private ImageBrush MergedBitmaps(Bitmap bmp1, Bitmap bmp2)
{
using (Graphics g = Graphics.FromImage(bmp1))
{
g.DrawImage(bmp2, new Point(0,0));
}
MemoryStream ms = new MemoryStream();
((System.Drawing.Bitmap)bmp1).Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
BitmapImage image = new BitmapImage();
image.BeginInit();
ms.Seek(0, SeekOrigin.Begin);
image.StreamSource = ms;
image.EndInit();
ImageBrush result = new ImageBrush(image);
return result;
}
}
}

View File

@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using CzokoŚmieciarka.DataModels.Interfaces;
using CzokoŚmieciarka.DataModels.Models;
namespace CzokoŚmieciarka.WPF.Models
{
class DumpWPF : IObject, INotifyPropertyChanged
{
public Coords Location { get; set; }
public string ImagePath { get; set; }
public string Data { get; set; }
public ImageBrush Image { get; set; }
public ITypeOfGarbage TypeOfGarbage { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
public DumpWPF(int columns, Coords location, ITypeOfGarbage typeOfGarbage)
{
Location = new Coords(location.X, location.Y * columns);
TypeOfGarbage = typeOfGarbage;
switch (TypeOfGarbage.GarbageType)
{
case "glass":
ImagePath = AppDomain.CurrentDomain.BaseDirectory + @"..\..\Images\Dumps\glass.png";
Image = new ImageBrush(new BitmapImage(new Uri(ImagePath)));
Data = "Szkło";
break;
case "plasticmetal":
ImagePath = AppDomain.CurrentDomain.BaseDirectory + @"..\..\Images\Dumps\plasticmetal.png";
Image = new ImageBrush(new BitmapImage(new Uri(ImagePath)));
Data = "Plastiki i metale";
break;
case "organic":
ImagePath = AppDomain.CurrentDomain.BaseDirectory + @"..\..\Images\Dumps\organic.png";
Image = new ImageBrush(new BitmapImage(new Uri(ImagePath)));
Data = "Organiczne";
break;
case "paper":
ImagePath = AppDomain.CurrentDomain.BaseDirectory + @"..\..\Images\Dumps\paper.png";
Image = new ImageBrush(new BitmapImage(new Uri(ImagePath)));
Data = "Papier";
break;
}
}
}
}

View File

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using CzokoŚmieciarka.DataModels.GeneralModels.Models;
using CzokoŚmieciarka.DataModels.Models;
using CzokoŚmieciarka.WPF.Annotations;
namespace CzokoŚmieciarka.WPF.Models
{
public class GarbageCollectorWPF : IObject, INotifyPropertyChanged
{
public Coords Location { get; set; }
public void Move(int columns, GarbageCollector garbageCollector)
{
Location.X = garbageCollector.Position.X;
Location.Y = garbageCollector.Position.Y * columns;
}
public string ImagePath { get; set; }
public string Data { get; set; }
public ImageBrush Image { get; set; }
public GarbageCollectorWPF(int columns,Coords location, string imagePath)
{
Location = new Coords(location.X, location.Y * columns);
ImagePath = imagePath;
Image = new ImageBrush(new BitmapImage(new Uri(ImagePath)));
}
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}

View File

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using CzokoŚmieciarka.DataModels.Models;
namespace CzokoŚmieciarka.WPF.Models
{
public class House : IObject
{
public Coords Location { get; set; }
public string ImagePath { get; set; }
public string Data { get; set; }
public ImageBrush Image { get; set; }
public House(int columns, Coords location)
{
ImagePath = AppDomain.CurrentDomain.BaseDirectory + @"..\..\Images\house.png";
Image = new ImageBrush(new BitmapImage(new Uri(ImagePath)));
Location = new Coords(location.X, location.Y*columns);
Data = "House";
}
}
}

View File

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using CzokoŚmieciarka.DataModels.Models;
namespace CzokoŚmieciarka.WPF.Models
{
public class Road: IObject
{
public Coords Location { get; set; }
public string ImagePath { get; set; }
public string Data { get; set; }
public ImageBrush Image { get; set; }
public Road(string imagePath)
{
ImagePath = imagePath;
Image = new ImageBrush(new BitmapImage(new Uri(ImagePath)));
}
}
}

View File

@ -10,6 +10,6 @@ namespace CzokoŚmieciarka.WPF.Models
public class Tile
{
public string Data { get; set; }
public ImageBrush Background { get; set; }
public IObject Object { get; set; }
}
}

File diff suppressed because it is too large Load Diff