当前位置: 首页>>代码示例>>C#>>正文


C# MyCubeBlock.OnUnregisteredFromGridSystems方法代码示例

本文整理汇总了C#中MyCubeBlock.OnUnregisteredFromGridSystems方法的典型用法代码示例。如果您正苦于以下问题:C# MyCubeBlock.OnUnregisteredFromGridSystems方法的具体用法?C# MyCubeBlock.OnUnregisteredFromGridSystems怎么用?C# MyCubeBlock.OnUnregisteredFromGridSystems使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MyCubeBlock的用法示例。


在下文中一共展示了MyCubeBlock.OnUnregisteredFromGridSystems方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: UnregisterFromSystems

        public virtual void UnregisterFromSystems(MyCubeBlock block)
        {
            // Note: ResourceDistributor, WeaponSystem and TemrminalSystem can be null on closing (they are not in the ship but in the logical group). That's why they are null-checked
            if (ResourceDistributor != null)
            {
                ProfilerShort.Begin("Unregister Power producer");
                var powerProducer = block.Components.Get<MyResourceSourceComponent>();
                if (powerProducer != null)
                    ResourceDistributor.RemoveSource(powerProducer);

                ProfilerShort.BeginNextBlock("Unregister Power consumer");
                var powerConsumer = block.Components.Get<MyResourceSinkComponent>();
                if (powerConsumer != null)
                    ResourceDistributor.RemoveSink(powerConsumer);
                ProfilerShort.End();

                var socketOwner = block as IMyRechargeSocketOwner;
                if (socketOwner != null)
                    socketOwner.RechargeSocket.ResourceDistributor = null;
            }

            ProfilerShort.Begin("Unregister gun object");
            if (WeaponSystem != null)
            {
                var weapon = block as IMyGunObject<MyDeviceBase>;
                if (weapon != null)
                    WeaponSystem.Unregister(weapon);
            }

            ProfilerShort.BeginNextBlock("Unregister functional block");
            if (TerminalSystem != null)
            {
                var functionalBlock = block as MyTerminalBlock;
                if (functionalBlock != null)
                    TerminalSystem.Remove(functionalBlock);
            }

            // CH: We probably don't need to unregister controller blocks here. It's done in ShipController's OnUnregisteredFromGridSystems
            /*ProfilerShort.BeginNextBlock("Unregister controller block");
            if (ControlSystem != null)
            {
                var controllableBlock = block as MyShipController;
                if (controllableBlock != null && controllableBlock.ControllerInfo.Controller != null)
                    ControlSystem.RemoveControllerBlock(controllableBlock);
            }*/

            ProfilerShort.BeginNextBlock("Unregister inventory block");
            var inventoryBlock = (block != null &&  block.HasInventory) ? block : null ;
            if (inventoryBlock != null && inventoryBlock.HasInventory)
                ConveyorSystem.Remove(inventoryBlock);

            ProfilerShort.BeginNextBlock("Unregister conveyor block");
            var conveyorBlock = block as IMyConveyorEndpointBlock;
            if (conveyorBlock != null)
                ConveyorSystem.RemoveConveyorBlock(conveyorBlock);

            ProfilerShort.BeginNextBlock("Unregister segment block");
            var segmentBlock = block as IMyConveyorSegmentBlock;
            if (segmentBlock != null)
                ConveyorSystem.RemoveSegmentBlock(segmentBlock);

            ProfilerShort.BeginNextBlock("Unregister Reflector light");
            var reflectorLight = block as MyReflectorLight;
            if (reflectorLight != null)
                ReflectorLightSystem.Unregister(reflectorLight);

            if (MyFakes.ENABLE_WHEEL_CONTROLS_IN_COCKPIT)
            {
                ProfilerShort.BeginNextBlock("Unregister wheel");
                var wheel = block as MyMotorSuspension;
                if (wheel != null)
                    WheelSystem.Unregister(wheel);
            }

            ProfilerShort.BeginNextBlock("Unregister landing gear");
            var gear = block as IMyLandingGear;
            if (gear != null)
                LandingSystem.Unregister(gear);

            ProfilerShort.BeginNextBlock("Unregister gyro");
            var gyro = block as MyGyro;
            if (gyro != null)
                GyroSystem.Unregister(gyro);

            ProfilerShort.BeginNextBlock("Unregister camera");
            var camera = block as MyCameraBlock;
            if (camera != null)
                CameraSystem.Unregister(camera);

            ProfilerShort.BeginNextBlock("block.OnUnregisteredFromGridSystems()");
            block.OnUnregisteredFromGridSystems();

            ProfilerShort.End();
        }
开发者ID:Chrus,项目名称:SpaceEngineers,代码行数:94,代码来源:MyCubeGridSystems.cs


注:本文中的MyCubeBlock.OnUnregisteredFromGridSystems方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。