diff --git a/README.md b/README.md new file mode 100644 index 0000000..c2c6b35 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Salt's Minecraft Scripts + +## Why? + +After so many times rewriting the same goddamn scripts over and over again, you decide you should just plonk them in a git repo and call it good. diff --git a/stoneblock-3-chicken-breeder/README.md b/stoneblock-3-chicken-breeder/README.md new file mode 100644 index 0000000..473592a --- /dev/null +++ b/stoneblock-3-chicken-breeder/README.md @@ -0,0 +1,20 @@ +# Stoneblock 3 Chicken Breeder + +## Usage + +Set up the turtle like so: + +* Any tier mining turtle +* Breeder on top +* Chest in front +* Chest on bottom +* Seeds in inventory +* Pair of chickens to 10/10/10 in inventory +* Run betterbreeder.lua + +The turtle will 10/10/10 a stack of chickens +in the chest below, then stop. + +## Compatibility + +No clue. Try it on a pack that has the Chickens mod and see if it works. diff --git a/stoneblock-3-chicken-breeder/betterbreeder.lua b/stoneblock-3-chicken-breeder/betterbreeder.lua new file mode 100644 index 0000000..a98d8ee --- /dev/null +++ b/stoneblock-3-chicken-breeder/betterbreeder.lua @@ -0,0 +1,93 @@ +-- See README for usage info +function placeBreeder() + print('Initializing breeder...') + breeder = peripheral.wrap('top') + -- Why are we discarding slot 2? + -- Because, by design, it MUST be + -- the trash chicken from the last + -- generation. + breeder.pushItems('bottom', 2) + for i = 1, 16, 1 do + turtle.select(i) + turtle.suckUp() + end + turtle.digUp() + selectItem('chickens:breeder') + turtle.placeUp() + selectItem('minecraft:wheat_seeds') + turtle.dropUp() + pushBestChickens() +end + +function selectItem(name) + for i = 1, 16, 1 do + if turtle.getItemDetail(i) then + if turtle.getItemDetail(i).name == name then + turtle.select(i) + return i + end + end + end +end + +function pushBestChickens() + print('Selecting best chickens...') + chickens = 0 + index = nil + for i = 16, 1, -1 do + print('Checking index ' .. i) + item = turtle.getItemDetail(i) + if item then + turtle.select(i) + if not i == 1 then + print('Discarding twin from breeding pair') + turtle.dropDown(item.count - 1) + end + if item.name == 'chickens:chicken_item' then + if item.count >= 16 then error('Done!') end + for i = 1, item.count, 1 do + if chickens == 0 then + print('Inserting first chicken') + turtle.dropUp(1) + chickens = chickens + 1 + elseif chickens == 1 then + print('Inserting second chicken') + buffer = peripheral.wrap('front') + turtle.drop(1) + buffer.pushItems('top', 1, 16, 2) + chickens = chickens + 1 + else + print('Discarding chicken') + turtle.dropDown() + end + end + end + end + end +end + +function checkIfDone() + output = peripheral.wrap('bottom') + for i = 1, output.size(), 1 do + if output.getItemDetail(i) then + item = output.getItemDetail(i) + if item.count == item.maxCount then + return true + end + end + end + return false +end + +local function main() + print('Initializing...') + while not checkIfDone() do + print('Iterating...') + placeBreeder() + sleep() + while peripheral.wrap('top').getItemDetail(4) == nil do sleep() end + end + print('Breeding complete') +end + +main()