Exemple #1
0
        // Token: 0x06000024 RID: 36 RVA: 0x00002B1F File Offset: 0x00000D1F

        // Token: 0x06000025 RID: 37 RVA: 0x00002B27 File Offset: 0x00000D27
        public override IEnumerable <Gizmo> GetWornGizmos()
        {
            var fuelicon = JPFuelItem.uiIcon;

            if (fuelicon == null)
            {
                ThingDef chkFuelItem = null;
                if (JPFuelItem == null)
                {
                    chkFuelItem = DefDatabase <ThingDef> .GetNamed(GetComp <CompJetPack>().Props.JPFuel, false);
                }

                if (chkFuelItem != null && chkFuelItem != JPFuelItem)
                {
                    JPFuelItem = chkFuelItem;
                    var chkFuelMax = GetComp <CompJetPack>().Props.JPFuelMaximum;
                    if (chkFuelMax != JPFuelMax)
                    {
                        JPFuelMax = chkFuelMax;
                        if (JPFuelAmount > JPFuelMax)
                        {
                            JPFuelAmount = JPFuelMax;
                        }
                    }
                }

                fuelicon = JPFuelItem.uiIcon;
                if (fuelicon == null)
                {
                    JPFuelItem = ThingDefOf.Chemfuel;
                    fuelicon   = JPFuelItem.uiIcon;
                    if (fuelicon == null)
                    {
                        fuelicon = def.uiIcon;
                        Log.Message("Error: Jet Pack fuel definition not found.");
                    }
                }
            }

            var chkSkyFallType = GetComp <CompJetPack>().Props.JPSKType;

            JPSkyFallType = string.IsNullOrEmpty(chkSkyFallType) ? "SFJetPack" : chkSkyFallType;

            var pilot = Wearer;

            JPJumpRangeMax = JPUtility.GetJumpRange(pilot, def, JPFuelItem, JPJumpRangeMin);
            JPFuelRate     = JPUtility.GetFuelRate(JPFuelItem);
            if (Wearer == null || !Wearer.IsColonistPlayerControlled)
            {
                yield break;
            }

            var wearer = Wearer;

            if (wearer?.Map == null || Wearer.Downed || !Wearer.Spawned || JPUtility.IsInMeleeWithJP(Wearer))
            {
                yield break;
            }

            if (Find.Selector.SingleSelectedThing != Wearer)
            {
                yield break;
            }

            string text = JPOnCooldown
                ? "JetPack.CooldownTicks".Translate(JPCooldownTicks.ToString())
                : "JetPack.JPJump".Translate();

            string desc = "JetPack.JPDesc".Translate(def.label.CapitalizeFirst());

            yield return(new Command_JetPack
            {
                defaultLabel = text,
                defaultDesc = desc,
                icon = def.uiIcon,
                Pilot = Wearer,
                JPFuel = JPFuelAmount,
                JPFRate = JPFuelRate,
                JPMaxJump = JPJumpRangeMax,
                JPMinJump = JPJumpRangeMin,
                JPSKFStr = JPSkyFallType,
                action = delegate(IntVec3 cell)
                {
                    SoundDefOf.Click.PlayOneShotOnCamera();
                    UseJetPack(Wearer, this, cell);
                }
            });

            if (Settings.AllowSlowBurn)
            {
                text = "JetPack.JPSBSet".Translate();
                desc = "JetPack.JPSBDesc".Translate();
                yield return(new Command_Toggle
                {
                    icon = ContentFinder <Texture2D> .Get(JPSBTexPath),
                    defaultLabel = text,
                    defaultDesc = desc,
                    isActive = () => JPSlowBurn,
                    toggleAction = delegate { ToggleSlowBurn(JPSlowBurn); }
                });
            }

            text = "JetPack.JPLabel".Translate(def.label.CapitalizeFirst(), JPFuelAmount.ToString(),
                                               JPFuelMax.ToString());
            desc = "JetPack.JPDesc".Translate(def.label.CapitalizeFirst());
            yield return(new Command_Action
            {
                defaultLabel = text,
                defaultDesc = desc,
                icon = fuelicon,
                action = delegate
                {
                    SoundDefOf.Click.PlayOneShotOnCamera();
                    RefuelJetPack(Wearer, this);
                }
            });

            if (Prefs.DevMode)
            {
                yield return(new Command_Action
                {
                    defaultLabel = "Debug Settings",
                    defaultDesc = "Debug Commands",
                    icon = fuelicon,
                    action = delegate
                    {
                        SoundDefOf.Click.PlayOneShotOnCamera();
                        DoJetPackDebug(Wearer, this);
                    }
                });
            }
        }
