Features:
- Manage all droids from a centralised location
- Droids report their status and progress so you know what's going on and when to intervene
- When the cargo hold is full, droids will automatically drop off and then return to where they stopped
- Distress call when obstructed by mobs or players (will resume working as soon as obstruction is removed, no need for further orders)
- Easy to use GUI with all information visible at all times
- Works with 1.3 and 1.31 (read notes)
Server
Turtles
To install, go to .minecraftsaves{worldname}computer and extract the contents of the appropriate archive into the folder of the computer/turtle you want to use (you can check which folder you need by entering 'id' on a console or turtle in Minecraft). I have not made an installer cause it's been just me maintianing the computers on our server and if the foreman had a problem I went there and fixed it. I do consider it for a future release though.
NOTE: This software does not work as an API, because there are several files that chain-load. If you place the files in the API folder you will get errors. Remove calls to os.loadAPI() if you want ot use it this way (make sure you know what you're doing first).
How to use:
- Turtles
Spoiler
- Install the droid software on each wireless turtle
- Enter the coordinates of every droid using 'setcoords' (can be skipped if you use a dock)
- Run the droid software on each turtle with 'remote-bot' and when asked, enter the ID of the server
- The droid will then say what it's ID is (in case you don't know yet), make a note of all four IDs (you can use less turtles too)
- Make sure you don't exit the program by pressing '0', this wil terminate the connection! Just hit Escape on your keyboard.
- Server
Spoiler
- Install and run server software (remote-pc). You need a console with a rednet modem on it's right side!
- From the main menu, select 'Change droid ID'
- Note your selection box is now focused on the four items in the uppoer left. Select on and you'll be asked to enter a new ID.
- Repeat step 3 for up to four droids
- To set up a mine
Spoiler
- Make sure your droids are position where their drop-off point is (preferably facing a RedPower filter or similar contraption)
- From your server, select 'Mining operations' and then select which droid you want to use
- Enter the coordinates for the starting point. This part might be a little tricky, so pay attention. The robots always go towards +x and +z when they dig, so the position you enter must have the smallest coordinates in both directions. What this means is, once you have selected a rectangular area you want to excavate, stand in one corner and face direction 0 (south). The droid will dig forward and to the left from this position. Keep checking until you find the corner in which when you face south, the target area is contained to the left and infront of you. I will add some schematics later.
- Now enter the size of the individual hole. Width and Length are pretty obvious, Max depth is the Y coordinate to which the droid will dig. So if you specifiy 15, the hole wont be 15 deep, but will have it's bottom layer on coordinate Y = Max depth (I guess it should be called Min depth). There's a built in safety to prefent droids from hitting bedrock, so you cannot go beyond depth 5 (even if you explicitly specifiy it, this means this program is useless on superflat worlds!)
- Check all the coordinates again and confirm your selection with 'y' and Enter. If you made an error, type any other letter and you'll be asked whether you want to enter new coords or to cancel the operation altogether.
- Repeat all steps for the rest of your droid fleet
- To set up a dock
Spoiler
As of 1.31 this function is pretty much obsolete, but I'm including it for compatibility reasons. A dock is usefull if you intend on using lots of robots for various purposes and you need them to know where they are in the world. It can also come in handy if you want to manually remove a stuck mining droid and place it back.- Construct a dock, consisting of one empty block, surrounded by blocks on three sides. Blocks above and bellow are irrelevant.
- Make a note of the coordinates of the empty space and the direction of the unobstructed side.
- Enter those coordinates in the server by slecting 'Change docking coordinates' from the menu
- Whenever you want to calibrate a bot, place or maneuver it to enter the dock, and run the 'remote-bot' program
- From the server, select 'Callibrate droid' and select the droid you just placed. Make sure you have entered it's ID in the fleet database first
- Wait a few seconds and the droid will have the new coordinates configured. If something stalls, just press space to cancel.
Spoiler
Most of these are extremely specific and probably wont ever happen during normal use. And they aren't that much of a problem, just minor issues.- You cannot use the 1.31 'vector' function if using any of the included APIs, cause I'm using an object with the same name and similar functionality. The program works correctly with 1.31, but there might be issues if you want to extend/incorporate it.
- Droids cannot be recalled by the server, because the digging function is a loop and messages cannot be received in it's duration. A workaround is being considered.
- If droids dig beyond rednet wireless range, progress wont be updated on the server. They continue operation as normal. Currently gateways to extend the range cannot be added.
- Droids dig most efficiently with even width and length because after every row they return to the starting x/z of the mine. With even numbers this will be a single operation, with odd numbers there'll be two movements. May cause a minor slowdown on very large operations.
- Droids have a problem with navigating around obstacles that are above them and are wider than a few blocks. You can easily identify a stuck robot cause it'll sit in one position spinning aimlessly. By removing the blocks above it, movement will resume as normal. This may be a major issue, since no distress signal will be sent and the droid will not give up attempting to circumvent the obstruction, so keep an eye for robots that have not returned for a while after reporting they are going to drop-off.
- If a droid digs into sand or gravel and it falls from above, it will be stuck without sending a signal. You wont experience this unless you use them to dig underground
- There's a slight diffirence when returning to either odd or even row. If the cargo bay got filled on an even row every time and more than a few times, the droid may erroneously complete the operation before the last few blocks have been mined. May only happen with large volumes of excavating
- Server settings are not stored as permanent variables. This means you'll have to reconfigure your docking coordinates and fleet IDs every time the program is terminated or the chunk containing the server unloads.
- Under rare circumstances, when returning after a drop-off, the droid may begin digging from a position considerably higher than the intended (in a location with just air in it). This bug may have been removed in the present version, but it's very hard to recreate. Likely occurs when drop-off happened between rows/levels and there's a barrier around the mining coordinates (as would be the case if the droid is digging a hole)
How I may improve it:
- Sync all coordinate operations with the new GPS API
- Add screen support so droid status can be displayed and visible from a larger distance
- Recall droid function
- Store fleet data permanently on the server
- Various automations like detecting all droids in range, surveying the land, assigning large lots that are automatically split in smaller chunks and sending the droids to those chunks without manual entering of coordinates (now easier with screens)
- Sanity check for entered coordinates. You cannot imagine how much it sucks to accidentally omit a minus and have the droid fly off into the sunset. So if distance is larger than say 100 blocks, confirmation should be required
http://www.failreactor.com/set/88
It took a single foreman about 3 real-time days to excavate the entire volume with 3 droids (we had 4, but one was lost to creepers, and we didn't really need any more to be efficient). The mineral resources we acquired are among the tens of thousands (hundreds of each RedPower gem type and thousands of each common metal ore, including iron). You can see the drop off points (RedPower filters), one for every droid, so they don't dump around if two are unloading at the same time. Sorting machines filter out cobblestone, which is sent to be incinerated in a small lava pool and the rest is split between three silos.