예제 #1
0
        public override bool InheritInteractionsFrom(Gizmo other)
        {
            Command_LoadToTransporterPawn command_LoadToTransporter = (Command_LoadToTransporterPawn)other;

            if (command_LoadToTransporter.transComp.parent.def != this.transComp.parent.def)
            {
                return(false);
            }
            if (this.transporters == null)
            {
                this.transporters = new List <CompTransporterPawn>();
            }
            this.transporters.Add(command_LoadToTransporter.transComp);
            return(false);
        }
예제 #2
0
        public override IEnumerable <Gizmo> GetGizmos()
        {
            using var enumerator = base.GetGizmos().GetEnumerator();
            while (enumerator.MoveNext())
            {
                var current = enumerator.Current;
                yield return(current);
            }

            if (Faction != Faction.OfPlayer || Dead || Dead)
            {
                yield break;
            }

            if (compTransporterPawn.LoadingInProgressOrReadyToLaunch)
            {
                var command_Action = new Command_Action
                {
                    defaultLabel = "CommandLaunchGroup".Translate(),
                    defaultDesc  = "CommandLaunchGroupDesc".Translate(),
                    icon         = ContentFinder <Texture2D> .Get("UI/Icons/Commands/FlyingTarget"),
                    action       = delegate
                    {
                        if (compTransporterPawn.AnyInGroupHasAnythingLeftToLoad)
                        {
                            Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation(
                                                     "ConfirmSendNotCompletelyLoadedPods".Translate(
                                                         compTransporterPawn.FirstThingLeftToLoadInGroup.LabelCap
                                                         ), compLaunchablePawn.StartChoosingDestination));
                        }
                        else
                        {
                            compLaunchablePawn.StartChoosingDestination();
                        }
                    }
                };
                if (compLaunchablePawn.AnyInGroupIsUnderRoof)
                {
                    command_Action.Disable("CommandLaunchGroupFailUnderRoof".Translate());
                }

                yield return(command_Action);
            }

            if (compTransporterPawn.LoadingInProgressOrReadyToLaunch)
            {
                yield return(new Command_Action
                {
                    defaultLabel = "CommandCancelLoad".Translate(),
                    defaultDesc = "CommandCancelLoadDesc".Translate(),
                    icon = CompTransporterPawn.CancelLoadCommandTex,
                    action = delegate
                    {
                        SoundDefOf.Designate_Cancel.PlayOneShotOnCamera();
                        compTransporterPawn.CancelLoad();
                    }
                });
            }

            var command_LoadToTransporter = new Command_LoadToTransporterPawn();
            var num = 0;

            for (var i = 0; i < Find.Selector.NumSelected; i++)
            {
                if (Find.Selector.SelectedObjectsListForReading[i] is not Thing thing || thing.def != def)
                {
                    continue;
                }

                var compLaunchable = thing.TryGetComp <CompLaunchablePawn>();
                if (compLaunchable != null)
                {
                    num++;
                }
            }

            command_LoadToTransporter.defaultLabel = "CommandLoadTransporter".Translate(
                num.ToString()
                );
            command_LoadToTransporter.defaultDesc = "CommandLoadTransporterDesc".Translate();
            command_LoadToTransporter.icon        = CompTransporterPawn.LoadCommandTex;
            command_LoadToTransporter.transComp   = compTransporterPawn;
            var launchable = compTransporterPawn.Launchable;

            yield return(command_LoadToTransporter);
        }
예제 #3
0
        public override IEnumerable <Gizmo> CompGetGizmosExtra()
        {
            var enumerator = base.CompGetGizmosExtra().GetEnumerator();

            while (enumerator.MoveNext())
            {
                var current = enumerator.Current;
                yield return(current);
            }

            if (LoadingInProgressOrReadyToLaunch)
            {
                yield return(new Command_Action
                {
                    defaultLabel = "CommandCancelLoad".Translate(),
                    defaultDesc = "CommandCancelLoadDesc".Translate(),
                    icon = CancelLoadCommandTex,
                    action = delegate
                    {
                        SoundDefOf.Designate_Cancel.PlayOneShotOnCamera();
                        CancelLoad();
                    }
                });
            }

            var Command_LoadToTransporterPawn = new Command_LoadToTransporterPawn();
            var num = 0;

            for (var i = 0; i < Find.Selector.NumSelected; i++)
            {
                if (Find.Selector.SelectedObjectsListForReading[i] is Thing thing && thing.def == parent.def)
                {
                    var CompLaunchablePawn = thing.TryGetComp <CompLaunchablePawn>();
                    if (CompLaunchablePawn == null)
                    {
                        num++;
                    }
                }
            }

            Command_LoadToTransporterPawn.defaultLabel = "CommandLoadTransporter".Translate(
                num.ToString()
                );
            Command_LoadToTransporterPawn.defaultDesc = "CommandLoadTransporterDesc".Translate();
            Command_LoadToTransporterPawn.icon        = LoadCommandTex;
            Command_LoadToTransporterPawn.transComp   = this;
            var launchable = Launchable;

            //if (launchable != null)
            //{
            //    if (!launchable.ConnectedToFuelingPort)
            //    {
            //        Command_LoadToTransporterPawn.Disable("CommandLoadTransporterFailNotConnectedToFuelingPort".Translate());
            //    }
            //    else if (!launchable.FuelingPortSourceHasAnyFuel)
            //    {
            //        Command_LoadToTransporterPawn.Disable("CommandLoadTransporterFailNoFuel".Translate());
            //    }
            //}
            yield return(Command_LoadToTransporterPawn);
        }
