Пример #1
0
        public void ReadFromFile(BinaryReader reader)
        {
            uint count1  = reader.ReadUInt32();
            uint count2  = reader.ReadUInt32();
            uint unknown = reader.ReadUInt32();

            DecalPattern = new DecalPatternItem[count1];

            for (int i = 0; i < DecalPattern.Length; i++)
            {
                DecalPatternItem Item = new DecalPatternItem();
                Item.ID                 = reader.ReadInt64();
                Item.UV_min_x           = reader.ReadSingle();
                Item.UV_min_y           = reader.ReadSingle();
                Item.UV_max_x           = reader.ReadSingle();
                Item.UV_max_y           = reader.ReadSingle();
                Item.MaterialGUID_Part0 = reader.ReadUInt32();
                Item.MaterialGUID_Part1 = reader.ReadUInt32();
                Item.MinRadius          = reader.ReadSingle();
                Item.MaxRadius          = reader.ReadSingle();
                Item.Flags              = (EDecalFlags)reader.ReadUInt32();
                Item.Impact             = reader.ReadSingle();
                Item.TexCols            = reader.ReadInt32();
                Item.TexRows            = reader.ReadInt32();
                Item.TexStart           = reader.ReadInt32();
                Item.TexEnd             = reader.ReadInt32();
                Item.Group              = reader.ReadUInt32();
                Item.MultiDecal         = reader.ReadInt32();
                Item.BlendTime          = reader.ReadSingle();
                Item.FootStep           = reader.ReadInt32();
                Item.Notes              = StringHelpers.ReadStringBuffer(reader, 32);
                DecalPattern[i]         = Item;
            }
        }
Пример #2
0
        public void WriteToFile(XBinWriter writer)
        {
            writer.Write(DecalPattern.Length);
            writer.Write(DecalPattern.Length);
            writer.Write(0);

            for (int i = 0; i < DecalPattern.Length; i++)
            {
                DecalPatternItem Item = DecalPattern[i];
                writer.Write(Item.ID);
                writer.Write(Item.UV_min_x);
                writer.Write(Item.UV_min_y);
                writer.Write(Item.UV_max_x);
                writer.Write(Item.UV_max_y);
                writer.Write(Item.MaterialGUID_Part0);
                writer.Write(Item.MaterialGUID_Part1);
                writer.Write(Item.MinRadius);
                writer.Write(Item.MaxRadius);
                writer.Write((uint)Item.Flags);
                writer.Write(Item.Impact);
                writer.Write(Item.TexCols);
                writer.Write(Item.TexRows);
                writer.Write(Item.TexStart);
                writer.Write(Item.TexEnd);
                writer.Write(Item.Group);
                writer.Write(Item.MultiDecal);
                writer.Write(Item.BlendTime);
                writer.Write(Item.FootStep);
                StringHelpers.WriteStringBuffer(writer, 32, Item.Notes);
            }
        }
Пример #3
0
        public void SetFromTreeNodes(TreeNode Root)
        {
            DecalPattern = new DecalPatternItem[Root.Nodes.Count];

            for (int i = 0; i < DecalPattern.Length; i++)
            {
                TreeNode         ChildNode = Root.Nodes[i];
                DecalPatternItem Entry     = (DecalPatternItem)ChildNode.Tag;
                DecalPattern[i] = Entry;
            }
        }