Commit Graph
51 Commits
Author SHA1 Message Date
Andrew Miner 23622a2c54 Update parser to unparse multiblocks 2015-11-25 20:40:53 -08:00
Andrew Miner 8cdd130064 Add Multiblock model, parser, and tests. 2015-11-22 09:35:20 -08:00
Andrew Miner ff398b4a2f Fix bugs with new crafting algo 2015-11-10 20:08:03 -08:00
Andrew Miner 4e95ab998f wip 2015-10-31 13:21:14 -07:00
Andrew Miner 74e95e614b Add CraftingPlan to compute resource requirements 2015-09-27 13:57:21 -07:00
Andrew Miner de04c79d17 Add new CraftingPlan class 2015-09-22 19:54:31 -07:00
Andrew Miner 6ea97ac3aa Add plan builder and tests 2015-09-19 09:31:14 -07:00
Andrew Miner f6b71c9464 Add visitor pattern to crafting nodes 2015-08-28 19:16:12 -07:00
Andrew Miner badb854107 Remove unused code 2015-08-25 21:37:10 -07:00
Andrew Miner ea82518b0d Add code to build crafting trees 2015-08-25 21:15:08 -07:00
Andrew Miner 2227e81b8b Update image list to fetch images from GitHub 2015-06-07 14:13:30 -07:00
Andrew Miner dd760018df Add UI/models to allow uploading images 2015-06-05 22:47:40 -07:00
Andrew Miner 06eea0aa48 Add support for conditional recipes 2015-05-20 18:07:39 -07:00
Andrew Miner 8eb5cef71b Allow submitting changes for item desc. to GitHub 2015-05-08 16:16:17 -07:00
Andrew Miner 930b8049a2 Convert site to a single JavaScript archive
* Convert build to use a single JavaScript file on the site (instead
  of downloading each library separately). This also means that all
  global variables (e.g., `$` for JQuery, `_` for Underscore.js) can
  be removed.
* Remove unused scripts and/or move them to a more appropriate repo
* Update the `deploy` script to work with CircleCI's automation
* Update markdown display code to allow images to be located with the
  markdown data files instead of the pre-rendered index pages
2015-04-29 19:58:53 -07:00
Andrew Miner af7099c69c Fix test failures for moved data 2015-04-27 13:37:13 -07:00
Andrew Miner 144aa1bf32 Allow item stacks as input for recipes
* Create the SlotController and refactor it into the various places
  where a crafting grid or crafting output is displayed
* Update the Recipe model to allow each "input" stack to retain the
  count indicated in the data file. This required changing how a few
  other classes interact with it in order for them to get the full
  stack back again for each input (instead of just getting the item
  slug)
* Update the ModVersionParser to allow for full stacks to be given
  as input and refactored common code out for handling input/output/
  tools stacks
2015-04-07 19:21:02 -07:00
Andrew Miner 136ebb4187 Add site-wide search function 2015-04-05 18:33:51 -07:00
Andrew Miner 321cffcdcc Add unit tests to verify data integrity 2015-03-25 19:11:19 -07:00
Andrew Miner 873434e938 Refactoring tests and moving code to common module
1. All tests have been converted into regular command-line mocha
   tests (instead of running in the browser), and the deployment
   script has been changed to automatically fail any `--new`
   deployment which doesn't pass.
2. Several small class (e.g., `Logger`) have been moved into a common
   module, `crafting-guide-common` so that they may be shared between
   the client and server.
2015-03-25 14:42:15 -07:00
Andrew Miner 0a6c185965 Restructure static files into a single directory 2015-03-08 15:05:24 -07:00
Andrew Miner d530ff73a3 Ensure page titles are always correct 2015-03-01 11:18:30 -08:00
Andrew Miner b1a6637005 Major updates to the crafting algo.
* Update crafting algo. to favor highest output recipes for making
  items, and to be more flexible about trying a variety of recipes if
  some one recipe doesn't work.
* Modify crafting algo. to allow crafting of "gatherable" items.
* Update logger to support indent/outdent for clearer formatting
* Convert IC2 Forge Hammer / Cutter recipes to treat them as tools
2015-02-18 21:29:21 -08:00
Andrew Miner e88821d449 Convert codebase to using ItemSlug
* Flesh out the formerly incomplete ItemSlug class
* Convert all uses of text item slugs to use ItemSlug
* Move the ItemSlug class under models where it properly belongs
* Avoid the use of `slug` as a local variable or item attribute
  wherever possible to avoid confusion between various kinds of slugs
* Merge the InventoryParser class into the Inventory class as it is
  unlikely to need to support multiple versions
* Simplify the ModPack/Mod/ModVersion interfaces by replacing the use
  of various "helper" methods with equivalent use of more generic
  methods
