package com.game.util;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import com.game.cloudymon.entity.MonsterDB;
import com.game.cloudymon.entity.StaticEntity.eMonsterType;
public class ResourceReader
{
public static void TestReadXML(InputStream is)
{
try
{
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("staff");
}
catch (Exception e)
{
}
}
public static List<MonsterDB> readMonsterDB(InputStream is)
{
int count = 0;
try
{
CsvReader csvReader = new CsvReader(is, Charset.forName("UTF-8"));
List<MonsterDB> monsterDBs = new ArrayList<MonsterDB>();
csvReader.readHeaders();
while (csvReader.readRecord())
{
MonsterDB monsterDB = new MonsterDB();
if (!csvReader.get("ID").isEmpty())
{
monsterDB.ID = Long.parseLong(csvReader.get("ID"));
monsterDB.name = csvReader.get("Name");
monsterDB.types.add(csvReader.get("Type"));
monsterDB.baseHP = Long.parseLong(csvReader.get("HP"));
monsterDB.baseAttack = Long.parseLong(csvReader.get("Attack"));
monsterDB.baseDefense = Long.parseLong(csvReader.get("Defense"));
monsterDB.baseSpAtk = Long.parseLong(csvReader.get("Sp.Atk"));
monsterDB.baseSPDef = Long.parseLong(csvReader.get("Sp.Def"));
monsterDB.baseSpeed = Long.parseLong(csvReader.get("Speed"));
monsterDB.baseTotal = Long.parseLong(csvReader.get("Total"));
monsterDBs.add(monsterDB);
}
else
{
if (!csvReader.get("Type").isEmpty())
monsterDBs.get(monsterDBs.size()-1).types.add(csvReader.get("Type"));
}
count++;
}
csvReader.close();
return monsterDBs;
}
catch (Exception e)
{
e.printStackTrace();
System.out.print(count);
return null;
}
}
public static String[][] readMapMovement(InputStream is)
{
try
{
CsvReader csvReader = new CsvReader(is, Charset.forName("UTF-8"));
List<String[]> rows = new ArrayList<String[]>();
while (csvReader.readRecord())
{
rows.add(csvReader.getValues());
}
csvReader.close();
int rowLength = rows.size();
int colLength = rows.get(0).length;
String[][] map = new String[rowLength][colLength];
for (int i = 0; i < rowLength; i++)
{
for (int j = 0; j < colLength; j++)
{
map[i][j] = rows.get(i)[j];
}
}
return map;
}
catch (IOException e)
{
e.printStackTrace();
return null;
}
}
}