コード例 #1
0
        public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid)
        {
            this.m_definition = base.BlockDefinition as MyOreDetectorDefinition;
            MyResourceSinkComponent component = new MyResourceSinkComponent(1);

            component.Init(this.m_definition.ResourceSinkGroup, 0.002f, delegate {
                if (!base.Enabled || !base.IsFunctional)
                {
                    return(0f);
                }
                return(base.ResourceSink.MaxRequiredInputByType(MyResourceDistributorComponent.ElectricityId));
            });
            base.ResourceSink = component;
            base.ResourceSink.IsPoweredChanged += new Action(this.Receiver_IsPoweredChanged);
            base.Init(objectBuilder, cubeGrid);
            MyObjectBuilder_OreDetector detector = objectBuilder as MyObjectBuilder_OreDetector;

            this.m_oreDetectorComponent.DetectionRadius        = (detector.DetectionRadius == 0f) ? MathHelper.Clamp(0.5f * this.m_definition.MaximumRange, 1f, this.m_definition.MaximumRange) : MathHelper.Clamp(detector.DetectionRadius, 1f, this.m_definition.MaximumRange);
            this.m_oreDetectorComponent.BroadcastUsingAntennas = detector.BroadcastUsingAntennas;
            this.m_broadcastUsingAntennas.SetLocalValue(this.m_oreDetectorComponent.BroadcastUsingAntennas);
            this.m_oreDetectorComponent.OnCheckControl = (MyOreDetectorComponent.CheckControlDelegate)Delegate.Combine(this.m_oreDetectorComponent.OnCheckControl, new MyOreDetectorComponent.CheckControlDelegate(this.OnCheckControl));
            base.ResourceSink.Update();
            base.SlimBlock.ComponentStack.IsFunctionalChanged += new Action(this.ComponentStack_IsFunctionalChanged);
            base.NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME;
            base.OnClose     += new Action <VRage.Game.Entity.MyEntity>(this.MyOreDetector_OnClose);
        }
コード例 #2
0
        public override MyObjectBuilder_CubeBlock GetObjectBuilderCubeBlock(bool copy = false)
        {
            MyObjectBuilder_OreDetector objectBuilderCubeBlock = base.GetObjectBuilderCubeBlock(copy) as MyObjectBuilder_OreDetector;

            objectBuilderCubeBlock.DetectionRadius        = this.m_oreDetectorComponent.DetectionRadius;
            objectBuilderCubeBlock.BroadcastUsingAntennas = this.m_oreDetectorComponent.BroadcastUsingAntennas;
            return(objectBuilderCubeBlock);
        }
コード例 #3
0
 public OreDetectorEntity(CubeGridEntity parent, MyObjectBuilder_OreDetector definition, Object backingObject)
     : base(parent, definition, backingObject)
 {
     m_broadcastUsingAntennas = definition.BroadcastUsingAntennas;
     m_detectionRadius        = definition.DetectionRadius;
 }