Rewrote isEqualToConnection and added comments to describe what each function does.
Cleaned up EbookImporter.m: removed some unnecessary whitespace/comments; cleaned up section where solution steps are read in.
Fixed/added comments in getChapterWithTitle
Removed unnecessary comments
Cleaned up InteractionModel.h and InteractionModel.m; added comments to describe functions
Added comment to describe sortMenuItemImagesByZPosition
Added comments to describe functions in PossibleInteraction.m
Additional cleanup of InteractionModel files
Created performAutomaticSteps function to execute ungroup and move steps automatically; added comment to getCorrectInteraction
Removed duplicate code by creating checkSolutionForInteraction function to check if an interaction is correct based on the solution. Added playErrorNoise function to play a noise if user makes an error.
Removed duplicate code by creating getObjectsGroupedWithObject function to return pairs of grouped objects
Removed duplicate code by creating getObjectsOverlappingWithObject function to return an array with all the objects that an object is overlapping with
Changed hotspot colors from red/blue back to red/green
Added more comments to rankPossibleInteractions function to explain use of random numbers for the index.
Changed BOOL variables in pinchGesturePerformed to start as false and adjust accordingly; rearranged code to clear remaining highlighting; added case for disappear step type to convertActionStepToPossibleInteraction to allow disappear to occur without transference
Added Best Farm EPUB to library
Rewrote transference steps in metadata solutions to be either transferAndGroup or transferAndDisappear. For example, instead of having an ungroup step followed by a group step to assume transference must occur, we just write both steps as transferAndGroup.
Created enums for condition (MENU, HOTSPOT, etc.) and interaction restrictions (ALL_ENTITIES, ONLY_CORRECT, etc.)
Removed unnecessary/unused code
Changed the way useProximity is set for getPossibleInteractions functions