<bigger>Lua Builder</bigger>

Lua builder is a super expensive, sliightly overpowered, insanely power consuming node that allows the luacontroller to BUILD...

It can build/destroy/punch 50 things per 0.25 seconds (200 things/second).
For each thing punched/built/destroyed it consumes 40 power (At maximum, consumes 8 000 power... yea... you will need like 10 reactors for that).
It can place nodes in a 20 radius cube around itself.

To use it, you will need to link it to the luacontroller with the luacontroller linker or use/calculate/remember the relative position of it.

<big>Digging</big>
<mono>send_to(links.builder,{
$C1    type = "dig",
$C1    pos = {x = 0, y = 1, z = 0}, -- needs to be a vector, that is relative to THE BUILDER
$C1    item = "sbz_resources:robotic_arm" -- needs to be an item that is inside the builder's inventory
})</mono>

<big>Building</big>
<mono>send_to(links.builder,{
$C1    type = "build",
$C1    pos = {x = 0, y = 1, z = 0}, -- needs to be a vector, that is relative to THE BUILDER
$C1    item = "sbz_resources:matter_blob" -- needs to be an item that is inside the builder's inventory
$C1    param2 = 4, -- needs to be between 0 and 255
})</mono>

<big>Punching</big>
<mono>send_to(links.builder,{
$C1    type = "punch",
$C1    pos = {x = 0, y = 1, z = 0}, -- needs to be a vector, that is relative to THE BUILDER
$C1    item = "sbz_resources:robotic_arm" -- needs to be an item that is inside the builder's inventory
})</mono>

<big>Using</big>
(nodebreaker chooses between digging and using automatically, but this aint the nodebreaker and i felt lazy)
(using = clicking somewhere with a tool, without the intention of holding your mouse button and breaking the node, for example luacontroller linker)
<mono>send_to(links.builder,{
$C1    type = "use",
$C1    pos = {x = 0, y = 1, z = 0}, -- needs to be a vector, that is relative to THE BUILDER
$C1    item = "sbz_resources:robotic_arm" -- needs to be an item that is inside the builder's inventory
})</mono>

<big>Seeing</big>
So, if you want to see inside, for example, a container, you can yea, do this: (warning: can be an absurd amount of data if there are data disks in there)
<mono>send_to(links.builder,{
$C1    type = "see",
$C1    pos = {x = 0, y = 1, z = 0}, -- needs to be a vector, that is relative to THE BUILDER
})</mono>

The event that you receive will look something like this:
<mono>
$C1... = {
$C1    node = { name = "any node name", param2 = 0-255, param1 = 0-255 },
$C1    fields = { --[[ node meta fields as described in minetest documentation, this one may hold insane amounts of data, be aware ]] },
$C1    inventory = {some_epic_list = { stack_in_table_form1, stack_in_table_form2, ... }}
$C1}
</mono>

<big>Moving</big>
<mono>send_to(links.builder,{
$C1    type = "move",
$C1    pos = {x = 0, y = 1, z = 0}, -- needs to be a vector, that is relative to THE BUILDER
$C1    pos2 = {x = 0, y = 2, z = 0}, -- needs to be a vector, that is relative to THE BUILDER
})</mono>

Moves a node from pos to pos2, can be almost any node :D

<big>dir</big>
So: using, punching, building all can be supplied a dir property.  
The dir property modifies how pointed_thing should be.  
Valid inputs: nil, "up", "down", "south","west","north","east", "no_dir"  

The default is no_dir, and you will rarely need to change this.