dsiver144

HM_System

Jun 19th, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.92 KB | None | 0 0
  1.  
  2. include HM_Sys
  3. class Game_Player
  4. attr_accessor :tool
  5. attr_accessor :hand
  6. alias hm_init_p1 initialize
  7. def initialize(*args)
  8. hm_init_p1(*args)
  9. @tool = nil
  10. @hand = nil
  11. end
  12. #--------------------------------------------------------------------------
  13. # * Determine if Passable
  14. # d : Direction (2,4,6,8)
  15. #--------------------------------------------------------------------------
  16. def passable?(x, y, d)
  17. x2 = $game_map.round_x_with_direction(x, d)
  18. y2 = $game_map.round_y_with_direction(y, d)
  19. return false unless $game_map.valid?(x2, y2)
  20. return true if @through || debug_through?
  21. return false unless map_passable?(x, y, d)
  22. return false unless map_passable?(x2, y2, reverse_dir(d))
  23. return false if collide_with_characters?(x2, y2)
  24. return false if collide_with_plant?(x2,y2)
  25. return true
  26. end
  27. #--------------------------------------------------------------------------
  28. # * Detect Collision with Event
  29. #--------------------------------------------------------------------------
  30. def collide_with_plant?(x, y)
  31. if $game_system.my_farm
  32. return false if $game_system.my_farm[[x,y]] && $game_system.my_farm[[x,y]].seed_stage
  33. $game_system.my_farm.has_key?([x,y]) && !$game_system.my_farm[[x,y]].soil
  34. end
  35. end
  36. end
  37.  
  38. class Spriteset_Map
  39. alias hm_init_z1 initialize
  40. alias hm_update_z1 update
  41. alias hm_dispose_z1 dispose
  42. TOOL_DELAY = 20
  43. #----------------------------------------------------------------------
  44. # * Initialize
  45. #----------------------------------------------------------------------
  46. def initialize
  47. $game_player.tool ||= $data_weapons[5]
  48. hm_init_z1
  49. end
  50.  
  51. #--------------------------------------------------------------------------
  52. # * Create Viewport
  53. #--------------------------------------------------------------------------
  54. def create_viewports
  55. @viewport1 = Viewport.new
  56. @viewport2 = Viewport.new
  57. @viewport3 = Viewport.new
  58. @viewport2.z = 50
  59. @viewport3.z = 100
  60. refresh_sprites if $game_map.map_id == MAIN_FARM
  61. @tool_range = Sprite_ToolSquare.new(@viewport1) if $game_player.tool && !$game_player.tool.seed
  62. end
  63. #--------------------------------------------------------------------------
  64. # * Refresh Plant Sprite
  65. #--------------------------------------------------------------------------
  66. def refresh_sprites
  67. if $game_system.my_farm.size > 0
  68. $game_system.my_farm.values.each do |plant|
  69. if plant
  70. plant.sprite = nil
  71. plant.sprite = Sprite_Plant.new(plant,@viewport1)
  72. plant.sprite.update_seed
  73. end
  74. end
  75. end
  76. end
  77. #--------------------------------------------------------------------------
  78. # * Update
  79. #--------------------------------------------------------------------------
  80. def update
  81. hm_update_z1
  82. @tool_range.update if @tool_range && !$game_map.interpreter.running?
  83. #Harvest Plant Update Input
  84. if Input.trigger?(:C) && !$game_map.interpreter.running? && !$game_player.moving?
  85. case $game_player.direction
  86. when 2
  87. @target = [$game_player.x,$game_player.y+1]
  88. when 4
  89. @target = [$game_player.x-1,$game_player.y]
  90. when 6
  91. @target = [$game_player.x+1,$game_player.y]
  92. when 8
  93. @target = [$game_player.x,$game_player.y-1]
  94. end
  95. #Harvest Plant
  96. if $game_system.my_farm[@target] && $game_system.my_farm[@target].can_harvest?
  97. $game_system.my_farm[@target].harvest!
  98. end
  99. end
  100.  
  101. #Empty Tool Checking
  102. if $game_party.has_item?($game_player.tool) == false
  103. $game_player.tool = nil
  104. end
  105.  
  106. #Using Tool Update Input
  107. if Input.trigger?(:L) && $game_player.tool && !$game_map.interpreter.running? && !$game_player.moving?
  108. case $game_player.direction
  109. when 2
  110. @target = [$game_player.x,$game_player.y+1]
  111. when 4
  112. @target = [$game_player.x-1,$game_player.y]
  113. when 6
  114. @target = [$game_player.x+1,$game_player.y]
  115. when 8
  116. @target = [$game_player.x,$game_player.y-1]
  117. end
  118. $game_temp.reserve_common_event(ACTION_SPRITE_CMEV)
  119. @tool_delay = TOOL_DELAY
  120. end #END TOOL
  121. #Tool using
  122. if @tool_delay && $game_map.map_id == MAIN_FARM
  123. if @tool_delay > 0
  124. @tool_delay -= 1
  125. else
  126. #Use Hoe
  127. if !$game_system.my_farm.has_key?(@target)
  128. #On Nothing
  129. if $game_player.tool && $game_player.tool.id == 5 && $game_player.tool.is_a?(RPG::Weapon) && $game_map.region_id(@target[0],@target[1]) == 16
  130. if !$game_system.my_farm[@target]
  131. $game_system.my_farm[@target] = HM_Plant.new(@target[0],@target[1],$game_map.map_id,@viewport1)
  132. end
  133. end
  134. else
  135. #One Seeded
  136. if $game_player.tool && $game_player.tool.id == 5 && $game_player.tool.is_a?(RPG::Weapon) && $game_map.region_id(@target[0],@target[1]) == 16
  137. if $game_system.my_farm[@target]
  138. $game_system.my_farm[@target].hoe!
  139. end
  140. end
  141. end
  142. #Use Hammer
  143. if $game_player.tool && $game_player.tool.id == 2 && $game_player.tool.is_a?(RPG::Weapon) && $game_map.region_id(@target[0],@target[1]) == 16
  144. if $game_system.my_farm[@target]
  145. $game_system.my_farm[@target].hammer!
  146. refresh_sprites
  147. end
  148. end
  149. #Use Axe
  150. if $game_player.tool && $game_player.tool.id == 1 && $game_player.tool.is_a?(RPG::Weapon) && $game_map.region_id(@target[0],@target[1]) == 16
  151. if $game_system.my_farm[@target]
  152. $game_system.my_farm[@target].axe!
  153. refresh_sprites
  154. end
  155. end
  156. #Use Watering Can
  157. if $game_player.tool && $game_player.tool.id == 3 && $game_player.tool.is_a?(RPG::Weapon) && $game_map.region_id(@target[0],@target[1]) == 16
  158. if $game_system.my_farm[@target] && $game_system.water_var > 0
  159. $game_system.my_farm[@target].water
  160. end
  161. end
  162. #Use Sickle
  163. if $game_player.tool && $game_player.tool.id == 4 && $game_player.tool.is_a?(RPG::Weapon) && $game_map.region_id(@target[0],@target[1]) == 16
  164. if $game_system.my_farm[@target]
  165. $game_system.my_farm[@target].destroy!
  166. refresh_sprites
  167. end
  168. end
  169. #Seeding
  170. if $game_player.tool && $game_player.tool.seed == true && $game_player.tool.is_a?(RPG::Weapon) && $game_map.region_id($game_player.x,$game_player.y) == 16 && !$game_player.moving?
  171. @target1 = [$game_player.x,$game_player.y]
  172. @offset = [[0,0],[-1,0],[-1,-1],[-1,1],[0,1],[0,-1],[1,0],[1,-1],[1,1]]
  173. @offset.each do |off|
  174. @targets ||= []
  175. @targets.push([@target1[0]+off[0],@target1[1]+off[1]])
  176. end
  177. p @targets
  178. @targets.each do |target|
  179. if $game_system.my_farm[target]
  180. if $game_system.my_farm[target].soil == true && !$game_system.my_farm[target].id
  181. $game_system.my_farm[target].set_seed = $game_player.tool.seed_id
  182. end
  183. end
  184. end
  185. $game_party.lose_item($game_player.tool,1)
  186. end
  187. @tool_delay = nil
  188. @targets.clear if @targets
  189. @targets = nil
  190. @offset = nil
  191. @target1 = nil
  192. @target = nil
  193. end
  194. end
  195.  
  196. #Harvest Plant Update Input
  197. if $game_system.my_farm && $game_map.map_id == MAIN_FARM
  198. #Cheating
  199. if Input.trigger?(:R)
  200. $game_system.my_farm.values.each do |plant|
  201. plant.grow
  202. end
  203. end
  204. #Spawn Rock AND Lumber
  205. if Input.trigger?(:Z)
  206. for i in 0...$game_map.width
  207. for j in 0...$game_map.height
  208. if $game_map.region_id(i,j) == 16
  209. if !$game_system.my_farm[[i,j]]
  210. if rand(4) == 1
  211. $game_system.my_farm[[i,j]] = HM_Plant.new(i,j,$game_map.map_id,@viewport1,rand(3)+1)
  212. end
  213. end
  214. end
  215. end
  216. end
  217. end
  218.  
  219. #Update All plants each frame.
  220. $game_system.my_farm.values.each do |plant|
  221. plant.update if plant
  222. end
  223. end
  224.  
  225. end
  226. #--------------------------------------------------------------------------
  227. # * Dispose
  228. #--------------------------------------------------------------------------
  229. def dispose
  230. dispose_farm_sprites
  231. hm_dispose_z1
  232. end
  233. #--------------------------------------------------------------------------
  234. # * Dispose
  235. #--------------------------------------------------------------------------
  236. def dispose_farm_sprites
  237. if $game_system.my_farm.size > 0
  238. p "Dispose"
  239. $game_system.my_farm.values.each do |plant|
  240. p plant
  241. plant.sprite_dispose if plant
  242. end
  243. end
  244. @tool_range.dispose if @tool_range
  245. @tool_range = nil
  246. end
  247.  
  248. end
Advertisement
Add Comment
Please, Sign In to add comment