package com.weem.epicinventor.item;
import com.weem.epicinventor.*;
import com.weem.epicinventor.world.block.*;
import java.awt.*;
import java.util.*;
import java.io.*;
public class ItemManager extends Manager {
private ArrayList<Item> items;
private HashMap itemTypes;
private ArrayList<ItemType> itemTypesList;
private final static String CONFIG_FILE = "Items.dat";
public ItemManager(GameController gc, Registry rg) {
super(gc, rg);
items = new ArrayList<Item>();
itemTypes = new HashMap();
itemTypesList = new ArrayList<ItemType>();
loadItemTypes("Items.dat");
}
private void loadItemTypes(String fn) {
String line;
String parts[];
try {
InputStream in = getClass().getResourceAsStream(GameController.CONFIG_DIR + fn);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String name = "";
int createQty = 0;
int maxStack = 0;
String category = "";
String type = "";
int techLevel = 0;
String item1 = "";
int item1Qty = 0;
String item2 = "";
int item2Qty = 0;
String item3 = "";
int item3Qty = 0;
String item4 = "";
int item4Qty = 0;
String skill1 = "";
String skill2 = "";
String workBench = "";
float xpModifier = 1f;
String description = "";
ItemType it;
while ((line = br.readLine()) != null) {
if (line.length() == 0) {
continue;
}
if (line.startsWith("//")) {
continue;
}
parts = line.split(" ", 19);
if (parts.length != 19) {
System.out.println("Error in " + fn);
}
name = parts[0];
createQty = Integer.parseInt(parts[1]);
maxStack = Integer.parseInt(parts[2]);
category = parts[3];
type = parts[4];
techLevel = Integer.parseInt(parts[5]);
item1 = parts[6];
item1Qty = Integer.parseInt(parts[7]);
item2 = parts[8];
item2Qty = Integer.parseInt(parts[9]);
item3 = parts[10];
item3Qty = Integer.parseInt(parts[11]);
item4 = parts[12];
item4Qty = Integer.parseInt(parts[13]);
skill1 = parts[14];
skill2 = parts[15];
workBench = parts[16];
xpModifier = Float.parseFloat(parts[17]);
description = parts[18];
it = new ItemType(this, registry, name, createQty, maxStack, category, type, techLevel,
item1, item1Qty, item2, item2Qty, item3, item3Qty, item4, item4Qty,
skill1, skill2, workBench, xpModifier, description);
itemTypes.put(name, it);
itemTypesList.add(it);
}
in.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
public ItemType getItemType(String name) {
if (itemTypes.containsKey(name)) {
return (ItemType) itemTypes.get(name);
}
return null;
}
public ArrayList<String> getItemTypeList(String category, String types) {
ArrayList<String> matchingItems = new ArrayList<String>();
ItemType itemType = null;
for (int i = 0; i < itemTypesList.size(); i++) {
itemType = itemTypesList.get(i);
if(itemType.getCategory().equals(category) && types.contains("|" + itemType.getType() + "|")) {
matchingItems.add(itemType.getName());
}
}
return matchingItems;
}
public ArrayList<String> getItemTypeRequirements(String n) {
ArrayList<String> requirements = new ArrayList<String>();
if(itemTypes.containsKey(n)) {
ItemType it = (ItemType) itemTypes.get(n);
if(it != null) {
requirements = it.getRequirementString();
}
}
return requirements;
}
public void render(Graphics g) {
}
}