Advertisement
toastonrye

Basalt Example - Redstone Output Youtube

Aug 8th, 2022 (edited)
872
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --Basalt configurated installer
  2. local filePath = "basalt.lua" --here you can change the file path default: basalt
  3. if not(fs.exists(filePath))then
  4.     shell.run("pastebin run ESs1mg7P packed true "..filePath:gsub(".lua", "")) -- this is an alternative to the wget command
  5. end
  6.  
  7. -- toastonrye's example: Redstone Analog Output
  8. local basalt = require(filePath:gsub(".lua", "")) -- here you can change the variablename in any variablename you want default: basalt
  9. local w, h = term.getSize() -- dimensions to use when drawing the sub frame
  10.  
  11. local main = basalt.createFrame()
  12.  :show()
  13.  :setBackground(colours.blue) -- using colours to easily determine what frame I'm in
  14.  
  15. local sub = main:addFrame()
  16.  :setPosition(2,2)
  17.  :setSize(w-2,h-2)
  18.  :setBackground(colours.lightBlue)
  19.  
  20. local rFrame = sub:addFrame("redstoneFrame")
  21.  :setPosition(1,1)
  22.  :setSize(25,5)
  23.  :setMoveable(true) -- the next release of Basalt will fix spelling to :setMovable
  24.  :setBackground(colours.red)
  25.  
  26. -- Redstone Analog Output
  27. local redstoneAnalog = rFrame:addLabel() -- label that displays the value of the slider & Redstone output
  28.  :setPosition(18,3):setText("1")
  29.  
  30. redstone.setAnalogOutput("left", 1) -- initialize the redstone output to 1, to match the above label
  31.  
  32. rFrame:addLabel() -- draw a label on the frame
  33.  :setText("Redstone Analog Output")
  34.  :setPosition(1,2)
  35.  
  36. rFrame:addSlider()
  37.  :setPosition(1,3)
  38.  :onChange(function(self) -- when a player interacts with the slider, update the variable redstoneAnalog
  39.   redstoneAnalog:setText(self:getValue())
  40.  end)
  41.  :setMaxValue(15) -- max value of the slider, default 8. Redstone has 15 levels (16 including 0)
  42.  :setSize(15,1) -- draw the slider to this size, without this redstoneAnalog value can have decimals
  43.  
  44. redstoneAnalog:onChange(function(self) -- when the slider value changes, change the Redstone output to match
  45.  redstone.setAnalogOutput("left", tonumber(self:getValue()))
  46.  basalt.debug(self:getValue())
  47. end)
  48.  
  49. basalt.autoUpdate()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement