示例#1
0
        void ISerializationCallbackReceiver.OnAfterDeserialize()
        {
            //cgme_lib = CGME.CGLibrary.GetInstance();

            cgme_lib.resourceLibrary.Clear();

            foreach (SerialNode snode in lib_node.resources)
            {
                CGME.Resource new_res = CGME.CGFactory.CreateCGInstance(snode.type_string) as CGME.Resource;

                new_res.Read(snode.data);

                cgme_lib.resourceLibrary.Add(new_res);
            }

            foreach (SerialNode snode in lib_node.cards)
            {
                CGME.Card new_card = new CGME.Card();

                new_card.Read(snode.data);

                cgme_lib.CardsLibrary.Add(new_card);
            }

            foreach (ActionWrapper action_wrapper in actions)
            {
                action_wrapper.OnAfterDeserialize();
            }
        }
示例#2
0
        public void InitAsText(GameObject parent, CGME.Resource resource, ResourceType type)
        {
            //view_component = (Component)parent.AddComponent<TextMesh>();
            view_component = (ComponentWrapper) new TextMeshWrapper();
            view_component.Init(parent);

            view_resource = resource;
            res_type      = type;
        }
示例#3
0
        // DISPLAY ACTION MODIFY RESOURCE ------------------------------------


        void DisplayBody(CGME.ActionModifyResource action)
        {
            CGM.GameManager lib = GameObject.FindObjectOfType <CGM.GameManager>();

            EditorGUI.indentLevel++;
            {
                EditorGUILayout.BeginHorizontal();
                {
                    //action.Target         = (CGME.ModifyParameter)EditorGUILayout.EnumPopup("Target",action.Target);
                    //action.Target_Resource = EditorGUILayout.Popup("Resource Type",action.Target_Resource, lib.CGME_Lib.ResourceTypes());
                    action.Target          = (CGME.ResourceSource)Display.EnumPopup(Target, "Target", action.Target);
                    action.Target_Resource = Display.Popup(Target, "Resource Type", action.Target_Resource, lib.CGME_Lib.ResourceTypes());
                }
                EditorGUILayout.EndHorizontal();

                //action.Operation  = (CGME.ModifyOperation)EditorGUILayout.EnumPopup("Operation",action.Operation);
                action.Operation = (CGME.ModifyOperation)Display.EnumPopup(Target, "Operation", action.Operation);


                EditorGUILayout.BeginHorizontal();
                {
                    //action.Param1         = (CGME.ModifyParameter)EditorGUILayout.EnumPopup("Resource 1",action.Param1);
                    action.Param1 = (CGME.ResourceSource)Display.EnumPopup(Target, "Resource 1", action.Param1);
                    if (action.Param1 == CGME.ResourceSource.FixedValue)
                    {
                        CGME.Resource test = lib.CGME_Lib.GetResource(action.Target_Resource);
                        if (test is CGME.ResourceBool)
                        {
                            //action.BoolMod = EditorGUILayout.Toggle("Boolean",action.BoolMod);
                            action.BoolMod = Display.Toggle(Target, "Boolean", action.BoolMod);
                        }
                        else if (test is CGME.ResourceNumber)
                        {
                            action.NumberMod = Display.IntField(Target, "Number", action.NumberMod);
                        }
                        else if (test is CGME.ResourceText)
                        {
                            action.TextMod = Display.TextField(Target, "Text", action.TextMod);
                        }
                    }
                    else
                    {
                        action.Operation_Resource = Display.Popup(Target, "Resource Type", action.Operation_Resource, lib.CGME_Lib.ResourceTypes());
                    }
                }
                EditorGUILayout.EndHorizontal();
            }
            EditorGUI.indentLevel--;
        }
        public override void OnInspectorGUI()
        {
            if (library.resourceLibrary.Count == 0)
            {
                EditorGUILayout.LabelField("Resource library is empty");
                EditorGUILayout.LabelField("Add some resources to the game manager first");

                return;
            }


//			if (Target.Resource_type == CGM.ResourceType.Empty){
//				Target.CGME_Resource = CGME.CGFactory.CreateCGInstance(library.GetResource(0).GetType().FullName) as CGME.Resource;
//				Target.CGME_Resource.CGType = res_string;
//			}

            EditorGUILayout.LabelField(Target.CGME_Resource.CGType);
            Target.name = Target.CGME_Resource.CGType;

            ResourceField(Target.CGME_Resource);

            EditorGUILayout.Space();

            EditorGUILayout.LabelField("Switch Resource");
            EditorGUILayout.BeginHorizontal();

            res_index  = EditorGUILayout.Popup("Type", res_index, library.ResourceTypes());
            res_string = library.resourceLibrary[res_index].CGType;

            if (GUILayout.Button("Switch to " + res_string))
            {
                CGME.Resource resource = library.GetResource(res_index);
                if (resource != null)
                {
                    Target.CGME_Resource        = CGME.CGFactory.CreateCGInstance(library.GetResource(res_index).GetType().FullName) as CGME.Resource;
                    Target.CGME_Resource.CGType = res_string;

                    if (Target.CGME_Resource is CGME.ResourceAction)
                    {
                        (Target.CGME_Resource as CGME.ResourceAction).ActionIndex = (resource as CGME.ResourceAction).ActionIndex;
                        //phase_index = GetPhaseIndex();
                    }
                }
            }

            EditorGUILayout.EndHorizontal();
        }
        public override void DrawAsInspector()
        {
            base.DrawAsInspector();

            CGME.ActionConditionCompareResource act = (action as CGME.ActionConditionCompareResource);
            CGM.GameManager lib = GameObject.FindObjectOfType <CGM.GameManager>();

            EditorGUILayout.BeginHorizontal();
            {
                act.Target          = (CGME.ResourceSource)Display.EnumPopup(this, "Target", act.Target);
                act.Target_Resource = Display.Popup(this, "Resource Type", act.Target_Resource, lib.CGME_Lib.ResourceTypes());
            }
            EditorGUILayout.EndHorizontal();

            act.Operation = (CGME.CompareOperation)Display.EnumPopup(this, "Operation", act.Operation);


            EditorGUILayout.BeginHorizontal();
            {
                act.Param1 = (CGME.ResourceSource)Display.EnumPopup(this, "Resource 1", act.Param1);
                if (act.Param1 == CGME.ResourceSource.FixedValue)
                {
                    CGME.Resource test = lib.CGME_Lib.GetResource(act.Target_Resource);
                    if (test is CGME.ResourceBool)
                    {
                        act.BoolMod = Display.Toggle(this, "Boolean", act.BoolMod);
                    }
                    else if (test is CGME.ResourceNumber)
                    {
                        act.NumberMod = Display.IntField(this, "Number", act.NumberMod);
                    }
                    else if (test is CGME.ResourceText)
                    {
                        act.TextMod = Display.TextField(this, "Text", act.TextMod);
                    }
                }
                else
                {
                    act.Operation_Resource = Display.Popup(this, "Resource Type", act.Operation_Resource, lib.CGME_Lib.ResourceTypes());
                }
            }
            EditorGUILayout.EndHorizontal();
        }
