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); }
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); }
public OreDetectorEntity(CubeGridEntity parent, MyObjectBuilder_OreDetector definition, Object backingObject) : base(parent, definition, backingObject) { m_broadcastUsingAntennas = definition.BroadcastUsingAntennas; m_detectionRadius = definition.DetectionRadius; }