Czoko_Smieciarka/Trunk/MonoGameView/DataModels/Models/House.cs

57 lines
2.8 KiB
C#
Raw Normal View History

2019-04-22 16:50:40 +02:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CzokoŚmieciarka.MonoGameView.DataModels.Enums;
2019-04-23 06:32:35 +02:00
using CzokoŚmieciarka.MonoGameView.DataModels.GeneralModels.Models;
2019-04-22 16:50:40 +02:00
using CzokoŚmieciarka.MonoGameView.DataModels.Interfaces;
using CzokoŚmieciarka.MonoGameView.DataModels.Interfaces.TrashCans;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
2019-04-22 14:55:47 +02:00
using MonoGameView.DataModels.Models;
2019-04-22 16:50:40 +02:00
namespace CzokoŚmieciarka.MonoGameView.DataModels.Models
{
2019-04-23 06:32:35 +02:00
public class House : IDrawables, IGarbageLocalization, ICloneable
2019-04-22 16:50:40 +02:00
{
public Coords Coords { get; }
2019-05-13 17:57:32 +02:00
public House(Coords coords, List<TrashCan> trashCans)
2019-04-22 16:50:40 +02:00
{
Coords = coords;
2019-05-13 17:57:32 +02:00
TrashCans = trashCans.Select(x=>(x as ATrashCan)).ToList();
2019-04-22 16:50:40 +02:00
}
2019-05-14 23:05:37 +02:00
public void Draw(SpriteBatch batch, int size,int width)
2019-04-22 16:50:40 +02:00
{
2019-05-14 23:05:37 +02:00
batch.Draw(ImageContainer.GetImage("house"), new Rectangle(Coords.X * width / size, Coords.Y * width / size, width / size, width / size), Color.White);
foreach (TrashCan can in TrashCans)
{
switch (can.Garbage.TypeOfGarbage.GarbageType)
{
case GarbageType.Glass:
2019-05-14 23:05:37 +02:00
batch.Draw(ImageContainer.GetImage("GlassBar"), new Rectangle(Coords.X * width / size, Coords.Y * width / size + width/200, (int)Math.Round(can.FillPercent * width) / size, width/5 / size), Color.White);
break;
case GarbageType.Paper:
2019-05-14 23:05:37 +02:00
batch.Draw(ImageContainer.GetImage("PaperBar"), new Rectangle(Coords.X * width / size, Coords.Y * width / size + 2*width / 200, (int)Math.Round(can.FillPercent * width) / size, width/5 / size), Color.White);
break;
case GarbageType.PlasticMetal:
2019-05-14 23:05:37 +02:00
batch.Draw(ImageContainer.GetImage("PlasticMetalBar"), new Rectangle(Coords.X * width / size, Coords.Y * width / size + 3*width / 200, (int)Math.Round(can.FillPercent * width) / size, width/5 / size), Color.White);
break;
case GarbageType.Organic:
2019-05-14 23:05:37 +02:00
batch.Draw(ImageContainer.GetImage("OrganicBar"), new Rectangle(Coords.X * width / size, Coords.Y * width / size + 4*width / 200, (int)Math.Round(can.FillPercent * width) / size, width/5 / size), Color.White);
break;
}
}
2019-04-22 16:50:40 +02:00
}
2019-04-23 06:32:35 +02:00
public object Clone()
{
return new House((Coords) Coords.Clone(), TrashCans.Select(x => (TrashCan) x.Clone()).ToList());
}
2019-05-13 17:57:32 +02:00
public List<ATrashCan> TrashCans { get; }
2019-04-22 16:50:40 +02:00
}
}