// void rightPanel() // { // //GUI.BeginGroup(errorPanel.getRect()); // GUI.BeginGroup(new Rect(Screen.width*3/4+5,0,Screen.width*1/4-5,Screen.height)); // if (GUI.Button (new Rect (10,15,130,65), "Back", button_style)) // { // if (!shouldPopup) { // //back button will change the SpellBook page name // input.SetCode(current_code); // // enabled = false; // previous_state.active = true; // paused = true; // Time.timeScale = 1; // // ProgramLogger.LogKV("close", getSpellName()+", "+Time.time); // ProgramLogger.LogCode(getSpellName(), current_code); // // if(IDEClosed != null) // IDEClosed(file_name, current_code); // } // } // // // if (GUI.Button (new Rect (180,15,65,65), "X", remove_style)) // { // no_edit = true; // shouldPopup = true; // } // // // GUIStyle style = GUI.skin.box; // // // // style.alignment = TextAnchor.UpperLeft; // // style.wordWrap = true; // // // // string pattern = @"^(.+) class (.+) is public, should be declared in a file named (.+)"; // // if (!Regex.IsMatch(current_error, pattern)) // // GUI.Box(new Rect (10,100,230,500), current_error, style); // // else { // // GUI.Box(new Rect (10,100,230,500), "------------", style); // // } // // GUI.EndGroup(); // } public void checkBackButton(Rect r) { if (GUI.Button(r, "Back", button_style)) { if (!shouldPopup) { //back button will change the SpellBook page name input.SetCode(current_code); enabled = false; previous_state.active = true; paused = true; Time.timeScale = 1; ProgramLogger.LogKVtime("close", getSpellName()); //+", "+Time.time); ProgramLogger.LogCode(getSpellName(), current_code); SpellLogger.LogCode(getSpellName(), current_code); if (IDEClosed != null) { IDEClosed(file_name, current_code); } } } }
string givePlayerAScroll() { CodeScrollItem item; GameObject initial_scroll = new GameObject(); initial_scroll.name = "InitialScroll"; initial_scroll.AddComponent <CodeScrollItem>(); item = initial_scroll.GetComponent <CodeScrollItem>(); item.item_name = "Blank"; item.inventoryTexture = Resources.Load("Textures/Scroll") as Texture2D; if (!copied_spells.ContainsKey(currentPage().getName())) { copied_spells.Add(currentPage().name, 0); } int number_so_far = copied_spells[currentPage().getName()]; int number = number_so_far + 1; copied_spells[currentPage().name]++; CodeScrollItem code_scroll_item_component = initial_scroll.GetComponent <CodeScrollItem>(); code_scroll_item_component.setCurrentFile(currentPage().getName() + number + ".java"); code_scroll_item_component.getIDEInput().SetCode(currentPage().code.Replace(currentPage().getName(), currentPage().getName() + number)); ProgramLogger.LogCode(currentPage().getName() + number, code_scroll_item_component.getIDEInput().GetCode()); SpellLogger.LogCode(currentPage().getName() + number, code_scroll_item_component.getIDEInput().GetCode()); GameObject.Find("Inventory").GetComponent <Inventory>().addItem(initial_scroll); return(currentPage().getName() + number + ".java"); }
void OnApplicationQuit() { if (enabled) { input.SetCode(current_code); ProgramLogger.LogKVtime("close", getSpellName()); //+", "+Time.time); ProgramLogger.LogCode(getSpellName(), current_code); SpellLogger.LogCode(getSpellName(), current_code); } }
public void checkNewSpellButton(Rect r) { if (GUI.Button(r, left_panel_background, empty_style)) { input.SetCode(current_code); ProgramLogger.LogKVtime("close", getSpellName()); //+", "+Time.time); ProgramLogger.LogCode(getSpellName(), current_code); SpellLogger.LogCode(getSpellName(), current_code); if (IDEClosed != null) { IDEClosed(file_name, current_code); } string fname = spellbook.copyBlankSpell(); SetInput(new EclipseInput("CodeSpellsJava", JuneConfig.java_files_path + "/" + fname)); ProgramLogger.LogKVtime("open", getSpellName()); //+", "+Time.time); if (IDEOpened != null) { IDEOpened(file_name, current_code); } } }
void removeScript() { shouldRemove = false; current_code = ""; input.SetCode(current_code); enabled = false; previous_state.active = true; paused = true; Time.timeScale = 1; ProgramLogger.LogKVtime("delete", "all"); ProgramLogger.LogKVtime("close", getSpellName()); //+", "+Time.time); ProgramLogger.LogCode(getSpellName(), current_code); SpellLogger.Log("delete: " + getSpellName()); if (IDEClosed != null) { IDEClosed(file_name, current_code); } }
void setupSpecialEvents() { //Remove a spell from the inventory if the user blanks out the file contents. // This is how we'll delete spells (for now). IDE.IDEClosed += (file_name, contents) => { string newName = getSpellName(contents); string[] segs = file_name.Split('/'); string prevName = segs[segs.Length - 1].Replace(".java", ""); Inventory i = GameObject.Find("Inventory").GetComponent <Inventory>(); //previous name List <GameObject> matching_items = i.getMatching(prevName); if (Regex.Match(contents.Replace("\n", ""), "^\\s*$").Success&& matching_items.Count > 0) { Debug.Log("About to remove item"); i.removeItem(matching_items[0]); return; } if (!prevName.Equals(newName)) { // this spell already exists in the inventory so we need to automatically rename it Spellbook spellbook = GameObject.Find("Spellbook").GetComponent <Spellbook>(); string newNameAdjusted = spellbook.getIncName(newName); contents = contents.Replace(newName, newNameAdjusted); newName = newNameAdjusted; //matching_items[0].GetComponent<Item>().item_name = newName; matching_items[0].GetComponent <CodeScrollItem>().setCurrentFile(newName + ".java"); matching_items[0].GetComponent <CodeScrollItem>().getIDEInput().SetCode(contents); ProgramLogger.LogKVtime("rename", prevName + ", " + newName); SpellLogger.Log("rename: " + prevName + ", " + newName); } matching_items[0].GetComponent <CodeScrollItem>().SetCompilable(); ProgramLogger.LogKV("compilable", newName + ", " + matching_items[0].GetComponent <CodeScrollItem>().IsCompilable()); }; AudioClip monster_clip = Resources.Load("Growls") as AudioClip; //Setup sounds Monster.AttackStarted += (monster) => { monster.audio.PlayOneShot(monster_clip); Popup.mainPopup.popup("Monster awoken! Hide in the swamp!"); }; Monster.AttackEnded += (monster) => { monster.audio.PlayOneShot(monster_clip); Popup.mainPopup.popup("You lost him!"); }; AudioSource main_audio = GameObject.Find("Voice").audio; AudioClip spellbook_clip = Resources.Load("PageTurn") as AudioClip; Spellbook.PageTurnedForward += (page) => { main_audio.audio.PlayOneShot(spellbook_clip); }; Spellbook.PageTurnedBackward += (page) => { main_audio.audio.PlayOneShot(spellbook_clip); }; Spellbook.SpellCopied += (page) => { main_audio.audio.PlayOneShot(spellbook_clip); }; AudioClip drop_item_clip = Resources.Load("DropItem") as AudioClip; Inventory.DroppedOff += (target) => { main_audio.audio.PlayOneShot(drop_item_clip); }; AudioClip badge_clip = Resources.Load("BadgeUnlocked") as AudioClip; Badgebook.BadgeUnlocked += (target) => { main_audio.audio.PlayOneShot(badge_clip); }; ConversationDisplayer.ConversationStarted += (target) => { int i = Random.Range(1, 7); AudioClip hi_clip = Resources.Load("GnomeHi" + i) as AudioClip; main_audio.audio.PlayOneShot(hi_clip); }; ConversationDisplayer.ConversationStopped += (target) => { int i = Random.Range(1, 3); AudioClip bye_clip = Resources.Load("GnomeBye" + i) as AudioClip; main_audio.audio.PlayOneShot(bye_clip); }; }
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); // } // } // } }