示例#6
0
        public void OnAfterDeserialize()
        {
            if (node == null || CGME_resource != null)
            {
                return;
            }

            CGME.Resource new_res = null;
            new_res = CGME.CGFactory.CreateCGInstance(node.type_string) as CGME.Resource;

            if (new_res != null)
            {
                CGME_resource = new_res;
                CGME_resource.Read(node.data);
            }


            new_res = null;
        }
示例#7
0
        //CGM.Library Target;


        public bool DisplayResource(CGME.Resource res)
        {
            EditorGUILayout.BeginHorizontal();
            {
                if (res is CGME.ResourceNumber)
                {
                    res.CGType = EditorGUILayout.TextField("Number Resource", res.CGType);
                }
                else if (res is CGME.ResourceText)
                {
                    res.CGType = EditorGUILayout.TextField("Text Resource", res.CGType);
                }
                else if (res is CGME.ResourceBool)
                {
                    res.CGType = EditorGUILayout.TextField("Boolean Resource", res.CGType);
                }
                else if (res is CGME.ResourceAction)
                {
                    CGME.ResourceAction res_action = res as CGME.ResourceAction;
                    int diff = res_action.ActionIndex;
                    res_action.ActionIndex = EditorGUILayout.Popup(
                        "Action",
                        res_action.ActionIndex,
                        action_string);
                    if (res_action.ActionIndex != diff)
                    {
                        res_action.Value = new CGME.ActionGroup();
                        res_action.Value.CopyFrom(actions[res_action.ActionIndex].CGME_ActionRoot);
                        res_action.CGType = res_action.Value.CGType;
                        Debug.Log("Copying " + actions[res_action.ActionIndex].CGME_ActionRoot.CGType);
                    }
                }

                if (GUILayout.Button("Delete " + res.CGType))
                {
                    Target.CGME_Lib.resourceLibrary.Remove(res);
                    return(true);
                }
            }
            EditorGUILayout.EndHorizontal();

            return(false);
        }
        public void ResourceField(CGME.Resource res)
        {
            if (res is CGME.ResourceNumber)
            {
                //CGME.ResourceNumber cgres = (CGME.ResourceNumber)Target.CGME_Resource;
                (res as CGME.ResourceNumber).Value = EditorGUILayout.IntField((res as CGME.ResourceNumber).Value);
            }
            else if (res is CGME.ResourceText)
            {
                (res as CGME.ResourceText).Value = EditorGUILayout.TextField((res as CGME.ResourceText).Value);
            }
            else if (res is CGME.ResourceBool)
            {
                (res as CGME.ResourceBool).Value = EditorGUILayout.Toggle((res as CGME.ResourceBool).Value);
            }
            else if (res is CGME.ResourceAction)
            {
                DrawResourceAction();
            }

            //EditorGUILayout.EndHorizontal();
        }