* Update the various methods of ModPack/Mod/ModVersion to be able to
  work with qualified or unqualified ItemSlugs
* Remove the unused BaseCollection class
* Add tests for ItemSlug and update all other tests to reflect
  all the other changes
2015-02-18 10:30:53 -08:00
Andrew Miner 8236d82ec8 wip 2015-02-16 11:03:59 -08:00
Andrew Miner 8804605d99 Make Recipe a child of ModVersion, not Item 2015-02-15 19:01:16 -08:00
Andrew Miner 380a78ef61 Qualify all item slugs to the mod which adds them #53
* Change default item URL to fall under /mod/<mod slug>/<item slug>
  but kept the old URL pattern around with the old behavior (i.e.,
  find the first item with that slug)
* Update Item to have a `qualifiedSlug` property which combines the
  item's own slug with its Mod's slug.  Updated a lot of code all
  over to use this in preference to the plain slug.
* Add a `localizeTo` method to Inventory to allow non-qualified slugs
  to be converted into qualified slugs within the inventory's stacks
* Update ModPack to work with either qualified or unqualified slugs
  for relevant methods
* Fix model state changes to happen before related events are
  triggered
* Add a debounce to the CraftingPlan object when triggering a recraft
  due to changes in related objects (esp. its inventories)
* Update the Inventory's sort to keep items sorted by mod before name
  with the Minecraft items sorted to the top
* Fix `ModPack.findItemByName` to actually recursively use the Mod's
  method instead of slugifying the given name and looking for the
  slug (since this won't necessarily work anymore).
* Ensure each Mod is assigned a reference to its containing ModPack
* Fix NameFinder to only consider an item non-gatherable if it is
  also craftable
* Update ModVersionParserV1 to assign qualified slugs to recipes
  for any items which are in the same mod (leaving any other slugs
  unqualified)
* Add Underscore mixins for composing and decomposing slugs
* Update old tests for the use of qualified slugs, and some new tests
  for the new methods added
2015-02-10 17:56:02 -08:00
Andrew Miner e0c642e787 Store want/have in URL/local storage 2015-01-31 15:48:24 -08:00
Andrew Miner 6e3843731b Allow items to be grouped on mod detail pages 2015-01-30 13:03:10 -08:00
Andrew Miner ea86e17d31 Change test description to isolate files better 2015-01-28 10:27:28 -08:00
Andrew Miner ae66f52678 Add the findRecipes method to Mod/Pack/Version 2015-01-28 10:26:19 -08:00
Andrew Miner 7ee0b55411 Add tests for the Recipe model 2015-01-28 09:59:35 -08:00
Andrew Miner e612cedf8d Fix scripts and tests
* Fix the reformat script to work with recent changes
* Fix the convert-nei-dump script to remove leading and trailing '_'
* Fix various broken tests
2015-01-21 15:05:19 -08:00
Andrew Miner d1621bb9f6 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
2015-01-18 10:48:12 -08:00
Andrew Miner 83868e2760 Massive refactoring to clean up models
* 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
2015-01-17 11:49:07 -08:00
Andrew Miner 5f57622cf3 Several large refactorings
* 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
2015-01-16 20:26:54 -08:00
Andrew Miner d94bd39e52 Refactor the SAYT code to return better results 2015-01-15 17:12:12 -08:00
Andrew Miner 89a8e2b539 Add V2 file format 2015-01-14 15:19:02 -08:00
Andrew Miner 823df84924 Revert local storage change & refactor parser V1
* 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
2015-01-13 09:44:13 -08:00
Andrew Miner 9970b92157 Fix broken tests for gatherNames 2015-01-10 12:13:43 -08:00
Andrew Miner b8a0918541 Complete the Crafting Table view/controller
* 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
2015-01-09 10:08:02 -08:00
Andrew Miner 4a10a36e37 Fix CraftingPlan tests 2015-01-07 08:48:30 -08:00
Andrew Miner 206973e304 Update header comments 2015-01-05 06:42:05 -08:00
Andrew Miner bba161445d Change "{furnace fuel}" to just "furnace fuel" 2015-01-04 21:26:25 -08:00
Andrew Miner 0d25ac723d Complete refactoring to move Recipes into Items
* 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
2015-01-03 20:08:11 -08:00
Andrew Miner b642c51486 wip 2015-01-02 23:03:06 -08:00
Andrew Miner e14a4d0810 Rename RecipeCatalog to ModPack 2015-01-01 20:16:38 -08:00
Andrew Miner f28a763b13 Rename RecipeBook to ModVersion 2015-01-01 20:12:27 -08:00
Andrew Miner 1a84ce2e28 Complete basic crafting functionality 2014-12-24 19:17:37 -08:00
Andrew Miner 95c15abe10 Added CraftingTable* components and UI 2014-12-23 20:26:36 -08:00