SHOW:
|
|
- or go back to the newest paste.
| 1 | local mods = peripheral.wrap "back" | |
| 2 | - | local targ = ... |
| 2 | + | |
| 3 | local function yaw_and_pitch(e) | |
| 4 | local x, y, z = e.x, e.y, e.z | |
| 5 | local pitch = -math.atan2(y, math.sqrt(x * x + z * z)) | |
| 6 | local yaw = math.atan2(-x, z) | |
| 7 | return math.deg(yaw), math.deg(pitch) | |
| 8 | end | |
| 9 | ||
| 10 | while true do | |
| 11 | for _, e in pairs(mods.sense()) do | |
| 12 | - | local t = mods.getMetaByName(targ) |
| 12 | + | if e.pitch ~= 0 and e.displayName == e.name then -- good heuristic for player detection |
| 13 | - | if t then |
| 13 | + | local y, p = yaw_and_pitch(e) |
| 14 | - | local y, p = yaw_and_pitch(t) |
| 14 | + | mods.look(y, p) |
| 15 | - | --mods.fire(y, p, 0.5) |
| 15 | + | end |
| 16 | - | mods.launch(y, p, 1) |
| 16 | + | end |
| 17 | - | end |
| 17 | + | |
| 18 | end |