Allow each mod to have a default version
When a visitor arrives at the site for the first time, this will ensure they have a certain set of mods on/off. Right now, that means IC2-Classic is off by default, and everything else is on.
This commit is contained in:
+1
-1
@@ -3,4 +3,4 @@
|
|||||||
build
|
build
|
||||||
dist
|
dist
|
||||||
node_modules
|
node_modules
|
||||||
src/scripts/views.js
|
src/coffee/views.js
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ urls = [
|
|||||||
"#{base}/craft/"
|
"#{base}/craft/"
|
||||||
]
|
]
|
||||||
|
|
||||||
for modSlug in DefaultMods
|
for modSlug, modData of DefaultMods
|
||||||
modSlugs[modSlug] = modSlug
|
modSlugs[modSlug] = modSlug
|
||||||
|
|
||||||
mod = new Mod slug:modSlug
|
mod = new Mod slug:modSlug
|
||||||
|
|||||||
@@ -6,16 +6,15 @@ All rights reserved.
|
|||||||
###
|
###
|
||||||
|
|
||||||
# Minecraft must be first
|
# Minecraft must be first
|
||||||
exports.DefaultMods = [
|
exports.DefaultMods =
|
||||||
'minecraft',
|
minecraft: { defaultVersion: '1.7.10' }
|
||||||
'applied_energistics_2',
|
applied_energistics_2: { defaultVersion: 'rv1-stable-1' }
|
||||||
'buildcraft',
|
buildcraft: { defaultVersion: '6.2.6' }
|
||||||
'enderio',
|
enderio: { defaultVersion: '2.2.7.235' }
|
||||||
'ic2_classic',
|
ic2_classic: { defaultVersion: 'none' }
|
||||||
'industrial_craft_2',
|
industrial_craft_2: { defaultVersion: '2.2.663' }
|
||||||
'railcraft',
|
railcraft: { defaultVersion: '9.5.0' }
|
||||||
'thermal_expansion',
|
thermal_expansion: { defaultVersion: '4.0.0B6-23' }
|
||||||
]
|
|
||||||
|
|
||||||
exports.Duration = Duration = {}
|
exports.Duration = Duration = {}
|
||||||
Duration.snap = 200
|
Duration.snap = 200
|
||||||
|
|||||||
@@ -113,8 +113,6 @@ module.exports = class ItemPageController extends PageController
|
|||||||
@$byline.fadeOut duration:Duration.fast
|
@$byline.fadeOut duration:Duration.fast
|
||||||
|
|
||||||
_refreshDescription: ->
|
_refreshDescription: ->
|
||||||
logger.debug "refreshing description"
|
|
||||||
logger.debug "item.description: #{@model?.item?.description}"
|
|
||||||
description = @model.compileDescription()
|
description = @model.compileDescription()
|
||||||
if description?
|
if description?
|
||||||
@$descriptionPanel.html description
|
@$descriptionPanel.html description
|
||||||
@@ -189,6 +187,4 @@ module.exports = class ItemPageController extends PageController
|
|||||||
|
|
||||||
@model.item = item
|
@model.item = item
|
||||||
item.fetch()
|
item.fetch()
|
||||||
item.on Event.sync, =>
|
item.on Event.sync, => @refresh()
|
||||||
logger.debug "item loaded"
|
|
||||||
@refresh()
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ All rights reserved.
|
|||||||
###
|
###
|
||||||
|
|
||||||
BaseController = require './base_controller'
|
BaseController = require './base_controller'
|
||||||
{DefaultMods} = require '../constants'
|
|
||||||
{Duration} = require '../constants'
|
{Duration} = require '../constants'
|
||||||
Mod = require '../models/mod'
|
Mod = require '../models/mod'
|
||||||
ModSelectorController = require './mod_selector_controller'
|
ModSelectorController = require './mod_selector_controller'
|
||||||
|
|||||||
@@ -49,10 +49,10 @@ module.exports = class CraftingGuideRouter extends Backbone.Router
|
|||||||
makeResponder = (m)-> return ->
|
makeResponder = (m)-> return ->
|
||||||
m.activeModVersion.fetch() if m.activeModVersion?
|
m.activeModVersion.fetch() if m.activeModVersion?
|
||||||
|
|
||||||
for modSlug in DefaultMods
|
for modSlug, modData of DefaultMods
|
||||||
mod = new Mod slug:modSlug
|
mod = new Mod slug:modSlug
|
||||||
mod.on Event.change + ':activeModVersion', makeResponder mod
|
mod.on Event.change + ':activeModVersion', makeResponder mod
|
||||||
@storage.register "mod:#{mod.slug}", mod, 'activeVersion'
|
@storage.register "mod:#{mod.slug}", mod, 'activeVersion', modData.defaultVersion
|
||||||
mod.fetch()
|
mod.fetch()
|
||||||
|
|
||||||
@modPack.addMod mod
|
@modPack.addMod mod
|
||||||
|
|||||||
@@ -26,16 +26,15 @@ module.exports = class Storage
|
|||||||
@storage.setItem key, value
|
@storage.setItem key, value
|
||||||
logger.verbose -> "stored #{value} into #{key}"
|
logger.verbose -> "stored #{value} into #{key}"
|
||||||
|
|
||||||
register: (key, model, properties...)->
|
register: (key, model, property, defaultValue=null)->
|
||||||
modelData = @_models[key]
|
modelData = @_models[key]
|
||||||
if not modelData? then modelData = @_models[key] = model:model, properties:{}
|
if not modelData? then modelData = @_models[key] = model:model, properties:{}
|
||||||
makeStoreMethod = (k, m, p)=> return => @_storeProperty(k, m, p)
|
makeStoreMethod = (k, m, p)=> return => @_storeProperty(k, m, p)
|
||||||
|
|
||||||
for property in properties
|
return if modelData.properties[property]?
|
||||||
continue if modelData.properties[property]?
|
|
||||||
modelData.properties[property] = property
|
modelData.properties[property] = property
|
||||||
|
|
||||||
@_loadProperty key, model, property
|
@_loadProperty key, model, property, defaultValue
|
||||||
model.on "change:#{property}", makeStoreMethod(key, model, property)
|
model.on "change:#{property}", makeStoreMethod(key, model, property)
|
||||||
|
|
||||||
unregister: (key, property)->
|
unregister: (key, property)->
|
||||||
@@ -45,13 +44,19 @@ module.exports = class Storage
|
|||||||
|
|
||||||
# Private Methods ##############################################################################
|
# Private Methods ##############################################################################
|
||||||
|
|
||||||
_loadProperty: (key, model, property)->
|
_loadProperty: (key, model, property, defaultValue=null)->
|
||||||
value = @load "#{key}:#{property}"
|
loadedValue = @load "#{key}:#{property}"
|
||||||
value = JSON.parse(value) if value?
|
if value?
|
||||||
return unless value?
|
value = JSON.parse loadedValue
|
||||||
|
else
|
||||||
|
value = defaultValue
|
||||||
|
|
||||||
|
return unless value?
|
||||||
model[property] = value
|
model[property] = value
|
||||||
|
|
||||||
|
if value? and not loadedValue?
|
||||||
|
@_storeProperty key, model, property
|
||||||
|
|
||||||
_storeProperty: (key, model, property)->
|
_storeProperty: (key, model, property)->
|
||||||
value = JSON.stringify model[property]
|
value = JSON.stringify model[property]
|
||||||
@store "#{key}:#{property}", value
|
@store "#{key}:#{property}", value
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user