Beispiel #1
0
        public override void PostDrawInWorld(SpriteBatch spriteBatch, Color lightColor, Color alphaColor, float rotation, float scale, int whoAmI)
        {
            Vector2          position = item.position - Main.screenPosition + new Vector2(item.width / 2, item.height / 2);
            List <Texture2D> textures = new List <Texture2D>();
            List <Vector2>   offsets  = new List <Vector2>();

            parts = parts.OrderBy(x => GunHelper.GetPartType(x).layer).ToList();
            foreach (string key in parts)
            {
                try
                {
                    GunPart   partType = GunHelper.GetPartType(key);
                    Texture2D tex      = ModContent.GetTexture(partType.useTexture);
                    textures.Add(tex);
                    Vector2 offset = partType.offset;
                    offsets.Add(offset);
                }
                catch (Exception e)
                {
                    Gunplay.instance.Logger.Error("Something failed when getting invTexture in PostDrawInWorld! " + e.Message);
                }
            }
            for (int index = 0; index < textures.Count; index++)
            {
                Texture2D texture = textures[index];
                Vector2   offset  = offsets[index] / 2f;
                spriteBatch.Draw(texture, position + offset, null, lightColor, rotation, texture.Size() * 0.5f, scale, SpriteEffects.None, 0f);
            }
        }
Beispiel #2
0
        public override void PostDrawInInventory(SpriteBatch spriteBatch, Vector2 position, Rectangle frame, Color drawColor, Color itemColor, Vector2 origin, float scale)
        {
            parts = parts.OrderBy(x => GunHelper.GetPartType(x).layer).ToList();
            List <Texture2D> textures = new List <Texture2D>();
            List <Vector2>   offsets  = new List <Vector2>();

            foreach (string key in parts)
            {
                try
                {
                    GunPart   partType = GunHelper.GetPartType(key);
                    Texture2D texture  = ModContent.GetTexture(partType.useTexture);
                    textures.Add(texture);
                    Vector2 offset = partType.offset;
                    offsets.Add(offset);
                }
                catch (Exception e)
                {
                    Gunplay.instance.Logger.Error("Something failed when getting invTexture in PostDrawInInventory! " + e.Message);
                }
            }
            for (int index = 0; index < textures.Count; index++)
            {
                Texture2D texture = textures[index];
                Vector2   offset  = offsets[index];
                spriteBatch.Draw(texture, position + offset, null, drawColor, 0f, origin, scale, SpriteEffects.None, 0f);
            }
        }
Beispiel #3
0
        public override void SetDefaults()
        {
            item.width  = 32;
            item.height = 32;

            item.useStyle     = ItemUseStyleID.HoldingOut;
            item.useTurn      = true;
            item.UseSound     = SoundID.Item6;
            item.useTime      = 10;
            item.useAnimation = 10;

            item.noUseGraphic = true;             //hmm yes let me remove the held item layer instead

            damage = GunHelper.DamageFromParts(parts);
            GunHelper.SetDefaults(item);
        }
Beispiel #4
0
        public override void OnDisconnected(DisconnectEventArgs e)
        {
            base.OnDisconnected(e);

            if (nameLabel != null)
            {
                nameLabel.Dispose();
                nameLabel = null;
            }

            try
            {
                GunHelper.SaveGunInHand(this);
            }
            catch (Exception exception)
            {
            }
        }
Beispiel #5
0
        public override void ModifyTooltips(List <TooltipLine> tooltips)
        {
            foreach (TooltipLine line in tooltips)
            {
                if (line.Name == "ItemName" && line.mod == "Terraria")
                {
                    line.text = GunHelper.GetToolName(parts) + " " + itemType;
                }
            }

            string effectsText = "";

            foreach (KeyValuePair <string, int> pair in effects)
            {
                EffectType effectType = GunHelper.GetEffectType(pair.Key);
                if (effectsText != "")
                {
                    effectsText += "\n";
                }

                effectsText += $"{effectType.name}";
                if (effectType.showLevel)
                {
                    effectsText += $" Level {pair.Value}";
                }
                if (Main.keyState.PressingShift())
                {
                    effectsText += $": {effectType.desc}";
                }
            }
            tooltips.Add(new TooltipLine(mod, "TerrariaConstruct:EffectsLine", effectsText));
            if (!Main.keyState.PressingShift() && effects.Count > 0)
            {
                tooltips.Add(new TooltipLine(mod, "TerrariaConstruct:ShiftMessageLine", "Press Shift to see descriptions!"));
            }

            if (GunHelper.CheckForBrokenParts(parts))
            {
                tooltips.Add(new TooltipLine(mod, "TerrariaConstruct:BrokenPartsLine", "This tool has broken parts! Did you disable a mod since you last played?"));
            }

            tooltips.Add(new TooltipLine(mod, "h", "Damage = " + GunHelper.DamageFromParts(parts)));
        }
Beispiel #6
0
 public override bool PreDrawInWorld(SpriteBatch spriteBatch, Color lightColor, Color alphaColor, ref float rotation, ref float scale, int whoAmI)
 {
     item.SetNameOverride(GunHelper.GetToolName(parts) + " " + itemType);
     return(false);
 }
Beispiel #7
0
 public override bool PreDrawInInventory(SpriteBatch spriteBatch, Vector2 position, Rectangle frame, Color drawColor, Color itemColor, Vector2 origin, float scale)
 {
     item.SetNameOverride(GunHelper.GetToolName(parts) + " " + itemType);
     return(false);
 }