void givePlayerExistingSpells()
{
// System.Diagnostics.Process reader = Shell.shell_no_start("./buildSpellsLog.py", "CodeSpellsProgram.log CodeSpellsSpells.log");
// reader.Start();
// reader.WaitForExit();
// reader.Close();
Spellbook spellbook = GameObject.Find("Spellbook").GetComponent <Spellbook>();
Inventory inventory = GameObject.Find("Inventory").GetComponent <Inventory>();
if (SpellLogger.loggedSpells.Length > 0)
{
string[] parts, keyed;
foreach (string line in SpellLogger.loggedSpells)
{
keyed = line.Split(new char[] { ':' });
if (keyed.Length == 1) //support for old spell log formats
{
parts = line.Split(new char[] { ',' });
if (parts.Length == 1)
{
spellbook.addExistingSpell(line, "");
}
else
{
byte[] bs = System.Convert.FromBase64String(parts[1].Trim());
string code = System.Text.Encoding.UTF8.GetString(bs, 0, bs.Length);
spellbook.addExistingSpell(parts[0].Trim(), code);
}
}
else
{
parts = keyed[1].Split(new char[] { ',' });
if (keyed[0] == "code")
{
byte[] bs = System.Convert.FromBase64String(parts[1].Trim());
string code = System.Text.Encoding.UTF8.GetString(bs, 0, bs.Length);
spellbook.addExistingSpell(parts[0].Trim(), code);
}
else if (keyed[0] == "rename")
{
string old = parts[0].Trim();
string newn = parts[1].Trim();
//this could perhaps instead be accomplished with File.Move(...)
// List<GameObject> matching_items = inventory.getMatching(old);
// if (matching_items.Count != 1) {
// Debug.Log("matching_items length "+matching_items.Count);
// continue;
// }
CodeScrollItem item = inventory.getCodeScrollItem(old).GetComponent <CodeScrollItem>();
//CodeScrollItem item = matching_items[0].GetComponent<CodeScrollItem>();
// if (item == null) {
// Debug.Log("Renaming CodeScrollItem null");
// continue;
// } else
// Debug.Log("Renaming CodeScrollItem "+item.getName());
string code = item.getIDEInput().GetCode();
item.setCurrentFile(newn + ".java");
item.getIDEInput().SetCode(code);
spellbook.setNameCounter(newn);
}
else if (keyed[0] == "delete")
{
List <GameObject> matching_items = inventory.getMatching(parts[0].Trim());
if (matching_items.Count > 0)
{
Debug.Log("matching items: " + matching_items.Count);
inventory.removeItem(matching_items[0]);
}
}
}
}
inventory.clearRemovedItems();
foreach (CodeScrollItem item in inventory.getAllCodeScrollItems())
{
string code = item.getIDEInput().GetCode();
SpellLogger.LogCode(item.getName(), code);
}
}
// if (File.Exists("./CodeSpellsSpells.log")) {
// string[] lines = File.ReadAllLines("./CodeSpellsSpells.log");
// Spellbook spellbook = GameObject.Find("Spellbook").GetComponent<Spellbook>();
// string[] parts;
// foreach (string line in lines) {
// parts = line.Split(new char[] {','});
// if (parts.Length == 1)
// spellbook.addExistingSpell(line, "");
// else {
// byte[] bs = System.Convert.FromBase64String(parts[1].Trim());
// string code = System.Text.Encoding.UTF8.GetString(bs, 0, bs.Length);
// spellbook.addExistingSpell(parts[0].Trim(), code);
// }
// }
// }
}