protected override void Init(MyObjectBuilder_DefinitionBase builder) { base.Init(builder); var ob = builder as MyObjectBuilder_MultiBlockDefinition; MyDebug.AssertDebug(ob != null); if (ob.BlockDefinitions != null && ob.BlockDefinitions.Length > 0) { MinPosition = Vector3I.MaxValue; MaxPosition = Vector3I.MinValue; BlockDefinitions = new MyMultiBlockPartDefinition[ob.BlockDefinitions.Length]; for (int i = 0; i < ob.BlockDefinitions.Length; ++i) { BlockDefinitions[i] = new MyMultiBlockPartDefinition(); var obBlockDef = ob.BlockDefinitions[i]; BlockDefinitions[i].Id = obBlockDef.Id; BlockDefinitions[i].Position = obBlockDef.Position; BlockDefinitions[i].Forward = obBlockDef.Orientation.Forward; BlockDefinitions[i].Up = obBlockDef.Orientation.Up; MinPosition = Vector3I.Min(MinPosition, obBlockDef.Position); MaxPosition = Vector3I.Max(MaxPosition, obBlockDef.Position); } } }