Jump to content




will this gui code work? if not what needs to be changed?

api help utility

2 replies to this topic

#1 samdeman22

  • Members
  • 101 posts
  • LocationScotland!

Posted 29 August 2012 - 08:16 PM

So, I am on a little netbook right now, so I cant play minecraft, but I do have notepad++ and have been watching some of nitrogenfingers videos. I took the gui video he did and put my own big spin on it. I also have limited internet access, almost none, so I cant download the microsoft.net stuff that is needed for computercraft emulator.

If anyone could test this for me or examine the code.

Instructions:
- put this API code into a folder called "sm".
- edit startup, and type os.loadAPI( "sm" )
- restart the computer
- then test the code in some way

sorry this code section is going to be BIG.

Here's the API
local w,h = term.getSize()
function centerPrint( string, ypos )
  term.setCursorPos( w/2 - #string/2, ypos ) -- half the width of the screen, minus half the langth of the string.
  term.write( string )
end
function rightPrint( string, ypos )
  term.setCursorPos( w - #string, ypos ) -- width of screen, minus the length of the string.
  term.write( string )
end
function headPrint( string, boolean, ypos ) -- string is the title, boolean is whether you want a title or not, ypos is the position that the header line prints on.
  if boolean == true then
	sm.centerPrint( string, ypos - 1 )
sm.centerPrint(string.rep( "-", w), ypos )
  else
	sm.centerPrint(string.rep( "-", w), ypos )
  end
end
function footPrint( alignment, string ) -- alignment: user must enter "left", "centre" or "right".
  term.clearLine( h )
  if alignment == "left" then
	term.setCursorPos( 1, h )
term.write( string )
  elseif alignment == "centre" or "center" then
	sm.centerPrint( string, h )
  elseif alignment == "right" then
	sm.rightPrint( string, h )
  end
end

the actual code:

--variables
local select = 1
--Printing the Menus
function printMain()
  sm.centerPrint( "Explorer", 5 )
  sm.centerPrint( "games", 8 )
  sm.centerPrint( "computer", 11 )
  sm.centerPrint( "info", h - 2 )

  local ypos = 6
  local underline = "--------"
  if select == 2 then
	 ypos = 9
  underline = "-----"
  elseif select == 3 then
	 ypos = 12
  underline = "--------"
  elseif select == 4 then
	 ypos = h - 1
  underline = "----"
  end
  sm.centerPrint( underline, ypos )
end
function printExplorer()
  sm.centerPrint( "My Documents", 5 )
  sm.centerPrint( "My Programs", 8 )
  sm.centerPrint( "Lua Command Shell", 11 )
  sm.centerPrint( "Edit/New Program", 14 )
  local ypos = 6
  local underline = "------------"
  if select == 2 then
	 ypos = 9
  underline = "-----------"
  elseif select == 3 then
	 ypos = 12
  underline = "-----------------"
  elseif select == 4 then
	 ypos = 15
  underline = "----------------"
  end
  sm.centerPrint( underline, ypos )
end
function printGames()
  sm.centerPrint( "Play Favourite", 5 )
  sm.centerPrint( "My Games", 8 )
  sm.centerPrint( "Gaming Setup", 11 )

  local ypos = 6
  local underline = "--------------"
  if select == 2 then
	 ypos = 9
  underline = "--------"
  elseif select == 3 then
	 ypos = 12
  underline = "------------"
  end
  sm.centerPrint( underline, ypos )
end
function printCPU()
  sm.centerPrint( "Shutdown", 5 )
  sm.centerPrint( "Reboot", 8 )
  sm.centerPrint( "Settings", 11 )
  sm.centerPrint( "Reset", 14 )
  local ypos = 6
  local underline = "--------"
  if select == 2 then
	 ypos = 9
  underline = "------"
  elseif select == 3 then
	 ypos = 12
  underline = "--------"
  elseif select == 4 then
	 ypos = h - 1
  underline = "-----"
  end
  sm.centerPrint( underline, ypos )
end
function printHelp()
  sm.centerPrint( "Get Help!", 5 )
  sm.centerPrint( "System Info", 8 )
  sm.centerPrint( "API Documentation", 11 )

  local ypos = 6
  local underline "---------"
  if select == 2 then
	 ypos = 9
  underline = "-----------"
  elseif select == 3 then
	 ypos = 12
	 underline = "-----------------"
  end
  sm.centerPrint( underline, ypos )
end
function printGameSetup()
  sm.centerPrint( "", 5 )
  sm.centerPrint( "", 8 )
  sm.centerPrint( "", 11 )

  local ypos = 6
  local underline = "----------"
  if select == 2 then
	 ypos = 9
  underline = "------"
  elseif select == 3 then
	 ypos = 12
  underline = "-----"
  end
  sm.centerPrint( underline, ypos )
end
function printSettings()
  sm.centerPrint( "Set Modem", 5 )
  sm.centerPrint( "Set Disk Drive", 8 )
  sm.centerPrint( "Other", 11 )

  local ypos = 6
  underline = "---------"
  if select == 2 then
	 ypos = 9
	 underline = "--------------"
  elseif select == 3 then
	 ypos = 12
  underline = "-----"
  end
  sm.centerPrint( underline, ypos )
end
function printReset()
  sm.centerPrint( "Info", 5 )
  sm.centerPrint( "Do It!", 8 )

  local ypos = 6
  local underline = "----"
  if select == 2 then
	 ypos = 9
  underline = "------"
  end
  sm.centerPrint( underline, ypos )
end
--menustate Table
local menustate = "main"
local mopt = {
  { ["main"] =
	  { options =
		{ "explorer", "games", "cpu", "help" }
	 draw = printMain
		run = runMain
	  }
  }
  { ["explorer"] =
	  {options =
		{ "my_docs", "my_programs", "lua", "edit" }
		draw = printExplorer
  run = runExplorer
	  }
  }
  { ["games"] =
	  {options =
	 { "favourite", "my_games", "setup", }
	 draw = printGames
   }
  }
  { ["cpu"] =
	  {options =
	 { "shutdown", "reboot", "settings", "reset"}
	 draw = printCPU
   }
  }
  { ["help"] =
	  {options =
	 { "help", "system", "apis"}
	 draw = printHelp
   }
  }
  { ["gaming_setup"] =
	  {options =
	 { "installing", "modems", "music" }
  draw = printGameSetup
   }
  }

  { ["settings"]
	  {options =
	 { "set_modem", "set_drive", "other" }
  draw = printSettings
   }
  }
  { ["reset"]
	  {options =
	 { "info", "do_it!" }
  draw = printReset
   }
  }
}
-- Running the menus
up = 200
down = 208
enter = 28
function runMain()
  while true do
	term.clear()
sm.headPrint( "SMIos: Main Menu", true, 2 )
sm.footPrint( "right", "by SMI -- Samdeman22")
mopt[menustate].draw()
mopt[menustate].run()

local id, key = os.pullEvent( "key" ) -- UP = 200, DOWN = 208, ENTER = 28.
if key == up and select > 1 then
   select = select - 1
	elseif key == down and select < #mopt[menustate].options then
	  select = select + 1
elseif key == enter then
   if mopt[menustate].options[select] == "explorer" then
	  menustate = "explorer"
   elseif mopt[menustate].options[select] == "games" then
	  menustate = "games"
   elseif mopt[menustate].options[select] == "cpu" then
	  menustate = "cpu"
   elseif mopt[menustate].options[select] == "help" then
	  menustate = "help"
   end
end
  end
end
function runExplorer()
  while true do
	 term.clear
	 sm.headPrint( "SMIos: Explorer", true, 2 )
	 sm.footPrint( "right", "by SMI -- Samdeman22" )
  mopt[menustate].draw()

  local id, key = os.pullEvent( "key" )
  if key == up and select > 1 then
	select = select - 1
  elseif key == down and select < #mopt[menustate].options then
	select = select + 1
  elseif key == enter then
	if mopt[menustate].options[select] == "my_docs" then
	
	elseif mopt[menustate].options[select] == "my_programs" then
	elseif mopt[menustate].options[select] == "lua" then
	  term.clear()
   sm.headPrint( "SMI: Lua", true, 2 )
   term.setCursorPos( 1, 3 )
	elseif mopt[menustate].options[select] == "edit" then
	  term.clear()
   term.setCursorPos( 1, 1 )
   print( "type the name of the program to edit, or create" )
   print( "note: programs created are saved in sm/my_programs/"
   term.write( "edit " )
  
  end
end
-- Actually running the program
runMain()

the code isnt completed, I just wanted to know if what I am doing is right.

Hope that makes sense to someone.

#2 ardera

  • Members
  • 503 posts
  • LocationGermany

Posted 29 August 2012 - 08:19 PM

Im not sure but I think in the API string has to be something like str, but not string, because it can replace the string api, can't it?

#3 samdeman22

  • Members
  • 101 posts
  • LocationScotland!

Posted 30 August 2012 - 08:10 PM

View Postardera, on 29 August 2012 - 08:19 PM, said:

Im not sure but I think in the API string has to be something like str, but not string, because it can replace the string api, can't it?

I never thought of that, does it matter what you call the parameters in functions? I could call the string something like ilikecheese and it would still work?

Does anyone else know if something is not right here? (apart from me making a parameter called string)





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users