Ejemplo n.º 1
0
        public ReformPasteEventPacket(int planetId, List <ReformData> reformPreviews, Color[] colors, int playerId)
        {
            AuthorId = playerId;
            PlanetId = planetId;

            using (IWriterProvider writer = NebulaModAPI.GetBinaryWriter())
            {
                writer.BinaryWriter.Write(reformPreviews.Count);
                foreach (ReformData data in reformPreviews)
                {
                    writer.BinaryWriter.Write(data.latitude);
                    writer.BinaryWriter.Write(data.longitude);
                    writer.BinaryWriter.Write(data.type);
                    writer.BinaryWriter.Write(data.color);
                }

                writer.BinaryWriter.Write(colors != null);
                if (colors != null)
                {
                    for (int i = 0; i < 16; i++)
                    {
                        writer.BinaryWriter.Write(colors[i].r);
                        writer.BinaryWriter.Write(colors[i].g);
                        writer.BinaryWriter.Write(colors[i].b);
                        writer.BinaryWriter.Write(colors[i].a);
                    }
                }

                ReformData = writer.CloseAndGetBytes();
            }
        }
Ejemplo n.º 2
0
        public ReturnItemsPacket(Dictionary <int, int> counts, Dictionary <int, int> incCounts)
        {
            using IWriterProvider writer = NebulaModAPI.GetBinaryWriter();
            dataCount = counts.Count(pair => pair.Value > 0);

            foreach (var pair in counts)
            {
                if (pair.Value > 0)
                {
                    writer.BinaryWriter.Write(pair.Key);
                    writer.BinaryWriter.Write(pair.Value);
                    writer.BinaryWriter.Write(incCounts[pair.Key]);
                }
            }

            data = writer.CloseAndGetBytes();
        }