PotatoPlan/Game1/Sources/Crops/Farm.cs

107 lines
2.6 KiB
C#
Raw Normal View History

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
public void init(Vector2 Size)
{
r = new Random();
2020-05-03 13:05:05 +02:00
crops = new Crops[100, 100];
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);
}
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));
}
}
}
public void updateFarm(Vector2 Size)
{
2020-05-05 16:27:45 +02:00
for (int i = 0; i < Size.X; i++)
{
2020-05-05 16:27:45 +02:00
for (int j = 0; j < Size.Y; j++)
{
2020-05-05 16:27:45 +02:00
if (crops[i, j].getStatus() == 4 && crops[i, j].getCropTimer() != 1)
{
crops[i, j].updateCrop();
}
}
}
}
2020-05-03 13:05:05 +02:00
//Changes the properties of the tile when the tractor reaches this tile.
public void setCropStatus(float xfloat, float yfloat, int Spacing)
{
int x = (int)xfloat / Spacing;
int y = (int)yfloat / Spacing;
2020-05-05 16:27:45 +02:00
if (crops[x, y].getStatus() >= 4)
{
2020-05-05 16:27:45 +02:00
crops[x, y].setStatus(2);
}
2020-05-05 16:27:45 +02:00
else if(crops[x, y].getStatus() == 0)
{
//do nothing
}
2020-05-05 16:27:45 +02:00
else if (crops[x, y].getStatus() == 2)
{
2020-05-05 16:27:45 +02:00
crops[x, y].setStatus(3);
}
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
}
}
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-05-05 16:27:45 +02:00
public void setNewHousePos(Vector2 pos, bool newState)
{
crops[(int)pos.X, (int)pos.Y].setHousePos(newState);
}
}