Example #1
0
 public static void WriteConnectivity(this BinaryWriter writer, LEGOPrimitiveConnectivity connectivity)
 {
     writer.Write(connectivity.Items.Length);
     foreach (object obj in connectivity.Items)
     {
         if (obj is LEGOPrimitiveConnectivityAxel)
         {
             writer.Write(0);
             writer.WriteConnectivityAxel(obj as LEGOPrimitiveConnectivityAxel);
         }
         if (obj is LEGOPrimitiveConnectivityBall)
         {
             writer.Write(1);
             writer.WriteConnectivityBall(obj as LEGOPrimitiveConnectivityBall);
         }
         if (obj is LEGOPrimitiveConnectivityCustom2DField)
         {
             writer.Write(2);
             writer.WriteConnectivityCustom2DField(obj as LEGOPrimitiveConnectivityCustom2DField);
         }
         if (obj is LEGOPrimitiveConnectivityFixed)
         {
             writer.Write(3);
             writer.WriteConnectivityFixed(obj as LEGOPrimitiveConnectivityFixed);
         }
         if (obj is LEGOPrimitiveConnectivityGear)
         {
             writer.Write(4);
             writer.WriteConnectivityGear(obj as LEGOPrimitiveConnectivityGear);
         }
         if (obj is LEGOPrimitiveConnectivityHinge)
         {
             writer.Write(5);
             writer.WriteConnectivityHinge(obj as LEGOPrimitiveConnectivityHinge);
         }
         if (obj is LEGOPrimitiveConnectivityRail)
         {
             writer.Write(6);
             writer.WriteConnectivityRail(obj as LEGOPrimitiveConnectivityRail);
         }
         if (obj is LEGOPrimitiveConnectivitySlider)
         {
             writer.Write(7);
             writer.WriteConnectivitySlider(obj as LEGOPrimitiveConnectivitySlider);
         }
     }
 }
Example #2
0
    public static LEGOPrimitiveConnectivity ReadConnctivity(this BinaryReader reader)
    {
        LEGOPrimitiveConnectivity primitiveConnectivity = new LEGOPrimitiveConnectivity();
        int length = reader.ReadInt32();

        primitiveConnectivity.Items = new object[length];
        for (int index = 0; index < primitiveConnectivity.Items.Length; ++index)
        {
            int num = reader.ReadInt32();
            if (num == 0)
            {
                primitiveConnectivity.Items[index] = (object)new LEGOPrimitiveConnectivityAxel()
                {
                    type        = reader.ReadInt32(),
                    length      = reader.ReadSingle(),
                    grabbing    = reader.ReadByte(),
                    startCapped = reader.ReadByte(),
                    endCapped   = reader.ReadByte(),
                    angle       = reader.ReadSingle(),
                    ax          = reader.ReadSingle(),
                    ay          = reader.ReadSingle(),
                    az          = reader.ReadSingle(),
                    tx          = reader.ReadSingle(),
                    ty          = reader.ReadSingle(),
                    tz          = reader.ReadSingle()
                }
            }
            ;
            if (num == 1)
            {
                primitiveConnectivity.Items[index] = (object)new LEGOPrimitiveConnectivityBall()
                {
                    type  = reader.ReadInt32(),
                    angle = reader.ReadSingle(),
                    ax    = reader.ReadSingle(),
                    ay    = reader.ReadSingle(),
                    az    = reader.ReadSingle(),
                    tx    = reader.ReadSingle(),
                    ty    = reader.ReadSingle(),
                    tz    = reader.ReadSingle()
                }
            }
            ;
            if (num == 2)
            {
                primitiveConnectivity.Items[index] = (object)new LEGOPrimitiveConnectivityCustom2DField()
                {
                    type   = reader.ReadByte(),
                    width  = reader.ReadByte(),
                    height = reader.ReadByte(),
                    angle  = reader.ReadSingle(),
                    ax     = reader.ReadSingle(),
                    ay     = reader.ReadSingle(),
                    az     = reader.ReadSingle(),
                    tx     = reader.ReadSingle(),
                    ty     = reader.ReadSingle(),
                    tz     = reader.ReadSingle(),
                    Value  = reader.ReadString()
                }
            }
            ;
            if (num == 3)
            {
                primitiveConnectivity.Items[index] = (object)new LEGOPrimitiveConnectivityFixed()
                {
                    type  = reader.ReadInt32(),
                    axes  = reader.ReadByte(),
                    tag   = reader.ReadString(),
                    angle = reader.ReadSingle(),
                    ax    = reader.ReadSingle(),
                    ay    = reader.ReadSingle(),
                    az    = reader.ReadSingle(),
                    tx    = reader.ReadSingle(),
                    ty    = reader.ReadSingle(),
                    tz    = reader.ReadSingle()
                }
            }
            ;
            if (num == 4)
            {
                primitiveConnectivity.Items[index] = (object)new LEGOPrimitiveConnectivityGear()
                {
                    type       = reader.ReadInt32(),
                    toothCount = reader.ReadByte(),
                    radius     = reader.ReadSingle(),
                    angle      = reader.ReadSingle(),
                    ax         = reader.ReadSingle(),
                    ay         = reader.ReadSingle(),
                    az         = reader.ReadSingle(),
                    tx         = reader.ReadSingle(),
                    ty         = reader.ReadSingle(),
                    tz         = reader.ReadSingle()
                }
            }
            ;
            if (num == 5)
            {
                primitiveConnectivity.Items[index] = (object)new LEGOPrimitiveConnectivityHinge()
                {
                    type     = reader.ReadInt32(),
                    oriented = reader.ReadByte(),
                    angle    = reader.ReadSingle(),
                    ax       = reader.ReadSingle(),
                    ay       = reader.ReadSingle(),
                    az       = reader.ReadSingle(),
                    tx       = reader.ReadSingle(),
                    ty       = reader.ReadSingle(),
                    tz       = reader.ReadSingle()
                }
            }
            ;
            if (num == 6)
            {
                primitiveConnectivity.Items[index] = (object)new LEGOPrimitiveConnectivityRail()
                {
                    type   = reader.ReadInt32(),
                    length = reader.ReadSingle(),
                    angle  = reader.ReadSingle(),
                    ax     = reader.ReadSingle(),
                    ay     = reader.ReadSingle(),
                    az     = reader.ReadSingle(),
                    tx     = reader.ReadSingle(),
                    ty     = reader.ReadSingle(),
                    tz     = reader.ReadSingle()
                }
            }
            ;
            if (num == 7)
            {
                primitiveConnectivity.Items[index] = (object)new LEGOPrimitiveConnectivitySlider()
                {
                    type        = reader.ReadInt32(),
                    length      = reader.ReadSingle(),
                    startCapped = reader.ReadByte(),
                    endCapped   = reader.ReadByte(),
                    angle       = reader.ReadSingle(),
                    ax          = reader.ReadSingle(),
                    ay          = reader.ReadSingle(),
                    az          = reader.ReadSingle(),
                    tx          = reader.ReadSingle(),
                    ty          = reader.ReadSingle(),
                    tz          = reader.ReadSingle()
                }
            }
            ;
        }
        return(primitiveConnectivity);
    }