// GAME LIBRARY ------------------------------------------------------------- #region Library // public CGM.Action[] GetChildrenActions(){ // List<CGM.Action> act_list = new List<Action>(); // // for (int i = 0; i <transform.childCount; i++){ // CGM.Action act = transform.GetChild (i).GetComponent<CGM.Action>(); // if (act != null) // act_list.Add(act); // } // // return act_list.ToArray(); // // //set{;} // } #endregion #region Serialization void ISerializationCallbackReceiver.OnBeforeSerialize() { lib_node.Clear(); foreach (CGME.Resource res in cgme_lib.resourceLibrary) { SerialNode snode = new SerialNode(); snode.type_string = res.GetType().FullName; snode.data = res.Write(); lib_node.resources.Add(snode); } foreach (CGME.Card card in cgme_lib.CardsLibrary) { SerialNode snode = new SerialNode(); snode.type_string = card.GetType().FullName; snode.data = card.Write(); lib_node.cards.Add(snode); } foreach (ActionWrapper action_wrapper in actions) { if (action_wrapper != null) { action_wrapper.OnBeforeSerialize(); } } }
void AddChildrenToSerializedNodes(CGME.ActionGroup parent_action, SerialNode parent_node) { // Create a NODE for each ACTION CHILD and add them to the list // save the index of each CHILDREN NODE to the PARENT NODE foreach (CGME.Action child in parent_action.Children) { //parent_node.children_indexes.Add(serial_nodes.Count); AddNode(child, parent_node); } // For every child that can have children (actiongroup), // call the funcion again sending its index int i = 0; foreach (CGME.Action child in parent_action.Children) { int child_index = parent_node.children_indexes[i++]; SerialNode child_node = serial_nodes[child_index]; if (child is CGME.ActionGroup) { AddChildrenToSerializedNodes(child as CGME.ActionGroup, child_node); } else if (child is CGME.ActionIfThenElse) { //CGME.ActionIfThenElse child_ite = AddChildrenToSerializedNodes(child as CGME.ActionIfThenElse, child_node); } //ind++; } }
void ISerializationCallbackReceiver.OnBeforeSerialize() { //Debug.Log("Serializing " + this); if (node == null) { node = new SerialNode(); } Write(); }
//ISerializationCallbackReceiver. public void OnBeforeSerialize() { serial_nodes.Clear(); // Serialize the root action SerialNode root_node = AddNode(CGME_action_root, null); // Serialize the root's children AddChildrenToSerializedNodes(CGME_action_root, root_node); }
//ISerializationCallbackReceiver. public void OnBeforeSerialize() { serial_nodes.Clear(); //Debug.Log (CGME_action_root.CGType); // Serialize the root action SerialNode root_node = AddNode(CGME_action_root, null); // Serialize the root's children AddChildrenToSerializedNodes(CGME_action_root as CGME.ActionGroup, root_node); }
public void OnBeforeSerialize() { if (CGME_resource == null) { return; } if (node == null) { node = new SerialNode(); } node.data = CGME_resource.Write(); node.type_string = CGME_resource.GetType().FullName; }
void AddChildrenToSerializedNodes(CGME.ActionIfThenElse parent_action, SerialNode parent_node) { // Create a NODE for each ACTION CHILD and add them to the list // save the index of each CHILDREN NODE to the PARENT NODE SerialNode if_node = AddNode(parent_action.GetIF(), parent_node); SerialNode then_node = AddNode(parent_action.GetTHEN(), parent_node); SerialNode else_node = AddNode(parent_action.GetELSE(), parent_node); // For every child that can have children (actiongroup), // call the funcion again sending its index AddChildrenToSerializedNodes(parent_action.GetIF(), if_node); AddChildrenToSerializedNodes(parent_action.GetTHEN(), then_node); AddChildrenToSerializedNodes(parent_action.GetELSE(), else_node); }
public SerialNode AddNode(CGME.Action act, SerialNode parent_node) { SerialNode serializedNode = new SerialNode(); serializedNode.data = act.Write(); serializedNode.type_string = act.GetType().ToString(); serializedNode.index = serial_nodes.Count; if (parent_node != null) { parent_node.children_indexes.Add(serial_nodes.Count); } serial_nodes.Add(serializedNode); return(serializedNode); //return serializedNode; }
void ISerializationCallbackReceiver.OnBeforeSerialize() { //if (SERIALIZE){ //Debug.Log ("Serializing Action"); serial_nodes.Clear(); // Serialize the root action SerialNode root_node = AddNode(CGME_action_root, null); // Serialize the root's children AddChildrenToSerializedNodes(CGME_action_root, root_node); SetSerialize(false); //} }