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; }
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); } } }
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); }