/// <summary> /// Creates a new module in the temporary directory. /// Note that this module will not become permanent until a call to SaveModule() is made. /// </summary> /// <returns>True if successful, false if unsuccessful</returns> public bool CreateModule() { try { using (FileArchiveManager manager = new FileArchiveManager()) { TemporaryDirectoryPath = manager.CreateUniqueDirectory(); } // Build a new database file and structure. using (DatabaseRepository repo = new DatabaseRepository()) { repo.CreateNewDatabase(TemporaryDirectoryPath, "WinterEngineDB", true); } EntityCreationScripts creationScripts = new EntityCreationScripts(); creationScripts.Initialize(); // Add the module details to the correct table. using (GameModuleRepository repo = new GameModuleRepository()) { GameObjectFactory factory = new GameObjectFactory(); GameModule module = factory.CreateObject(GameObjectTypeEnum.GameModule, ModuleName, ModuleTag, ModuleResref) as GameModule; repo.Add(module); } LoadSystemContentPacks(); return true; } catch(Exception ex) { throw new Exception("Error creating module.", ex); } }
private void AddNewObject(object sender, JavascriptMethodEventArgs e) { try { ErrorTypeEnum error = ErrorTypeEnum.None; GameObjectFactory factory = new GameObjectFactory(); string name = e.Arguments[0]; string tag = e.Arguments[1]; string resref = e.Arguments[2]; int categoryID = (int)e.Arguments[3]; GameObjectTypeEnum gameObjectType = (GameObjectTypeEnum)Enum.Parse(typeof(GameObjectTypeEnum), e.Arguments[4]); int resourceID = 0; if (factory.DoesObjectExistInDatabase(resref, gameObjectType)) { error = ErrorTypeEnum.ObjectResrefAlreadyExists; } else { GameObjectBase newObject = factory.CreateObject(gameObjectType, name, tag, resref); newObject.ResourceCategoryID = categoryID; resourceID = factory.AddToDatabase(newObject).ResourceID; } PopulateToolsetViewModel(); AsyncJavascriptCallback("CreateNewObject_Callback", error == ErrorTypeEnum.None ? true : false, EnumerationHelper.GetEnumerationDescription(error), (int)gameObjectType, name, resourceID); } catch { throw; } }