示例#9
0
        public bool CopyFrom(CGME.Resource res)
        {
            if (CGME_resource.CGType == res.CGType)
            {
                if (res is CGME.ResourceNumber)
                {
                    (CGME_resource as CGME.ResourceNumber).Value =
                        (res as CGME.ResourceNumber).Value;
                }

                if (res is CGME.ResourceText)
                {
                    (CGME_resource as CGME.ResourceText).Value =
                        (res as CGME.ResourceText).Value;
                }

                if (res is CGME.ResourceBool)
                {
                    (CGME_resource as CGME.ResourceBool).Value =
                        (res as CGME.ResourceBool).Value;
                }

                if (res is CGME.ResourceAction)
                {
                    (CGME_resource as CGME.ResourceAction).Value =
                        (res as CGME.ResourceAction).Value;
                    Trigger = InterfaceEvent.Any;
                    (CGME_resource as CGME.ResourceAction).Phase =
                        (res as CGME.ResourceAction).Phase;
                }

                return(true);
            }

            return(false);
        }
示例#10
0
//		public Resource(){
//			if (CGME_resource == null)CGME_resource = new CGME.ResourceNumber();
//
//			//Resource_type =
//		}

        public void SetObject(CGME.CGObject cgobj)
        {
            CGME_resource = (CGME.Resource)cgobj;
        }
示例#11
0
 public void RemoveResource(CGME.Resource resource)
 {
     resources.Remove(resource);
 }
示例#12
0
        // RESOURCES FUNCTIONS ----------------------------------------

        public void AddResource(CGME.Resource new_resource)
        {
            DispatchEvent(EngineEvent.AddResource, new_resource, null);
            new_resource.Parent = this;
            resources.Add(new_resource);
        }