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)); } }
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! }