Пример #1
0
        private void PopupEvent(CGM.CGMObject source)
        {
            //CGME.Resource[] cgme_resources = source.GetCGMEResources();
            CGM.Resource[] resources    = GetResourcesFrom(source);
            CGME.Actor     source_actor = source.GetCGMEActor();

            List <CGME.ResourceAction> res_actions = new List <CGME.ResourceAction>();

            foreach (Resource res in resources)
            {
                if (res.CGME_Resource is CGME.ResourceAction &&
                    (res.CGME_Resource as CGME.ResourceAction).IsAvailable(CGME_Manager.Running_phase.Index) &&
                    (!res.RestrictParent || (source_actor.Parent != null && res.ParentType == source_actor.Parent.CGType)))
                {
                    res_actions.Add(res.CGME_Resource  as CGME.ResourceAction);
                }
            }

            if (res_actions.Count <= 0)
            {
                Debug.Log("No action resources available");
                return;
            }

            DrawPopup(source, Input.mousePosition, res_actions.ToArray());
        }
Пример #2
0
        private void HidePopup()
        {
            //draw_popup = false;
            popup_source          = null;
            popup_res_action_list = null;

            popup_window = null;
        }
Пример #3
0
 public virtual CGME.Resource[] GetCGMEResources()
 {
     CGME.Actor act = GetCGMEActor();
     if (act != null)
     {
         return(act.Resources.ToArray());
     }
     return(null);
 }
Пример #4
0
        public void CopyResources(CGME.Actor act)
        {
            CGM.Resource[] this_cgm_resources = GetChildrenResources();

            foreach (CGM.Resource this_cgm_resource in this_cgm_resources)
            {
                this_cgm_resource.CopyFrom(act.Resources.ToArray());
            }
        }
Пример #5
0
        void FocusObject(CGME.Actor act)
        {
            GameObject[] focus_objects = GameObject.FindGameObjectsWithTag("CGMFocus");

            foreach (GameObject focus in focus_objects)
            {
                CGMObject cgm_obj = focus.GetComponent <CGMObject>();
                if (cgm_obj != null)
                {
                    cgm_obj.CopyResources(act);
                }
            }
        }
Пример #6
0
        public static string DebugRes(CGME.Actor actor)
        {
            string log = "";

            if (actor.Resources_Size > 0)
            {
                log = "|| Resources: ";
                foreach (CGME.Resource resource in actor.Resources)
                {
                    log += ("(ID:" + resource.Id + ") " + ": " + resource.ToString() + " :: ");
//
                }
            }
            return(log);
        }
Пример #7
0
        private void DrawPopup(CGMObject psource, Vector3 position, CGME.ResourceAction[] action_list)
        {
            popup_source          = psource.GetCGMEActor();
            popup_res_action_list = action_list;

            string[] action_string_list = new string[action_list.Length];

            int i = 0;

            foreach (CGME.ResourceAction act in action_list)
            {
                action_string_list[i++] = act.CGType;
            }

            popup_window = new PopUpWindow(action_string_list, position);
        }
Пример #8
0
        private void StandardEvent(InterfaceEvent ev, CGM.CGMObject source)
        {
            CGM.Resource[] resources    = GetResourcesFrom(source);
            CGME.Actor     source_actor = source.GetCGMEActor();

            if (resources == null)
            {
                return;
            }

            foreach (CGM.Resource res in resources)
            {
                if (res.Trigger == ev &&
                    res.CGME_Resource is CGME.ResourceAction &&
                    (!res.RestrictParent || (source_actor.Parent != null && res.ParentType == source_actor.Parent.CGType)))
                {
                    RunAction(res.CGME_Resource as CGME.ResourceAction, source_actor);
                }
            }
        }
Пример #9
0
 void RunAction(CGME.ResourceAction resact, CGME.Actor source)
 {
     resact.RunAction(source, source);
     Debug.Log("Running " + resact.Value.CGType);
 }