예제 #1
0
 public static void AddThings(Dialog_FormCaravan dialog, Map map)
 {
     //Add manifest
     if (Mod.settings.caravanSaveManifest && SaveManifest.caravan &&
         map == SaveManifest.savedMap && SaveManifest.savedMap != null)
     {
         foreach (ThingCountUNLIMITED thingCount in SaveManifest.savedManifest)
         {
             Log.Message($"Loading {thingCount.thing}:{thingCount.count}");
             TransferableOneWay transferableOneWay = TransferableUtility.TransferableMatching <TransferableOneWay>(thingCount.thing, dialog.transferables, TransferAsOneMode.PodsOrCaravanPacking);
             transferableOneWay?.AdjustTo(transferableOneWay.ClampAmount(transferableOneWay.CountToTransfer + thingCount.count));
         }
     }
     //Add selection
     else if (Mod.settings.caravanLoadSelection)
     {
         foreach (object obj in Find.Selector.SelectedObjectsListForReading.Where(o => o is Thing))
         {
             if (obj is Thing thing)
             {
                 Log.Message($"Adding Selected {thing}:{thing.stackCount}");
                 TransferableOneWay transferableOneWay = TransferableUtility.TransferableMatching <TransferableOneWay>(thing, dialog.transferables, TransferAsOneMode.PodsOrCaravanPacking);
                 transferableOneWay?.AdjustTo(transferableOneWay.ClampAmount(transferableOneWay.CountToTransfer + thing.stackCount));
             }
         }
     }
 }
 public static void Load(List <TransferableOneWay> transferables)
 {
     foreach (ThingCountUNLIMITED thingCount in SaveManifest.savedManifest)
     {
         Log.Message($"Loading {thingCount.thing}:{thingCount.count}");
         TransferableOneWay transferableOneWay = TransferableUtility.TransferableMatching <TransferableOneWay>(thingCount.thing, transferables, TransferAsOneMode.PodsOrCaravanPacking);
         transferableOneWay?.AdjustTo(transferableOneWay.ClampAmount(transferableOneWay.CountToTransfer + thingCount.count));
     }
 }
예제 #3
0
 public static void Postfix(Dialog_LoadTransporters __instance, Map ___map)
 {
     //Add manifest
     if (Mod.settings.caravanSaveManifest && !SaveManifest.caravan &&
         ___map == SaveManifest.savedMap && SaveManifest.savedMap != null)
     {
         foreach (ThingCountUNLIMITED thingCount in SaveManifest.savedManifest)
         {
             Log.Message($"Loading {thingCount.thing}:{thingCount.count}");
             TransferableOneWay transferableOneWay = TransferableUtility.TransferableMatching <TransferableOneWay>(thingCount.thing, __instance.Transferables(), TransferAsOneMode.PodsOrCaravanPacking);
             transferableOneWay?.AdjustTo(transferableOneWay.ClampAmount(transferableOneWay.CountToTransfer + thingCount.count));
         }
     }
     //No selection like caravans - you're already selecting pods!
 }