SHOW:
|
|
- or go back to the newest paste.
1 | - | -- BeeAnalyzer 3.0 |
1 | + | |
2 | - | -- Original code by Direwolf20 |
2 | + | |
3 | - | -- Hotfix 1 by Mandydax |
3 | + | |
4 | - | -- Hotfix 2 by Mikeyhun/MaaadMike |
4 | + | |
5 | local countBees = 0 | |
6 | local beeTable = {} | |
7 | local currScore = 0 | |
8 | ||
9 | s = peripheral.wrap("right") | |
10 | ||
11 | function regTable() | |
12 | beeTable["bees.species.industrious"] = 31 | |
13 | beeTable["bees.species.imperial"] = 30 | |
14 | beeTable["bees.species.unweary"] = 21 | |
15 | beeTable["bees.species.majestic"] = 20 | |
16 | beeTable["bees.species.diligent"] = 12 | |
17 | beeTable["bees.species.ancient"] = 11 | |
18 | beeTable["bees.species.noble"] = 10 | |
19 | beeTable["bees.species.cultivated"] = 6 | |
20 | beeTable["bees.species.common"] = 5 | |
21 | - | beeTable["bees.species.diligent"] = 11 |
21 | + | beeTable["bees.species.marbled"] = 1 |
22 | beeTable["bees.species.forest"] = 1 | |
23 | beeTable["bees.species.meadows"] = 1 | |
24 | end | |
25 | ||
26 | function getBees() | |
27 | turtle.select(1) | |
28 | for i = 1,6 do | |
29 | if turtle.suck() then countBees = countBees + 1 end | |
30 | end | |
31 | end | |
32 | ||
33 | function returnBees() | |
34 | turtle.turnRight() | |
35 | turtle.turnRight() | |
36 | turtle.select(princess) | |
37 | s.dropSneaky(1,1) | |
38 | turtle.select(bestDrone) | |
39 | s.dropSneaky(0,1) | |
40 | end | |
41 | ||
42 | function ditchCombs() | |
43 | turtle.turnLeft() | |
44 | m = peripheral.wrap("front") | |
45 | for i = 1,8 do | |
46 | turtle.suck() | |
47 | while (not m.isBee()) and (turtle.getItemCount(i) > 0) do | |
48 | turtle.select(i) | |
49 | turtle.drop() | |
50 | if not m.isBee() then | |
51 | print("Gotta ditch the combs!") | |
52 | turtle.suck() | |
53 | turtle.dropDown() | |
54 | turtle.select(countBees) | |
55 | turtle.transferTo(i, 1) | |
56 | countBees = countBees - 1 | |
57 | end | |
58 | end | |
59 | end | |
60 | end | |
61 | ||
62 | function scanBees() | |
63 | turtle.turnLeft() | |
64 | for i = 1, countBees do | |
65 | turtle.select(i) | |
66 | turtle.drop() | |
67 | end | |
68 | print("Sleeping for a minute while the bee scans") | |
69 | sleep(26) | |
70 | end | |
71 | ||
72 | function determineBest(slot) | |
73 | local primScore = (beeTable[data["speciesPrimary"]] ~= nil and beeTable[data["speciesPrimary"]] or 0) | |
74 | local secScore = (beeTable[data["speciesSecondary"]] ~= nil and beeTable[data["speciesSecondary"]] or 0) | |
75 | score = primScore + secScore | |
76 | print("Current: "..currScore) | |
77 | if primScore == 0 and secScore == 0 then print("Warning bee species not in registry table! Evalutaing as 0!") end | |
78 | print("NewScore: "..score) | |
79 | if(bestDrone == 0) then | |
80 | bestDrone = slot | |
81 | currScore = score | |
82 | else | |
83 | if (score > currScore) then | |
84 | bestDrone = slot | |
85 | currScore = score | |
86 | end | |
87 | end | |
88 | end | |
89 | ||
90 | function analyzeBees() | |
91 | for i = 1, countBees do | |
92 | turtle.select(i) | |
93 | s.suckSneaky(0,1) | |
94 | turtle.turnRight() | |
95 | turtle.drop() | |
96 | m = peripheral.wrap("front") | |
97 | data = m.analyze() | |
98 | if (data["type"] == "princess") then | |
99 | princess = i | |
100 | print("Princess = "..i) | |
101 | else | |
102 | determineBest(i) | |
103 | end | |
104 | print(data["speciesPrimary"]..":"..data["speciesSecondary"]) | |
105 | print("BestDrone = "..bestDrone) | |
106 | turtle.suck() | |
107 | turtle.turnLeft() | |
108 | if i ~= countBees then sleep(26) end | |
109 | end | |
110 | end | |
111 | ||
112 | ||
113 | function dropExcess() | |
114 | for i = 1, 16 do | |
115 | turtle.select(i) | |
116 | turtle.dropDown() | |
117 | end | |
118 | end | |
119 | ||
120 | function dropDupe() | |
121 | for i = 1, countBees do | |
122 | turtle.select(i) | |
123 | - | -- Drop same drones so they won't interfere |
123 | + | |
124 | if count > 1 then | |
125 | print("Dropping excess drones.") | |
126 | turtle.dropDown(count - 1) | |
127 | end | |
128 | end | |
129 | turtle.select(1) | |
130 | end | |
131 | ------============================= | |
132 | ||
133 | currslot = 1 | |
134 | princess = 0 | |
135 | bestDrone = 0 | |
136 | data="" | |
137 | countBees = 0 | |
138 | beeTable = {} | |
139 | currScore = 0 | |
140 | ||
141 | regTable() | |
142 | dropExcess() | |
143 | getBees() | |
144 | if (turtle.getItemCount(2) > 0) then | |
145 | ditchCombs() | |
146 | dropDupe() | |
147 | scanBees() | |
148 | analyzeBees() | |
149 | returnBees() | |
150 | dropExcess() | |
151 | end |