internal LoadedScene(string name, PropertyHolder values, SceneLoader loader, Game game, LoaderUtility loaderUtil) : base(values, loaderUtil) { Loader = loader; Game = game; Name = name; }
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; }