SHOW:
|
|
- or go back to the newest paste.
| 1 | if(fs.exists("conf") == false) then
| |
| 2 | shell.run("pastebin get jtu7T4Ri conf")
| |
| 3 | term.clear() | |
| 4 | end | |
| 5 | local shield = peripheral.find("warpdriveForceFieldProjector")
| |
| 6 | local laser = peripheral.find("warpdriveLaserCamera")
| |
| 7 | - | --- |
| 7 | + | local lever = "front" -- format: front,back,left,right,top,bottom ONLY |
| 8 | -- Sets the frequency of the laser to 1420 | |
| 9 | - | --- this function is really janky but I don't want to make it better |
| 9 | + | |
| 10 | ||
| 11 | -- initial message | |
| 12 | print("Control System Online, Toggle Redstone To Toggle Shields, Press C to Configure")
| |
| 13 | ||
| 14 | ||
| 15 | local _, upgrades = shield.getUpgrades() | |
| 16 | ||
| 17 | function getRange() | |
| 18 | if upgrades:match("1/4 x Range") then
| |
| 19 | return 1 | |
| 20 | elseif upgrades:match("2/4 x Range") then
| |
| 21 | return 2 | |
| 22 | elseif upgrades:match("3/4 x Range") then
| |
| 23 | return 3 | |
| 24 | elseif upgrades:match("4/4 x Range") then
| |
| 25 | return 4 | |
| 26 | - | while true do |
| 26 | + | |
| 27 | - | -- Waits for a "laserScanning" event |
| 27 | + | |
| 28 | - | os.pullEvent("laserScanning")
|
| 28 | + | |
| 29 | - | local type, lx, ly, lz, block = laser.getScanResult() |
| 29 | + | |
| 30 | ||
| 31 | - | tx = (lx-fx) / Size |
| 31 | + | |
| 32 | - | ty = (ly-fy) / Size |
| 32 | + | |
| 33 | - | tz = (lz-fz) / Size |
| 33 | + | while true do |
| 34 | - | print(tx, ty, tz) |
| 34 | + | os.sleep(0.5) |
| 35 | - | shield.translation(tx, ty, tz) |
| 35 | + | local event, key = os.pullEvent() |
| 36 | if event == "redstone" then | |
| 37 | - | |
| 37 | + | local on = redstone.getAnalogInput(lever) |
| 38 | - | |
| 38 | + | if on > 6 then |
| 39 | shield.enable(false) | |
| 40 | ||
| 41 | elseif on < 5 then | |
| 42 | shield.enable(true) | |
| 43 | ||
| 44 | end | |
| 45 | elseif event == "key" then | |
| 46 | -- keys are represented by numbers, the number for 'C' is 46 | |
| 47 | if key == 46 then | |
| 48 | print("C key pressed, running 'conf' script...")
| |
| 49 | shell.run("conf")
| |
| 50 | end | |
| 51 | elseif event == "laserScanning" then | |
| 52 | local type, lx, ly, lz, block = laser.getScanResult() | |
| 53 | local fx, fy, fz = shield.getLocalPosition() | |
| 54 | tx = (lx-fx) / Size | |
| 55 | ty = (ly-fy) / Size | |
| 56 | tz = (lz-fz) / Size | |
| 57 | shield.translation(tx, ty, tz) | |
| 58 | end | |
| 59 | end | |
| 60 |