コード例 #1
0
        public static void Load()
        {
            if (Loaded)
            {
                return;
            }
            Loaded = true;

            CreatorBasic.Load();
            PlayerProfile.Load();

            Render.Load();
#if !EDITOR
            LoadDefaultLevel();
#endif

#if !EDITOR && AUTO
            DefaultLoader.AutoLoad();
#endif

#if EDITOR
#if !XBOX
            EditorManager.InitEditor();
#endif
#endif
        }
コード例 #2
0
        public static GameObject ReadFile(BinaryReader Reader, Level ParentLevel, SceneObject ParentScene)
        {
            string     TypeString = Reader.ReadString();
            GameObject g          = CreatorBasic.ReturnObjectOfType(TypeString);

            ParentLevel.AddObject(g, ParentScene);

            return(ReadObject(Reader, ParentLevel, g));
        }
コード例 #3
0
        public void AddObject(Button button)
        {
            CreatorBasic c = (CreatorBasic)button.Tag;

            CreatorBasic.LastCreator = c;

            GameObject g = c.ReturnObject();

            GameManager.GetEditorLevel().AddObject(g);

            Destroy();
        }
コード例 #4
0
 public void set(string Name)
 {
     if (Name.Equals(""))
     {
         clear();
     }
     else
     {
         Type Value = CreatorBasic.FindType(Name);
         if (Value != null)
         {
             set(Value);
         }
     }
 }
コード例 #5
0
        public static GameObject ReturnObjectOfType(string type)
        {
            foreach (CreatorBasic Creator in AllCreators)
            {
                if (Creator.MyType.Name.Equals(type))
                {
                    return(Creator.ReturnObject());
                }
            }
            foreach (CreatorBasic Creator in AllCreators)
            {
                if (Creator.MyType.Name.Contains(type) || type.Contains(Creator.MyType.Name))
                {
                    return(Creator.ReturnObject());
                }
            }

            int          BestCount = 0;
            CreatorBasic BestMatch = null;

            foreach (CreatorBasic Creator in AllCreators)
            {
                int Count = 0;
                for (int i = 0; i < Math.Min(Creator.MyType.Name.Length, type.Length); i++)
                {
                    if (Creator.MyType.Name[i].Equals(type[i]))
                    {
                        Count++;
                    }
                }
                if (Count > BestCount)
                {
                    BestCount = Count;
                    BestMatch = Creator;
                }
            }

            return(BestMatch != null?BestMatch.ReturnObject() : null);
        }
コード例 #6
0
        public GameObject Clone(GameObject Parent, SceneObject Scene)
        {
            bool DictionaryCreator = CloneDictionary == null;

            if (DictionaryCreator)
            {
                CloneDictionary = new Dictionary <GameObject, GameObject>();
            }

            GameObject g = CreatorBasic.ReturnObjectOfType(GetType());

            if (!CloneDictionary.ContainsKey(this))
            {
                CloneDictionary.Add(this, g);
            }
            else
            {
                CloneDictionary[this] = g;
            }

            FillBlankClones();

            ReferenceGameObject = g;
            ParentLevel.AddObject(g, Scene);

            Stream s = new MemoryStream();

            WriteClone(new BinaryWriter(s));
            Console.Write(s.Length);
            s.Position = 0;
            g.ReadClone(new BinaryReader(s));
            s.Close();

            if (Scene != null)
            {
                Scene.AddSelected(g);
            }


            SceneObject SceneParent = Scene;

            if (!g.GetType().IsSubclassOf(typeof(SceneObject)))
            {
                if (Parent == null)
                {
                    hierarchyParent.AddHierarchyObject(g);
                }
                else
                {
                    Parent.AddHierarchyObject(g);
                }
            }
            else
            {
                SceneParent = (SceneObject)g;
            }

            foreach (GameObject child in HierarchyChildren)
            {
                if (child != this)
                {
                    child.Clone(g, SceneParent);
                }
            }

            g.PostRead();

            if (ObjectListValue.LinkedObjects.ContainsKey(this))
            {
                foreach (ObjectListValue l in ObjectListValue.LinkedObjects[this])
                {
                    if (!CloneDictionary.ContainsValue(l.Parent) && !CloneDictionary.ContainsKey(l.Parent))
                    {
                        l.add(g);
                    }
                }
            }

            if (DictionaryCreator)
            {
                CloneDictionary = null;
            }

            return(g);
        }