The main thing that has been keeping me from modding is coming to a close soon, so hopefully I should be able to be a bit more punctual here. I was going to do the species next, I wanted to do this first so that some of the species and what they do make more sense.
Today I am going to go over some of the concepts behind the mod. How things will work, etc. Having an understanding of the inner workings of the mod should help make other things make more sense.
First is how the spirits connect to each other and inventories. Spirits will not automatically search for connections, making a spirit you just placed very useless. To make connections, you need to open the GUI and press a button, which will probably say something like “Set Neighbour”. After you do, the mod will intercept any right clicks on blocks, and right clicking on another spirit within range will connect them.
For connecting to containers or anything else, first you must give the spirit a job. Jobs include telling it to “Take” from something, to “Give” something, or to “Store” something. Taking obviously has the spirit retrieve something from any spots specified, giving has them put something at the spot, and storing allows them to do both as needed. Some species will have special abilities other than these three, but they are usually a variation of one of them. Although a spirit can usually link to multiple things, it can only perform one of these jobs on all connected objects.
Once given a job, you may then connect the spirit to the containers and devices of your choice. It works much the same way, overriding right click temporarily. Shift right clicking on a connection will remove it, right clicking on one will open a settings window for it. Here you can set filters, amounts, slot numbers, sides, or anything else needed for the job. Each connection will have its own settings, allowing a large amount of diversity. Taking and giving will always be attempted, anything taken will attempt to be put somewhere it can be stored or given, and anything being given will be checked for in storage.
Another important point is the stats of spirits. Spirits have a strength, range and speed. Strength determines how much a spirit is willing to carry at once, and how many connections it is willing to have. Range determines how far they can connect to other spirits, as well as the range of their job, although both may be different based on the job. Speed determines how fast the spirit performs jobs, whether it only does something every few seconds, or several times a second. These stats will be based mainly on the species of spirit, but also any modifiers placed on the spirit.
Lastly, spirits will not listen to just anyone. I am not 100% sure how I will handle it, if I will add a “friends list” type feature or something else, but in general, only the owner may interact with their own spirits. Nobody else can connect to your spirits, modify their connections or settings, etc. I may also make a security spirit, so to speak, that can prevent others from touching other blocks in the area. I want the mod to be as multiplayer friendly as possible, allowing cooperation but not theft or griefing.
Well, there is most the important background info. Next up will be species, then modifiers after that. Then I will be giving examples of using the spirits. I will also hopefully be able to get some progress posts up showing how things are going.