Advertisement
Guest User

Untitled

a guest
May 25th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1.  
  2. inherits = require('inherits')
  3. EventEmitter = require('events').EventEmitter
  4.  
  5. module.exports = (game, opts) ->
  6. return new Gamemode(game, opts)
  7.  
  8. module.exports.pluginInfo =
  9. loadAfter: ['voxel-mine', 'voxel-fly', 'voxel-registry', 'voxel-harvest', 'voxel-commands', 'voxel-keys']
  10.  
  11. class Gamemode
  12. constructor: (@game, opts) ->
  13. return if not @game.isClient # TODO
  14. super @game, opts
  15.  
  16. @keys = @game.plugins.get('voxel-keys') ? throw new Error('voxel-gamemode requires voxel-keys plugin')
  17.  
  18. @mode = opts.startMode ? 'survival'
  19. @registry = @game.plugins?.get('voxel-registry') ? throw new Error('voxel-gamemode requires "voxel-registry" plugin')
  20.  
  21. @enable()
  22. inherits(Gamemode, EventEmitter)
  23.  
  24. enable: () ->
  25. @game.plugins?.get('voxel-commands')?.registerCommand 'creative', @enterCreative.bind(@), '', 'enters creative mode'
  26. @game.plugins?.get('voxel-commands')?.registerCommand 'survival', @enterSurvival.bind(@), '', 'enters survival mode'
  27.  
  28. if @game.plugins?.isEnabled('voxel-fly') and @mode == 'survival'
  29. @game.plugins.disable('voxel-fly')
  30.  
  31. @keys.registerKey 'inventory', 'E'
  32. @keys.down.on 'inventory', @onInventory = () =>
  33. if @mode == 'creative' and @game.plugins.isEnabled('voxel-inventory-creative')
  34. @game.plugins.get('voxel-inventory-creative')?.open()
  35. else
  36. @game.plugins.get('voxel-inventory-crafting')?.open()
  37. @on 'enterCreative', =>
  38. console.log "Has entered Creative"
  39. @on 'enterSurival', =>
  40. console.log "Has entered Survival"
  41.  
  42. enterCreative: () ->
  43. @mode = 'creative'
  44. @game.plugins.enable('voxel-fly')
  45. @game.plugins.get('voxel-mine')?.instaMine = true
  46. @game.plugins.get('voxel-harvest')?.enableToolDamage = false
  47. console.log 'Entered creative mode'
  48. @game.plugins?.get('voxel-console')?.log?('Entered creative mode')
  49. @emit ('enterCreative')
  50.  
  51. enterSurvival: () ->
  52. @mode = 'survival'
  53. @game.plugins.disable 'voxel-fly'
  54. @game.plugins.get('voxel-mine')?.instaMine = false
  55. @game.plugins.get('voxel-harvest')?.enableToolDamage = true
  56. console.log 'Entered survival mode'
  57. @game.plugins?.get('voxel-console')?.log?('Entered survival mode')
  58. @emit 'enterSurvival'
  59.  
  60. disable: () ->
  61. @keys.down.removeListener 'inventory', @onInventory
  62. @keys.unregisterKey 'inventory'
  63. # TODO: un-registerCommand
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement