SHARE
TWEET

Moveable blocks derp

capasha Jul 11th, 2018 96 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         private async void sendMessage(Connection con,object[] param)
  2.         {
  3.             await Task.Run(() => {
  4.                 con.Send("b", param);
  5.                 Thread.Sleep(30);
  6.                 });
  7.         }
  8.  
  9. switch (m.Type)
  10.                                      {
  11.                                          case "init":
  12.                                              con.Send("init2");
  13.                                              var chunks = InitParse.Parse(m);
  14.                                              foreach (var chunk in chunks)
  15.                                              {
  16.                                                  foreach (var pos in chunk.Locations)
  17.                                                  {
  18.                                                      blocks.Add(new blockData() { id = Convert.ToInt32(chunk.Type), x = pos.X, y = pos.Y, layer = chunk.Layer, param = chunk.Args });
  19.                                                  }
  20.                                              }
  21.                                              break;
  22.                                          case "b":
  23.                                              blockData data = blocks.Where(c => c.id != m.GetInt(3) && c.x == m.GetInt(1) && c.y == m.GetInt(2) && c.layer == 0).SingleOrDefault();
  24.                                              if (data != null)
  25.                                              {
  26.                                                  blocks.RemoveAt(blocks.IndexOf(data));
  27.                                                  blocks.Add(new blockData() { id = m.GetInt(3), x = m.GetInt(1), y = m.GetInt(2), layer = m.GetInt(0), param = null });
  28.                                              }
  29.  
  30.                                              break;
  31.                                          case "m":
  32.                                              int x = 0, y = 0, xx = 0, yy = 0, xx1 = 0, xx2 = 0, yy1 = 0, yy2 = 0;
  33.                                              if (m.GetInt(7) == 1) x++;
  34.                                              if (m.GetInt(7) == -1) x--;
  35.                                              if (m.GetInt(8) == 1) y++;
  36.                                              if (m.GetInt(8) == -1) y--;
  37.                                              xx = (int)((double)m.GetDouble(1)) / 16 + x;
  38.                                              yy = (int)((double)m.GetDouble(2)) / 16 + y;
  39.                                              var block = blocks.Where(a => a.layer == 0 && a.x == xx && a.y == yy && a.id == 32).SingleOrDefault();
  40.                                              if (block != null)
  41.                                              {
  42.                                                  if (block.id == 32)
  43.                                                  {
  44.  
  45.                                                      if (m.GetInt(7) == 1)
  46.                                                      {
  47.                                                          sendMessage(con,new object[] { 0, xx, yy, 4 });
  48.                                                          sendMessage(con, new object[] { 0, xx + 1, yy, 32 });
  49.                                                      }
  50.                                                      if (m.GetInt(7) == -1)
  51.                                                      {
  52.                                                          sendMessage(con, new object[] { 0, xx, yy, 4 });
  53.                                                          sendMessage(con, new object[] { xx - 1, yy, 32 });
  54.                                                      }
  55.                                                      if (m.GetInt(8) == 1)
  56.                                                      {
  57.                                                          sendMessage(con, new object[] { 0, xx, yy, 4 });
  58.                                                          sendMessage(con, new object[] { 0, xx, yy + 1, 32 });
  59.                                                      }
  60.                                                      if (m.GetInt(8) == -1)
  61.                                                      {
  62.                                                          sendMessage(con, new object[] { 0, xx, yy, 4 });
  63.                                                          sendMessage(con, new object[] { 0, xx, yy - 1, 32 });
  64.                                                      }
  65.                                                  }
  66.                                              }
  67.                                              break;
  68.                                      }
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