Quipex

Disk/mem/redworks/programs/MineDwarf

Apr 23rd, 2012
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. shell.run('mem/redworks/apis/redworks')
  2.  
  3. --Sprites
  4. psprite = {}
  5. psprite.up = '^'
  6. psprite.down = 'V'
  7. psprite.right = '>'
  8. psprite.left = '<'
  9. psprite.select = '-->'
  10.  
  11. --Functions
  12.  
  13. player = entity.new('Player', 5, 5, psprite.up, true, true)
  14. entity.addvar(player, 'num', 1)
  15. title = entity.new('title', 1, 1, 'MineDwarf: Beginnings Press Backspace to Exit', true, false)
  16. entity.setabs(title, true)
  17. debug = entity.new('Debug', 2, 2, ' ', true, false)
  18. entity.setabs(debug, true)
  19.  
  20. commands = entity.new('Command Bar', 1, window.h, 'E: Interact', true, false)
  21. entity.setabs(commands, true)
  22.  
  23. wall = {}
  24. wallnum = 1
  25.  
  26. function wall.new(x,y)
  27. wall[wallnum] = entity.new('Wall', x, y, '=', true, true )
  28. wallnum = wallnum+1
  29. end
  30.  
  31. room = {}
  32.  
  33. function room.new(x1,y1,x2,y2)
  34. write('newroom')
  35. i=0
  36. while i < x2-x1+1 do
  37. wall.new(x1+i,y1)
  38. i= i+1
  39. end
  40. i=0
  41. while i < x2-x1+1 do
  42. wall.new(x1+i,y2)
  43. i= i+1
  44. end
  45. i=0
  46. while i < y2-y1+1 do
  47. if i ~= 4 then
  48. wall.new(x1, y1+i)
  49. end
  50. i= i+1
  51. end
  52. i=0
  53. while i < y2-y1+1 do
  54. wall.new(x2, y1+i)
  55. i= i+1
  56. end
  57. end
  58.  
  59. room.new(7,7,15,15)
  60.  
  61. --[[||||| KEY EXECUTION |||||]]--
  62. function exec.key(k)
  63. --Up
  64. if k == 17 then
  65. entity.setpos( player, 0, -1, true )
  66. entity.setvar(player, 'num', entity.getvar(player, 'num') + 1 )
  67. entity.setchar( player, psprite.up )
  68. end
  69. --Down
  70. if k == 31 then
  71. entity.setpos( player, 0, 1, true )
  72. entity.setvar(player, 'num', entity.getvar(player, 'num') + 1 )
  73. entity.setchar( player, psprite.down )
  74. end
  75. --Left
  76. if k == 30 then
  77. entity.setpos( player, -1, 0, true )
  78. entity.setvar(player, 'num', entity.getvar(player, 'num') + 1 )
  79. entity.setchar( player, psprite.left )
  80. end
  81. --Right
  82. if k == 32 then
  83. entity.setpos( player, 1, 0, true )
  84. entity.setvar(player, 'num', entity.getvar(player, 'num') + 1 )
  85. entity.setchar( player, psprite.right )
  86. end
  87.  
  88. if k == 18 then
  89. check = false
  90. local x = entity.getposx(player)
  91. local y = entity.getposy(player)
  92. local facing = entity.getvar(player, 'Character')
  93. if facing == psprite.up then
  94. check = get.locphys(x, y-1)
  95. elseif facing == psprite.down then
  96. check = get.locphys(x, y+1)
  97. elseif facing == psprite.right then
  98. check = get.locphys(x+1, y)
  99. elseif facing == psprite.left then
  100. check = get.locphys(x-1, y)
  101. end
  102.  
  103. if check then
  104. check = entity.getvar(check, 'Name')
  105. if check == 'Wall' then
  106. entity.setchar(debug, "That's a wall")
  107. time.text = 1
  108. end
  109. end
  110. end
  111.  
  112.  
  113.  
  114.  
  115. --[[Screen]]--
  116. --[[
  117. --Up
  118. if k == 200 then
  119. screen.y = screen.y - 1
  120. end
  121. --Down
  122. if k == 208 then
  123. screen.y = screen.y + 1
  124. end
  125. --Left
  126. if k == 203 then
  127. screen.x = screen.x - 1
  128. end
  129. --Right
  130. if k == 205 then
  131. screen.x = screen.x + 1
  132. end
  133. ]]--
  134. end
  135.  
  136. time = {}
  137. time.text = 0
  138. function exec.step()
  139. if time.text ~= 0 then
  140. time.text = time.text+1
  141. end
  142. if time.text == 50 then
  143. time.text = 0
  144. entity.setchar(debug, ' ')
  145. end
  146. --[[Window Follow]]--
  147. screen.x = entity.getposx(player) - window.midw
  148. screen.y = entity.getposy(player) - window.midh
  149. end
  150.  
  151. exec.start()
Advertisement
Add Comment
Please, Sign In to add comment