* Create a nascent version of the mod detail page
* Make the slug mandatory for Mod instead of name, and load the name
from the data file
* Make the Feedback view universal on all pages
* Refactor the use of mod pack to have a single global object at the
router level which is shared between pages. Further, make this one
object load itself immediately and have it automatically load any
activated mod version
* Refactor the use of Storage related to mod pack versions into the
router as well.
* Add trace logging back in for events, but allow individual classes
to suppress it (as opposed to actually supressing the events)
* Fix a bug in ModVersion.eachItem where it would suggest so-called
items which are merely registered slugs without associated items
* 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
* Tweak style of quantity label in output box to be more visible
* Move data files for all mods under a directory for the specific
version of the mod
* Add a `silent` property to the base model to prevent models which
shouldn't be observed from emitting events
* Change the term "itemSlug" to just "slug" across the board
* Change all models so that they don't require their parent in their
constructors and so that they don't automatically add themselves to
their parents lists
* Remove a bunch of unnecessary event triggering
* Tighten up access to various lists of children across all models
* Refactor the guts of the V2 parser into an abstract base class so
it can be used for other parsers in the future
* Remove a number of unused methods
* Refactor location of all data files to include a subdirectory
for the mod version
* Update the BaseModel class to allow models to load themselves from
any text file (whether JSON or CG)
* Refactor ModPack & ModVersion to move the laoding functionality in
one into the other (and use the new stuff in BaseModel)
* Move the parser versions into a new subdirectory which allows for
future additional parsers
In addition to the new script, this changes the V2 parser to be able
to continue past the first error found so that as many errors as
possible may be displayed.
* Revert the local storage change as it ties model objects to global
state and makes testing impossible. It will be necessary to redo
that feature differently
* Refactor the parser versions to move V1 into its own set of files
* Rewrite the crafting algorithm to recursively find all the steps
involved and then resolve how many times each needs to be run.
* Update the base controller to debounce calls to refresh
* Fix a few erroneous recipes for IC2-Classic
When selecting an item, it would formerly just update the text of the
name field without adding the item. The fix is to make it add the
item automatically.
* Add output box to the crafting table view
* Add remaining crafting patterns to all MC 1.7.10 recipes
* Add all crafting patterns to Buildcraft 6.2.6
* Disable mods which don't have patterns yet
* Add the Url constants for computing urls from templates
* Add the `findItemDisplay` to ModPack (along with tests) and remove
all replace all uses of `getPathSlugs` with it
* Changed "version" to "dataVersion" in data format
* Changed the "modName" and "modVersion" fields on the ModVersion
class to remove the "mod" prefix and changed the data format to
match
* Change the Stack class to use the itemSlug instead of the item
itself
* Update the ModVersion and ModPack classes to include methods for
recording a correspondence between slugs and names. Update code
which displays items from stacks to use these methods to determine
display names.
* Add a reference from Recipe back to the item it creates