public void SwitchToWeapon(MyToolbarItemWeapon weapon, uint? inventoryItemId) { MyDefinitionId? weaponDefinition = null; if (weapon != null) weaponDefinition = weapon.Definition.Id; // CH:TODO: This part of code seems to do nothing if (weaponDefinition.HasValue && m_rightHandItemBone == -1) return; if (WeaponTakesBuilderFromInventory(weaponDefinition)) { MyPhysicalInventoryItem? item = null; if (inventoryItemId.HasValue) { item = this.GetInventory().GetItemByID(inventoryItemId.Value); } else { item = FindWeaponItemByDefinition(weaponDefinition.Value); } // This can pop-up after inventory truncation, which is OK. Uncomment for debugging //Debug.Assert(item != null, "Character switched to a weapon not in the inventory"); if (item == null) return; Debug.Assert(item.Value.Content != null, "item.Value.Content was null in MyCharacter.SwitchToWeapon"); if (item.Value.Content == null) { MySandboxGame.Log.WriteLine("item.Value.Content was null in MyCharacter.SwitchToWeapon"); MySandboxGame.Log.WriteLine("item.Value = " + item.Value); MySandboxGame.Log.WriteLine("weaponDefinition.Value = " + weaponDefinition); return; } SwitchToWeaponInternal(weaponDefinition, true, item.Value.ItemId, 0); } else { SwitchToWeaponInternal(weaponDefinition, true, null, 0); } }
public void SwitchToWeapon(MyToolbarItemWeapon weapon) { SwitchToWeapon(weapon, null); }
public void SwitchToWeapon(MyToolbarItemWeapon weapon) { }
public void SwitchToWeapon(MyToolbarItemWeapon weapon) { if (m_enableShipControl) { SwitchToWeaponInternal((weapon != null ? weapon.Definition.Id : (MyDefinitionId?)null), true); } }
public void SwitchToWeapon(MyToolbarItemWeapon weapon, bool sync = true) { MyDefinitionId? weaponDefinition = null; if (weapon != null) weaponDefinition = weapon.Definition.Id; // CH:TODO: This part of code seems to do nothing if (weaponDefinition.HasValue && m_rightHandItemBone == -1) return; if (WeaponTakesBuilderFromInventory(weaponDefinition)) { var item = FindWeaponItemByDefinition(weaponDefinition.Value); // This can pop-up after inventory truncation, which is OK. Uncomment for debugging //Debug.Assert(item != null, "Character switched to a weapon not in the inventory"); if (item == null) return; Debug.Assert(item.Value.Content != null, "item.Value.Content was null in MyCharacter.SwitchToWeapon"); if (item.Value.Content == null) { MySandboxGame.Log.WriteLine("item.Value.Content was null in MyCharacter.SwitchToWeapon"); MySandboxGame.Log.WriteLine("item.Value = " + item.Value); MySandboxGame.Log.WriteLine("weaponDefinition.Value = " + weaponDefinition); return; } var physicalGunObject = item.Value.Content as MyObjectBuilder_PhysicalGunObject; var gunEntity = physicalGunObject.GunEntity; if (gunEntity == null) { var handItemId = MyDefinitionManager.Static.TryGetHandItemForPhysicalItem(physicalGunObject.GetId()).Id; gunEntity = (MyObjectBuilder_EntityBase)MyObjectBuilderSerializer.CreateNewObject(handItemId); } else { gunEntity.EntityId = 0; } SwitchToWeaponInternal(weaponDefinition, sync, true, gunEntity, 0); } else { SwitchToWeaponInternal(weaponDefinition, sync, true, null, 0); } }