示例#1
0
 public void RemoveFlightGroup(FlightGroupDefinition flightGroup)
 {
     if (flightGroups.Remove(flightGroup))
     {
         flightGroup.factionId = -1;
     }
 }
示例#2
0
        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);
        }
示例#3
0
 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);
 }