Ejemplo n.º 1
0
        public override Texture2DContent Import(string filename, ContentImporterContext context)
        {
            // Load Arena2Path.txt
            arena2Path = File.ReadAllText(
                Path.Combine(Path.GetDirectoryName(filename), Arena2PathTxt));

            // Read input text
            string input = File.ReadAllText(filename);

            // Remove new lines
            input = input.Replace('\n', ' ').Trim();
            input = input.Replace('\r', ' ').Trim();

            // Get source information
            string[] lines           = input.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            string   textureFilename = lines[0].Trim();
            int      record          = Convert.ToInt32(lines[1].Trim());
            int      frame           = Convert.ToInt32(lines[2].Trim());

            // Get bitmap in RGBA format
            ImageFileReader fileReader = new ImageFileReader(arena2Path);
            DFImageFile     imageFile  = fileReader.LoadFile(textureFilename);
            DFBitmap        dfBitmap   = imageFile.GetBitmapFormat(record, frame, 0, DFBitmap.Formats.RGBA);

            // Set bitmap data
            BitmapContent bitmapContent = new PixelBitmapContent <Color>(dfBitmap.Width, dfBitmap.Height);

            bitmapContent.SetPixelData(dfBitmap.Data);
            Texture2DContent tc = new Texture2DContent();

            tc.Faces[0] = bitmapContent;

            return(tc);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Load crosshair texture.
        /// </summary>
        private void LoadCrosshairTexture()
        {
            // Load crosshair image
            ImageFileReader reader = new ImageFileReader(host.Arena2Path);

            reader.LibraryType = LibraryTypes.Cif;
            DFImageFile crosshair       = reader.GetImageFile("PNTER.CIF");
            DFBitmap    crosshairBitmap = crosshair.GetBitmapFormat(4, 0, 0, DFBitmap.Formats.RGBA);

            // Create texture
            crosshairTexture = new Texture2D(
                host.GraphicsDevice,
                crosshairBitmap.Width,
                crosshairBitmap.Height,
                false,
                SurfaceFormat.Color);

            // Set data
            crosshairTexture.SetData <byte>(
                0,
                null,
                crosshairBitmap.Data,
                0,
                crosshairBitmap.Width * crosshairBitmap.Height * 4);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Builds compass textures.
        /// </summary>
        private void BuildCompass()
        {
            // Load compass images
            ImageFileReader imageReader = new ImageFileReader(arena2Path);

            imageReader.LibraryType = LibraryTypes.Img;
            DFImageFile compass    = imageReader.GetImageFile("COMPASS.IMG");
            DFImageFile compassBox = imageReader.GetImageFile("COMPBOX.IMG");

            // Get DFBitmaps
            DFBitmap compassBitmap    = compass.GetBitmapFormat(0, 0, 0, DFBitmap.Formats.RGBA);
            DFBitmap compassBoxBitmap = compassBox.GetBitmapFormat(0, 0, 0, DFBitmap.Formats.RGBA);

            // Create textures
            compassTexture = new Texture2D(
                GraphicsDevice,
                compassBitmap.Width,
                compassBitmap.Height,
                false,
                SurfaceFormat.Color);
            compassBoxTexture = new Texture2D(
                GraphicsDevice,
                compassBoxBitmap.Width,
                compassBoxBitmap.Height,
                false,
                SurfaceFormat.Color);

            // Set data
            compassTexture.SetData <byte>(
                0,
                null,
                compassBitmap.Data,
                0,
                compassBitmap.Width * compassBitmap.Height * 4);
            compassBoxTexture.SetData <byte>(
                0,
                null,
                compassBoxBitmap.Data,
                0,
                compassBoxBitmap.Width * compassBoxBitmap.Height * 4);
        }