You’d need 2 widgets here. Create a widget that represents a waste drop box, something simple may suffice:
Text is padded so it appears outside:
Add an Instance Editable linear colour variable and run the PreConstruct to preview changes in the editor:
Create a main widget that will house those three boxes:
Since we have an Instance Editable variable, we can use it to colour the boxes:
You can do the same with text, this way you can create custom reusable widgets. You can now script the drop functionality only once and all 3 boxes will behave the same. You will want to add some filtering regarding which box accepts what. Enumeration would work well for this, something along the lines of (an instance editable variable of the enumeration type):
Next the time the drag operation interacts with such widget, it can use those values to identify the dropbox’ purpose.