Beispiel #1
0
        public void RetrieveObjectsFromFile(FileInfo file, ObjectDict <OraObject> dict)
        {
            StreamReader streamReader = new StreamReader(file.FullName, Encoding.GetEncoding("Windows-1251"));
            string       script       = streamReader.ReadToEnd();

            RetrieveObjectsFromSQL(script, file, dict as OraObjectDict);
        }
Beispiel #2
0
        public void FromString(string Objects)
        {
            using var Trace = new Trace();  //This c# 8.0 using feature will auto dispose when the function is done.

            try
            {
                //take anything before the first semicolon:
                if (Objects.Contains(";"))
                {
                    Objects = Objects.GetWord("", ";");
                }

                this.EnabledCount = 0;
                int order = 0;

                List <string> lst    = Objects.SplitStr(",");
                List <string> deflst = AppSettings.Settings.ObjectPriority.ToLower().SplitStr(",");

                foreach (var obj in lst)
                {
                    ClsRelevantObject ro = new ClsRelevantObject(obj);

                    if (!ObjectDict.Contains(ro.Name.ToLower()))
                    {
                        if (ro.Enabled)
                        {
                            this.EnabledCount++;
                        }

                        order = deflst.IndexOf(ro.Name.ToLower());

                        if (order > -1)
                        {
                            ro.Priority = order + 1;
                        }

                        ObjectDict.Add(ro.Name.ToLower(), ro);
                    }
                }

                AddDefaults();
            }
            catch (Exception ex)
            {
                AITOOL.Log("Error: " + ex.Msg());
            }
        }
Beispiel #3
0
        public bool TryDelete(ClsRelevantObject ro)
        {
            bool ret = false;

            if (ro.IsNull())
            {
                return(false);
            }

            if (ObjectDict.Contains(ro.Name.ToLower()))
            {
                ObjectDict.Remove(ro.Name.ToLower());
                ret = true;
            }

            return(ret);
        }
Beispiel #4
0
        public void AddDefaults()
        {
            //Make sure the default objects are always in the list

            List <string> deflst          = AppSettings.Settings.ObjectPriority.SplitStr(",");
            bool          AlreadyHasItems = ObjectDict.Count > 0;

            for (int i = 0; i < deflst.Count; i++)
            {
                ClsRelevantObject ro = new ClsRelevantObject(deflst[i]);

                if (!ObjectDict.Contains(ro.Name.ToLower()))
                {
                    //if no items are currently in the dictionary, assume we want to ENABLE all the objects
                    //  Otherwise, Disable objects so that existing lists from old versions dont suddenly have everything enabled that shouldnt be
                    if (!AlreadyHasItems)
                    {
                        ro.Enabled = true;
                    }
                    else
                    {
                        ro.Enabled = false;
                    }

                    if (ro.Enabled)
                    {
                        this.EnabledCount++;
                    }

                    ro.Priority = i + 1;

                    ObjectDict.Add(ro.Name.ToLower(), ro);
                }
                else
                {
                    if (!AlreadyHasItems)
                    {
                        ro.Priority = i + 1;
                    }
                }
            }
        }
Beispiel #5
0
 public void RetrieveObjectsFromFile(List <FileInfo> files, ObjectDict <OraObject> dict)
 {
     StartOfCheck();
     foreach (FileInfo file in files)
     {
         if (file.Extension.Equals(extension, StringComparison.CurrentCultureIgnoreCase))
         {
             if (file.Exists)
             {
                 RetrieveObjectsFromFile(file, dict);
                 ProgressChanged();
             }
             else
             {
                 dict.notFoundFiles.Add(file);
             }
         }
     }
     EndOfCheck();
 }
