public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { base.Init(objectBuilder, cubeGrid); MyDebug.AssertDebug(BlockDefinition.Id.TypeId == typeof(MyObjectBuilder_Reactor)); m_reactorDefinition = BlockDefinition as MyReactorDefinition; MyDebug.AssertDebug(m_reactorDefinition != null); CurrentPowerOutput = 0; m_inventory = new MyInventory(m_reactorDefinition.InventoryMaxVolume, m_reactorDefinition.InventorySize, MyInventoryFlags.CanReceive, this); var obGenerator = (MyObjectBuilder_Reactor)objectBuilder; m_inventory.Init(obGenerator.Inventory); m_inventory.ContentsChanged += inventory_ContentsChanged; m_inventory.Constraint = m_reactorDefinition.InventoryConstraint; RefreshRemainingCapacity(); UpdateText(); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME; //if (MyFakes.SHOW_DAMAGE_EFFECTS && IsWorking) // NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME; m_baseIdleSound = BlockDefinition.PrimarySound; m_useConveyorSystem = obGenerator.UseConveyorSystem; if (IsWorking) OnStartWorking(); }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { MyDebug.AssertDebug(BlockDefinition.Id.TypeId == typeof(MyObjectBuilder_Reactor)); m_reactorDefinition = BlockDefinition as MyReactorDefinition; MyDebug.AssertDebug(m_reactorDefinition != null); SourceComp.Init( m_reactorDefinition.ResourceSourceGroup, new MyResourceSourceInfo { ResourceTypeId = MyResourceDistributorComponent.ElectricityId, DefinedOutput = m_reactorDefinition.MaxPowerOutput, ProductionToCapacityMultiplier = 60 * 60 }); SourceComp.HasCapacityRemainingChanged += (id, source) => UpdateIsWorking(); SourceComp.OutputChanged += Source_OnOutputChanged; SourceComp.ProductionEnabledChanged += Source_ProductionEnabledChanged; SourceComp.Enabled = Enabled; base.Init(objectBuilder, cubeGrid); var obGenerator = (MyObjectBuilder_Reactor)objectBuilder; if (MyFakes.ENABLE_INVENTORY_FIX) { FixSingleInventory(); } if (this.GetInventory() == null) { MyInventory inventory = new MyInventory(m_reactorDefinition.InventoryMaxVolume, m_reactorDefinition.InventorySize, MyInventoryFlags.CanReceive); Components.Add<MyInventoryBase>(inventory); inventory.Init(obGenerator.Inventory); } Debug.Assert(this.GetInventory().Owner == this, "Ownership was not set!"); this.GetInventory().Constraint = m_reactorDefinition.InventoryConstraint; if (Sync.IsServer) { RefreshRemainingCapacity(); } UpdateText(); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME; m_useConveyorSystem.Value = obGenerator.UseConveyorSystem; UpdateMaxOutputAndEmissivity(); }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { base.Init(objectBuilder, cubeGrid); MyDebug.AssertDebug(BlockDefinition.Id.TypeId == typeof(MyObjectBuilder_Reactor)); m_reactorDefinition = BlockDefinition as MyReactorDefinition; MyDebug.AssertDebug(m_reactorDefinition != null); SourceComp.Init( m_reactorDefinition.ResourceSourceGroup, new MyResourceSourceInfo { ResourceTypeId = MyResourceDistributorComponent.ElectricityId, DefinedOutput = m_reactorDefinition.MaxPowerOutput, ProductionToCapacityMultiplier = 60 * 60 }); SourceComp.HasCapacityRemainingChanged += (id, source) => UpdateIsWorking(); SourceComp.OutputChanged += Source_OnOutputChanged; SourceComp.ProductionEnabledChanged += Source_ProductionEnabledChanged; SourceComp.Enabled = Enabled; m_inventory = new MyInventory(m_reactorDefinition.InventoryMaxVolume, m_reactorDefinition.InventorySize, MyInventoryFlags.CanReceive, this); var obGenerator = (MyObjectBuilder_Reactor)objectBuilder; m_inventory.Init(obGenerator.Inventory); m_inventory.ContentsChanged += inventory_ContentsChanged; m_inventory.Constraint = m_reactorDefinition.InventoryConstraint; RefreshRemainingCapacity(); UpdateText(); SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged; NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME; m_useConveyorSystem = obGenerator.UseConveyorSystem; UpdateMaxOutputAndEmissivity(); }
public FuelInfo(MyObjectBuilder_FueledPowerProducerDefinition.FuelInfo fuelInfo, MyReactorDefinition blockDefinition) { this.FuelId = fuelInfo.Id; this.Ratio = fuelInfo.Ratio; this.FuelDefinition = MyDefinitionManager.Static.GetPhysicalItemDefinition(fuelInfo.Id); this.FuelItem = MyObjectBuilderSerializer.CreateNewObject(fuelInfo.Id) as MyObjectBuilder_PhysicalObject; float num = (blockDefinition.MaxPowerOutput / blockDefinition.FuelProductionToCapacityMultiplier) * this.Ratio; this.ConsumptionPerSecond_Items = num / this.FuelDefinition.Mass; }