Open Computers Crop Breeding

Introduction
This Open Computers (OC) script will allow you to use an OC robot to automatically stat up, breed, and spread crops for you. The description found here will be only for the autoSpread part of the script. This function will "duplicate" a designated crop and put it in a storage farm for collection. Naturally, with OC there are nuances and this page is meant to help players that don't have the knowledge base to read the code for configuration needed. I'm not the best with long form explanations but here we go! (NOTE: The Geolyzer was broken upon the release of version 2.1.2.1, this script will not work until switching to a older or more recent version)

Early Gates
When it comes to actually being able to set up a robot with adequate components for this there are two gates that come to mind. You'll also need to dabble in Thaumcraft - I know, its annoying - this is because the robot needs a transvector dislocator and transvector binder to function properly.
 * 1) Easy Route (late HV)- this entails getting EV circuits and epoxid. This is because you need an Internet Card to be able to pull the script from GitHub.
 * 2) Annoying Route (HV) - this requires you to manually copy and paste all of the code from the GitHub to work. If you really want to automate crops pre-epoxid this is your only option...

Bare Minimum Components
Building a robot requires you to make an electronics assembler. The GUI for this block is unlocked by placing a computer case in the top left slot. To get your robot working you'll need the following components: (it should be assumed that you can use components greater than the tier listed) Optional Upgrades: (read more below)
 * Central Processing Unit (CPU)(Tier 2)*
 * Graphics Card (Tier 1)*
 * Redstone Card (Tier 1)
 * Memory (Tier 1.5)
 * Screen (Tier 1)
 * EEPROM (Lua BIOS)
 * Hard Disk Drive (Tier 1)(1MB)
 * Inventory Controller Upgrade**
 * Inventory Upgrade**
 * Keyboard
 * Geolyzer


 * Disk Drive
 * Internet Card

(*) these can be replaced by a single APU if you feel so inclined. (**) yes, you do need both.

Important - if you do use the optional upgrades you will need a Tier 3 Computer Case to fit all of the components required. As you can see, the internet card is not mentioned. Why? Because, you can install the script onto the hard disk before assembling the robot, but it still requires an internet card if you chose to go the easy route. If you do not have an extra computer laying around to install the script you'll need to add a disk drive to the robot, this will allow you to insert the OpenOS floppy disk. Finally, add the internet card to the robot and now you can assemble it.

Configuring your Farm
This part is typically what gets lost in translation. Be sure to read carefully. The below description will be exclusively for the fork of the auto-crossbreeding script linked below in "Setting Up Your Robot". Pictured to the right is the layout of the actual breeding farm, this is where the magic happens. For now we will focus on the uppermost row, this include these blocks from left to right: (*) you can tell which direction it is facing because the face will be animated (if you play with animated textures set to ON) (**) I like to put a Crop-Matron here because it will most of the breeding farm and half of the storage (if set to sideLength = 9, more on this later)
 * Charger - this is the starting position of the robot - the robot is placed on top of this block and faces the direction of the drawer. This block also needs to be powered on via redstone.
 * Jabba Barrel (this cannot be a storage drawer) - this is the storage for crop(sticks), if this isn't full while the robot is running bad things will happen. Ensure that the barrel's face is pointed to the sky.
 * Farmland - this is (y - 1) from the other blocks on this row. It is utilized by the storage farm.
 * Transvector Dislocator - this block must be facing the direction of the farmland mentioned above, it facilitates the movement of crops from the breeding farm to the storage farm.*
 * Air - there does not need to be anything in this specific block.**
 * Storage Chest - this chest is where the robot will put anything it picks up - miscellaneous seeds and drops.

-- <- line of required blocks (from above) [P, _, _, P, _, _] | [_, T, _, _, T, _] | [_, _, P, _, _, P] | this can also be seen as a 2x2 of 3x3 plots (bad wording) [P, _, _, P, _, _] | [P, _, _] [_, T, _, _, T, _] | [_, T, _] <- this is one "plot" [_, _, P, _, _, P] | [_, _, P]



Above is an ASCII depiction of the crop layout P = highstatted crop that you do not mind losing (usually stickreed) T = Crop that you want to spread. All T's on a single breeding field need to be the same crop. _ = is air, nothing needs to go here (as far as crops/cropsticks go), but it does need to be farmland.

Now you need to setup your storage farm. (Pictured to the right) The default config expects that the storage farm will be 13x13 - I will describe how to change this further down.

Setting up your Robot
Congrats! You've made it to the final step! Pictured to the right is robot inventory configuration. What follows is the step-by-step instructions to installing the script onto your robot:
 * 1) Place your robot on the charger (facing the correct direction mentioned above)
 * 2) Place the OpenOS floppy disk into the robots inventory
 * 3) Click the power button in the robot GUI
 * 4) Once prompted type "install" followed by "Y" and "Y"
 * 5) Then type/copy and paste wget https://raw.githubusercontent.com/huchenlei/auto-crossbreeding/improve_autocrossbreed/install.lua
 * 6) Followed by ./install improve_autocrossbreed

Once you've ensured that you have done everything else properly - including the placement of crops into the breeding farm - you can now type autoSpread in the robot's terminal.

Playing with Configs
The default configs that come with this script are pretty good, although I'd recommend tweaking at least one thing. Read some of the comments to see what else my help your use case. To get to the configs you will need to do the following: How to go about changing storage farm size:
 * 1) Make sure that the robot is powered on and then type "edit config.lua"
 * 2) Navigate to the flag "takeCareOfDrops" and set it to true
 * 1) Make sure that the robot is powered on and then type "edit config.lua"
 * 2) Change the value of "storageFarmSize" to whatever value matches the side length of your storage farm.