Beispiel #6
0
        public bool TryAdd(ClsRelevantObject ro, bool Enable)
        {
            bool ret = false;

            if (ro.IsNull())
            {
                return(false);
            }

            if (!ObjectDict.Contains(ro.Name.ToLower()))
            {
                ro.Priority = ObjectDict.Count + 1;
                ro.Enabled  = Enable;

                if (ro.Enabled)
                {
                    this.EnabledCount++;
                }
                ObjectDict.Add(ro.Name.ToLower(), ro);
                ret = true;
            }

            return(ret);
        }
    public void CreateTask()  //create all objects for the current task
    {
        Vector3 targHolder_scale = new Vector3(1.2f * 0.07f, 0.0001f, 1.2f * 0.07f);

        for (int i = 0; i < objNumber; i++)
        {
            GameObject oriObj = objects[i]; //orignal object has shape,color,transform

            oriObj.AddComponent <Rigidbody>();
            oriObj.GetComponent <Rigidbody>().isKinematic = true;

            GameObject targHolder = GameObject.CreatePrimitive(PrimitiveType.Cube);//target holder to hold the object, its a plane
            targHolder.transform.position   = targetPosition[i];
            targHolder.transform.localScale = targHolder_scale;
            //Material tmp = Resources.Load<Material>("c1"); //give a color to the holder
            //tmp.color = new Color(0.5f,1,1);
            //targHolder.GetComponent<Renderer>().material = tmp;

            GameObject grabHolder = GameObject.CreatePrimitive(PrimitiveType.Cube);  //the position for agent to grab the object
            grabHolder.transform.position   = new Vector3(oriObj.transform.position.x, oriObj.transform.position.y + 0.08f, oriObj.transform.position.z);
            grabHolder.transform.rotation   = oriObj.transform.rotation;
            grabHolder.transform.localScale = oriObj.transform.localScale;
            Destroy(grabHolder.GetComponent <MeshRenderer>());


            GameObject releaseHolder = GameObject.CreatePrimitive(PrimitiveType.Cube); //the position for agent to release the object
            releaseHolder.transform.localScale = oriObj.transform.localScale;
            releaseHolder.transform.position   = new Vector3(targetPosition[i].x, oriObj.transform.position.y + 0.08f, targetPosition[i].z);
            Destroy(releaseHolder.GetComponent <MeshRenderer>());

            //ObjDict od = new ObjDict((i+1).ToString(),materials.Count,prefabs.Count,oriObj,targObj,targHolder,false);//now fill the dictionary
            ObjectDict od = gameObject.AddComponent <ObjectDict>();
            //od.Initialize(oriObj, targHolder, grabHolder, releaseHolder, false);
            dict.Add(i, od);
        }
    }
Beispiel #8
0
 void Awake()
 {
     obj = this;
 }
    public void CreateTask()
    {
        //level = lev - 1; // levle from 0->3==> lev 1->4

        //for (int i = 0; i < dict.Count; i++)
        //{
        //    dict[i].oriObject.SetActive(false);
        //}

        if (dict != null)
        {
            for (int i = 0; i < dict.Count; i++)
            {
                Destroy(dict[i]);
            }
            dict.Clear();
            //sortID.Clear(); //clear to store the new values
            usedMaterial.Clear();
        }

        for (int i = 0; i < objNumber; i++)
        {
            //usedMaterial.Add(matNum[i]);
        }
        //for (int i = 0; i < objNumber; i++)
        //{
        //    int index = UniqueRandomInt(0, mixedLevel[level].Count);
        //    usedMaterial.Add(index);
        //    //objects[i].transform.Find("Top").GetComponent<Renderer>().material = mat[index];

        //    //SortIDnum(lev, usedMaterial);
        //}

        // SortIndex(usedMaterial); //here the material pictures has been sorted in an increased sortID order

        for (int j = 0; j < objNumber; j++)
        {
            //objects[j].gameObject.transform.position = new Vector3(0f,0f,0f);
            //objects[j].transform.GetChild(5).GetComponent<Renderer>().material = mat[usedMaterial[j]];
            for (int i = 0; i < 6; i++)
            {
                objects[j].transform.GetChild(i).GetComponent <Renderer>().material = matFlags[j];//mixedLevel[level][usedMaterial[j]];  //here only attach material to the top face of the cube
            }

            //SortIDnum(level, usedMaterial);
        }

        for (int i = 0; i < objNumber; i++)
        {
            //objects[i].transform.position = InitPosition();//  new Vector3(InitPosition().x,InitPosition().y,InitPosition().z);

            //targHolder[i].transform.position = targetPosition[i];

            //grabHolder[i].transform.position = new Vector3(objects[i].transform.position.x, objects[i].transform.position.y + 0.08f, objects[i].transform.position.z);
            //grabHolder[i].transform.rotation = objects[i].transform.rotation;

            //releaseHolder[i].transform.position = new Vector3(targetPosition[i].x, objects[i].transform.position.y + 0.08f, targetPosition[i].z);

            ObjectDict od = gameObject.AddComponent <ObjectDict>();
            od.Initialize(i, objects[i], targHolder[i], grabHolder[i], releaseHolder[i], false);
            dict.Add(i, od);
        }

        for (int i = 0; i < objNumber; i++)
        {
            dict[i].oriObject.SetActive(false);
            dict[i].targHolder.SetActive(false);
        }
    }
 public string Recurse(string pattern, ObjectDict dict)
 {
     m_dict = dict;
     return(HelperRecurse(pattern));
 }