Example #1
0
 void OnGiveCommand(ConsoleCommandArgs args)
 {
     if (args.Arguments.Count > 1)
     {
         var allItemNames = Terraria.GetMainField <string[]>("itemName");
         var itemIds      = new List <int>();
         var player       = DetoxPlayers.LocalPlayer;
         int successes    = 0;
         for (int i = 1; i < args.Arguments.Count; i += 2)
         {
             var itemId = GetItemId(args.Arguments[i]);
             var count  = -1;
             if (itemId != -1)
             {
                 if (Int32.TryParse(args.Arguments[i + 1], out count))
                 {
                     for (int j = 0; j < count; j++)
                     {
                         player.Invoke("PutItemInInventory", itemId, -1);
                     }
                     successes++;
                 }
                 else
                 {
                     Console.PrintConsole(args.Arguments[i + 1] + " is not a valid integer!", ConsoleMessageType.Warning);
                 }
             }
             else
             {
                 Console.PrintConsole("Item \"" + args.Arguments[i] + "\" not found!", ConsoleMessageType.Warning);
             }
         }
         if (successes > 0)
         {
             Console.PrintConsole("Put " + successes + " item" + (successes > 1 ? "s" : "") + "into your inventory!", ConsoleMessageType.About);
         }
         else
         {
             Console.PrintConsole("Couldn't put any item into your inventory.", ConsoleMessageType.Warning);
         }
     }
     else
     {
         Console.PrintConsole("No item specified!", ConsoleMessageType.Error);
         Console.PrintConsole("Usage: /give <item1> <count1> (<item2> <count2> ...)", ConsoleMessageType.Normal);
     }
     args.Handled = true;
 }
Example #2
0
        void OnPreDrawInterface(EventArgs args)
        {
            if (!buildgrid || gridTexture == null)
            {
                return;
            }

            // Calculate the grid position..
            var screenPosition = Terraria.GetMainField <Vector2>("screenPosition");
            var posX           = (int)((int)(screenPosition.X / 16f) * 16 - screenPosition.X);
            var posY           = (int)((int)(screenPosition.Y / 16f) * 16 - screenPosition.Y);
            var width          = Terraria.GetMainField <int>("screenWidth") / gridTexture.Width;
            var height         = Terraria.GetMainField <int>("screenHeight") / gridTexture.Height;

            // Draw the grid..
            for (var w = 0; w <= width + 1; w++)
            {
                for (var j = 0; j <= height + 1; j++)
                {
                    Terraria.MainSpriteBatch.Draw(gridTexture, new Vector2(w * gridTexture.Width + posX, j * gridTexture.Height + posY), new Rectangle(0, 0, gridTexture.Width, gridTexture.Height), gridColor, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
                }
            }
        }
Example #3
0
        int GetItemId(string itemNameOrId)
        {
            if (allItemNames == null)
            {
                allItemNames = Terraria.GetMainField <string[]>("itemName");
            }
            var itemId = -1;

            if (Int32.TryParse(itemNameOrId, out itemId))
            {
                return(itemId);
            }
            else
            {
                for (int j = 0; j < allItemNames.Length; j++)
                {
                    if (allItemNames[j].ToLower() == itemNameOrId.ToLower())
                    {
                        return(j);
                    }
                }
            }
            return(-1);
        }