Refactored the GameMenu to be part of play.js. Set up the config to automatically bundle templates into their respective views, if their names match.

This commit is contained in:
Scott Erickson 2014-11-29 12:46:04 -08:00
parent 1c33842125
commit 9b5228afd9
26 changed files with 34 additions and 24 deletions

View file

@ -9,7 +9,6 @@ module.exports = ModuleLoader = class ModuleLoader extends CocoClass
@WADS = [
'lib'
'views/play'
'views/game-menu'
'views/editor'
]

View file

@ -1,6 +1,6 @@
CocoClass = require 'core/CocoClass'
PlayHeroesModal = require 'views/play/modal/PlayHeroesModal'
InventoryModal = require 'views/game-menu/InventoryModal'
InventoryModal = require 'views/play/menu/InventoryModal'
LevelSession = require 'models/LevelSession'
SuperModel = require 'models/SuperModel'
ThangType = require 'models/ThangType'

View file

@ -13,7 +13,7 @@ block content
each campaign in campaigns
.campaign-container.col-sm-6
h1
a(href="/play/#{campaign.levels[0].levelPath || 'level'}/#{campaign.levels[0].id}", data-i18n="play.campaign_#{campaign.id}")= campaign.name
a(href="/play#{campaign.levels[0].levelPath || 'level'}/#{campaign.levels[0].id}", data-i18n="play.campaign_#{campaign.id}")= campaign.name
p.campaign-description(data-i18n="[html]play.campaign_#{campaign.id}_description")!= campaign.description
each level in campaign.levels
a(href=level.disabled ? "/play" : "/play/#{level.levelPath || 'level'}/#{level.id}", disabled=level.disabled, class=levelStatusMap[level.id] || '')

View file

@ -87,4 +87,4 @@ if ladderGame
.ladder-submission-view
else
a.btn.btn-primary(href="/play/ladder/#{levelSlug}#my-matches", data-i18n="multiplayer.victory_go_ladder") Return to Ladder
a.btn.btn-primary(href="/play/ladder#{levelSlug}#my-matches", data-i18n="multiplayer.victory_go_ladder") Return to Ladder

View file

@ -1,5 +1,5 @@
RootView = require 'views/core/RootView'
template = require 'templates/community'
template = require 'templates/community-view'
module.exports = class CommunityView extends RootView
id: 'community-view'

View file

@ -1,5 +1,5 @@
RootView = require 'views/core/RootView'
template = require 'templates/home'
template = require 'templates/home-view'
module.exports = class HomeView extends RootView
id: 'home-view'

View file

@ -1,5 +1,5 @@
ModalView = require 'views/core/ModalView'
template = require 'templates/modal/model'
template = require 'templates/modal/model-modal'
module.exports = class ModelModal extends ModalView
id: 'model-modal'

View file

@ -1,5 +1,5 @@
RootView = require 'views/core/RootView'
template = require 'templates/main-play-view'
template = require 'templates/play/main-play-view'
LevelSession = require 'models/LevelSession'
CocoCollection = require 'collections/CocoCollection'

View file

@ -2,11 +2,11 @@ CocoView = require 'views/core/CocoView'
template = require 'templates/play/level/control_bar'
{me} = require 'core/auth'
GameMenuModal = require 'views/game-menu/GameMenuModal'
GameMenuModal = require 'views/play/menu/GameMenuModal'
RealTimeModel = require 'models/RealTimeModel'
RealTimeCollection = require 'collections/RealTimeCollection'
LevelSetupManager = require 'lib/LevelSetupManager'
GameMenuModal = require 'views/game-menu/GameMenuModal'
GameMenuModal = require 'views/play/menu/GameMenuModal'
CampaignOptions = require 'lib/CampaignOptions'
module.exports = class ControlBarView extends CocoView

View file

@ -1,10 +1,10 @@
ModalView = require 'views/core/ModalView'
template = require 'templates/game-menu/game-menu-modal'
template = require 'templates/play/menu/game-menu-modal'
submenuViews = [
require 'views/game-menu/SaveLoadView'
require 'views/game-menu/OptionsView'
require 'views/game-menu/GuideView'
require 'views/game-menu/MultiplayerView'
require 'views/play/menu/SaveLoadView'
require 'views/play/menu/OptionsView'
require 'views/play/menu/GuideView'
require 'views/play/menu/MultiplayerView'
]
module.exports = class GameMenuModal extends ModalView

View file

@ -1,5 +1,5 @@
CocoView = require 'views/core/CocoView'
template = require 'templates/game-menu/guide-view'
template = require 'templates/play/menu/guide-view'
Article = require 'models/Article'
utils = require 'core/utils'

View file

@ -1,5 +1,5 @@
ModalView = require 'views/core/ModalView'
template = require 'templates/game-menu/inventory-modal'
template = require 'templates/play/menu/inventory-modal'
buyGemsPromptTemplate = require 'templates/play/modal/buy-gems-prompt'
{me} = require 'core/auth'
ThangType = require 'models/ThangType'

View file

@ -1,5 +1,5 @@
CocoView = require 'views/core/CocoView'
template = require 'templates/game-menu/item-view'
template = require 'templates/play/menu/item-view'
module.exports = class ItemView extends CocoView
className: 'item-view'

View file

@ -1,5 +1,5 @@
CocoView = require 'views/core/CocoView'
template = require 'templates/game-menu/multiplayer-view'
template = require 'templates/play/menu/multiplayer-view'
{me} = require 'core/auth'
ThangType = require 'models/ThangType'
LadderSubmissionView = require 'views/play/common/LadderSubmissionView'

View file

@ -1,5 +1,5 @@
CocoView = require 'views/core/CocoView'
template = require 'templates/game-menu/options-view'
template = require 'templates/play/menu/options-view'
{me} = require 'core/auth'
ThangType = require 'models/ThangType'
User = require 'models/User'

View file

@ -1,5 +1,5 @@
CocoView = require 'views/core/CocoView'
template = require 'templates/game-menu/save-load-view'
template = require 'templates/play/menu/save-load-view'
{me} = require 'core/auth'
ThangType = require 'models/ThangType'

View file

@ -72,7 +72,6 @@ exports.config =
#- Wads. Groups of modules by folder which are loaded as a group when needed.
'javascripts/app/lib.js': regJoin('^app/lib')
'javascripts/app/views/play.js': regJoin('^app/views/play')
'javascripts/app/views/game-menu.js': regJoin('^app/views/game-menu')
'javascripts/app/views/editor.js': regJoin('^app/views/editor')
#- world.js, used by the worker to generate the world in game
@ -185,8 +184,20 @@ for file in coffeeFiles
inputFile = file.replace('./app', 'app')
outputFile = file.replace('.coffee', '.js').replace('./app', 'javascripts/app')
exports.config.files.javascripts.joinTo[outputFile] = inputFile
numBundles = 0
for file in jadeFiles
inputFile = file.replace('./app', 'app')
outputFile = file.replace('.jade', '.js').replace('./app', 'javascripts/app')
exports.config.files.templates.joinTo[outputFile] = inputFile
exports.config.files.templates.joinTo[outputFile] = inputFile
#- If a view template name matches its view, bundle it in there.
templateFileName = outputFile.match(/[^/]+$/)[0]
viewFileName = _.str.capitalize(_.str.camelize(templateFileName))
possibleViewFilePath = outputFile.replace(templateFileName, viewFileName).replace('/templates/', '/views/')
if exports.config.files.javascripts.joinTo[possibleViewFilePath]
exports.config.files.templates.joinTo[possibleViewFilePath] = inputFile
numBundles += 1
console.log 'Bundled', numBundles, 'templates with their views.'