SHARE
TWEET

Everybody Edits - Worlddata

capasha Apr 8th, 2015 (edited) 422 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Works on EE version 201
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using PlayerIOClient;
  8. namespace ReadingSavedWorldData
  9. {
  10.     class Program
  11.     {
  12.         public static string worldName = "Untitled World";
  13.         public static uint bgcolor;
  14.         public static string worldesc = "No World Descriptions found.";
  15.         public static int[] morphable = { 375, 376, 379, 380, 377, 378, 438, 439, 276, 277, 279, 280, 440, 275, 329, 273, 328, 327, 338, 339, 340, 1041, 1042, 1043, 456, 457, 458, 447, 448, 449, 450, 451, 452 };
  16.         public static int[] goal = { 43, 165, 213, 214, 417, 418, 419, 420, 421, 422, 423, 1027, 1028, 113, 185, 184, 1011, 1012, 453 };
  17.         public static int[] rotation = { 275, 327, 273, 329, 339, 338, 276, 277, 279, 280, 340, 328, 438, 439, 440, 1040, 1041, 1042, 1043, 447, 448, 449, 450, 451, 452, 456, 457, 458 };
  18.         public static byte[] x, y, x1, y1;
  19.         static void Main(string[] args)
  20.         {
  21.             readWorld("PW01");
  22.             Console.ReadKey();
  23.  
  24.         }
  25.         //Updated to work with newest blocks, EE Version: 194
  26.         // Added rotation check for older morphable blocks.
  27.         public static void readWorld(string id)
  28.         {
  29.             //Trying to login..
  30.             PlayerIO.QuickConnect.SimpleConnect("everybody-edits-su9rn58o40itdbnw69plyw", "guest", "guest", null,
  31.                 delegate(Client c)
  32.                 {
  33.                     //Logged in.
  34.                     c.BigDB.Load("Worlds", id,
  35.                     delegate(DatabaseObject worlds)
  36.                     {
  37.                         Console.WriteLine(worlds.ToString());
  38.                         if (worlds != null && worlds.Contains("worlddata"))
  39.                         {
  40.  
  41.                             //Reading and saving WorldData.
  42.                             worldName = worlds.Contains("name") ? worlds.GetString("name") : "Untitled World";
  43.                             int width = worlds.Contains("width") ? worlds.GetInt("width") : 0;
  44.                             int height = worlds.Contains("height") ? worlds.GetInt("height") : 0;
  45.                             bgcolor = worlds.Contains("backgroundColor") ? worlds.GetUInt("backgroundColor") : 0;
  46.                             worldesc = worlds.Contains("worldDescription") ? worlds.GetString("worldDescription") : "No World Descriptions found.";
  47.                             //If width and heigh doesn't exists in the database (Old world), set them to 200x200
  48.                             if (width == 0 && height == 0)
  49.                             {
  50.                                 width = 200;
  51.                                 height = 200;
  52.                             }
  53.                             DatabaseArray worlddata = worlds.GetArray("worlddata");
  54.                             for (int i = 0; i < worlddata.Count; i++)
  55.                             {
  56.                                 if (worlddata[i] == null) continue;
  57.                                 DatabaseObject worldinfo = worlddata.GetObject(i);
  58.                                 x = worldinfo.GetBytes("x");
  59.                                 y = worldinfo.GetBytes("y");
  60.                                 x1 = worldinfo.GetBytes("x1");
  61.                                 y1 = worldinfo.GetBytes("y1");
  62.                                 uint bid = worldinfo.GetUInt("type");
  63.                                 int layer = worldinfo.GetInt("layer");
  64.                                 if (x != null && y != null)
  65.                                 {
  66.                                     for (int p = 0; p < x.Length; p += 2)
  67.                                     {
  68.                                         int xx = x[p] << 8 | x[p + 1];
  69.                                         int yy = y[p] << 8 | y[p + 1];
  70.                                         if (layer == 1) //If layer are background
  71.                                         {
  72.                                             Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nX: " + xx + "\nY: " + yy);
  73.                                         }
  74.                                         else
  75.                                         {
  76.                                             if (bid == 242 || bid == 381) //Portals
  77.                                             {
  78.                                                 uint rotation = worldinfo.GetUInt("rotation");
  79.                                                 uint sid = worldinfo.GetUInt("id");
  80.                                                 uint targetid = worldinfo.GetUInt("target");
  81.  
  82.                                                 Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nRotation: " + rotation + "\nId: " + sid + "\nTarget: " + targetid + "\nX: " + xx + "\nY: " + yy);
  83.                                             }
  84.                                             else if (bid == 77 || bid == 83) //Piano and drums
  85.                                             {
  86.                                                 uint rotation = worldinfo.GetUInt("id");
  87.                                                 Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nId: " + rotation + "\nX: " + xx + "\nY: " + yy);
  88.                                             }
  89.                                             else if (bid == 1000 || bid == 385) //Sign and text
  90.                                             {
  91.                                                 //iF block id 1000 (Text), check for hex colors
  92.                                                 if (bid == 1000)
  93.                                                 {
  94.                                                     string hexcolor = worldinfo.GetString("text_color");
  95.                                                     string rotation = worldinfo.GetString("text");
  96.                                                     Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nText: " + rotation + "\nHexcolor: " + hexcolor + "\nX: " + xx + "\nY: " + yy);
  97.                                                 }
  98.                                                 else if (bid == 385)
  99.                                                 {
  100.                                                     string rotation = worldinfo.GetString("text");
  101.                                                     Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nText: " + rotation + "\nX: " + xx + "\nY: " + yy);
  102.                                                 }
  103.                                             }
  104.                                             else if (bid == 374) //World portal
  105.                                             {
  106.                                                 string rotation = worldinfo.GetString("target");
  107.                                                 Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nTarget: " + rotation + "\nX: " + xx + "\nY: " + yy);
  108.                                             }
  109.                                             else if (ReadingSavedWorldData.Program.goal.Contains((int)bid))
  110.                                             {
  111.                                                 uint rotation = worldinfo.GetUInt("goal");
  112.                                                 Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nGoal: " + rotation + "\nX: " + xx + "\nY: " + yy);
  113.                                             }
  114.  
  115.                                             else if (ReadingSavedWorldData.Program.rotation.Contains((int)bid) || ReadingSavedWorldData.Program.morphable.Contains((int)bid))
  116.                                             {
  117.                                                 if (worldinfo.Contains("rotation"))
  118.                                                 {
  119.                                                     uint rotation = worldinfo.GetUInt("rotation");
  120.                                                     Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nRotation: " + rotation + "\nX: " + xx + "\nY: " + yy);
  121.                                                 }
  122.                                                 else // If the world contains an old decoration that doesn't-
  123.                                                 // Have rotation. Use this and add rotation 1 instead.
  124.                                                 {
  125.                                                     Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nRotation: 1" + "\nX: " + xx + "\nY: " + yy);
  126.                                                 }
  127.                                             }
  128.                                             else //If layer is a normal block
  129.                                             {
  130.  
  131.                                                 Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nX: " + xx + "\nY: " + yy);
  132.                                             }
  133.                                         }
  134.                                     }
  135.                                 }
  136.                                 if (x1 != null && y1 != null)
  137.                                 {
  138.                                     for (int xxx = 0; xxx < x1.Length; xxx++)
  139.                                     {
  140.                                         int xx = x1[xxx];
  141.                                         int yy = y1[xxx];
  142.                                         if (layer == 1) //If layer are background
  143.                                         {
  144.                                             Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nX: " + xx + "\nY: " + yy);
  145.                                         }
  146.                                         else
  147.                                         {
  148.                                             if (bid == 242 || bid == 381) //Portals
  149.                                             {
  150.                                                 uint rotation = worldinfo.GetUInt("rotation");
  151.                                                 uint sid = worldinfo.GetUInt("id");
  152.                                                 uint targetid = worldinfo.GetUInt("target");
  153.  
  154.                                                 Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nRotation: " + rotation + "\nId: " + sid + "\nTarget: " + targetid + "\nX: " + xx + "\nY: " + yy);
  155.                                             }
  156.                                             else if (bid == 77 || bid == 83) //Piano and drums
  157.                                             {
  158.                                                 uint rotation = worldinfo.GetUInt("id");
  159.                                                 Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nId: " + rotation + "\nX: " + xx + "\nY: " + yy);
  160.                                             }
  161.                                             else if (bid == 1000 || bid == 385) //Sign and text
  162.                                             {
  163.                                                 //iF block id 1000 (Text), check for hex colors
  164.                                                 if (bid == 1000)
  165.                                                 {
  166.                                                     string hexcolor = worldinfo.GetString("text_color");
  167.                                                     string rotation = worldinfo.GetString("text");
  168.                                                     Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nText: " + rotation + "\nHexcolor: " + hexcolor + "\nX: " + xx + "\nY: " + yy);
  169.                                                 }
  170.                                                 else if (bid == 385)
  171.                                                 {
  172.                                                     string rotation = worldinfo.GetString("text");
  173.                                                     Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nText: " + rotation + "\nX: " + xx + "\nY: " + yy);
  174.                                                 }
  175.                                             }
  176.                                             else if (bid == 374) //World portal
  177.                                             {
  178.                                                 string rotation = worldinfo.GetString("target");
  179.                                                 Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nTarget: " + rotation + "\nX: " + xx + "\nY: " + yy);
  180.                                             }
  181.                                             else if (ReadingSavedWorldData.Program.goal.Contains((int)bid))
  182.                                             {
  183.                                                 uint rotation = worldinfo.GetUInt("goal");
  184.                                                 Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nGoal: " + rotation + "\nX: " + xx + "\nY: " + yy);
  185.                                             }
  186.  
  187.                                             else if (ReadingSavedWorldData.Program.rotation.Contains((int)bid) || ReadingSavedWorldData.Program.morphable.Contains((int)bid))
  188.                                             {
  189.                                                 if (worldinfo.Contains("rotation"))
  190.                                                 {
  191.                                                     uint rotation = worldinfo.GetUInt("rotation");
  192.                                                     Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nRotation: " + rotation + "\nX: " + xx + "\nY: " + yy);
  193.                                                 }
  194.                                                 else // If the world contains an old decoration that doesn't-
  195.                                                 // Have rotation. Use this and add rotation 1 instead.
  196.                                                 {
  197.                                                     Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nRotation: 1" + "\nX: " + xx + "\nY: " + yy);
  198.                                                 }
  199.                                             }
  200.                                             else //If layer is a normal block
  201.                                             {
  202.  
  203.                                                 Console.WriteLine("BlockID: " + bid + "\nLayer: " + layer + "\nX: " + xx + "\nY: " + yy);
  204.                                             }
  205.                                         }
  206.                                     }
  207.                                 }
  208.                             }
  209.                         }
  210.                         else
  211.                         {
  212.                             Console.WriteLine("Can't read worlddata");
  213.  
  214.                         }
  215.  
  216.                     },
  217.                     delegate(PlayerIOError error)
  218.                     {
  219.                         Console.WriteLine(error.Message);
  220.                     });
  221.                 },
  222.                 delegate(PlayerIOError error)
  223.                 {
  224.                     Console.WriteLine(error.Message);
  225.                 });
  226.  
  227.         }
  228.     }
  229. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top