public void Init(StringBuilder hudLabelText, MyMwcObjectBuilder_Drone droneBuilder, MyModelsEnum?modelCollision = null, MyModelsEnum?modelLod2 = null, float?scale = null) { var modelLod0Enum = GetModelLod0Enum(droneBuilder.DroneType); MyEntity owner = null; base.Init(hudLabelText, modelLod0Enum, null, owner, scale, droneBuilder, modelCollision, modelLod2); SetWorldMatrix(droneBuilder.PositionAndOrientation.GetMatrix()); m_fired = false; m_shipTypeProperties = new MyShipTypeProperties(); m_reflectorProperies = new MyReflectorConfig(this); Faction = droneBuilder.Faction; Save = true; m_function = MyDroneFunction.None; InitWeapons(); InitEntityDetector(); InitPhysics(droneBuilder.DroneType); InitAI(); InitSpoiledHolograms(); InitInventory(droneBuilder.Inventory); // back camera is turned off by default Config.BackCamera.SetOff(); m_droneObjectBuilder = droneBuilder; UseProperties = new MyUseProperties(MyUseType.Solo, MyUseType.None, MyTextsWrapperEnum.NotificationYouCanTake); UseProperties.Init(MyUseType.Solo, MyUseType.None, 0, 1, false); HackingTool = new Tools.MyHackingTool(this, MySession.PlayerShip.HackingTool.HackingLevel); }
/// <summary> /// Fills inventory with all items /// </summary> /// <param name="maxItems">Max items limit</param> public void FillInventoryWithAllItems(int?maxItems = null, int?increaseMaxItemsAbout = null, bool loadSmallShips = false) { if (maxItems != null) { MaxItems = maxItems.Value; } MyInventoryItem inventoryItem; List <MyInventoryItem> inventoryItemsToAdd = new List <MyInventoryItem>(); // ammo foreach (MyMwcObjectBuilder_SmallShip_Ammo_TypesEnum item in MyGuiSmallShipHelpers.MyMwcObjectBuilder_SmallShip_Ammo_TypesEnumValues) { inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_SmallShip_Ammo(item)); inventoryItem.Amount = inventoryItem.MaxAmount; inventoryItemsToAdd.Add(inventoryItem); } // engines foreach (MyMwcObjectBuilder_SmallShip_Engine_TypesEnum item in MyGuiSmallShipHelpers.MyMwcObjectBuilder_SmallShip_Engine_TypesEnumValues) { inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_SmallShip_Engine(item)); inventoryItemsToAdd.Add(inventoryItem); } // weapons foreach (MyMwcObjectBuilder_SmallShip_Weapon_TypesEnum item in MyGuiSmallShipHelpers.MyMwcObjectBuilder_SmallShip_Weapon_TypesEnumValues) { inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_SmallShip_Weapon(item)); inventoryItemsToAdd.Add(inventoryItem); } // tools foreach (MyMwcObjectBuilder_SmallShip_Tool_TypesEnum item in MyGuiSmallShipHelpers.MyMwcObjectBuilder_SmallShip_ToolEnumValues) { inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_SmallShip_Tool(item)); inventoryItem.Amount = inventoryItem.MaxAmount; inventoryItemsToAdd.Add(inventoryItem); } // armors foreach (MyMwcObjectBuilder_SmallShip_Armor_TypesEnum item in Enum.GetValues(typeof(MyMwcObjectBuilder_SmallShip_Armor_TypesEnum))) { inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_SmallShip_Armor(item)); inventoryItemsToAdd.Add(inventoryItem); } // radars foreach (MyMwcObjectBuilder_SmallShip_Radar_TypesEnum item in Enum.GetValues(typeof(MyMwcObjectBuilder_SmallShip_Radar_TypesEnum))) { inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_SmallShip_Radar(item)); inventoryItemsToAdd.Add(inventoryItem); } // blueprints foreach (MyMwcObjectBuilder_Blueprint_TypesEnum item in Enum.GetValues(typeof(MyMwcObjectBuilder_Blueprint_TypesEnum))) { inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_Blueprint(item)); inventoryItemsToAdd.Add(inventoryItem); } //ore foreach (MyMwcObjectBuilder_Ore_TypesEnum item in Enum.GetValues(typeof(MyMwcObjectBuilder_Ore_TypesEnum))) { inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_Ore(item)); inventoryItem.Amount = 1; inventoryItemsToAdd.Add(inventoryItem); } // fakeId foreach (MyMwcObjectBuilder_FactionEnum item in Enum.GetValues(typeof(MyMwcObjectBuilder_FactionEnum))) { inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_FalseId(item)); inventoryItemsToAdd.Add(inventoryItem); } // hacking tool foreach (MyMwcObjectBuilder_SmallShip_HackingTool_TypesEnum item in Enum.GetValues(typeof(MyMwcObjectBuilder_SmallShip_HackingTool_TypesEnum))) { inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_SmallShip_HackingTool(item)); inventoryItemsToAdd.Add(inventoryItem); } // drone foreach (MyMwcObjectBuilder_Drone_TypesEnum droneType in Enum.GetValues(typeof(MyMwcObjectBuilder_Drone_TypesEnum))) { var droneBuilder = new MyMwcObjectBuilder_Drone(droneType); inventoryItem = CreateInventoryItemFromObjectBuilder(droneBuilder); inventoryItem.Amount = inventoryItem.MaxAmount; inventoryItemsToAdd.Add(inventoryItem); } // playerships if (loadSmallShips) { foreach (MyMwcObjectBuilder_SmallShip_TypesEnum shipType in Enum.GetValues(typeof(MyMwcObjectBuilder_SmallShip_TypesEnum))) { inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(MyMwcObjectBuilder_SmallShip_Player.CreateDefaultShip(shipType, MySession.PlayerShip.Faction, MyShipTypeConstants.GetShipTypeProperties(shipType).GamePlay.CargoCapacity)); inventoryItemsToAdd.Add(inventoryItem); } } //// prefabs //foreach(MyMwcObjectBuilder_Prefab_TypesEnum item in Enum.GetValues(typeof(MyMwcObjectBuilder_Prefab_TypesEnum))) { // inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_Prefab(item, new MyMwcVector3Short(0, 0, 0), new Vector3(0, 0, 0), MyGameplayConstants.MAXHEALTH_PREFAB)); // inventoryItemsToAdd.Add(inventoryItem); //} //// small debris //foreach (MyMwcObjectBuilder_SmallDebris_TypesEnum item in Enum.GetValues(typeof(MyMwcObjectBuilder_SmallDebris_TypesEnum))) //{ // inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(new MyMwcObjectBuilder_SmallDebris(item, true)); // inventoryItemsToAdd.Add(inventoryItem); //} // foundation factory inventoryItem = MyInventory.CreateInventoryItemFromObjectBuilder(MyMwcObjectBuilder_Base.CreateNewObject(MyMwcObjectBuilderTypeEnum.PrefabFoundationFactory, (int)MyMwcObjectBuilder_PrefabFoundationFactory_TypesEnum.DEFAULT)); inventoryItemsToAdd.Add(inventoryItem); if (maxItems != null && !UnlimitedCapacity) { while (inventoryItemsToAdd.Count > maxItems.Value) { int lastIndex = inventoryItemsToAdd.Count - 1; inventoryItem = inventoryItemsToAdd[lastIndex]; inventoryItemsToAdd.RemoveAt(lastIndex); MyInventory.CloseInventoryItem(inventoryItem); } } else { if (inventoryItemsToAdd.Count > MaxItems) { MaxItems = inventoryItemsToAdd.Count; } } if (increaseMaxItemsAbout != null) { MaxItems += increaseMaxItemsAbout.Value; } AddInventoryItems(inventoryItemsToAdd); }