public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { base.Init(objectBuilder, cubeGrid); m_cargoDefinition = (MyCargoContainerDefinition)MyDefinitionManager.Static.GetCubeBlockDefinition(objectBuilder.GetId()); var cargoBuilder = (MyObjectBuilder_CargoContainer)objectBuilder; m_containerType = cargoBuilder.ContainerType; if (!Components.Has<MyInventoryBase>()) { m_inventory = new MyInventory(m_cargoDefinition.InventorySize.Volume, m_cargoDefinition.InventorySize, MyInventoryFlags.CanSend | MyInventoryFlags.CanReceive, this); if(MyFakes.ENABLE_MEDIEVAL_INVENTORY) Components.Add<MyInventoryBase>(m_inventory); if (m_containerType != null && MyFakes.RANDOM_CARGO_PLACEMENT && (cargoBuilder.Inventory == null || cargoBuilder.Inventory.Items.Count == 0)) SpawnRandomCargo(); else m_inventory.Init(cargoBuilder.Inventory); } else { m_inventory = Components.Get<MyInventoryBase>() as MyInventory; Debug.Assert(m_inventory != null); //m_inventory.Owner = this; } if(MyPerGameSettings.InventoryMass) m_inventory.ContentsChanged += Inventory_ContentsChanged; m_conveyorEndpoint = new MyMultilineConveyorEndpoint(this); AddDebugRenderComponent(new Components.MyDebugRenderComponentDrawConveyorEndpoint(m_conveyorEndpoint)); UpdateIsWorking(); }
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid) { base.Init(objectBuilder, cubeGrid); m_cargoDefinition = (MyCargoContainerDefinition)MyDefinitionManager.Static.GetCubeBlockDefinition(objectBuilder.GetId()); var cargoBuilder = (MyObjectBuilder_CargoContainer)objectBuilder; m_containerType = cargoBuilder.ContainerType; if (MyFakes.ENABLE_INVENTORY_FIX) { FixSingleInventory(); } // Backward compatibility - inventory component not defined in definition files and in entity container if (this.GetInventory() == null) { MyInventory inventory = new MyInventory(m_cargoDefinition.InventorySize.Volume, m_cargoDefinition.InventorySize, MyInventoryFlags.CanSend | MyInventoryFlags.CanReceive); Components.Add<MyInventoryBase>(inventory); if (m_containerType != null && MyFakes.RANDOM_CARGO_PLACEMENT && (cargoBuilder.Inventory == null || cargoBuilder.Inventory.Items.Count == 0)) SpawnRandomCargo(); } //Backward compatibility if (cargoBuilder.Inventory != null && cargoBuilder.Inventory.Items.Count > 0) this.GetInventory().Init(cargoBuilder.Inventory); Debug.Assert(this.GetInventory().Owner == this, "Ownership was not set!"); this.GetInventory().SetFlags(MyInventoryFlags.CanSend | MyInventoryFlags.CanReceive); m_conveyorEndpoint = new MyMultilineConveyorEndpoint(this); AddDebugRenderComponent(new Components.MyDebugRenderComponentDrawConveyorEndpoint(m_conveyorEndpoint)); UpdateIsWorking(); }