Guest User

v7 navigator node structure

a guest
Aug 10th, 2018
113
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. private void NAVIGATE()
  2.         {
  3.             int nodeId = Request.PopWiredInt32();
  4.  
  5.             NavigatorNode node = IonEnvironment.GetHabboHotel().GetNavigator().GetNode(nodeId);
  6.  
  7.             if (node == null)
  8.                 return;
  9.  
  10.             List<NavigatorNode> subNodes = IonEnvironment.GetHabboHotel().GetNavigator().GetNavigatorSubNodes(node.Id);
  11.  
  12.             Response.Initialize(220);
  13.             Response.AppendInt32(node.Id); // node id
  14.             Response.AppendInt32(node.Type.Equals("category") ? 0 : 2); // if this is 0, it will not include flats, if this is 2, it could
  15.             Response.AppendString(node.Name, 2); // name
  16.             Response.AppendInt32(0); // percent filled (shouldn't do anything for top-level nodes, only when seen as a subnode)
  17.             Response.AppendInt32(node.ParentId); // parent node id
  18.             Response.AppendInt32(node.Type.Equals("category") ? 0 : 2); // if this is 0, not append anything. If this is 2, append flat count in category + flats
  19.  
  20.             if (node.Type.Equals("private")) // if above int is 2
  21.             {
  22.                 List<Flat> flats = IonEnvironment.GetHabboHotel().GetRoomManager().GetFlats(node.Id);
  23.  
  24.                 Response.AppendInt32(flats.Count);
  25.  
  26.                 foreach (Flat flat in flats)
  27.                 {
  28.                     Response.AppendInt32(flat.Id);
  29.                     Response.AppendString(flat.Name, 2);
  30.                     Response.AppendString("-", 2); // oowner name but too cba to get owner name
  31.                     Response.AppendString(flat.State.ToString(), 2);
  32.                     Response.AppendInt32(flat.CurrentUsers);
  33.                     Response.AppendString(flat.Description, 2);
  34.                 }
  35.  
  36.             }
  37.  
  38.             //  repeat while tConn <> void()
  39.             foreach (NavigatorNode subNode in subNodes)
  40.             {
  41.                 Response.AppendInt32(subNode.Id); // sub node id
  42.                 Response.AppendInt32(subNode.Type.Equals("category") ? 0 : subNode.Type.Equals("public") ? 1 : 2); // if this is 0, it's a normal subnode (category), if it's 1, it's a public room, if it's 2, it appends flat list I ASSUME
  43.                 Response.AppendString(subNode.Name, 2); // name
  44.                 Response.AppendInt32(0); // percent filled (changes bar color)
  45.                 Response.AppendInt32(subNode.ParentId); // parent node id
  46.                 Response.AppendInt32(subNode.Type.Equals("category") ? 0 : subNode.Type.Equals("public") ? 1 : 2); // type, okay, so if this is 1, this node is a public room, if this is 0, it's a category. If this is 2, it shows flats
  47.  
  48.                 if (subNode.Type.Equals("public")) // node is a pbulic room
  49.                 {
  50.                     PublicRoom publicRoom = IonEnvironment.GetHabboHotel().GetRoomManager().GetPublicRoom(subNode.PublicId);
  51.  
  52.                     if (publicRoom != null)
  53.                     {
  54.                         Response.AppendString(publicRoom.Description, 2);
  55.                         Response.AppendInt32(0); // port?
  56.                         Response.AppendInt32(0); // door?
  57.                         Response.AppendString(publicRoom.Casts, 2); // casts AKA ccts
  58.                     }
  59.                 }
  60.                 else if (subNode.Type.Equals("private"))
  61.                 {
  62.                     List<Flat> flats = IonEnvironment.GetHabboHotel().GetRoomManager().GetFlats(subNode.Id);
  63.  
  64.                     Response.AppendInt32(flats.Count);
  65.  
  66.                     foreach(Flat flat in flats)
  67.                     {
  68.                         Response.AppendInt32(flat.Id);
  69.                         Response.AppendString(flat.Name, 2);
  70.                         Response.AppendString("-", 2);
  71.                         Response.AppendString(flat.State.ToString(), 2);
  72.                         Response.AppendInt32(flat.CurrentUsers);
  73.                         Response.AppendString(flat.Description, 2);
  74.                     }
  75.                 }
  76.             }
  77.  
  78.             SendResponse();
  79.         }
RAW Paste Data