public List <MyObjectBuilder_CubeGrid> UnpackGrids() { List <MyObjectBuilder_CubeGrid> list = new List <MyObjectBuilder_CubeGrid>(); foreach (string gridXML in Grids) { list.Add(MyAPIGateway.Utilities.SerializeFromXML <MyObjectBuilder_CubeGrid>(gridXML)); } for (int i = 0; i < list.Count; i++) { MyObjectBuilder_CubeGrid grid = list[i]; grid.playedTime = i; // using played time because there is no other place to hold a variable foreach (MyObjectBuilder_CubeBlock cubeBlock in grid.CubeBlocks) { if (cubeBlock is MyObjectBuilder_Cockpit) { (cubeBlock as MyObjectBuilder_Cockpit).ClearPilotAndAutopilot(); MyObjectBuilder_CryoChamber myObjectBuilder_CryoChamber = cubeBlock as MyObjectBuilder_CryoChamber; myObjectBuilder_CryoChamber?.Clear(); } } } return(list); }
public override MyObjectBuilder_CubeBlock GetObjectBuilderCubeBlock(bool copy = false) { MyObjectBuilder_CryoChamber objectBuilderCubeBlock = (MyObjectBuilder_CryoChamber)base.GetObjectBuilderCubeBlock(copy); if (this.m_currentPlayerId != null) { objectBuilderCubeBlock.SteamId = new ulong?(this.m_currentPlayerId.Value.SteamId); objectBuilderCubeBlock.SerialId = new int?(this.m_currentPlayerId.Value.SerialId); } return(objectBuilderCubeBlock); }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { base.m_characterDummy = Matrix.Identity; base.Init(objectBuilder, cubeGrid); if (base.ResourceSink != null) { base.ResourceSink.SetMaxRequiredInputByType(MyResourceDistributorComponent.ElectricityId, this.BlockDefinition.IdlePowerConsumption); base.ResourceSink.SetRequiredInputFuncByType(MyResourceDistributorComponent.ElectricityId, new Func <float>(this.CalculateRequiredPowerInput)); base.ResourceSink.IsPoweredChanged += new Action(this.Receiver_IsPoweredChanged); } else { MyResourceSinkComponent component = new MyResourceSinkComponent(1); component.Init(MyStringHash.GetOrCompute(this.BlockDefinition.ResourceSinkGroup), this.BlockDefinition.IdlePowerConsumption, new Func <float>(this.CalculateRequiredPowerInput)); component.IsPoweredChanged += new Action(this.Receiver_IsPoweredChanged); base.ResourceSink = component; } MyObjectBuilder_CryoChamber chamber = objectBuilder as MyObjectBuilder_CryoChamber; if ((chamber.SteamId == null) || (chamber.SerialId == null)) { this.m_currentPlayerId = null; } else { this.m_currentPlayerId = new MyPlayer.PlayerId(chamber.SteamId.Value, chamber.SerialId.Value); } string overlayTexture = this.BlockDefinition.OverlayTexture; if (!string.IsNullOrEmpty(overlayTexture)) { this.m_overlayTextureName = overlayTexture; } base.HorizonIndicatorEnabled = false; base.NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME | MyEntityUpdateEnum.EACH_10TH_FRAME; }