Exemple #2
0
        // Token: 0x06000025 RID: 37 RVA: 0x00002B27 File Offset: 0x00000D27
        public override IEnumerable <Gizmo> GetWornGizmos()
        {
            Texture2D fuelicon = this.JPFuelItem.uiIcon;

            if (fuelicon == null)
            {
                ThingDef chkFuelItem = null;
                if (this.JPFuelItem == null)
                {
                    chkFuelItem = DefDatabase <ThingDef> .GetNamed(base.GetComp <CompJetPack>().Props.JPFuel, false);
                }
                if (chkFuelItem != null && chkFuelItem != this.JPFuelItem)
                {
                    this.JPFuelItem = chkFuelItem;
                    int chkFuelMax = base.GetComp <CompJetPack>().Props.JPFuelMaximum;
                    if (chkFuelMax != this.JPFuelMax)
                    {
                        this.JPFuelMax = chkFuelMax;
                        if (this.JPFuelAmount > this.JPFuelMax)
                        {
                            this.JPFuelAmount = this.JPFuelMax;
                        }
                    }
                }
                fuelicon = this.JPFuelItem.uiIcon;
                if (fuelicon == null)
                {
                    this.JPFuelItem = ThingDefOf.Chemfuel;
                    fuelicon        = this.JPFuelItem.uiIcon;
                    if (fuelicon == null)
                    {
                        fuelicon = this.def.uiIcon;
                        Log.Message("Error: Jet Pack fuel definition not found.", false);
                    }
                }
            }
            string chkSkyFallType = base.GetComp <CompJetPack>().Props.JPSKType;

            if (chkSkyFallType == null || chkSkyFallType == "")
            {
                this.JPSkyFallType = "SFJetPack";
            }
            else if (chkSkyFallType != this.JPSkyFallType)
            {
                this.JPSkyFallType = chkSkyFallType;
            }
            Pawn pilot = base.Wearer;

            this.JPJumpRangeMax = (float)JPUtility.GetJumpRange(pilot, this.def, this.JPFuelItem, this.JPJumpRangeMin);
            this.JPFuelRate     = JPUtility.GetFuelRate(this.JPFuelItem);
            if (base.Wearer != null && base.Wearer.IsColonistPlayerControlled)
            {
                Pawn wearer = base.Wearer;
                if ((wearer?.Map) != null && !base.Wearer.Downed && base.Wearer.Spawned && !JPUtility.IsInMeleeWithJP(base.Wearer))
                {
                    if (Find.Selector.SingleSelectedThing == base.Wearer)
                    {
                        string text;
                        if (this.JPOnCooldown)
                        {
                            text = TranslatorFormattedStringExtensions.Translate("JetPack.CooldownTicks", this.JPCooldownTicks.ToString());
                        }
                        else
                        {
                            text = Translator.Translate("JetPack.JPJump");
                        }
                        string desc = TranslatorFormattedStringExtensions.Translate("JetPack.JPDesc", GenText.CapitalizeFirst(this.def.label));
                        yield return(new Command_JetPack
                        {
                            defaultLabel = text,
                            defaultDesc = desc,
                            icon = this.def.uiIcon,
                            Pilot = base.Wearer,
                            JPFuel = this.JPFuelAmount,
                            JPFRate = this.JPFuelRate,
                            JPMaxJump = this.JPJumpRangeMax,
                            JPMinJump = this.JPJumpRangeMin,
                            JPSKFStr = this.JPSkyFallType,
                            action = delegate(IntVec3 cell)
                            {
                                SoundStarter.PlayOneShotOnCamera(SoundDefOf.Click, null);
                                this.UseJetPack(base.Wearer, this, cell);
                            }
                        });

                        if (Settings.AllowSlowBurn)
                        {
                            text = Translator.Translate("JetPack.JPSBSet");
                            desc = Translator.Translate("JetPack.JPSBDesc");
                            yield return(new Command_Toggle
                            {
                                icon = ContentFinder <Texture2D> .Get(this.JPSBTexPath, true),
                                defaultLabel = text,
                                defaultDesc = desc,
                                isActive = (() => this.JPSlowBurn),
                                toggleAction = delegate()
                                {
                                    this.ToggleSlowBurn(this.JPSlowBurn);
                                }
                            });
                        }
                        text = TranslatorFormattedStringExtensions.Translate("JetPack.JPLabel", GenText.CapitalizeFirst(this.def.label), this.JPFuelAmount.ToString(), this.JPFuelMax.ToString());
                        desc = TranslatorFormattedStringExtensions.Translate("JetPack.JPDesc", GenText.CapitalizeFirst(this.def.label));
                        yield return(new Command_Action
                        {
                            defaultLabel = text,
                            defaultDesc = desc,
                            icon = fuelicon,
                            action = delegate()
                            {
                                SoundStarter.PlayOneShotOnCamera(SoundDefOf.Click, null);
                                this.RefuelJetPack(base.Wearer, this);
                            }
                        });

                        if (Prefs.DevMode)
                        {
                            yield return(new Command_Action
                            {
                                defaultLabel = "Debug Settings",
                                defaultDesc = "Debug Commands",
                                icon = fuelicon,
                                action = delegate()
                                {
                                    SoundStarter.PlayOneShotOnCamera(SoundDefOf.Click, null);
                                    this.DoJetPackDebug(base.Wearer, this);
                                }
                            });
                        }
                    }
                    yield break;
                }
            }
            yield break;
        }