public PrefixDefinition(int type) : base(PrefixID.GetUniqueKey((byte)type)) { }
public void getPlayers(StreamWriter sw) { // Initialize list of Serialized Player List <SerializedPlayer> playerList = new List <SerializedPlayer>(); // Loop over every players foreach (Player player in Main.player.Where(player => player.active).ToArray()) { // Create a serializedPlayer object SerializedPlayer serializedPlayer = new SerializedPlayer(); serializedPlayer.name = player.name; serializedPlayer.health = player.statLife; serializedPlayer.mana = player.statMana; // Create Inventory Map foreach (Item item in player.inventory.Where((item, index) => item.Name != "" && index < 50).ToArray()) { if (item.prefix != 0) { string prefix = PrefixID.GetUniqueKey(item.prefix); prefix = prefix.Replace("Terraria ", "") + " "; serializedPlayer.inventory.Add(prefix + item.Name, item.stack); } else { serializedPlayer.inventory.Add(item.Name, item.stack); } } // Create Ammunitions List foreach (Item item in player.inventory.Where((item, index) => item.Name != "" && index > 53).ToArray()) { serializedPlayer.ammunitions.Add(item.Name, item.stack); } // Create Coins List foreach (Item item in player.inventory.Where((item, index) => item.Name != "" && index > 49 && index < 54).ToArray()) { serializedPlayer.coins.Add(item.Name, item.stack); } // Create Piggy Bank Map foreach (Item item in player.bank.item.Where(item => item.Name != "").ToArray()) { if (item.prefix != 0) { string prefix = PrefixID.GetUniqueKey(item.prefix); prefix = prefix.Replace("Terraria ", "") + " "; serializedPlayer.piggyBank.Add(prefix + item.Name, item.stack); } else { serializedPlayer.piggyBank.Add(item.Name, item.stack); } } // Create Safe Map foreach (Item item in player.bank2.item.Where(item => item.Name != "").ToArray()) { if (item.prefix != 0) { string prefix = PrefixID.GetUniqueKey(item.prefix); prefix = prefix.Replace("Terraria ", "") + " "; serializedPlayer.safe.Add(prefix + item.Name, item.stack); } else { serializedPlayer.safe.Add(item.Name, item.stack); } } // Create Defender Forge Map foreach (Item item in player.bank3.item.Where(item => item.Name != "").ToArray()) { if (item.prefix != 0) { string prefix = PrefixID.GetUniqueKey(item.prefix); prefix = prefix.Replace("Terraria ", "") + " "; serializedPlayer.defenderForge.Add(prefix + item.Name, item.stack); } else { serializedPlayer.defenderForge.Add(item.Name, item.stack); } } // Get List of Armor Items foreach (Item item in player.armor.Where((item, index) => item.Name != "" && index < 3).ToArray()) { Dictionary <string, string> itemInfos = new Dictionary <string, string>(); if (item.prefix != 0) { string prefix = PrefixID.GetUniqueKey(item.prefix); prefix = prefix.Replace("Terraria ", "") + " "; itemInfos.Add("Prefix", prefix); } int index = Array.FindIndex(player.armor, (c => c.Name == item.Name)); if (player.dye[index].Name != "") { itemInfos.Add("Dye", player.dye[index].Name); } serializedPlayer.armor.Add(item.Name, itemInfos); } // Get List of Accessories foreach (Item item in player.armor.Where((item, index) => item.Name != "" && index > 2).ToArray()) { Dictionary <string, string> itemInfos = new Dictionary <string, string>(); if (item.prefix != 0) { string prefix = PrefixID.GetUniqueKey(item.prefix); prefix = prefix.Replace("Terraria ", "") + " "; itemInfos.Add("Prefix", prefix); } int index = Array.FindIndex(player.armor, (c => c.Name == item.Name)); if (player.dye[index].Name != "") { itemInfos.Add("Dye", player.dye[index].Name); } serializedPlayer.accessories.Add(item.Name, itemInfos); } // Create Equipments List foreach (Item item in player.miscEquips.Where(item => item.Name != "").ToArray()) { Dictionary <string, string> itemInfos = new Dictionary <string, string>(); int index = Array.FindIndex(player.miscEquips, (c => c.Name == item.Name)); if (player.miscDyes[index].Name != "") { itemInfos.Add("Dye", player.miscDyes[index].Name); } serializedPlayer.equipments.Add(item.Name, itemInfos); } // Create Buff Map foreach (int buff in player.buffType.Where(buff => buff != 0)) { // Getting the buff Name with some Regex string buffName = BuffID.GetUniqueKey(buff); buffName = buffName.Replace("Terraria ", ""); buffName = Regex.Replace(buffName, "(\\B[A-Z])", " $1"); serializedPlayer.buffs.Add(buffName); } // Add Serialized Player to List playerList.Add(serializedPlayer); } // Convert the list to an array then return it sw.WriteLine(JsonConvert.SerializeObject(playerList)); }