コード例 #1
0
ファイル: UnionDef.cs プロジェクト: Kai-Beast223/esper
 internal override void WriteElement(
     Element element, PluginFileOutput output
     )
 {
     base.WriteElement(element, output);
     output.WriteContainer((Container)element);
 }
コード例 #2
0
ファイル: ValueDef.cs プロジェクト: Kai-Beast223/esper
 internal override void WriteElement(
     Element element, PluginFileOutput output
     )
 {
     base.WriteElement(element, output);
     WriteData((ValueElement)element, output);
 }
コード例 #3
0
        internal void WriteGroupHeaderTo(
            IGroupHeader header, PluginFileOutput output
            )
        {
            var method = groupHeaderType.GetMethod("WriteTo");
            var args   = new object[] { output };

            method.Invoke(header, args);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: TES4GroupHeader.cs プロジェクト: Kai-Beast223/esper
 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);
 }
コード例 #6
0
 internal override void WriteElement(
     Element element, PluginFileOutput output
     )
 {
     if (!IsSubrecord())
     {
         return;
     }
     output.WriteString(_signature);
     output.writer.Write((UInt16)(element.def.GetSize(element) - 6));
 }
コード例 #7
0
 internal override void WriteData(
     ValueElement element, PluginFileOutput output
     )
 {
     if (element.data is float data)
     {
         output.writer.Write(data);
     }
     else
     {
         output.writer.Write(DefaultData());
     }
 }
コード例 #8
0
ファイル: FormIdDef.cs プロジェクト: Kai-Beast223/esper
 internal override void WriteData(
     ValueElement element, PluginFileOutput output
     )
 {
     if (element.data is FormId data)
     {
         data.WriteTo(output);
     }
     else
     {
         DefaultData().WriteTo(output);
     }
 }
コード例 #9
0
        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);
                }
            });
        }
コード例 #10
0
 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);
     }
 }
コード例 #11
0
        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);
        }
コード例 #12
0
ファイル: ElementDef.cs プロジェクト: Kai-Beast223/esper
 internal virtual void WriteElement(
     Element element, PluginFileOutput output
     )
 {
     throw new NotImplementedException();
 }
コード例 #13
0
ファイル: LocalizedString.cs プロジェクト: Kai-Beast223/esper
 internal void WriteTo(PluginFileOutput output)
 {
     output.writer.Write(id);
 }
コード例 #14
0
 internal override void WriteData(
     ValueElement element, PluginFileOutput output
 ) {
     var data = element.data as byte[] ?? DefaultData();
     output.writer.Write(data);
 }
コード例 #15
0
 internal override void WriteData(
     ValueElement element, PluginFileOutput output
     )
 {
 }