128 lines
3.4 KiB
C#
128 lines
3.4 KiB
C#
|
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;
|
|||
|
using Microsoft.Xna.Framework.Input;
|
|||
|
|
|||
|
|
|||
|
class Inventory
|
|||
|
{
|
|||
|
private int Weight = 0;
|
|||
|
private int maxWeight = 25;
|
|||
|
private Cargo cargo = new Cargo();
|
|||
|
private Cargo itemStorage = new Cargo();
|
|||
|
|
|||
|
// Item list by index:
|
|||
|
// ---------------------------------------
|
|||
|
// (0) Fertilizers
|
|||
|
// 1: 10-26-26
|
|||
|
// 2: 14-35-14
|
|||
|
// 3: 17-17-17
|
|||
|
// 4: 20-20
|
|||
|
// 5: 28-28
|
|||
|
// 6: DAP
|
|||
|
// 7: Urea
|
|||
|
// (1) Crops:
|
|||
|
// 1: Barley
|
|||
|
// 2: Cotton
|
|||
|
// 3: Ground Nuts
|
|||
|
// 4: Maize
|
|||
|
// 5: Millets
|
|||
|
// 6: Oil Seeds
|
|||
|
// 7: Paddy
|
|||
|
// 8: Pulses
|
|||
|
// 9: Sugarcane
|
|||
|
// 10: Tobacco
|
|||
|
// 11: Wheat
|
|||
|
//
|
|||
|
// Number - 1 to get the index in the array
|
|||
|
|
|||
|
|
|||
|
// Adds all the items to the houses inventory for pickup at the houses position
|
|||
|
public void initInventorySystem()
|
|||
|
{
|
|||
|
itemStorage.initStorageItems();
|
|||
|
}
|
|||
|
|
|||
|
public int getWeight()
|
|||
|
{
|
|||
|
return Weight;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// Adds item to the tractor.
|
|||
|
// 0 = Fertilizer
|
|||
|
// 1 = Crops
|
|||
|
public bool addItem(int newItemIndex, int Type)
|
|||
|
{
|
|||
|
Items newItem;
|
|||
|
newItem = itemStorage.getItemByIndex(newItemIndex, Type);
|
|||
|
if (maxWeight >= Weight + newItem.getWeight())
|
|||
|
{
|
|||
|
cargo.addItem(newItem, Type);
|
|||
|
Weight = Weight + newItem.getWeight();
|
|||
|
return true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// Uses an item from the tractor.
|
|||
|
// 0 = Fertilizer
|
|||
|
// 1 = Crops
|
|||
|
public bool useItem(int Index, int Type)
|
|||
|
{
|
|||
|
if (cargo.itemExists(Index, Type))
|
|||
|
{
|
|||
|
removeItem(Index, Type);
|
|||
|
return true;
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
public int getMaxWeight()
|
|||
|
{
|
|||
|
return maxWeight;
|
|||
|
}
|
|||
|
|
|||
|
// Checks whether or not the tractor has the item in its inventory.
|
|||
|
// 0 = Fertilizer
|
|||
|
// 1 = Crops
|
|||
|
public bool itemExists(int Index, int Type)
|
|||
|
{
|
|||
|
return cargo.itemExists(Index, Type);
|
|||
|
}
|
|||
|
|
|||
|
public void removeItem(int Index, int Type)
|
|||
|
{
|
|||
|
cargo.removeItem(Index, Type);
|
|||
|
}
|
|||
|
|
|||
|
public Cargo getPredefinedItems()
|
|||
|
{
|
|||
|
return itemStorage;
|
|||
|
}
|
|||
|
|
|||
|
public void printItems(Input input, SpriteBatch spriteBatch, SpriteFont Bold)
|
|||
|
{
|
|||
|
|
|||
|
spriteBatch.DrawString(Bold, "Crops: ", new Vector2(470, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 2), Color.DarkRed);
|
|||
|
for (int i = 0; i < 11; i++) //Print Crops
|
|||
|
{
|
|||
|
spriteBatch.DrawString(Bold, cargo.getCount(i, 1) + " " + itemStorage.getItemByIndex(i, 1).getItemType(), new Vector2(470, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 20 * i + 22), Color.DarkBlue);
|
|||
|
}
|
|||
|
|
|||
|
spriteBatch.DrawString(Bold, "Fertilizers: ", new Vector2(700, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 2), Color.DarkRed);
|
|||
|
for (int i = 0; i < 7; i++) //Print Fertilizers
|
|||
|
{
|
|||
|
spriteBatch.DrawString(Bold, cargo.getCount(i, 0) + " " + itemStorage.getItemByIndex(i, 0).getItemType(), new Vector2(700, input.getSize().Y * (input.getTileSize() + input.getSpacing()) + 20 * i + 22), Color.DarkBlue);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|