Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- shell.run('RinAPI')
- shell.run('simplemenuapi')
- --Sprites
- psprite = {}
- psprite.up = '^'
- psprite.down = 'V'
- psprite.right = '>'
- psprite.left = '<'
- psprite.select = '-->'
- --ENTITIES
- player = entity.new('Player', 5, 5, psprite.up, true, true)
- entity.addvar(player, 'num', 1)
- title = entity.new('title', 1, 1, 'MineDwarf: Beginnings', true, false)
- entity.setabs(title, true)
- debug = entity.new('Debug', 2, window.h, ' ', true, false)
- entity.setabs(debug, true)
- --MENU
- tabmenu = {}
- tabmenu[1] = menu.create('Tab Menu', false)
- tabmenu[2] = menu.additem(tabmenu[1], 'E: Interact')
- tabmenu[3] = menu.additem(tabmenu[1], 'I: Inventory')
- tabmenu[4] = menu.additem(tabmenu[1], 'H: Controls')
- --menu.startselect(tabmenu[1])
- --menu.active = tabmenu[1]
- conmenu = {}
- conmenu.open = 0
- conmenu[1] = menu.create('Controls', true)
- conmenu[2] = menu.additem(conmenu[1], 'H: Close this menu')
- conmenu[3] = menu.additem(conmenu[1], 'WASD: Movement')
- conmenu[4] = menu.additem(conmenu[1], 'Backspace: Exit')
- --Inventory
- --invmenu = {}
- --invmenu.open = 0
- --invmenu[1] = menu.create('Inventory', true)
- --inv
- --Functions
- wall = {}
- wallnum = 1
- function wall.new(x,y)
- wall[wallnum] = entity.new('Wall', x, y, '=', true, true )
- wallnum = wallnum+1
- end
- room = {}
- function room.new(x1,y1,x2,y2)
- write('newroom')
- i=0
- while i < x2-x1+1 do
- wall.new(x1+i,y1)
- i= i+1
- end
- i=0
- while i < x2-x1+1 do
- wall.new(x1+i,y2)
- i= i+1
- end
- i=0
- while i < y2-y1+1 do
- if i ~= 4 then
- wall.new(x1, y1+i)
- end
- i= i+1
- end
- i=0
- while i < y2-y1+1 do
- wall.new(x2, y1+i)
- i= i+1
- end
- end
- room.new(7,7,15,15)
- --[[||||| KEY EXECUTION |||||]]--
- function exec.key(k)
- --Up
- if k == 17 then
- entity.setpos( player, 0, -1, true )
- entity.setvar(player, 'num', entity.getvar(player, 'num') + 1 )
- entity.setchar( player, psprite.up )
- end
- --Down
- if k == 31 then
- entity.setpos( player, 0, 1, true )
- entity.setvar(player, 'num', entity.getvar(player, 'num') + 1 )
- entity.setchar( player, psprite.down )
- end
- --Left
- if k == 30 then
- entity.setpos( player, -1, 0, true )
- entity.setvar(player, 'num', entity.getvar(player, 'num') + 1 )
- entity.setchar( player, psprite.left )
- end
- --Right
- if k == 32 then
- entity.setpos( player, 1, 0, true )
- entity.setvar(player, 'num', entity.getvar(player, 'num') + 1 )
- entity.setchar( player, psprite.right )
- end
- if k == 18 then
- check = false
- local x = entity.getposx(player)
- local y = entity.getposy(player)
- local facing = entity.getvar(player, 'Character')
- if facing == psprite.up then
- check = get.locphys(x, y-1)
- elseif facing == psprite.down then
- check = get.locphys(x, y+1)
- elseif facing == psprite.right then
- check = get.locphys(x+1, y)
- elseif facing == psprite.left then
- check = get.locphys(x-1, y)
- end
- if check then
- check = entity.getvar(check, 'Name')
- if check == 'Wall' then
- entity.setchar(debug, "That's a wall")
- time.text = 1
- end
- end
- end
- if k == 35 then
- if conmenu.open == 0 then
- conmenu.open = 1
- else
- conmenu.open = 0
- end
- end
- if k == 28 then
- menu.choose()
- end
- --[[Screen]]--
- --[[Up
- if k == 200 then
- menu.up(tabmenu[1])
- end
- --Down
- if k == 208 then
- menu.down(tabmenu[1])
- end]]--
- --[[Left
- if k == 203 then
- screen.x = screen.x - 1
- end
- --Right
- if k == 205 then
- screen.x = screen.x + 1
- end]]--
- end
- time = {}
- time.text = 0
- function exec.step()
- if time.text ~= 0 then
- time.text = time.text+1
- end
- if time.text == 50 then
- time.text = 0
- entity.setchar(debug, ' ')
- end
- --[[Window Follow]]--
- screen.x = entity.getposx(player) - window.midw
- screen.y = entity.getposy(player) - window.midh
- end
- function menu.choice(id)
- entity.setchar(debug, id)
- time.text = 1
- end
- function exec.cdraw()
- if conmenu.open == 1 then
- menu.draw(conmenu[1], 1, 2, 0)
- else
- menu.draw(tabmenu[1], 1, 2, 0)
- end
- end
- exec.start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement