Search code examples
luacomputercraft

Computercraft bundled cable program not responding


After several revisions, my Lua program still refuses to do anything.

--Let's Go!
--Program Infos
--Mappings
--Pink: Gate 1
--Red: East Tower 2
--Orange: West Tower 3
--Lime: Armoury 4
--Blue: Master Bedroom 5
--Grey: Guest Bedroom 6
--Cyan: Power Generation 7

--arbitrary variables
-- c is the variable for adding and subtracting. keeps track of what is CURRENTLY ACTIVE.
--Beginning values


--Start out with listening for arguments
local args = {...}
arg1=args[1]
arg2=args[2]

--Where are our outputs?
local towere = colors.red
local towerw = colors.orange
local gate = colors.pink
local armoury = colors.lime
local mstr = colors.blue
local guest = colors.grey
local power = colors.cyan
--bundled outputs
local output = "right"



-- ADD AND SUBTRACT MAKE LIFE EASIER CODE
--Courtesy of @Kingdaro on Computercraft Fourm (adapted for practical use in project)
--Original Link: http://www.computercraft.info/forums2/index.php?/topic/7641-redpower-bundled-cable/

--How to close a door
function close(door)
local input = rs.getBundledOutput("right")
rs.setBundledOutput("right", colors.combine(input, door))
end

function open(door)
local input = rs.getBundledOutput("right")
rs.setBundledOutput("right", colors.subtract(input, door))
end

--Make a good base for closing/opening things
--Basically, Functions Galore.

--GATE CONTROLS
function gateclose()
rs.setOutput(top, true)
wait(1)
rs.setOutput(top, false)
close(colors.pink)
end
function gateopen()
open(colors.pink)
end


--Beef of the program
--Start out with all doors open

if args[1] == gate and args[2] == open then --if the command is gate open
gateopen()
elseif args[1] == gate and args[2] == close then --if the command is gate close
gateclose()
end

I've tried and tried, but still, no response. I have the setup (physically, if you could call it that) correct (the bundled cable is on the right) and no error messages, but when run with the 'gate close' arguments, no response from the wires.

Any suggestions? Thanks!


Solution

  • Most probably you want to compare string:

    if args[1] == "gate" and args[2] == "open" then --if the command is gate open
        gateopen()
    elseif args[1] == "gate" and args[2] == "close" then --if the command is gate close
        gateclose()
    end