internal static void OnGetData(GetDataEventArgs e) { if (e.MsgID != PacketTypes.HitSwitch) { return; } using (var reader = new BinaryReader(new MemoryStream(e.Msg.readBuffer, e.Index, e.Length))) { short X = reader.ReadInt16(); short Y = reader.ReadInt16(); TSPlayer player = TShock.Players[e.Msg.whoAmI]; HitSwitch?.Invoke(new WireToggleEventArgs(X, Y, player)); } }
private static HitSwitch parseHitSwitch(XMLNode node, World world) { string doorName = ""; if (node.children.Count > 0) { foreach (XMLNode property in ((XMLNode)node.children[0]).children) { switch (property.attributes["name"].ToLower()) { case "door": doorName = property.attributes["value"]; break; } } } string switchName = ""; if (node.attributes.ContainsKey("name")) switchName = node.attributes["name"]; HitSwitch result = new HitSwitch(doorName, switchName, world); result.SetPosition((float.Parse(node.attributes["x"]) + 8f), -(float.Parse(node.attributes["y"]) - 8f)); return result; }