Ejemplo n.º 1
0
        public void Write(BinaryWriter writer, ModSaveInfo info)
        {
            long start = writer.BaseStream.Position;

            writer.Write(0L);
            IsCustomModel = info.BelongsToMe(data);
            DataIdentifier.Write(writer, dataID);
            writer.Write(IsCustomModel);
            switch (dataID.Type)
            {
            case IdentifierType.ACTOR:
                WriteData <CustomActorData>(writer, info);
                break;

            case IdentifierType.GADGET:
                WriteData <CustomGadgetData>(writer, info);
                break;

            default:
                throw new NotImplementedException();
            }

            long current = writer.BaseStream.Position;

            writer.BaseStream.Seek(start, SeekOrigin.Begin);
            dataLength = current - start;
            writer.Write(dataLength);
            writer.BaseStream.Seek(current, SeekOrigin.Begin);
        }
Ejemplo n.º 2
0
        public void WriteData(BinaryWriter writer)
        {
            writer.Write(ammoDataEntries.Count);
            foreach (var entry in ammoDataEntries)
            {
                entry.Write(writer);
            }
            writer.Write(segments.Count);
            foreach (var mod in segments)
            {
                mod.Write(writer);
                Debug.Log($"Saving mod {mod.modid} which is {mod.byteLength} bytes long");
            }

            enumTranslator.Write(writer);

            writer.Write(partialData.Count);

            foreach (var pair in partialData)
            {
                DataIdentifier.Write(writer, pair.Key);
                pair.Value.Write(writer);
            }

            appearancesData.Write(writer);
        }