2020-04-08 20:04:31 +02:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Microsoft.Xna.Framework;
|
|
|
|
|
using Microsoft.Xna.Framework.Graphics;
|
|
|
|
|
|
|
|
|
|
class Farm
|
|
|
|
|
{
|
|
|
|
|
private Crops[,] crops;
|
|
|
|
|
private Random r;
|
|
|
|
|
|
2020-05-03 13:05:05 +02:00
|
|
|
|
//initializes the crops
|
2020-05-06 16:22:30 +02:00
|
|
|
|
public void init(Vector2 Size, Vector2 housepos)
|
2020-04-08 20:04:31 +02:00
|
|
|
|
{
|
2020-05-06 16:22:30 +02:00
|
|
|
|
|
2020-04-08 20:04:31 +02:00
|
|
|
|
r = new Random();
|
2020-05-03 13:05:05 +02:00
|
|
|
|
crops = new Crops[100, 100];
|
2020-04-08 20:04:31 +02:00
|
|
|
|
for (int i = 0; i < Size.X; i++)
|
|
|
|
|
{
|
|
|
|
|
for (int j = 0; j < Size.Y; j++)
|
|
|
|
|
{
|
2020-05-03 13:05:05 +02:00
|
|
|
|
int x = r.Next(0, 3);
|
|
|
|
|
if (x == 0)
|
|
|
|
|
{
|
|
|
|
|
x = r.Next(0, 2);
|
|
|
|
|
}
|
2020-05-03 19:30:41 +02:00
|
|
|
|
if (x == 2)
|
|
|
|
|
{
|
|
|
|
|
x = r.Next(1, 3);
|
|
|
|
|
}
|
2020-04-08 20:04:31 +02:00
|
|
|
|
crops[i, j] = new Crops();
|
2020-05-05 16:27:45 +02:00
|
|
|
|
crops[i, j].setStatus(x);
|
|
|
|
|
crops[i, j].setOriginalStatus();
|
|
|
|
|
crops[i, j].setCropType(x = r.Next(0, 4));
|
2020-05-06 16:22:30 +02:00
|
|
|
|
crops[i, j].init();
|
2020-04-08 20:04:31 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void updateFarm(Vector2 Size)
|
|
|
|
|
{
|
2020-05-05 16:27:45 +02:00
|
|
|
|
for (int i = 0; i < Size.X; i++)
|
2020-04-08 20:04:31 +02:00
|
|
|
|
{
|
2020-05-05 16:27:45 +02:00
|
|
|
|
for (int j = 0; j < Size.Y; j++)
|
2020-04-08 20:04:31 +02:00
|
|
|
|
{
|
2020-05-06 16:22:30 +02:00
|
|
|
|
|
|
|
|
|
crops[i, j].updateCrop(Size);
|
2020-04-08 20:04:31 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-05-03 13:05:05 +02:00
|
|
|
|
//Changes the properties of the tile when the tractor reaches this tile.
|
2020-05-06 16:22:30 +02:00
|
|
|
|
public void setCropStatus(float xfloat, float yfloat)
|
2020-04-08 20:04:31 +02:00
|
|
|
|
{
|
2020-05-06 16:22:30 +02:00
|
|
|
|
int x = (int)xfloat;
|
|
|
|
|
int y = (int)yfloat;
|
2020-05-05 16:27:45 +02:00
|
|
|
|
if (crops[x, y].getStatus() >= 4)
|
2020-04-08 20:04:31 +02:00
|
|
|
|
{
|
2020-05-05 16:27:45 +02:00
|
|
|
|
crops[x, y].setStatus(2);
|
2020-04-08 20:04:31 +02:00
|
|
|
|
}
|
2020-05-05 16:27:45 +02:00
|
|
|
|
else if(crops[x, y].getStatus() == 0)
|
2020-04-08 20:04:31 +02:00
|
|
|
|
{
|
|
|
|
|
//do nothing
|
|
|
|
|
}
|
2020-05-05 16:27:45 +02:00
|
|
|
|
else if (crops[x, y].getStatus() == 2)
|
2020-04-08 20:04:31 +02:00
|
|
|
|
{
|
2020-05-05 16:27:45 +02:00
|
|
|
|
crops[x, y].setStatus(3);
|
2020-04-08 20:04:31 +02:00
|
|
|
|
}
|
2020-05-05 16:27:45 +02:00
|
|
|
|
else if (crops[x, y].getStatus() == 3)
|
2020-05-03 13:05:05 +02:00
|
|
|
|
{
|
2020-05-05 16:27:45 +02:00
|
|
|
|
crops[x, y].setStatus(4);
|
|
|
|
|
crops[x, y].setCropTimer();
|
2020-05-03 13:05:05 +02:00
|
|
|
|
}
|
2020-04-08 20:04:31 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Crops getCrop(int x, int y)
|
|
|
|
|
{
|
|
|
|
|
return crops[x,y];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Crops[,] getCrops()
|
|
|
|
|
{
|
|
|
|
|
return crops;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void updateSize(Vector2 Size, int tileSize, int Spacing)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < (int)Size.X; i++)
|
|
|
|
|
{
|
|
|
|
|
for (int j = 0; j < (int)Size.Y; j++)
|
|
|
|
|
{
|
2020-05-05 16:27:45 +02:00
|
|
|
|
//crops[i, j].x = (tileSize + Spacing) * i;
|
|
|
|
|
//crops[i, j].y = (tileSize + Spacing) * j;
|
2020-04-08 20:04:31 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-05-05 16:27:45 +02:00
|
|
|
|
|
|
|
|
|
public void setNewHousePos(Vector2 pos, bool newState)
|
|
|
|
|
{
|
|
|
|
|
crops[(int)pos.X, (int)pos.Y].setHousePos(newState);
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-08 20:04:31 +02:00
|
|
|
|
}
|