internal override void WriteElement( Element element, PluginFileOutput output ) { base.WriteElement(element, output); output.WriteContainer((Container)element); }
internal override void WriteElement( Element element, PluginFileOutput output ) { base.WriteElement(element, output); WriteData((ValueElement)element, output); }
internal void WriteGroupHeaderTo( IGroupHeader header, PluginFileOutput output ) { var method = groupHeaderType.GetMethod("WriteTo"); var args = new object[] { output }; method.Invoke(header, args); }
internal void WriteSourceTo(MainRecord rec, PluginFileOutput output) { var source = rec._file.source; source.stream.Position = rec.bodyOffset - recordHeaderSize; int size = (int)(recordHeaderSize + rec.header.dataSize); source.PipeTo(output.writer, size); }
public long WriteTo(PluginFileOutput output) { output.writer.Write(signature.bytes); output.writer.Write(groupSize); output.writer.Write(label); output.writer.Write(groupType); output.writer.Write(versionControlInfo); output.writer.Write(unknown); return(output.stream.Position); }
internal override void WriteElement( Element element, PluginFileOutput output ) { if (!IsSubrecord()) { return; } output.WriteString(_signature); output.writer.Write((UInt16)(element.def.GetSize(element) - 6)); }
internal override void WriteData( ValueElement element, PluginFileOutput output ) { if (element.data is float data) { output.writer.Write(data); } else { output.writer.Write(DefaultData()); } }
internal override void WriteData( ValueElement element, PluginFileOutput output ) { if (element.data is FormId data) { data.WriteTo(output); } else { DefaultData().WriteTo(output); } }
internal void WriteElementsTo(MainRecord rec, PluginFileOutput output) { int index = GetFirstRealElementIndex(rec); var headerElement = rec._internalElements[index++]; UpdateDataSize(headerElement, rec.size - recordHeaderSize); headerElement.WriteTo(output); output.WriteRecordData(rec, () => { for (; index < rec._internalElements.Count; index++) { rec._internalElements[index].WriteTo(output); } }); }
internal override void WriteData( ValueElement element, PluginFileOutput output ) { if (element.data is LocalizedString ls) { ls.WriteTo(output); } else { var s = element.data as string ?? DefaultData(); if (prefix != null) { output.WritePrefix(s.Length, (int)prefix, padding ?? 0); } output.WriteString(s, isVariableSize); } }
internal override void WriteElement( Element element, PluginFileOutput output ) { var rec = (MainRecord)element; var file = rec._file; if (rec._internalElements == null) { if (!(file as IMasterManager).mastersChanged) { WriteSourceTo(rec, output); return; } ReadElements(rec, file.source); } WriteElementsTo(rec, output); }
internal virtual void WriteElement( Element element, PluginFileOutput output ) { throw new NotImplementedException(); }
internal void WriteTo(PluginFileOutput output) { output.writer.Write(id); }
internal override void WriteData( ValueElement element, PluginFileOutput output ) { var data = element.data as byte[] ?? DefaultData(); output.writer.Write(data); }
internal override void WriteData( ValueElement element, PluginFileOutput output ) { }