示例#1
0
        public static void MProjectToBin(MProjectToBinVerbs verbs)
        {
            if (verbs.Version == 0)
            {
                Console.WriteLine("Version 0 is not currently supported.");
                return;
            }
            else if (verbs.Version > 1 || verbs.Version < 0)
            {
                Console.WriteLine("Version must be 0 or 1. (0 not current supported).");
                return;
            }

            var   mbin     = new MBinaryIO(verbs.InputPath);
            mNode rootNode = mbin.Read();

            if (rootNode is null)
            {
                var mtext = new MTextIO(verbs.InputPath);
                rootNode = mtext.Read();

                if (rootNode is null)
                {
                    Console.WriteLine("Could not read mproject.");
                    return;
                }
            }

            MBinaryWriter writer = new MBinaryWriter(verbs.OutputPath);

            writer.Version = verbs.Version;
            writer.WriteNode(rootNode);

            Console.WriteLine($"Done. Exported to '{verbs.OutputPath}'.");
        }
示例#2
0
        public override void Write(MBinaryWriter writer)
        {
            writer.Stream.WriteVarInt((int)FieldType.String);
            writer.Stream.WriteVarString("color_name");

            writer.Stream.WriteVarInt((int)FieldType.String);
            writer.Stream.WriteVarString(ColorName);
        }
示例#3
0
        public override void Write(MBinaryWriter writer)
        {
            if (writer.Version == 0)
            {
                throw new NotImplementedException();
            }
            else
            {
                writer.Stream.WriteVarInt((int)FieldType.ArrayMaybe);
                writer.Stream.WriteVarInt(Elements.Count);

                foreach (var element in Elements)
                {
                    element.Write(writer);
                }
            }
        }
示例#4
0
        public override void Write(MBinaryWriter writer)
        {
            if (writer.Version == 0)
            {
                throw new NotImplementedException();
            }
            else
            {
                writer.Stream.WriteVarInt((int)FieldType.String);
                writer.Stream.WriteVarString("vector");

                writer.Stream.WriteVarInt((int)FieldType.Float);
                writer.Stream.WriteSingle(X);

                writer.Stream.WriteVarInt((int)FieldType.Float);
                writer.Stream.WriteSingle(Y);
            }
        }
示例#5
0
        public override void Write(MBinaryWriter writer)
        {
            if (writer.Version == 0)
            {
                throw new NotImplementedException();
            }
            else
            {
                writer.Stream.WriteVarInt((int)FieldType.String);
                writer.Stream.WriteVarString("RGBA");

                writer.Stream.WriteVarInt((int)FieldType.UByte);
                writer.Stream.WriteByte(R);

                writer.Stream.WriteVarInt((int)FieldType.UByte);
                writer.Stream.WriteByte(G);

                writer.Stream.WriteVarInt((int)FieldType.UByte);
                writer.Stream.WriteByte(B);

                writer.Stream.WriteVarInt((int)FieldType.UByte);
                writer.Stream.WriteByte(A);
            }
        }
示例#6
0
 public override void Write(MBinaryWriter writer)
 {
     writer.Stream.WriteVarInt((int)FieldType.Short);
     writer.Stream.WriteInt16(Value);
 }
示例#7
0
 public override void Write(MBinaryWriter writer)
 {
     writer.Stream.WriteVarInt((int)FieldType.UByte);
     writer.Stream.WriteByte(Value);
 }
示例#8
0
 public abstract void Write(MBinaryWriter writer);
示例#9
0
 public override void Write(MBinaryWriter writer)
 {
     writer.Stream.WriteVarInt((int)FieldType.Float);
     writer.Stream.WriteSingle(Value);
 }
示例#10
0
 public override void Write(MBinaryWriter writer)
 {
     writer.Stream.WriteVarInt((int)FieldType.String);
     writer.Stream.WriteVarString(String);
 }
示例#11
0
 public override void Write(MBinaryWriter writer)
 {
     writer.Stream.WriteVarInt((int)FieldType.ULong);
     writer.Stream.WriteUInt64(Value);
 }