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); } } }
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); }