Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Explication de code
- -- https://www.youtube.com/watch?v=KfWCjY8V4C4
- chatbox=peripheral.wrap("right")
- modNuit='off'
- redstone.setOutput("back",false)
- encours=false
- config={
- debutNuit=19,
- finNuit=6,
- preTime={
- nuit=20,
- matin=5,
- soir=18,
- midi=12
- }
- }
- chatbox.say('Reboot',9999,false,'Gestion du temps')
- function calcul(debut,jusqua,letime)
- if debut>jusqua then
- print(letime..'>'..debut..' or '..letime..'<'..jusqua)
- return letime>debut or letime<jusqua
- else
- print(letime..'>'..debut..' and '..letime..'<'..jusqua)
- return letime>debut and letime<jusqua
- end
- end
- function avanceTemps(jusqua,ignoreModNuit)
- -- securite une seul modification temporel
- if encours==false then
- encours=true
- -- Enregistrement du debut
- letime=os.time()
- debut=letime-0.1
- chatbox.say('avance du temps jusqu\'a '..jusqua,9999,false,'Gestion du temps')
- redstone.setOutput("back",true)
- while ( calcul(debut,jusqua,letime) and (ignoreModNuit or modNuit=='off') ) do
- os.sleep(1)
- letime=os.time()
- end
- redstone.setOutput("back",false)
- encours=false
- else
- chatbox.say('Deja encours',9999,false,'Gestion du temps')
- end
- end
- function gestionTemps()
- while true do
- if modNuit=='off' then
- letime=os.time()
- if letime>config.debutNuit or letime<config.finNuit then
- avanceTemps(config.finNuit,false)
- end
- end
- os.sleep(20)
- end
- end
- function gestionCommande()
- while true do
- local event, player, args = os.pullEvent("command")
- if args[1]=='nuit' then
- if args[2]=='on' then
- modNuit='on'
- chatbox.say('Mode nuit : on',9999,false,'Gestion du temps')
- elseif args[2]=='off' then
- modNuit='off'
- chatbox.say('Mode nuit : off',9999,false,'Gestion du temps')
- else
- if modNuit=='off' then
- chatbox.say('Mode nuit : off',9999,false,'Gestion du temps')
- else
- chatbox.say('Mode nuit : on',9999,false,'Gestion du temps')
- end
- end
- elseif args[1]=='time' then
- verChiffre=tonumber(args[2])
- if verChiffre==nil then
- if config.preTime[args[2]] then
- avanceTemps(config.preTime[args[2]],true)
- else
- liste=''
- table.foreach(config.preTime,function(nom,temp)
- liste=liste..' '..nom
- end)
- chatbox.say('Commande invalide, pre reglage : '..liste,9999,false,'Gestion du temps')
- end
- else
- avanceTemps(verChiffre,true)
- end
- end
- end
- end
- parallel.waitForAll(gestionTemps,gestionCommande)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement