:sparkles: New Features
4868cec- generate the json correctly (commit by @SettingDust)ed7bde1- group the same input for generating (commit by @SettingDust)17e6613- group multiple ingredients with the same item (commit by @SettingDust)a9ef16a- use graph for ratios (commit by @SettingDust)1a4f91c- render progress on slot (commit by @SettingDust)cbaf59b- addItemConvertScreen(commit by @SettingDust)858eb26- trigger the screen (commit by @SettingDust)1bca71d- release the mouse correctly (commit by @SettingDust)d6f1c93- correct the path tooltips (commit by @SettingDust)d1ca39a- allow convert blocks by middle click (commit by @SettingDust)ab59165- allow modify press ticks (commit by @SettingDust)9039ef7- behave like creative pick item (commit by @SettingDust)db1fac7- configurable bidirectional convert (commit by @SettingDust)39d00dc- prefer stacks in inventory instead of hotbar (commit by @SettingDust)939a298- inventory and middle-click logic are consistent (commit by @SettingDust)5fc5a49- trigger convert when release alt (commit by @SettingDust)9e75084- add sound to the convert (commit by @SettingDust)f7888ba- allow smaller popup (commit by @SettingDust)
:bug: Bug Fixes
e5df061- refresh the graph correctly (commit by @SettingDust)3fe6330- render the background correctly (commit by @SettingDust)c83134a- the nine slice is wrong (commit by @SettingDust)25beff2- tooltip offset (commit by @SettingDust)a95b924- render the progress on container slots (commit by @SettingDust)c0325de- render the items in containers (commit by @SettingDust)a35bf2e- the condition to find predicate is wrong (commit by @SettingDust)069d05e- avoid crash if disconnected (commit by @SettingDust)ca07558- set the correct index in creative menu (commit by @SettingDust)c556f15- use the correct slot when no screen (commit by @SettingDust)2ae8374- close the screen when no item in slot again (commit by @SettingDust)ec67533- create the config file (commit by @SettingDust)342be4d- serialization plugin (commit by @SettingDust)938862f- avoid crash if the edge looped (commit by @SettingDust)da37fe3- find the slot correctly (commit by @SettingDust)
:recycle: Refactors
0fe8eef- use jgrapht to handle the shortest path (commit by @SettingDust)
:wrench: Chores
de12938- don't progress if the slot is invalid (commit by @SettingDust)ede8d61- don't progress if the slot is empty in container (commit by @SettingDust)507bc87- close the screen when no item in slot (commit by @SettingDust)b3c5153- change the default key to capslock (commit by @SettingDust)62f21ae- don't show ration if 1:1 (commit by @SettingDust)


