{"shas":[["dca8aff245e637091083f8d22ab58d1538423e74","5442e2b64fa09764b9f593867e59a97292c84059@ResonatorSoft.org","Adding some future use properties to the XML.  I'm using this XML for a new Perl Games::RolePlay::MapGen::GeneratorPlugin::Terraria module, and having a source for all item properties would also help out TEdit to remove hard-coded references.\r\n\r\nThe goal here is to have a universal settings.xml file that can be used for multiple programs to be able to identify and build items and blocks in Terraria maps.  So far, the changes to the XML shouldn't have any effect on TEdit until you start using the properties.\r\n\r\nThe following properties have been added:\r\n\r\nIn Tile:\r\n   size=\"WxH\" === Standard size of this block for any frame.  Must have isFramed=\"true\" to be useful, else size defaults to 1x1.\r\n   isHouseItem=\"true\" === If this object is required to make a house, this is set.  This can be used with other properties to identify all of the house objects:\r\n      isSolidTop = True to both means it's a Flat Surface item\r\n      lightBrightness = True + non-zero means it's a Light item for a house\r\n      If it doesn't match either of those and isHouseItem=\"true\", then it's a Comfort item\r\n   placement=any|floor|surface|floorSurface|wall|ceiling|wallFloor|wallFloorCeiling|CFBoth\r\n      any = default if missing; like a block, which could even float in the air\r\n      floor = must be on the floor, affected by gravity\r\n      surface = must be on a SolidTop surface object\r\n      floorSurface = floor or surface\r\n      wall = must be attached to a wall\r\n      ceiling = must be attached to the ceiling\r\n      wallFloor = wall or floor\r\n      wallFloorCeiling = wall or floor or ceiling (rare, signs have these)\r\n      CFBoth = must be attached to both the ceiling AND floor (rare, doors have these)\r\n   lightBrightness=\"###%\"\r\n      Brightness level of object; more importantly, non-zero means it's a light object\r\n   contactDmg=\"##\"\r\n      Amount of damage it causes if touched.  This is useful to know that, for example, Hellstone blocks are probably going to kill an NPC, so the program should either warn or refuse to put a NPC there if he's going to die all the time.\r\n   growsOn=\"##\"\r\n      This automatically classifies the object as a plant and gives the tile # of the block that it's supposed to grow on.  A program could warn/refuse to place the X object unless it's on top of itself or tile Y.  These objects also don't need a placement property, since this essentially overrides that purpose.\r\n   hangsOn=\"##\"\r\n      Just like growsOn, but used for vines.\r\n\r\nIn Item:\r\n   type=tool|weapon|armor|accessory|block|light|storage|wall|furniture|plant|\r\n        material|potion|consumable|ammo|money\r\n      tool = Pickaxe, Hammer, Axe, etc.\r\n      weapon = All weapons, including swords, staffs, consumable weapons (like Throwing Knives), etc.\r\n      armor = All items that fit into armor slot (including vanity; might split those off later on)\r\n      accessory = All items that fit into accessory slots\r\n      block = Blocks that are normally gathered through mining\r\n      light = Items that are primarily used as a light source, ie: Torch, Candles, etc.\r\n      storage = All storage furniture, including Chests, Barrels, Trash Cans, etc.\r\n      wall = All wall objects\r\n      furniture = All furniture, both decorative and crafting stations (might split later on)\r\n      plant = All plants (supersedes all other categories)\r\n      material = Objects that are primarily used for crafting material\r\n      potion = All items called \"Potion\" or containers of liquid that buff character\r\n      consumable = Other items that are one-use only\r\n      ammo = Objects that are primarily used for gun/bow ammo\r\n      money = Objects that go directly in the money slots\r\n\r\nThis should cover most of the universe of properties needed for Terraria.  Of course, other properties could be added, like item cost, weapon damage, etc., but the goal is having this data for building maps and only growing it if more data is actually needed.\r\n\r\nOne last item: I said that this XML should not hamper TEdit's function, and I've tested that it does indeed ignore the properties.  I am also going to include some children of Tile called \"Frame\".  Now, while I've tested a single child seems to not have any problems, I still want to bundle that change in as a separate Pull Request.  This new Frame tag should cover all of the \"hidden\" objects within the tiles and remove the need for Schematics for all of the framed objects.\r\n\r\nEmail me or reply if you want to discuss this further.","SineSwiper"]],"ref":"refs/heads/patch-2","size":1,"head":"dca8aff245e637091083f8d22ab58d1538423e74","push_id":43147039}