/// <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 LoadObjectData(object sender, JavascriptMethodEventArgs e) { GameObjectFactory factory = new GameObjectFactory(); int resourceID = (int)e.Arguments[0]; GameObjectBase gameObject = factory.GetFromDatabaseByID(resourceID, ViewModel.GameObjectType); ObjectSelectionEventArgs eventArgs = new ObjectSelectionEventArgs(resourceID); if (ViewModel.GameObjectType == GameObjectTypeEnum.Area) { ViewModel.ActiveArea = gameObject as Area; RefreshAreaEntity(this, eventArgs); } else if (ViewModel.GameObjectType == GameObjectTypeEnum.Conversation) { ViewModel.ActiveConversation = gameObject as Conversation; } else if (ViewModel.GameObjectType == GameObjectTypeEnum.Creature) { ViewModel.ActiveCreature = gameObject as Creature; } else if (ViewModel.GameObjectType == GameObjectTypeEnum.Item) { ViewModel.ActiveItem = gameObject as Item; } else if (ViewModel.GameObjectType == GameObjectTypeEnum.Placeable) { ViewModel.ActivePlaceable = gameObject as Placeable; } else if (ViewModel.GameObjectType == GameObjectTypeEnum.Script) { ViewModel.ActiveScript = gameObject as Script; } else if (ViewModel.GameObjectType == GameObjectTypeEnum.Tileset) { ViewModel.ActiveTileset = gameObject as Tileset; RaiseTilesetLoadEvent(gameObject.GraphicResourceID); } AsyncJavascriptCallback("LoadObjectData_Callback"); }
private void DeleteCategory(object sender, JavascriptMethodEventArgs e) { ErrorTypeEnum error = ErrorTypeEnum.None; int categoryID = (int)e.Arguments[0]; GameObjectFactory factory = new GameObjectFactory(); GameObjectTypeEnum gameObjectType = (GameObjectTypeEnum)Enum.Parse(typeof(GameObjectTypeEnum), e.Arguments[1]); Category categoryToRemove; using(CategoryRepository repo = new CategoryRepository()) { categoryToRemove = repo.GetByID(categoryID); } factory.DeleteFromDatabaseByCategory(categoryToRemove, gameObjectType); if (gameObjectType == GameObjectTypeEnum.Area) { RefreshAreaEntity(this, new ObjectSelectionEventArgs(0)); } PopulateToolsetViewModel(); AsyncJavascriptCallback("DeleteObject_Callback", error == ErrorTypeEnum.None ? true : false, EnumerationHelper.GetEnumerationDescription(error)); }
private void DeleteObject(object sender, JavascriptMethodEventArgs e) { ErrorTypeEnum error = ErrorTypeEnum.None; GameObjectFactory factory = new GameObjectFactory(); int resourceID = (int)e.Arguments[0]; GameObjectTypeEnum gameObjectType = (GameObjectTypeEnum)Enum.Parse(typeof(GameObjectTypeEnum), e.Arguments[1]); factory.DeleteFromDatabase(resourceID, gameObjectType); if (gameObjectType == GameObjectTypeEnum.Area) { ViewModel.ActiveArea = new Area(true); RefreshAreaEntity(this, new ObjectSelectionEventArgs(0)); } else if (gameObjectType == GameObjectTypeEnum.Conversation) { ViewModel.ActiveConversation = new Conversation(true); } else if (gameObjectType == GameObjectTypeEnum.Creature) { ViewModel.ActiveCreature = new Creature(true); } else if (gameObjectType == GameObjectTypeEnum.Item) { ViewModel.ActiveItem = new Item(true); } else if (gameObjectType == GameObjectTypeEnum.Placeable) { ViewModel.ActivePlaceable = new Placeable(true); } else if (gameObjectType == GameObjectTypeEnum.Script) { ViewModel.ActiveScript = new Script(); } else if (gameObjectType == GameObjectTypeEnum.Tileset) { ViewModel.ActiveTileset = new Tileset(); } PopulateToolsetViewModel(); AsyncJavascriptCallback("DeleteObject_Callback", error == ErrorTypeEnum.None ? true : false, EnumerationHelper.GetEnumerationDescription(error)); }
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; } }