Announcement

Collapse
No announcement yet.

JCInventory, Grid based jigsaw Inventory for your projects

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Thanks for this fantastic inventory system. You have saved us a a ton of development time. Keep up the awesome work!

    We're utilizing this in our burglary sim, Klepto [recently greenlit on Steam]. Since our project contains VR support for Oculus and HTC Vive, we had to move the UI from screen to world. We've decided to place it within a mobile device carried by the player.





    We've also incorporated a 3D item view (sorry, only have an older gif from the prototype).



    Now I'm working on adding gamepad support. This was initially a bit overwhelming of a task but thanks to all the info included with each item slot, the integration is coming along nicely. So far, I've managed to get a good chunk of this completed. I should have the full support finished up by the end of the week.

    Afterwards, I'll finish up the 3D item viewer and get our finalized UI artwork added.
    Klepto - Burglary Simulator

    Comment


      Whenever I try to compile the 4.9 version I get these 2 errors

      Code:
      MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: [2015.09.21-08.55.40:332][  0]LogInit:Display: LogBlueprint:Error: [compiler JCPlayerInventory] Error COMPILER ERROR: failed building connection with 'Only exactly matching structures are considered compatible.' at  Pawn Equip Slot Change
      MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: Using Interface JcPawnInterface_C 
      MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: [2015.09.21-08.55.40:332][  0]LogInit:Display: LogBlueprint:Error: [compiler JCBackPackItem] Error Invalid pin connection from ' Out Actors ' to ' Target Array '. You may have changed the type after the connections were made.

      Comment


        Confirmed bug with the 4.9 release, thanks Abxyxx. The fix is a odd one,

        1. open JcBackPackItem and look at the event CreateOrFindBackpackContainer, remove the for each loop, then replace it with a new one doing the exact same thing.

        2. open jcinventorycore, open function add item to slot, within the first comment 'add item' remove the make struct then add it back in again the same way.

        3. remove slot details from JcPawnInterface > PawnEquipSlotChange, its there as a convenience anyway. use the index value to get the slot details. Why its an issue im afraid you will have to take up with epic.

        ¯\_(ツ)_/¯
        After i did this i had the market place version build, going to push out a update. let me know how you go!



        NobleSpoon wow that looks really nice in 3D, well done! really honored to have helped you on your project and look forward to buying it and playing it!
        Last edited by Staggerlee; 09-21-2015, 10:42 AM.
        JcInventory, a Jigsaw Grid based Inventory designed in UMG and blueprint

        Comment


          Hi Staggerlee, weird , yesterday I implemented the 4.9 version on my 4.9.1 project version and I did't have this compilation problem. should I have it? (sounds like I'm worried because i have not compile errors :P )
          pd: Excuse my English.

          Comment


            @Staggerlee - Found a simple way to get rid of the mouse offset problem, without drastically changing the system I'm going to clean it up and post screenshots in a bit so everyone can benefit.

            I must say it improves the drag and drop feel quite a bit

            ----------------

            How to fix mouse-offset in JC Inventory (4.9 is the only tested version):

            1st:

            Add a Vector2D variable called MouseDownOffset to JCInventoryCore.

            Click image for larger version

Name:	jc_inventory_improvement2.png
Views:	1
Size:	47.3 KB
ID:	1087975

            2nd:

            Add this code to JCItemSlot -> OnMouseButtonDown

            Click image for larger version

Name:	JCInventory-Improvement.png
Views:	1
Size:	480.6 KB
ID:	1087976

            3rd:

            Add this code to JCItemSlot -> OnDrop

            Click image for larger version

Name:	jc_inventory_improvement3.png
Views:	1
Size:	239.3 KB
ID:	1087977

            4th, last but not least:

            In JCItemSlot -> OnDragDetected, find "Create Drag Drop Operation" and change the pivot to "Mouse Down" and break the connection to the "Make Vector 2D" node that goes to the Offset variable, like this.

            Click image for larger version

Name:	jc_inventory_improvement4.png
Views:	1
Size:	183.1 KB
ID:	1087978

            And that's it! Let me know if you have problems with it, but it's quite straight forward.

            Edit: @Staggerlee - Dunno if it's really as clean as it could be what with having to store the offset in JCInventoryCore, but it works fine. My vote is to put this into your main, as it does feel much better/provide the user with a cleaner drag and drop experience.
            Last edited by n00854180t; 09-21-2015, 03:09 PM.
            Storyteller - An immersive VR audiobook player

            Dungeon Survival - WIP First person dungeon crawler with a focus on survival and environmental gameplay ala roguelikes

            Comment


              n00854180t You are a gem. I had not thought about implementing it ondrop() like that and i agree it is very clean. One thing i would change is to store the offset in the JcDragAndDropPayload, its the widget that holds the information about what is being dragged. I will move this into the main project once i test it, but the logic looks solid! Nice work and clear guide might i add.
              JcInventory, a Jigsaw Grid based Inventory designed in UMG and blueprint

              Comment


                Originally posted by Staggerlee View Post
                Confirmed bug with the 4.9 release, thanks Abxyxx. The fix is a odd one,

                1. open JcBackPackItem and look at the event CreateOrFindBackpackContainer, remove the for each loop, then replace it with a new one doing the exact same thing.

                2. open jcinventorycore, open function add item to slot, within the first comment 'add item' remove the make struct then add it back in again the same way.

                3. remove slot details from JcPawnInterface > PawnEquipSlotChange, its there as a convenience anyway. use the index value to get the slot details. Why its an issue im afraid you will have to take up with epic.

                ¯\_(ツ)_/¯
                After i did this i had the market place version build, going to push out a update. let me know how you go!
                Cheers for that worked like a charm. Didnt even use the slot details pin so all good.

                Comment


                  Originally posted by Staggerlee View Post
                  n00854180t You are a gem. I had not thought about implementing it ondrop() like that and i agree it is very clean. One thing i would change is to store the offset in the JcDragAndDropPayload, its the widget that holds the information about what is being dragged. I will move this into the main project once i test it, but the logic looks solid! Nice work and clear guide might i add.
                  Thanks, happy to help

                  That's a great idea, I'll implement that and update the guide in my post tomorrow.
                  Storyteller - An immersive VR audiobook player

                  Dungeon Survival - WIP First person dungeon crawler with a focus on survival and environmental gameplay ala roguelikes

                  Comment


                    Staggerlee, do you got a video or tutorial yet with the scope on looting?
                    Reallusion Unreal Engine Community Manager / LEGENDS of EPICA [Twitter] [Facebook] [YouTube] [Vimeo]

                    Comment


                      Another cannot be generated from (none)

                      BlueprintEditorCompileResults:Error: Error Graph named 'Interact' already exists in 'JCInventoryItem'. Another one cannot be generated from (none)
                      BlueprintEditorCompileResults: Info The execution path doesn't end with a return node. Cast Failed
                      BlueprintEditorCompileResults:Warning: Warning [0166.58] Compile of JCInventoryItem failed. 1 Fatal Issue(s) 0 Warning(s) [in 2,985 ms]

                      Any ideas what (none) could be? - I am creating a material instance of a mesh that is inheriting from JcinventoryItem. It appears to me that as its doing this its trying to create another function in a non existing actor(at least, uniquely non existent).... Need to be able to "Spawn actor from class" with a Material Instance changing the look. I think its making your Jcinventory mad.

                      BTW. This forum is a nightmare. Aside from the Docs or Videos, its hard to contact you. Put it in theblueprints or something. Personally, when I am trying to find a solution to an issue, and the response of the creator is "Go check in the middle of a 7 page forum" makes me a little nervous. Do yourself a favor and put my $30 i gave you and buy a domain and build a simple site with tracking, forums, and direct contact. Unreal marketplace severely lacks any way to contact the company of the product you just purchased -this isn't your fault, I'm just saying that you should beat them to the punch. This forum-to-find-answers thing is a dying breed (I believe someone covered in a previous post how critically important having true-blue help docs is for the learning process.
                      I've broken Jcinventory about 8 times now but I'm not giving up.
                      Oh btw, I found "DICKS" hidden in there as a variable field name, nice one.
                      mk-

                      Comment


                        Hey there, thanks for your feedback and welcome to the forums!
                        Sorry you are having a hard time but i am glad you have not given up. You can find docs on my youtube channel here or on the wiki here . I am currently working on both new video docs and wiki docs for 4.9. My preferred method of contact is via PM on these forums, you can expect a response within 24 hours to account for time differences.

                        AS for your issue! I'm afraid i'm not too sure, let me get this straight, you have made a child of JcInventoryItem and you are replacing the material on the item with a instanced materal. I don't believe this would have any effect on the system. After having tested this i did not run into any issues- its a strange one indeed. Can you provide more information?
                        Last edited by Staggerlee; 09-25-2015, 05:26 AM.
                        JcInventory, a Jigsaw Grid based Inventory designed in UMG and blueprint

                        Comment


                          hey Staggerlee thanks for a awesome system, i was coming here to report my compile issues, but i see a fix above so imma try that first, also will the crafting system but "elaborated" on at all? if not i guess i could try my hand at doing so was just curious and didnt want to do unnecessary work lol

                          Comment


                            Staggerlee - A world of difference with the new system, really awesome work.

                            Comment


                              @uint32 , i love your user name. Sorry, im not sure what you mean about the scope on looting?

                              hey Supermanofgaming, In terms of the crafting system- i am yet to do a video on how to 'extend' it, however the option is built in to JcInventory. When you craft an item on the item craft list it also fires an event, this is where you can add code to extend the simple system for more complex interaction. Im working hard on written docs at the moment but i might be able to slip in a video to explain this more. No promises as its lower priority then the core documentation im afraid.

                              You can find the event in the item BP, as the function craft item.

                              MrMrC im glad you liked the changes! JcInventory should have been done this way to begin with but blueprint components where not accessible when jcinventory was started.
                              JcInventory, a Jigsaw Grid based Inventory designed in UMG and blueprint

                              Comment


                                Has anybody integrated this system as the master inventory for other BP items (i.e. generic shooter weapons). Trying to make it work but honestly confused. Should I re-parent the Other BP (i.e. generic shooter weapon items) under JCInventoryItem? How do you handle the concept of duplicate meshes etc. I assume there is some form of simple way that I am missing.

                                Comment

                                Working...
                                X