H
Homunculus
Guest
exINV is a general purpose, grid based (minecraft style), inventory system that will help you keep your item management clean and efficient.
The system provides a set of scripts to create an item database, manage multiple inventories, and provides user interface implementation on top of that, handling the logic and user interaction, including a crafting system and equipment selection.
Features
- Database system built from CSV files (easy to edit using excel or a text editor)
- Multi inventory management
- Manages item stacking and individual item attributes (tags)
- Ability to sort, search and count items in inventories
- Read and write inventories from and to JSON format (for saving and loading mechanisms)
- The UI and inventory data are totally decoupled, you can design your own UI from scratch
- Shows how to create toolbars, equipment slots, and a simple crafting system
- Extensive documentation and fully commented code
Marketplace link: exINV - Markeplace
Docs: Documentation and install guide
Demo (HTML5): Open demo
Price: 2.99$
Changelog
Version 1.6.1 - 3 Apr 2019
- Bug fix: ex_inv_item_test_ext caused crafting to behave improperly. Please update and replace this script in your existing projects
Version 1.6.0 - 27 Gen 2019
- Added an event system that allows instances to "listen" to changes in a specific inventory (ex_ev functions)
- Added ex_db_add allowing creation of a database without relying on the CSV loader
- Added database groups, allowing organizing and retrieving item keys by group
- Migrated the draw events to draw GUI, adapting automatically to any resolution or view setting
- Updated UI objects and scripts to take advantage of the new event system, resulting in cleaner and more readable code
- Changed tags management so that the items tags ds_map is never exposed directly, making it less error prone. Important! Due to this change, ex_item_get_tags returns a copy of the tags ds_map, so you should remember to destroy it when finished!
- Refactored ex_item_find to ex_inv_find
- Removed ex_inv_updated, replaced by the event system
- Refactored ex_tags_replace to ex_items_set_tags
- Removed ex_tag_exists and ex_tags_size. They are redundant functions that simply call ds_map_exists and ds_map_size
- All ex_ui scripts have been changes in order to accomodate the event system, please refer to the docs
Version 1.5 - 24 Apr 18
GMS2 only update. As of exINV version 1.5, the GMS1 version of this asset is to be considered legacy, and will not be updated except for bug fixing (see release post for details). I'll make sure to keep version 1.4 available for GMS1 as well as its documentation and support.
Version 1.4.1 - 23 Oct 17
Version 1.4.0 - 28 Sep 17
version 1.3.0 - 21 Mar 17
Version 1.2.1 - 04 Oct 16
Version 1.1.3 - 26 Sep 16
Version 1.1.2 - 24 Sep 16
Version 1.0.3 - 21 Sep 16
GMS2 only update. As of exINV version 1.5, the GMS1 version of this asset is to be considered legacy, and will not be updated except for bug fixing (see release post for details). I'll make sure to keep version 1.4 available for GMS1 as well as its documentation and support.
- Cleaner, optimized and streamlined code
- Improved namespacing and better organized asset folders
- Refactored / renamed a few scripts with a better descriptive name (most notably, ex_inv_item_* scripts have been shortened to ex_item_*)
- Revised UI and demo project that includes now examples for item drops, inventory toggling on key press, and simpler integration process
- Added ex_inv_size and ex_inv_max_size to test the amount of slots in an inventory
- Greatly improved ex_inv_sort, giving priority to non empty slots and allowing sorting by database attributes
- Added ex_item_clear to make clearing a slot more intuitive
- Added ex_tags_replace, to allow mass assignment of tags from a ds_map
- Removed ex_inv_item_set_unique, due to tags making this functionality obsolete and being the primary cause for unexpected behavior
- Adapted and extended the documentation
Version 1.4.1 - 23 Oct 17
- Fixed a problem with a script variable referencing a instance variable instead of a local one
- Added the possibility to pass a ds_map of tags directly to ex_inv_item_add and ex_inv_item_test
Version 1.4.0 - 28 Sep 17
- Refactored most of the scripts with a better name and namespace. Scripts are now divided into 4 main groups: database, inventory, items, and tags.
- Introduced item tags, allowing items to keep individual attributes without altering the base attributes, that are no longer writable
- Improved user interface assets, making integration into existing project easier
- Added ex_inv_resize to change the number of slots in real time.
- Added ex_inv_item_copy, ex_inv_item_move, and ex_inv_item_test_ext
- Scripts adding, removing or changing inventory items now accept a slot as an optional argument. Slot specific functions have therefore been removed.
- ex_inv_write output has been changed in order to accomodate tags, and outputs a better formatted JSON representation of the inventory
- Improved documentation with a step by step guide on integrating exINV into existing projects
version 1.3.0 - 21 Mar 17
- New: ex_inv_test() , ex_inv_test_slot() simulate the insertion of an item in an inventory or slot
- New: added basic view support
- New: highlight toolbar items with digit keys example
- New: hide / show panels example
- New: chest implementation example
- Updated documentation
Version 1.2.1 - 04 Oct 16
- Add: ex_inv_item_set_unique, allows items to have unique attributes. Please note that due to this change previous inventories saved using ex_inv_write will no longer work with this version ex_inv_read.
Version 1.1.3 - 26 Sep 16
- Add: ex_inv_read and ex_inv_write, allowing for easy inventory save / load
Version 1.1.2 - 24 Sep 16
- Add: ex_db_keys - returns a ds_list of all the keys in the items database
- Add: all functions requiring an item key as argument, now accept an item reference directly
- Add: ex_inv_get_item, returns an item ds_map reference
- Minor fixes and code cleanup
- Updated documentation
Version 1.0.3 - 21 Sep 16
- Add: ex_db_keys to get a list of all items keys
- Fix: panel events are now better defined and called only when needed
- Fix: reorganized messy code into scripts and renamed some ui scripts accordingly
- Fix: minor text fixes (!)
- Fix: added a workaround for GM:S bug 15583 that caused the crafting and equipment in the current stable version not to behave correctly
Last edited by a moderator: