private void ejectReplacedEquipment(EquipmentModelDefinition eqDefToApply, AvatarModel.ApplyResult result) { HashSet <AvatarModel.Part> partsEjected = null; HashSet <EquipmentModelDefinition> hashSet = null; if (this.GetEquipmentToEject(eqDefToApply, out partsEjected, out hashSet)) { foreach (EquipmentModelDefinition current in hashSet) { this.equipmentList.Remove(current); if (this.EquipmentEjected != null) { try { this.EquipmentEjected(current); } catch (Exception ex) { Log.LogException(this, ex); } } } } result.PartsEjected = partsEjected; result.EquipmentEjected = hashSet; }
public AvatarModel.ApplyResult ApplyEquipment(DCustomEquipment customEqToApply) { EquipmentModelDefinition equipmentDefinition = this.Definition.GetEquipmentDefinition(customEqToApply); AvatarModel.ApplyResult applyResult = new AvatarModel.ApplyResult(); applyResult.CustomEquipmentApplied = customEqToApply; applyResult.EquipmentDefinitionApplied = equipmentDefinition; applyResult.PartsAdded = new HashSet <AvatarModel.Part>(); if (equipmentDefinition != null) { this.ejectReplacedEquipment(equipmentDefinition, applyResult); this.applyParts(equipmentDefinition, customEqToApply, applyResult.PartsAdded); this.ejectRemainingParts(applyResult.PartsEjected); this.equipmentList.Add(equipmentDefinition); } return(applyResult); }