Compare commits
	
		
			10 Commits
		
	
	
		
			e8a2105c77
			...
			e7fce569e3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | e7fce569e3 | ||
|  | 7820506e6a | ||
|  | 65d31d1959 | ||
|  | c4cd334cbe | ||
|  | 4485896dc0 | ||
|  | 6b831c18ef | ||
|  | 0f4164e4ec | ||
|  | 748576643f | ||
|  | 326814c092 | ||
|  | 070f33ac80 | 
| @@ -1,11 +1,13 @@ | ||||
| CropController = {} | ||||
| CropController.interval = 900 | ||||
| CropController.title = "Wheat farm" | ||||
|  | ||||
| function CropController:new(t) | ||||
|     t = t or {} | ||||
|     setmetatable(t, self) | ||||
|     self.__index = self | ||||
|     t.matrix = {} | ||||
|     t.stats = {} | ||||
|     t.stats["Harvest Interval"] = 900 | ||||
|     return t | ||||
| end | ||||
|  | ||||
| @@ -150,10 +152,72 @@ function CropController:harvest() | ||||
|     self:doAction(self.slaveID, "harvest") | ||||
|     local s, duration = self:doAction(self.slaveID, "getLastHarvestDuration") | ||||
|     if s == true then | ||||
|         self.lastHarvestDuration = duration | ||||
|         self.stats["Last harvest duration"] = duration | ||||
|     end | ||||
|     local s, yield = self:doAction(self.slaveID, "getLastYield") | ||||
|     if s == true then | ||||
|         self.lastYield = yield | ||||
|         self.stats["Last yield"] = yield | ||||
|     end | ||||
| end | ||||
|     self:getMatrix() | ||||
| end | ||||
|  | ||||
| function CropController:displayStats(x,y) | ||||
|     local keyWidth = 0 | ||||
|     for k, v in pairs(self.stats) do | ||||
|         if string.len(tostring(k)) > keyWidth then | ||||
|             keyWidth = string.len(tostring(k)) | ||||
|         end | ||||
|     end | ||||
|     for k, v in pairs(self.stats) do | ||||
|         term.setCursorPos(x, y) | ||||
|         term.write(tostring(k)) | ||||
|         term.setCursorPos(x + keyWidth + 1, y) | ||||
|         term.write(tostring(v)) | ||||
|         y = y + 1 | ||||
|     end | ||||
| end | ||||
|  | ||||
| function CropController:displayTitle(x,y) | ||||
|     term.setCursorPos(x,y) | ||||
|     term.write(self.title) | ||||
|     local width = term.getSize() | ||||
|     for i = 1, width do | ||||
|         term.setCursorPos(i, y+1) | ||||
|         term.write("_") | ||||
|     end | ||||
| end | ||||
|  | ||||
| function CropController:refreshDisplay() | ||||
|     term.clear() | ||||
|     term.setTextColour(colours.white) | ||||
|     self:displayTitle(1,1) | ||||
|     self:displayMatrix(1,3) | ||||
|     term.setTextColour(colours.white) | ||||
|     local matrixHeight = #self.matrix | ||||
|     self:displayStats(1, matrixHeight + 4) | ||||
| end | ||||
|  | ||||
| function CropController:updateTimeToHarvest(x,y) | ||||
|     term.clearLine(y) | ||||
|     term.setCursorPos(x,y) | ||||
|     term.write("next harvest in " .. tostring(math.ceil(self.stats["Harvest Interval"] - (os.clock() - self.lastHarvest))) .. " seconds") | ||||
| end | ||||
|  | ||||
| function CropController:main() | ||||
|     local termWidth, termHeight = term.getSize() | ||||
|     local cc = CropController:new() | ||||
|     cc:setSlaveID(5) | ||||
|     cc:doAction(cc.slaveID, "init") | ||||
|     cc:initMonitor() | ||||
|     while true do | ||||
|         cc.lastHarvest = os.clock() | ||||
|         cc:harvest() | ||||
|         cc:refreshDisplay() | ||||
|         while cc.stats["Harvest Interval"] - (os.clock() - cc.lastHarvest) > 0 do | ||||
|             cc:updateTimeToHarvest(1, termHeight - 1) | ||||
|             sleep(0.5) | ||||
|         end | ||||
|     end | ||||
| end | ||||
|  | ||||
| CropController:main() | ||||
		Reference in New Issue
	
	Block a user