Refactor ModVersion into Mod and ModVersion
* Remove V1 of the mod version parser and shift V2 up to be V1 * Add a parser for mod.cg files, and refactor the the mod-version.cg files to push the appropriate content up to the mod.cg * Remove the concept of "silent" from BaseModel along with logging each event as they are fired (which is what really prompted the need for it in the first place) * Move use of the Storage class to be completely the province of the controllers most closely related to models affected * Convert the ModVersionController to the ModController and have it take on responsibility for choosing the mod version * Update BaseModel to support simple accessors for the current state * Update CraftingPlan to be able to remove uncraftable items * Implement the Mod model
This commit is contained in:
@@ -5,22 +5,25 @@ Copyright (c) 2014-2015 by Redwood Labs
|
||||
All rights reserved.
|
||||
###
|
||||
|
||||
BaseController = require './base_controller'
|
||||
{DefaultModVersions} = require '../constants'
|
||||
{Duration} = require '../constants'
|
||||
ModVersion = require '../models/mod_version'
|
||||
ModVersionController = require './mod_version_controller'
|
||||
BaseController = require './base_controller'
|
||||
{DefaultMods} = require '../constants'
|
||||
{Duration} = require '../constants'
|
||||
Mod = require '../models/mod'
|
||||
ModController = require './mod_controller'
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
module.exports = class ModPackController extends BaseController
|
||||
|
||||
constructor: (options={})->
|
||||
if not options.model? then throw new Error "options.model is required"
|
||||
options.templateName = 'mod_pack'
|
||||
if not options.model? then throw new Error 'options.model is required'
|
||||
if not options.plan? then throw new Error 'options.plan is required'
|
||||
options.templateName = 'mod_pack'
|
||||
super options
|
||||
|
||||
@_controllers = []
|
||||
@_plan = options.plan
|
||||
@_storage = options.storage
|
||||
|
||||
# Event Methods ################################################################################
|
||||
|
||||
@@ -31,10 +34,8 @@ module.exports = class ModPackController extends BaseController
|
||||
# BaseController Overrides #####################################################################
|
||||
|
||||
onWillRender: ->
|
||||
for attributes in DefaultModVersions
|
||||
modVersion = new ModVersion attributes
|
||||
modVersion.fetch()
|
||||
@model.addModVersion modVersion
|
||||
for name in DefaultMods
|
||||
@model.addMod new Mod name:name
|
||||
|
||||
onDidRender: ->
|
||||
@$table = @$('table')
|
||||
@@ -48,14 +49,14 @@ module.exports = class ModPackController extends BaseController
|
||||
return
|
||||
|
||||
index = 0
|
||||
modVersions = @model.getModVersions()
|
||||
while index < Math.min @_controllers.length, modVersions.length
|
||||
mods = @model.getMods()
|
||||
while index < Math.min @_controllers.length, mods.length
|
||||
controller = @_controllers[index]
|
||||
controller.model = modVersions[index]
|
||||
controller.model = mods[index]
|
||||
index++
|
||||
|
||||
while @_controllers.length < modVersions.length
|
||||
controller = new ModVersionController model:modVersions[index]
|
||||
while @_controllers.length < mods.length
|
||||
controller = new ModController model:mods[index], plan:@_plan, storage:@_storage
|
||||
controller.render()
|
||||
@_controllers.push controller
|
||||
controller.$el.hide duration:0
|
||||
@@ -63,7 +64,7 @@ module.exports = class ModPackController extends BaseController
|
||||
controller.$el.slideDown duration:Duration.normal
|
||||
index++
|
||||
|
||||
while @_controllers.length > modVersions.length
|
||||
while @_controllers.length > mods.length
|
||||
controller = @_controllers.pop()
|
||||
controller.$el.slideUp duration:Duration.normal, complete:-> controller.$el.remove()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user