コード例 #1
0
 internal LoadedScene(string name, PropertyHolder values, SceneLoader loader, Game game, LoaderUtility loaderUtil)
     : base(values, loaderUtil)
 {
     Loader = loader;
     Game = game;
     Name = name;
 }
コード例 #2
0
ファイル: GameLoader.cs プロジェクト: kinectitude/kinectitude
        internal Game CreateGame()
        {
            object root = loaderUtility.GetGame();
            PropertyHolder gameProperties = loaderUtility.GetProperties(root);

            foreach (Tuple<string, object> gameValue in gameProperties)
                Game[gameValue.Item1] = loaderUtility.MakeAssignable(gameValue.Item2) as ValueReader;

            FirstScene = loaderUtility.MakeAssignable(gameProperties["FirstScene"]) as ValueReader;
            //TODO for Widht, Height, IsFullScreen

            IEnumerable<object> usings = loaderUtility.GetOfType(root, loaderUtility.UsingType);

            foreach (object uses in usings)
            {
                IEnumerable<Tuple<string, string>> defines = loaderUtility.GetDefines(uses);
                string useFile = loaderUtility.GetFile(uses);
                foreach (Tuple<string, string> defined in defines) loadReflection(useFile, defined.Item1, defined.Item2);
            }

            IEnumerable<object> prototypes = loaderUtility.GetOfType(root, loaderUtility.PrototypeType);

            foreach (object prototype in prototypes)
            {
                PropertyHolder prototypeProperties = loaderUtility.GetProperties(prototype);
                string myName = loaderUtility.GetName(prototype);
                LoadedEntity loadedPrototype = entityParse(prototype, myName, -3);
            }

            IEnumerable<object> services= loaderUtility.GetOfType(root, loaderUtility.ServiceType);
            foreach (object serviceobj in services)
            {
                PropertyHolder values = loaderUtility.GetProperties(serviceobj);
                string name = loaderUtility.GetName(serviceobj);
                foreach (Tuple<string, object> value in values)
                {
                    Service service = Game.GetChangeable(name) as Service;
                    ClassFactory.SetParam(service, value.Item1, loaderUtility.MakeAssignable(value.Item2));
                }
            }

            IEnumerable<object> scenes = loaderUtility.GetOfType(root, loaderUtility.SceneType);

            foreach (object scene in scenes)
            {
                string sceneName = loaderUtility.GetName(scene);
                SceneLoader sceneLoader = new SceneLoader(sceneName, scene, loaderUtility, this);
                Scenes[sceneName] = sceneLoader.LoadedScene;
            }

            Game.Name = Game["Name"].GetStrValue();
            return Game;
        }