Advertisement
Guest User

Untitled

a guest
May 7th, 2021
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.94 KB | None | 0 0
  1. /c
  2.  
  3. local pl = game.player;
  4.  
  5. local prevPos = nil;
  6. local memPos = nil;
  7. local prevMemPos = nil;
  8.  
  9. local tpSpecPoints = { "S", "U", "M", "L", "C", "R", "B", "D", "P" };
  10.  
  11. local tpPoints =
  12. {
  13. { name = "Solid fuel", pos = {-1660, -1761}},
  14.   { name = "Cir2", pos = {209, 1718}},
  15.   { name = "Ammonia", pos = {-1660, 668}},
  16.  
  17.   { name = "Food", pos = {-847, 1295}},
  18.  
  19.   { name = "Iron", pos = {296, -1457}},
  20.   { name = "Copper", pos = {260, -1803}},
  21.   { name = "Chromium", pos = {213, -2766}},
  22.   { name = "Lead", pos = {213, -3766}},
  23.  
  24.   { name = "Coke(1)", pos = {-550, -320}},
  25.   { name = "Coke(2)", pos = {-281, -2811}},
  26.   { name = "Tar Proc", pos = {-1640, -250}},
  27.   { name = "Alien2", pos = {-165, 653}},
  28.  
  29.   { name = "Sand", pos = {2898, -156}},
  30.  
  31.   { name = "-------- Q Input / Output", pos = {83, -343}},
  32.  
  33.   { name = "Borax", pos = {68, -580}},
  34.   { name = "Engine", pos = {-1007, -1677}},
  35.   { name = "Build", pos = {846, 1032}}
  36. };
  37.  
  38. function getPos (btn)
  39.  
  40.   if btn.name == "SpecM" then
  41.     return memPos;
  42.   elseif btn.name == "SpecC" then
  43.     return { 0, 0};
  44.   elseif btn.name == "SpecB" then
  45.     return prevMemPos;
  46.   elseif btn.name == "SpecP" then
  47.     return prevPos;
  48.   elseif btn.name == "SpecU" then
  49.     return { pl.position.x, pl.position.y - 100};
  50.   elseif btn.name == "SpecD" then
  51.     return { pl.position.x, pl.position.y + 100};
  52.   elseif btn.name == "SpecL" then
  53.     return { pl.position.x - 100, pl.position.y};
  54.   elseif btn.name == "SpecR" then
  55.     return { pl.position.x + 100, pl.position.y};
  56.   end
  57.  
  58.   for _, tpPoint in pairs (tpPoints) do  
  59.     if tpPoint.name == btn.caption then    
  60.       return tpPoint.pos;    
  61.     end
  62.   end
  63.  
  64.   return nil;
  65. end
  66.  
  67. script.on_event(defines.events.on_gui_click, function(event)
  68.  
  69.   local btn = event.element;
  70.  
  71.   if btn.name == "SpecS" then
  72.     prevMemPos = memPos;
  73.     memPos = pl.position;
  74.     return;
  75.   end
  76.  
  77.   local pos = getPos(btn);
  78.  
  79.  
  80.   if (pos ~= nil) then
  81.     prevPos = pl.position;
  82.     pl.teleport (pos);
  83.   end
  84.  
  85. end)
  86.  
  87.  
  88. local frameCont = pl.gui.left;
  89.  
  90.  
  91. if frameCont.tpOffsetFrame ~= nil then frameCont.tpOffsetFrame.destroy() end;
  92. local tpOffsetFrame = frameCont.add{type = "frame", name = "tpOffsetFrame", direction = "vertical"};
  93. local tpOffsetFrameTable = tpOffsetFrame.add{type ="table", name = "offsetTpFrameTable", column_count = 3, row_count = 3 };
  94. for index, tpSpecBtn in pairs (tpSpecPoints) do
  95.   local specBtn = tpOffsetFrameTable.add ({type = "button", name = "Spec" .. tpSpecBtn, caption = tpSpecBtn });
  96.   specBtn.style.maximal_width = 40;
  97. end
  98.  
  99.  
  100. if frameCont.tpFrame ~= nil then frameCont.tpFrame.destroy() end;
  101. local tpFrame = frameCont.add{type = "frame", name = "tpFrame", direction = "vertical"};
  102. local tpFrameTable = tpFrame.add{type ="table", name = "tpFrameTable", column_count = 1 };
  103. for index, tpPoint in pairs (tpPoints) do
  104.   tpFrameTable.add ({type = "button", name = "tpButton" .. index, caption = tpPoint.name });  
  105. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement