private void onBlockSelected(object o, CharacterBlockEventArgs ea) { if (CharacterBlock.selected_block_stack.Count > 0 && ea.index == CharacterBlock.selected_block_stack.Peek().index) { current_word.Add(ea.character_block); } else { current_word.Remove(ea.character_block); } update_word(); }
public void OnBlockInteracted(object o, CharacterBlockEventArgs cbea) { // this is the block on which event has occured if (cbea.index == this.index) { // block was selected if (selected_block_stack.Count > 0 && selected_block_stack.Peek().index == this.index) { is_selected = true; //text_mesh_pro.fontSharedMaterial = on_hover_font_material; //transform.localScale = initial_scale * on_hover_scale_multiplier; block_sprite.sprite = on_latest_selection_sprite; is_reachable = false; block_animator.SetTrigger("bounce"); shadow.gameObject.SetActive(true); } else { // block was deselected is_selected = false; //text_mesh_pro.fontSharedMaterial = on_leave_font_material; //transform.localScale = initial_scale; is_reachable = true; block_animator.SetTrigger("bounce"); shadow.gameObject.SetActive(false); if (selected_block_stack.Count > 0) { block_sprite.sprite = on_reachable_sprite; } else { block_sprite.sprite = on_normal_sprite; } } } if (CharacterBlock.selected_block_stack.Count > 0) { if (is_selected) { is_reachable = false; block_sprite.sprite = on_selected_sprite; if (CharacterBlock.selected_block_stack.Peek().index == this.index) { block_sprite.sprite = on_latest_selection_sprite; } } else { string index_to_compare = CharacterBlock.selected_block_stack.Peek().index; int row = int.Parse(index_to_compare[0].ToString()); int col = int.Parse(index_to_compare[1].ToString()); int row_this = int.Parse(this.index[0].ToString()); int col_this = int.Parse(this.index[1].ToString()); int row_dif = Mathf.Abs(row - row_this); int col_dif = Mathf.Abs(col - col_this); int sum_of_dif = row_dif + col_dif; //if(sum_of_dif > 0) //{ if (row_dif <= 1 && col_dif <= 1) { is_reachable = true; block_sprite.sprite = on_reachable_sprite; } else { is_reachable = false; block_sprite.sprite = on_normal_sprite; } } } else { is_reachable = true; block_sprite.sprite = on_normal_sprite; } }