So, I felt like I should probably start talking about "What's up with this game mode thing?"
Since I started Mythruna, I've had in my mind some directions I wanted to take the interface. Working on the combat prototype, I had to solidify a bunch of these designs trying to figure out how that would work. The fact that I was having to implement a lot of this piece-meal in the combat prototype, along with the recent re-interest in scripting, has spurred me to get it into a more complete state. Something that could be hooked up to actual scriptable objects and get us "more game" even before physics is working.
The basic idea:
Interactions with the things you are holding in your hands should be based on a few specific controls. Mainly this is patterned off of the mouse with a wheel but I've so far left the wheel as a secondary control (and will also be available through the ',' and ',' keys like it is now)... not something you'd necessarily need in the heat of battle.
There is one set of control "methods" and a single key directs them to one hand or another. Right now this is the ctrl key. So, for example, if you press left-mouse button then you do the default action of the thing you hold in your right hand. If you hold ctrl and press the left-mouse button then you do the default action of the thing you hold in your left hand.
The "heads up display" (HUD)...
In general, I try to opt for the most minimal HUD possible. In the lower left is a "tool orb" showing what is in my left hand. In the lower right is one showing what is in my right hand. In this case, I have a pile of wood in my right hand and a torch or match or something in my left. (This will eventually be augmented with some small stats bars for the player and the orbs may indicate the condition of the tool. Furthermore, if the tool is something with a visual display then the orb may expand in size... say for a minimap.)
An example scenario would be that I'd left click somewhere on the ground to place the firewood (the default action for plain objects) and then ctrl+left click on the dropped firewood to light it with the match.
If you play with this interface then you can kind of see through the debug output that it sends to the console that this is kind of working. The message it echos shows the tool used and what was clicked on... and how it was clicked (main click being left mouse button, alternate click being right).
Double clicking an item in the inventory selects it as the right-handed tool. (So ctrl+double clicking would select the left hand.) Double clicking on the tool orb with the inventory open will clear it back to just "hand". Eventually there will be a key to do that, too.
My general guidance is to try to keep these gestures simple and consistent. In that light, the following "theories" are what drive me:
-the "main" button (left mouse) should generally be the default action. You should be able to get through a lot of the game just clicking the left button... whether it's to drop an item on the ground, give it to another player, show it to an NPC, picking a lock, whatever.
-the "alternate" button (right mouse) should generally be the "see what my options are" button. So right clicking a tool on some place or object will present a pop-up with all of the options available.
-the "roll" button (mouse wheel) should be for altering the effect of what I'm doing. If I'm holding a build wand, it may change the material. If I'm holding my sword, maybe it switches grips or turns it in my hand so I'm striking with the flat of the blade. If I'm holding an adjustable light then maybe it makes it brighter or dimmer. You get the idea.
To some extent, combat breaks one or two of these "rules". Right clicking in that case me be for an alternate attack (stabbing instead of slicing or something).
Now, how all of that interacts with the scripting system is more complicated than I want to go into here (and will be better with examples anyway).
But hopefully this gives you an idea of where I'm going.
(Note: it's interesting to point out that the current build mode block editing could be redone as a two-handed tool and the controls could be identical... later, I will convert it over but for now regular "build mode" works just fine and I'm not going to "break" it.
)