Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local function getInput(str, conversion, sign)
- write(str);
- while true do
- local ret = read();
- local val = ret:lower();
- if (not conversion) then
- return ret;
- elseif (conversion == 'boolean') then
- if (val == 'true') or (val == 'yes') or (val == 'y') then
- return true;
- elseif (val == 'false') or (val == 'no') or (val == 'n') then
- return false;
- else
- write('Value must be boolean');
- end
- elseif (conversion == 'number') or (conversion == 'integer') then
- ret = tonumber(ret);
- if (ret) then
- local continue = true; if (sign) then
- if (sign == '-') and (ret > 0) then
- write('Value must be negative'); continue = true;
- elseif (sign == '+') and (ret < 0) then
- write('Value must be positive'); continue = false;
- end
- end
- if (continue) then
- if (conversion == 'integer') then
- ret = math.floor(ret);
- end
- return ret;
- end
- else
- if (conversion == 'integer') then
- write('Value must be an integer');
- else
- write('Value must be a number');
- end
- end
- elseif (type(conversion) == 'table') then
- if (conversion[val]) then
- return conversion[val];
- else
- write('Invalid response');
- end
- end
- end
- end
- write('Negative values will reverse the direction. -Y will go down instead of up. -X will go left instead of Right. Z cannot be negative. Note that all directions are local.\n');
- local x, y, z;
- while true do
- write('Room Size\n');
- x, y, z = getInput('X: ', 'integer'), getInput('Y: ', 'integer'), getInput('Z: ', 'integer', '+');
- if (not getInput('\nIs the following data correct? (y/n)\n' .. math.abs(x) .. ' blocks to the ' .. ((x>0 and 'right') or 'left') .. ', ' .. math.abs(y) .. ' blocks ' .. ((x>0 and 'up') or 'down') .. ', and ' .. z .. ' blocks forward.\n', 'boolean')) then term.clear(); else break; end
- end
- for Y = 1, math.abs(y)-1 do
- for X = 1, math.abs(x)-1 do
- for Z = 1, z-1 do
- turtle.dig();
- turtle.forward();
- end
- if (x<0) then X=X-1; end
- if (X%2 == 1) then
- turtle.turnLeft();
- turtle.dig();
- turtle.forward();
- turtle.turnLeft();
- else
- turtle.turnRight();
- turtle.dig();
- turtle.forward();
- turtle.turnRight();
- end
- end
- if (Y ~= math.abs(y)-1) then
- if (y>0) then
- turtle.digUp();
- turtle.up();
- else
- turtle.digDown();
- turtle.down();
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement