ID:1508873
 
(See the best response by Lugia319.)
Alright, so as I have been slowly adapting into DM, and coding in general, I have plenty of ideas, but little idea about how to apply them. One of my ideas, is as follows: I'd like to have a "drag and drop" crafting system. In which, players would place material into predetermined slots. Each different slot representing a different part of the crafted item, while any material gathered can be used.

(Concept)
Image and video hosting by TinyPic
(In which any material can by placed into any slot)
Image and video hosting by TinyPic



My idea is that each material have their own variables for properties/quality added. So of course, illogical things such as paper would add very little to the objects overall quality.

The different crafting templates for items, coming from different types of crafting stations.

So, in total, here are the issues.

1) The interface (Both the inventory, and the entire crafting stations)

2) Getting each material to add to the created items statistics/characteristics

3) Having the parts of the crafted object match that of the material.


(Perhaps more due to my faulty logic. )


Any help? (Including references, advice, and perhaps more presented issues with such a system? )
And of course, the images above are just examples. I plan on using a much less resolution.
Best response
You're gonna wanna look up the mouse control procs. mousedrop() to be specific I think. My solution wound up being a mess of checking parameters, but it worked. Once things are dropped into the grid, do a check on the grid to see if the components of that grid (which I stored on a mob variable) create something. So to sum up

1. Define 2 new variables to store components and potential products
2. Drop a item from your inventory into the crafting grid
3. Update the crafting grid
4. Run a check on the crafting grid to see if you can make anything
5. If you can, output those objects to the potential products grid
6. If the user takes something from the grid, remove objects from the component grid accordingly and anywhere else you have to.