예제 #1
0
        // 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();
                }
            }
        }
예제 #2
0
        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++;
            }
        }
예제 #3
0
        void ISerializationCallbackReceiver.OnBeforeSerialize()
        {
            //Debug.Log("Serializing " + this);
            if (node == null)
            {
                node = new SerialNode();
            }

            Write();
        }
예제 #4
0
        //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);
        }
예제 #5
0
        //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);
        }
예제 #6
0
        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;
        }
예제 #7
0
        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);
        }
예제 #8
0
        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;
        }
예제 #9
0
        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);

            //}
        }