Example #1
0
        static void LoadTextures(PrismMap map, BinaryReader file)
        {
            #region VERSION 0+
            if (map.fileStructureVersion >= 0)
            {
                int n = file.ReadInt32();

                for (int i = 0; i < n; i++)
                {
                    string name = file.ReadString();

                    int    bitmapBytes = file.ReadInt32();
                    Bitmap bitmap      = new Bitmap(new MemoryStream(file.ReadBytes(bitmapBytes)));

                    PrismTexture set = new PrismTexture(name, bitmap);

                    int tileN = file.ReadInt32();
                    for (int j = 0; j < tileN; j++)
                    {
                        string     tileName = file.ReadString();
                        RectangleF rect     = new RectangleF(file.ReadSingle(), file.ReadSingle(), file.ReadSingle(), file.ReadSingle());

                        set.AddTile(new PrismTexture.Tile(tileName, rect, set));
                    }

                    map.AddTexture(set);
                }
            }
            #endregion
        }
Example #2
0
        static void SaveTextures(PrismMap map, BinaryWriter file)
        {
            file.Write(map.Textures.Count);

            foreach (PrismTexture t in map.Textures)
            {
                file.Write(t.Name);

                byte[] imageData;

                ImageConverter converter = new ImageConverter();
                imageData = (byte[])converter.ConvertTo(t.Bitmap, typeof(byte[]));

                file.Write(imageData.Length);
                file.Write(imageData);

                file.Write(t.Tiles.Count);

                foreach (PrismTexture.Tile tile in t.Tiles)
                {
                    file.Write(tile.Name);
                    file.Write(tile.UV.X);
                    file.Write(tile.UV.Y);
                    file.Write(tile.UV.Width);
                    file.Write(tile.UV.Height);
                }
            }
        }
Example #3
0
 static void LoadLayers(PrismMap map, BinaryReader file)
 {
     #region VERSION 0+
     {
         map.RootLayerNode.ReadFromBuffer(file, map);
     }
     #endregion
 }
Example #4
0
        public override void ReadFromBuffer(BinaryReader reader, PrismMap map)
        {
            int meshes = reader.ReadInt32();

            for (int i = 0; i < meshes; i++)
            {
                PrismMesh mesh = new PrismMesh(reader, map);
                Meshes.Add(mesh);
            }
        }
Example #5
0
        public override void WriteToBuffer(BinaryWriter writer, PrismMap map)
        {
            writer.Write(true);
            writer.Write(Name);
            writer.Write(Meshes.Count);

            foreach (PrismMesh m in Meshes)
            {
                m.WriteToBuffer(writer, map);
            }
        }
Example #6
0
        public static PrismMap LoadMapFrom(string filename)
        {
            using (BinaryReader file = new BinaryReader(new FileStream(filename, FileMode.Open)))
            {
                PrismMap map = new PrismMap(file.ReadUInt32());

                LoadTextures(map, file);
                LoadLayers(map, file);

                return(map);
            }
        }
        public virtual void WriteToBuffer(BinaryWriter writer, PrismMap map)
        {
            if (parent != null)
            {
                writer.Write(false);
                writer.Write(name);
            }
            writer.Write(Nodes.Count);

            foreach (PrismLayerNode n in Nodes)
            {
                n.WriteToBuffer(writer, map);
            }
        }
Example #8
0
        public static void SaveMapTo(PrismMap map, string filename)
        {
            using (BinaryWriter file = new BinaryWriter(new FileStream(filename, FileMode.Create)))
            {
                //WRITE FILE STRUCTURE VERSION !!!!!!!!!!!!!!!!!!
                file.Write(map.fileStructureVersion);
                //----------------------------------------------

                //SAVING STUFF
                SaveMapInfo(map, file);
                SaveTextures(map, file);
                SaveLayers(map, file);

                file.Flush();
            }
        }
Example #9
0
        public void ReadFrombuffer(BinaryReader reader, PrismMap map)
        {
            int vertices = reader.ReadInt32();

            vertexPosition = new Vector2[vertices];
            vertexColor    = new ColorHSL[vertices];

            for (int i = 0; i < vertices; i++)
            {
                vertexPosition[i] = new Vector2(reader.ReadSingle(), reader.ReadSingle());
                vertexColor[i]    = new ColorHSL(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
            }

            if (reader.ReadBoolean())
            {
                tile = map.Textures[reader.ReadInt32()].Tiles[reader.ReadInt32()];
            }
        }
Example #10
0
        public void WriteToBuffer(BinaryWriter writer, PrismMap map)
        {
            writer.Write(vertexPosition.Length);

            for (int i = 0; i < vertexPosition.Length; i++)
            {
                writer.Write(vertexPosition[i].X);
                writer.Write(vertexPosition[i].Y);
                writer.Write(vertexColor[i].H);
                writer.Write(vertexColor[i].S);
                writer.Write(vertexColor[i].L);
            }

            writer.Write(Tile != null);
            if (Tile != null)
            {
                writer.Write(map.Textures.IndexOf(Tile.Texture));
                writer.Write(Tile.Index);
            }
        }
        public virtual void ReadFromBuffer(BinaryReader reader, PrismMap map)
        {
            int nodes = reader.ReadInt32();

            for (int i = 0; i < nodes; i++)
            {
                bool           isLayer = reader.ReadBoolean();
                PrismLayerNode node;

                if (isLayer)
                {
                    node = new PrismLayer(reader.ReadString(), this);
                }
                else
                {
                    node = new PrismLayerNode(reader.ReadString(), this);
                }

                node.ReadFromBuffer(reader, map);
            }
        }
Example #12
0
 public PrismMesh(BinaryReader reader, PrismMap map)
 {
     ReadFrombuffer(reader, map);
 }
Example #13
0
        static void SaveLayers(PrismMap map, BinaryWriter file)
        {
            PrismLayerNode node = map.RootLayerNode;

            node.WriteToBuffer(file, map);
        }
Example #14
0
 static void SaveMapInfo(PrismMap map, BinaryWriter file)
 {
     //file.Write(map.fileStructureVersion);
 }