public override void Init(MyObjectBuilder_CubeBlock builder, MyCubeGrid cubeGrid) { ResourceSink = new MyResourceSinkComponent(); ResourceSink.Init( MyStringHash.GetOrCompute(BlockDefinition.ResourceSinkGroup), BlockDefinition.PowerConsumptionMoving, UpdatePowerInput); base.Init(builder, cubeGrid); var ob = (MyObjectBuilder_AirtightDoorGeneric)builder; m_open.Value = ob.Open; m_currOpening = ob.CurrOpening; m_openingSpeed = BlockDefinition.OpeningSpeed; m_sound = new MySoundPair(BlockDefinition.Sound); m_subpartMovementDistance = BlockDefinition.SubpartMovementDistance; if (!Enabled || !ResourceSink.IsPoweredByType(MyResourceDistributorComponent.ElectricityId)) UpdateDoorPosition(); OnStateChange(); ResourceSink.IsPoweredChanged += Receiver_IsPoweredChanged; ResourceSink.Update(); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; ResourceSink.Update(); }