예제 #4
0
        public override IEnumerable <Gizmo> GetGizmos()
        {
            IEnumerator <Gizmo> enumerator = base.GetGizmos().GetEnumerator();

            while (enumerator.MoveNext())
            {
                Gizmo current = enumerator.Current;
                yield return(current);
            }

            if (this.Faction == Faction.OfPlayer && !this.Dead && !this.Dead)
            {
                if (compTransporterPawn.LoadingInProgressOrReadyToLaunch)
                {
                    Command_Action command_Action = new Command_Action();
                    command_Action.defaultLabel = "CommandLaunchGroup".Translate();
                    command_Action.defaultDesc  = "CommandLaunchGroupDesc".Translate();
                    command_Action.icon         = ContentFinder <Texture2D> .Get("UI/Icons/Commands/FlyingTarget", true);

                    command_Action.action = delegate
                    {
                        DoLaunchGroup();
                    };
                    if (compLaunchablePawn.AnyInGroupIsUnderRoof)
                    {
                        command_Action.Disable("CommandLaunchGroupFailUnderRoof".Translate());
                    }
                    yield return(command_Action);
                }

                if (compTransporterPawn.LoadingInProgressOrReadyToLaunch)
                {
                    yield return(new Command_Action
                    {
                        defaultLabel = "CommandCancelLoad".Translate(),
                        defaultDesc = "CommandCancelLoadDesc".Translate(),
                        icon = CompTransporterPawn.CancelLoadCommandTex,
                        action = delegate
                        {
                            DoCancelLoad();
                        }
                    });
                }
                Command_LoadToTransporterPawn command_LoadToTransporter = new Command_LoadToTransporterPawn();
                int num = 0;
                for (int i = 0; i < Find.Selector.NumSelected; i++)
                {
                    Thing thing = Find.Selector.SelectedObjectsListForReading[i] as Thing;
                    if (thing != null && thing.def == this.def)
                    {
                        CompLaunchablePawn compLaunchable = thing.TryGetComp <CompLaunchablePawn>();
                        if (compLaunchable != null)
                        {
                            num++;
                        }
                    }
                }
                command_LoadToTransporter.defaultLabel = "CommandLoadTransporter".Translate(new object[]
                {
                    num.ToString()
                });
                command_LoadToTransporter.defaultDesc = "CommandLoadTransporterDesc".Translate();
                command_LoadToTransporter.icon        = CompTransporterPawn.LoadCommandTex;
                command_LoadToTransporter.transComp   = compTransporterPawn;
                CompLaunchablePawn launchable = compTransporterPawn.Launchable;
                yield return(command_LoadToTransporter);
            }
            yield break;
        }
예제 #5
0
        public override IEnumerable <Gizmo> CompGetGizmosExtra()
        {
            IEnumerator <Gizmo> enumerator = base.CompGetGizmosExtra().GetEnumerator();

            while (enumerator.MoveNext())
            {
                Gizmo current = enumerator.Current;
                yield return(current);
            }
            if (this.LoadingInProgressOrReadyToLaunch)
            {
                yield return(new Command_Action
                {
                    defaultLabel = "CommandCancelLoad".Translate(),
                    defaultDesc = "CommandCancelLoadDesc".Translate(),
                    icon = CompTransporterPawn.CancelLoadCommandTex,
                    action = delegate
                    {
                        DoCancelLoad();
                    }
                });
            }
            Command_LoadToTransporterPawn Command_LoadToTransporterPawn = new Command_LoadToTransporterPawn();
            int num = 0;

            for (int i = 0; i < Find.Selector.NumSelected; i++)
            {
                Thing thing = Find.Selector.SelectedObjectsListForReading[i] as Thing;
                if (thing != null && thing.def == this.parent.def)
                {
                    CompLaunchablePawn CompLaunchablePawn = thing.TryGetComp <CompLaunchablePawn>();
                    if (CompLaunchablePawn == null)
                    {
                        num++;
                    }
                }
            }
            Command_LoadToTransporterPawn.defaultLabel = "CommandLoadTransporter".Translate(new object[]
            {
                num.ToString()
            });
            Command_LoadToTransporterPawn.defaultDesc = "CommandLoadTransporterDesc".Translate();
            Command_LoadToTransporterPawn.icon        = CompTransporterPawn.LoadCommandTex;
            Command_LoadToTransporterPawn.transComp   = this;
            CompLaunchablePawn launchable = this.Launchable;

            //if (launchable != null)
            //{
            //    if (!launchable.ConnectedToFuelingPort)
            //    {
            //        Command_LoadToTransporterPawn.Disable("CommandLoadTransporterFailNotConnectedToFuelingPort".Translate());
            //    }
            //    else if (!launchable.FuelingPortSourceHasAnyFuel)
            //    {
            //        Command_LoadToTransporterPawn.Disable("CommandLoadTransporterFailNoFuel".Translate());
            //    }
            //}
            yield return(Command_LoadToTransporterPawn);

            yield break;
        }