public void RemoveFlightGroup(FlightGroupDefinition flightGroup) { if (flightGroups.Remove(flightGroup)) { flightGroup.factionId = -1; } }
public Asset DestroyAsset(Asset asset) { GetAssetMap(asset.GetType()).Remove(asset); switch (GetAssetType(asset.GetType())) { case AssetType.EntityDefinition: EntityDefinition ed = (EntityDefinition)asset; FindAsset <FlightGroupDefinition>(ed.flightGroupId)?.entities.Remove(ed); break; case AssetType.FlighGroupDefinition: FlightGroupDefinition fg = (FlightGroupDefinition)asset; FindAsset <FactionDefinition>(fg.factionId)?.flightGroups.Remove(fg); break; case AssetType.ShipType: ShipType shipType = (ShipType)asset; FindAsset <ShipTypeGroup>(shipType.shipGroupId)?.ships.Remove(shipType); break; } return(asset); }
public FlightGroupDefinition AddFlightGroup(FlightGroupDefinition flightGroup, int index = -1) { if (flightGroup.factionId == id) { if (index == -1) { index = 0; } Debug.Assert(flightGroups.Contains(flightGroup), "flightGroups.Contains(flightGroup)"); flightGroups.MoveToIndex(flightGroup, index); return(flightGroup); } flightGroup.factionId = id; if (index == -1) { flightGroups.Add(flightGroup); } else { flightGroups.Insert(index, flightGroup); } return(flightGroup); }