{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":609414374,"defaultBranch":"main","name":"Snake4J","ownerLogin":"WALLE1Doctor1Who","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-03-04T05:09:00.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/48142986?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1719161831.0","currentOid":""},"activityList":{"items":[{"before":"a1f22d445d0a889c61116d8744cd2a6828e789ef","after":"d90aea6be34b05d512fef46b5f69d66075a52340","ref":"refs/heads/main","pushedAt":"2024-06-23T17:01:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge branch 'main' of https://github.com/WALLE1Doctor1Who/Snake4J","shortMessageHtmlLink":"Merge branch 'main' of https://github.com/WALLE1Doctor1Who/Snake4J"}},{"before":"3bf725379d2e9c0ab607c21af941f00e3d937e39","after":"a1f22d445d0a889c61116d8744cd2a6828e789ef","ref":"refs/heads/main","pushedAt":"2024-06-23T16:58:31.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #20 from WALLE1Doctor1Who/19-go-to-gnu-gpl-30\n\nUpdating the License (spelled correctly) to GPL3","shortMessageHtmlLink":"Merge pull request #20 from WALLE1Doctor1Who/19-go-to-gnu-gpl-30"}},{"before":"3bf725379d2e9c0ab607c21af941f00e3d937e39","after":"329950f3257a9666ea796fd793bbf4c6e0847565","ref":"refs/heads/19-go-to-gnu-gpl-30","pushedAt":"2024-06-23T16:57:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Updating the License (spelled correctly) to GPL3\n\nThe license is being changed from GNU GPL 2.0 to GNU GPL 3.0. Also the file containing the license is now spelled correctly.","shortMessageHtmlLink":"Updating the License (spelled correctly) to GPL3"}},{"before":null,"after":"3bf725379d2e9c0ab607c21af941f00e3d937e39","ref":"refs/heads/19-go-to-gnu-gpl-30","pushedAt":"2024-06-23T16:57:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #18 from WALLE1Doctor1Who/17-game-related-settings-not-loading\n\nSize Loading Fixed + Demo Play Field","shortMessageHtmlLink":"Merge pull request #18 from WALLE1Doctor1Who/17-game-related-settings…"}},{"before":"0d770e2db3d33aadc2377001f3fc011c05c868e7","after":"3bf725379d2e9c0ab607c21af941f00e3d937e39","ref":"refs/heads/main","pushedAt":"2024-06-12T16:53:35.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #18 from WALLE1Doctor1Who/17-game-related-settings-not-loading\n\nSize Loading Fixed + Demo Play Field","shortMessageHtmlLink":"Merge pull request #18 from WALLE1Doctor1Who/17-game-related-settings…"}},{"before":"0d770e2db3d33aadc2377001f3fc011c05c868e7","after":"9f64cb1ec197b52f9bfa4e5ee4e2db66f5b9aba0","ref":"refs/heads/17-game-related-settings-not-loading","pushedAt":"2024-06-12T16:53:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Size Loading Fixed + Demo Play Field\n\nThe grid size issue not loading from the preference config has been fixed. It turns out it was being loaded, but it was then being overridden by the play field's current size. This has been fixed so that the size of the play field is loaded from the preference config. To maintain the 16x16 grid on startup, a demo play field has been introduced. While this currently shows an empty 16x16 play field, it can be made to display a demo of the game in a later update. This play field is initially visible and is hidden when the game starts for the first time. The settings for the demo play field are copied from the main play field. The setGameSettingsFromConfig() method was moved up in the file so that it was closer to the start of the program, and it now catches whether it is setting any invalid values.","shortMessageHtmlLink":"Size Loading Fixed + Demo Play Field"}},{"before":null,"after":"0d770e2db3d33aadc2377001f3fc011c05c868e7","ref":"refs/heads/17-game-related-settings-not-loading","pushedAt":"2024-06-12T16:18:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #16 from WALLE1Doctor1Who/2-snake-repair-functionality\n\n2 snake repair functionality","shortMessageHtmlLink":"Merge pull request #16 from WALLE1Doctor1Who/2-snake-repair-functiona…"}},{"before":"f396158a4bfb46780c208539bc0fa5fbc2872fa2","after":"0d770e2db3d33aadc2377001f3fc011c05c868e7","ref":"refs/heads/main","pushedAt":"2024-06-12T16:06:20.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #16 from WALLE1Doctor1Who/2-snake-repair-functionality\n\n2 snake repair functionality","shortMessageHtmlLink":"Merge pull request #16 from WALLE1Doctor1Who/2-snake-repair-functiona…"}},{"before":"c05325da5d21e2ffef732213be97eddc9a0caa6b","after":"934e585e38e7e241b72ad18f6bc89d90ac665b1d","ref":"refs/heads/2-snake-repair-functionality","pushedAt":"2024-06-12T16:05:53.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Cleaning up repairAfterRemoval\n\nI've cleaned up the repairAfterRemoval method, integrating the checkRAR2 method into it, as that method was only temporary. The checkRAR1 method has been renamed to repairAfterRemovalHelper and given documentation. The repairAfterRemoval may still need a little more cleanup, but it's good for now. The documentation for both repairAfterRemoval and repair have been updated to reflect the changes.","shortMessageHtmlLink":"Cleaning up repairAfterRemoval"}},{"before":"1b43fd39c10b95a6dd26ca339e85c538404c70b8","after":"c05325da5d21e2ffef732213be97eddc9a0caa6b","ref":"refs/heads/2-snake-repair-functionality","pushedAt":"2024-06-12T13:41:20.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Improved repairAfterRemoval functionality\n\nI have made it so that the repairAfterRemoval method will work more as intended, though it is not complete. It's currently still messy, and it doesn't do everything it needs to do, but about 2000 cases are now accounted for.","shortMessageHtmlLink":"Improved repairAfterRemoval functionality"}},{"before":"8f9eb2805d7c4c351c64d7e3fdd80ef7fecab7a8","after":"1b43fd39c10b95a6dd26ca339e85c538404c70b8","ref":"refs/heads/2-snake-repair-functionality","pushedAt":"2024-06-12T10:43:03.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Pause resets the fail count\n\nPausing now resets the snake's fail count as to not unnecessarily punish the player. Winning with negative grace turns now causes text to appear accusing the player of cheating, since negative grace turns is cheating. Version has been updated to 2.0.0-beta.","shortMessageHtmlLink":"Pause resets the fail count"}},{"before":"f396158a4bfb46780c208539bc0fa5fbc2872fa2","after":"8f9eb2805d7c4c351c64d7e3fdd80ef7fecab7a8","ref":"refs/heads/2-snake-repair-functionality","pushedAt":"2024-06-12T09:47:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Snake Documentation\n\nAdded some documentation for the repairAfterRemoval method detailing the existing code. The repairSegment has been declared mostly complete due to the sheer number of combinations to go through that may or may not come up in regular use (there are 10880 combinations of the three tiles (not including the alternate state for each tile).","shortMessageHtmlLink":"Snake Documentation"}},{"before":null,"after":"f396158a4bfb46780c208539bc0fa5fbc2872fa2","ref":"refs/heads/2-snake-repair-functionality","pushedAt":"2024-06-12T09:36:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #14 from WALLE1Doctor1Who/12-pause-when-focus-lost\n\nGame Pauses when Focus Lost","shortMessageHtmlLink":"Merge pull request #14 from WALLE1Doctor1Who/12-pause-when-focus-lost"}},{"before":"a145b7d640907bd262a3f3b73b0186171e6c57bb","after":"f396158a4bfb46780c208539bc0fa5fbc2872fa2","ref":"refs/heads/main","pushedAt":"2024-06-12T08:57:32.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #14 from WALLE1Doctor1Who/12-pause-when-focus-lost\n\nGame Pauses when Focus Lost","shortMessageHtmlLink":"Merge pull request #14 from WALLE1Doctor1Who/12-pause-when-focus-lost"}},{"before":"a145b7d640907bd262a3f3b73b0186171e6c57bb","after":"86690ad5a085cfa2cbc35790d2555dfe6f8db55a","ref":"refs/heads/12-pause-when-focus-lost","pushedAt":"2024-06-12T08:56:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Game Pauses when Focus Lost\n\nA window focus listener was added to the game window to pause the game when the game window loses the focus.\nAdditionally the version in the documentation has been updated to reflect that this is version 2.0.0-alpha.1, and the debug pause toggle button now starts as selected if the game is paused (which it technically is at start).","shortMessageHtmlLink":"Game Pauses when Focus Lost"}},{"before":null,"after":"a145b7d640907bd262a3f3b73b0186171e6c57bb","ref":"refs/heads/12-pause-when-focus-lost","pushedAt":"2024-06-12T08:37:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #13 from WALLE1Doctor1Who/9-high-score-display\n\n9 high score display","shortMessageHtmlLink":"Merge pull request #13 from WALLE1Doctor1Who/9-high-score-display"}},{"before":"633bc33d94c0bfce171167333ef15282c9c50a9e","after":"a145b7d640907bd262a3f3b73b0186171e6c57bb","ref":"refs/heads/main","pushedAt":"2024-06-12T08:36:19.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #13 from WALLE1Doctor1Who/9-high-score-display\n\n9 high score display","shortMessageHtmlLink":"Merge pull request #13 from WALLE1Doctor1Who/9-high-score-display"}},{"before":"f5e518673149b6fda4912c8882d16f379288feb0","after":"398681360bd06b4aa34244e6cc0392851407f169","ref":"refs/heads/9-high-score-display","pushedAt":"2024-06-12T08:33:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"High Scores are Shown\n\nLabels showing the high scores have been added to the pause and results screens. These labels are only shown if a high score has been set. Additionally, a label has been added to the results screen to say when a high score has been achieved. Currently the high score is only set when a new length is achieved, and only the length is displayed. A button has been added to the debug menu to reset the high score.","shortMessageHtmlLink":"High Scores are Shown"}},{"before":"f729177f9d4ba317ef6b437e1253f166a65cd929","after":"f5e518673149b6fda4912c8882d16f379288feb0","ref":"refs/heads/9-high-score-display","pushedAt":"2024-06-12T07:22:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Added High Score Preferences\n\nI have added the high score settings to SnakeGamePreferences. The high score settings are stored in a child preference node.","shortMessageHtmlLink":"Added High Score Preferences"}},{"before":"6613e271b63fdead729df9b96346e5b542aabff3","after":"f729177f9d4ba317ef6b437e1253f166a65cd929","ref":"refs/heads/9-high-score-display","pushedAt":"2024-06-12T07:02:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Added Location to Settings\n\nThe location of the game window is now loaded and saved to the preference node. Additionally, there was a mistake in the toProperties method of the SnakeGamePreferences class where it used the put method to set properties instead of the setProperty method. There are now additionally methods for getting the game window bounds from the preferences.","shortMessageHtmlLink":"Added Location to Settings"}},{"before":"27898a07433009b4b853a132d263fd6915114a7d","after":"6613e271b63fdead729df9b96346e5b542aabff3","ref":"refs/heads/9-high-score-display","pushedAt":"2024-06-12T06:19:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Removed the layered pane size listener\n\nAs the title says, the layered pane size component listener was removed. This was left in by accident when I was figuring out how to save the size.","shortMessageHtmlLink":"Removed the layered pane size listener"}},{"before":"e7944e20642d619d9d1da0e2e623bce016ec762d","after":"27898a07433009b4b853a132d263fd6915114a7d","ref":"refs/heads/9-high-score-display","pushedAt":"2024-06-12T05:44:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Added Maximized Check\n\nAdded a check for whether the game window is maximized before setting the size in the preference node. If the game window is maximized, then the size is not set.","shortMessageHtmlLink":"Added Maximized Check"}},{"before":"633bc33d94c0bfce171167333ef15282c9c50a9e","after":"e7944e20642d619d9d1da0e2e623bce016ec762d","ref":"refs/heads/9-high-score-display","pushedAt":"2024-06-02T06:41:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Update .gitignore\n\nIgnoring some in development files that aren't necessary right now.","shortMessageHtmlLink":"Update .gitignore"}},{"before":null,"after":"633bc33d94c0bfce171167333ef15282c9c50a9e","ref":"refs/heads/9-high-score-display","pushedAt":"2024-06-02T06:33:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #11 from WALLE1Doctor1Who/4-settings-file-functionality\n\n4 settings file functionality","shortMessageHtmlLink":"Merge pull request #11 from WALLE1Doctor1Who/4-settings-file-function…"}},{"before":"9da2a9fe1a909ba11ea525e538a7e198951f9519","after":null,"ref":"refs/heads/9-high-score-display","pushedAt":"2024-06-02T06:32:56.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"}},{"before":"9da2a9fe1a909ba11ea525e538a7e198951f9519","after":"633bc33d94c0bfce171167333ef15282c9c50a9e","ref":"refs/heads/main","pushedAt":"2024-06-02T06:30:03.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #11 from WALLE1Doctor1Who/4-settings-file-functionality\n\n4 settings file functionality","shortMessageHtmlLink":"Merge pull request #11 from WALLE1Doctor1Who/4-settings-file-function…"}},{"before":"25450a8e7cabb05874acc4203fbec96ae8d8f0ad","after":"a0ed3b845ec3fff9998087db3a66ea263bfdb8b6","ref":"refs/heads/4-settings-file-functionality","pushedAt":"2024-06-02T06:27:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Preferences are now saved\n\nA new class has been introduced, called SnakeGamePreferences, which wraps a preference node to allow the settings to be retrieved easily. This class still needs some work, mainly with the documentation and further testing, but it works for now. The game itself has been altered to load the settings from the preferences when it starts up, and for the program to update the preferences when they are altered in the program, such as when the player sets a color or the game configuration. There are still some improvements to be done, such as adding error messages if the settings fail to load, but for now it works as is.","shortMessageHtmlLink":"Preferences are now saved"}},{"before":null,"after":"9da2a9fe1a909ba11ea525e538a7e198951f9519","ref":"refs/heads/9-high-score-display","pushedAt":"2024-06-02T03:37:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Merge pull request #8 from WALLE1Doctor1Who/5-card-layout-for-game-overlays\n\n5 card layout for game overlays","shortMessageHtmlLink":"Merge pull request #8 from WALLE1Doctor1Who/5-card-layout-for-game-ov…"}},{"before":"21634015b54af06c370b51254fd609c4f211cb7c","after":"25450a8e7cabb05874acc4203fbec96ae8d8f0ad","ref":"refs/heads/4-settings-file-functionality","pushedAt":"2024-06-02T03:09:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Elevated to 2.0.0 + Preferences Preparations\n\nWhat was initially going to be version 1.1.0 has been elevated from a minor release to major release 2.0.0. Tick speed has been renamed to tick delta to better fit its purpose. Additionally the name of the preference node has been added to the game, along with moving the min, max, and defaults for tick delta and grace turns to constants instead of being magic numbers. Some comments have been reworked. The tool tip text for the high quality toggle now gives examples of how it effects rendering. A debug label has been added to the title of the program when in debug mode. The snake now initializes using the set grace turns instead of just 1 every time. Netbeans will now check for the use of deprecated APIs.","shortMessageHtmlLink":"Elevated to 2.0.0 + Preferences Preparations"}},{"before":"d2e64cd56792e4e61f4dc7e189b8e3f150b29da3","after":"21634015b54af06c370b51254fd609c4f211cb7c","ref":"refs/heads/4-settings-file-functionality","pushedAt":"2023-09-27T00:23:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"WALLE1Doctor1Who","name":"Milo Steier","path":"/WALLE1Doctor1Who","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48142986?s=80&v=4"},"commit":{"message":"Map Entry Classes, Player Two Components, and SnakeCommand fields\n\nThe main addition for this commit are 3 classes relating to map entries. The first one is AbstractMapEntry, which can store a key and implements the equals and hashCode methods as defined by Map.Entry. The second one is MapBackedEntry, which uses a backing map's get and put methods to get and set its value. The third one is AbstractMapEntryIterator, which is an iterator to help with implementing map entry iterators when using the keys in the map to get an entry. These three classes may be moved to a different package later on during this branch's life.\n\nThe next improvement is that SnakeGame4J now has some (though likely not all) of the components relating to the second player, namely the labels stating the controls and the button for setting the second player's color. These are currently hidden for now, but can be made visible using the showP2Toggle check box. In addition, the startGameButton button has been renamed to configGameButton, since it does not actually start the game. The gameSettingsStartButton button is now the startGameButton, since it is the button that starts the game.\n\nThird thing that was changed is that SnakeCommands can now have an integer representing their direction (previously, this was retrieved via the getDirectionOf method, which is now deprecated). This direction can be retrieved via invoking the getDirection method on a SnakeCommand. Additionally, the getAction method can be used to get an immutable SnakeActionCommand for a SnakeCommand without having to use the map returned by getCommandActionMap (this was previously accomplished via the now deprecated static getActionForCommand method). All uses of SnakeCommand.getDirectionOf and SnakeCommand.getActionForCommand have now been replaced by calling getDirection and getAction, respectively, on the SnakeCommand in question.\n\nArrowKeyControlIcon now actually uses its ArrowPainter. This was previously overlooked when ArrowPainter was being added.\n\nThe package info for the src/snake/game package has been finally added.\n\nThere were some updates to the comments.","shortMessageHtmlLink":"Map Entry Classes, Player Two Components, and SnakeCommand fields"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEbNgBlgA","startCursor":null,"endCursor":null}},"title":"Activity · WALLE1Doctor1Who/Snake4J"}