Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- ComputerCraft
- -- Writes text to a minecraft create display based on redstone inputs
- print("Starting Display")
- -- Set up the display
- local display = peripheral.wrap("top") -- Wrap the display on top of the computer
- if not display then
- print("No display found")
- return
- end
- display.clear() -- Clear the display
- display.setCursorPos(1, 1) -- Set the cursor position to the top left corner
- display.write("Display ready!") -- Write a message to the display
- display.update() -- Update the display to show the message
- -- Wait for 4 seconds before clearing the display
- os.sleep(4)
- display.clear() -- Clear the display
- display.update() -- Update the display to show the cleared screen
- local previous_state = nil -- Variable to store the previous state
- while true do
- local active_hostile = redstone.getInput("back")
- local active_neutral = redstone.getInput("front")
- local active_spawnDelay = redstone.getInput("right")
- local active_chicken = redstone.getInput("bottom")
- local active_missing = redstone.getInput("left")
- -- log the states to the console
- print("Hostile: " .. tostring(active_hostile))
- print("Neutral: " .. tostring(active_neutral))
- print("Spawn Delay: " .. tostring(active_spawnDelay))
- print("Chicken: " .. tostring(active_chicken))
- print("Missing: " .. tostring(active_missing))
- local state_spawning = active_spawnDelay
- local state_chicken = active_chicken
- local state_killing = active_hostile and not active_spawnDelay and not active_chicken
- local state_clearing = active_neutral and not state_killing and not state_chicken
- local state_missing = active_missing
- local state_idle = not state_spawning and not state_killing and not state_clearing and not state_missing and
- not state_chicken
- local current_state = nil -- Variable to store the current state
- if state_spawning then
- current_state = "Spawning Wither"
- elseif state_killing then
- current_state = "Killing Wither"
- elseif state_chicken then
- current_state = "Deploying Chicken"
- elseif state_clearing then
- current_state = "Clearing Chamber"
- elseif state_missing then
- current_state = "Missing Resources"
- elseif state_idle then
- current_state = "Idle..."
- end
- if current_state == previous_state then
- -- If the state hasn't changed, skip the display update
- print("State hasn't changed, skipping display update")
- os.sleep(1) -- Sleep for 1 second before checking the states again
- goto continue -- Skip to the next iteration of the loop
- end
- previous_state = current_state -- Update the previous state
- print("State changed to: " .. current_state) -- Log the state change to the console
- -- Display the states on the screen
- display.clear() -- Clear the display
- display.setCursorPos(1, 1) -- Set the cursor position to the top left corner
- display.write("State:") -- Write a message to the display
- display.setCursorPos(1, 2) -- Move the cursor to the next line
- display.write(current_state) -- Write the current state to the display
- display.update() -- Update the display to show the current state
- -- Sleep for 1 second before checking the states again
- os.sleep(1)
- ::continue:: -- Label to skip to the next iteration of the loop
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement