static void Prefix(Dialog_LoadTransporters __instance, Map map, List <CompTransporter> transporters)
        {
            if (__instance.GetType() != typeof(Dialog_LoadTransporters))
            {
                return;
            }

            if (Multiplayer.ExecutingCmds || Multiplayer.Ticking)
            {
                var comp = map.MpComp();
                TransporterLoading loading = comp.CreateTransporterLoadingSession(transporters);
                if (TickPatch.currentExecutingCmdIssuedBySelf)
                {
                    loading.OpenWindow();
                }
            }
        }
Esempio n. 2
0
        static bool Prefix(Dialog_LoadTransporters __instance, Map map, List <CompTransporter> transporters)
        {
            if (__instance.GetType() != typeof(Dialog_LoadTransporters))
            {
                return(true);
            }

            if (Multiplayer.ExecutingCmds || Multiplayer.Ticking)
            {
                var comp = map.MpComp();
                if (comp.transporterLoading == null)
                {
                    comp.CreateTransporterLoadingSession(transporters);
                }

                return(true);
            }

            return(true);
        }
Esempio n. 3
0
        public static bool Prefix(Dialog_LoadTransporters __instance)
        {
            Traverse traverse = Traverse.Create((object)__instance);

            foreach (ThingComp thingComp in traverse.Field("transporters").GetValue <List <CompTransporter> >())
            {
                if (thingComp.parent.TryGetComp <CompLaunchableHelicopter>() != null)
                {
                    List <Pawn> pawnList = CaravanFormingUtility.AllSendablePawns(traverse.Field("map").GetValue <Map>(), true, true, true, true);
                    for (int index = 0; index < pawnList.Count; ++index)
                    {
                        __instance.GetType().GetMethod("AddToTransferables", BindingFlags.Instance | BindingFlags.NonPublic).Invoke((object)__instance, new object[1]
                        {
                            (object)pawnList[index]
                        });
                    }
                    return(false);
                }
            }
            return(true);
        }
Esempio n. 4
0
        public static bool Prefix(Dialog_LoadTransporters __instance, List <CompTransporter> ___transporters)
        {
            Traverse tv = Traverse.Create(__instance);

            foreach (CompTransporter lpc in ___transporters)
            {
                if (lpc.parent.TryGetCompFast <CompDropship>() != null)
                {
                    Map         map  = tv.Field("map").GetValue <Map>();
                    List <Pawn> list = CaravanFormingUtility.AllSendablePawns(map, true, true, true, true);
                    for (int i = 0; i < list.Count; i++)
                    {
                        Type       typ   = __instance.GetType();
                        MethodInfo minfo = typ.GetMethod("AddToTransferables", BindingFlags.NonPublic | BindingFlags.Instance);
                        minfo.Invoke(__instance, new object[] { list[i] });
                        // __instance.AddToTransferables(list[i]);
                    }
                    return(false);
                }
            }
            return(true);
        }