private InventoryModel CreateItem(MyObjectBuilder_InventoryItem item, string contentPath) { var definition = MyDefinitionManager.Static.GetDefinition(item.PhysicalContent.TypeId, item.PhysicalContent.SubtypeName) as MyPhysicalItemDefinition; string name; string textureFile; double massMultiplyer; double volumeMultiplyer; if (definition == null) { name = item.PhysicalContent.SubtypeName + " " + item.PhysicalContent.TypeId.ToString(); massMultiplyer = 1; volumeMultiplyer = 1; textureFile = null; } else { name = definition.DisplayNameText; massMultiplyer = definition.Mass; volumeMultiplyer = definition.Volume * SpaceEngineersConsts.VolumeMultiplyer; textureFile = (definition.Icons == null || definition.Icons.First() == null) ? null : SpaceEngineersCore.GetDataPathOrDefault(definition.Icons.First(), Path.Combine(contentPath, definition.Icons.First())); } var newItem = new InventoryModel(item) { Name = name, Amount = (decimal)item.Amount, SubtypeId = item.PhysicalContent.SubtypeName, TypeId = item.PhysicalContent.TypeId, MassMultiplyer = massMultiplyer, VolumeMultiplyer = volumeMultiplyer, TextureFile = textureFile, IsUnique = item.PhysicalContent.TypeId == SpaceEngineersTypes.PhysicalGunObject || item.PhysicalContent.TypeId == SpaceEngineersTypes.OxygenContainerObject, IsInteger = item.PhysicalContent.TypeId == SpaceEngineersTypes.Component || item.PhysicalContent.TypeId == SpaceEngineersTypes.AmmoMagazine, IsDecimal = item.PhysicalContent.TypeId == SpaceEngineersTypes.Ore || item.PhysicalContent.TypeId == SpaceEngineersTypes.Ingot, Exists = definition != null, // item no longer exists in Space Engineers definitions. }; TotalVolume += newItem.Volume; TotalMass += newItem.Mass; return newItem; }