Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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;
        }