public override void Render() { PreRender(); //Ver si se seleccionó alguno nivel a empaquetar var selectedFile = openFileModifier.Value; if (selectedFile != currentFile) { currentFile = selectedFile; //Cargar nivel var loader = new BspLoader(); var bspMap = loader.loadBsp(currentFile, quake3MediaPath); //Empaquetar var info = new FileInfo(currentFile); var fileName = info.Name.Substring(0, info.Name.IndexOf('.')); var outputDir = info.DirectoryName + "\\" + fileName; loader.packLevel(bspMap, quake3MediaPath, outputDir); //Librer recursos bspMap.dispose(); MessageBox.Show("Empaquetado almacenado en: " + outputDir, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); DrawText.drawText("Este ejemplo no posee salida gráfica. verificar código y sus comentarios.", 5, 50, Color.OrangeRed); } PostRender(); }
/// <summary> /// Cargar un escenario de Quake 3 /// </summary> private void loadLevel(string levelFile) { //Dispose del anterior if (bspMap != null) { bspMap.dispose(); bspMap = null; } //Cargar escenario de Quake 3 var mediaPath = new DirectoryInfo(levelFile).Parent.Parent.FullName + "\\"; var loader = new BspLoader(); bspMap = loader.loadBsp(levelFile, mediaPath); //Iniciar visiblidad bspMap.initVisibility(); //Cargar posición inicial del escenario bspMap.CollisionManager.initCamera(); bspMap.CollisionManager.Camera.RotationSpeed = 2f; //Acceso a metadata del escenario, por si se quiere obtener alguna información customizada (hay que parsearla) var entdata = bspMap.Data.entdata; }
public void LoadTextures(string mediaPath) { //string root = mediaPath; if (!Map.Equals("anim")) { var extension_pos = Map.LastIndexOf('.'); if (extension_pos < 0) { extension_pos = 0; } var texpath = BspLoader.FindTextureExtension(Map.Substring(0, extension_pos), mediaPath); if (!texpath.Equals("")) { //solo hay un mapa de bits var tex = TextureLoader.FromFile(D3DDevice.Instance.Device, texpath); Textures.Add(new TgcTexture(Path.GetFileName(texpath), texpath, tex, false)); AnimFreq = 0; } } else { foreach (var tex in AnimMaps) { var extension_pos = tex.LastIndexOf('.'); if (extension_pos < 0) { extension_pos = 0; } var texpath = BspLoader.FindTextureExtension(tex.Substring(0, extension_pos), mediaPath); if (!texpath.Equals("")) { //solo hay un mapa de bits var t = TextureLoader.FromFile(D3DDevice.Instance.Device, texpath); Textures.Add(new TgcTexture(Path.GetFileName(texpath), texpath, t, false)); } } } }