<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.atitd.org/wiki/t6w/index.php?action=history&amp;feed=atom&amp;title=User%3AKasiya%2FVeggietales</id>
	<title>User:Kasiya/Veggietales - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://www.atitd.org/wiki/t6w/index.php?action=history&amp;feed=atom&amp;title=User%3AKasiya%2FVeggietales"/>
	<link rel="alternate" type="text/html" href="http://www.atitd.org/wiki/t6w/index.php?title=User:Kasiya/Veggietales&amp;action=history"/>
	<updated>2026-06-07T04:16:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>http://www.atitd.org/wiki/t6w/index.php?title=User:Kasiya/Veggietales&amp;diff=261539&amp;oldid=prev</id>
		<title>Kasiya at 16:09, 30 August 2014</title>
		<link rel="alternate" type="text/html" href="http://www.atitd.org/wiki/t6w/index.php?title=User:Kasiya/Veggietales&amp;diff=261539&amp;oldid=prev"/>
		<updated>2014-08-30T16:09:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:09, 30 August 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;crudely modifed barley script - uses grain fert. the numbers at the start are not updated&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;crudely modifed barley script - uses grain fert. the numbers at the start are not updated&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nowiki&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- Edit these first 2 to adjust how much is planted in a pass&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- Edit these first 2 to adjust how much is planted in a pass&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- May need to adjust walk_time in Barley_common.inc if you move too slowly to keep up&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- May need to adjust walk_time in Barley_common.inc if you move too slowly to keep up&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l419&quot; &gt;Line 419:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 419:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nowiki&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kasiya</name></author>
	</entry>
	<entry>
		<id>http://www.atitd.org/wiki/t6w/index.php?title=User:Kasiya/Veggietales&amp;diff=261538&amp;oldid=prev</id>
		<title>Kasiya: Created page with &quot;crudely modifed barley script - uses grain fert. the numbers at the start are not updated  &lt;nowiki&gt; -- Edit these first 2 to adjust how much is planted in a pass -- May need to a...&quot;</title>
		<link rel="alternate" type="text/html" href="http://www.atitd.org/wiki/t6w/index.php?title=User:Kasiya/Veggietales&amp;diff=261538&amp;oldid=prev"/>
		<updated>2014-08-30T16:08:24Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;crudely modifed barley script - uses grain fert. the numbers at the start are not updated  &amp;lt;nowiki&amp;gt; -- Edit these first 2 to adjust how much is planted in a pass -- May need to a...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;crudely modifed barley script - uses grain fert. the numbers at the start are not updated&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
-- Edit these first 2 to adjust how much is planted in a pass&lt;br /&gt;
-- May need to adjust walk_time in Barley_common.inc if you move too slowly to keep up&lt;br /&gt;
-- grids tested: 2x2, 3x3, 5x5, 6x6 (probably need 3+ dex and 600ms walk time)&lt;br /&gt;
grid_w = 5;&lt;br /&gt;
grid_h = 5;&lt;br /&gt;
watered = {};&lt;br /&gt;
loop_count = 0;&lt;br /&gt;
skip_water = 0;&lt;br /&gt;
&lt;br /&gt;
loadfile(&amp;quot;luaScripts/Flax_common.inc&amp;quot;)();&lt;br /&gt;
loadfile(&amp;quot;luaScripts/screen_reader_common.inc&amp;quot;)();&lt;br /&gt;
loadfile(&amp;quot;luaScripts/ui_utils.inc&amp;quot;)();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function promptBarleyNumbers(is_plant)&lt;br /&gt;
	scale = 1.0;&lt;br /&gt;
	&lt;br /&gt;
	local z = 0;&lt;br /&gt;
	local is_done = nil;&lt;br /&gt;
	local value = nil;&lt;br /&gt;
	-- Edit box and text display&lt;br /&gt;
	while not is_done do&lt;br /&gt;
		-- Put these everywhere to make sure we don't lock up with no easy way to escape!&lt;br /&gt;
		checkBreak(&amp;quot;disallow pause&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		lsPrint(10, 10, z, scale, scale, 0xFFFFFFff, &amp;quot;Choose passes and grid size&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		-- lsEditBox needs a key to uniquely name this edit box&lt;br /&gt;
		--   let's just use the prompt!&lt;br /&gt;
		-- lsEditBox returns two different things (a state and a value)&lt;br /&gt;
		local y = 40;&lt;br /&gt;
		lsPrint(5, y, z, scale, scale, 0xFFFFFFff, &amp;quot;Passes:&amp;quot;);&lt;br /&gt;
		is_done, num_loops = lsEditBox(&amp;quot;passes&amp;quot;,&lt;br /&gt;
			100, y, z, 50, 30, scale, scale,&lt;br /&gt;
			0x000000ff, 1);&lt;br /&gt;
		if not tonumber(num_loops) then&lt;br /&gt;
			is_done = nil;&lt;br /&gt;
			lsPrint(10, y+18, z+10, 0.7, 0.7, 0xFF2020ff, &amp;quot;MUST BE A NUMBER&amp;quot;);&lt;br /&gt;
			num_loops = 1;&lt;br /&gt;
		end&lt;br /&gt;
		y = y + 32;&lt;br /&gt;
&lt;br /&gt;
		lsPrint(5, y, z, scale, scale, 0xFFFFFFff, &amp;quot;Grid size:&amp;quot;);&lt;br /&gt;
		is_done, grid_w = lsEditBox(&amp;quot;grid&amp;quot;,&lt;br /&gt;
			100, y, z, 50, 30, scale, scale,&lt;br /&gt;
			0x000000ff, grid_w);&lt;br /&gt;
		if not tonumber(grid_w) then&lt;br /&gt;
			is_done = nil;&lt;br /&gt;
			lsPrint(10, y+18, z+10, 0.7, 0.7, 0xFF2020ff, &amp;quot;MUST BE A NUMBER&amp;quot;);&lt;br /&gt;
			grid_w = 1;&lt;br /&gt;
			grid_h = 1;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		grid_w = tonumber(grid_w);&lt;br /&gt;
		grid_h = grid_w;&lt;br /&gt;
		y = y + 32;&lt;br /&gt;
&lt;br /&gt;
		if lsButtonText(170, y-32, z, 100, 0xFFFFFFff, &amp;quot;OK&amp;quot;) then&lt;br /&gt;
			is_done = 1;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if is_plant then&lt;br /&gt;
			lsPrintWrapped(10, y, z+10, lsScreenX - 20, 0.7, 0.7, 0xD0D0D0ff, &amp;quot;This will plant and harvest a &amp;quot; .. grid_w .. &amp;quot;x&amp;quot; .. grid_w .. &amp;quot; grid of Barley &amp;quot; .. num_loops .. &amp;quot; times, requiring &amp;quot; .. (grid_w * grid_w) .. &amp;quot; raw barley and &amp;quot;.. (grid_w * grid_w * num_loops * 4) .. &amp;quot;water in jugs, doing &amp;quot; .. (grid_w*grid_w*num_loops) .. &amp;quot; harvests.&amp;quot;);&lt;br /&gt;
		else&lt;br /&gt;
			lsPrintWrapped(10, y, z+10, lsScreenX - 20, 0.7, 0.7, 0xD0D0D0ff, &amp;quot;This will plant a &amp;quot; .. grid_w .. &amp;quot;x&amp;quot; .. grid_w .. &amp;quot; grid of Flax &amp;quot; .. num_loops .. &amp;quot; times, requiring &amp;quot; .. (grid_w * grid_w) .. &amp;quot; seeds, yielding &amp;quot; .. (grid_w * grid_w * num_loops) .. &amp;quot; seeds.&amp;quot;);&lt;br /&gt;
		end&lt;br /&gt;
		y = y + 50;&lt;br /&gt;
		skip_water = lsCheckBox(10, y, z, 0xFFFFFFff, &amp;quot;Skip Rain Barrel&amp;quot;, skip_water);&lt;br /&gt;
&lt;br /&gt;
		if is_done and (not num_loops or not grid_w) then&lt;br /&gt;
			error 'Canceled';&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if lsButtonText(lsScreenX - 110, lsScreenY - 30, z, 100, 0xFFFFFFff, &amp;quot;End script&amp;quot;) then&lt;br /&gt;
			error &amp;quot;Clicked End Script button&amp;quot;;&lt;br /&gt;
		end&lt;br /&gt;
	&lt;br /&gt;
		&lt;br /&gt;
		lsDoFrame();&lt;br /&gt;
		lsSleep(10); -- Sleep just so we don't eat up all the CPU for no reason&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function doit()&lt;br /&gt;
&lt;br /&gt;
  promptBarleyNumbers(1);&lt;br /&gt;
  askForWindow(&amp;quot;Make sure the plant barley window is pinned and you are in F8F8 cam zoomed in.  You may need to F12 at low resolutions or hide your chat window (if it starts planting and fails to move downward, it probably clicked on your chat window).  Will plant grid NE of current location.  'Plant all crops where you stand' must be ON.  'Right click pins/unpins a menu' must be ON.&amp;quot;);&lt;br /&gt;
  lsSleep(1000);&lt;br /&gt;
  delay_time = 2000;&lt;br /&gt;
  local x = 1;&lt;br /&gt;
  local y = 1;&lt;br /&gt;
  initGlobals();&lt;br /&gt;
  -- Find the plant barley button&lt;br /&gt;
  srReadScreen();&lt;br /&gt;
&lt;br /&gt;
  local imgBarley = &amp;quot;barley.png&amp;quot;;&lt;br /&gt;
  local xyPlantBarley = srFindImage(imgBarley);&lt;br /&gt;
  if not xyPlantBarley then&lt;br /&gt;
    error 'Could not find plant window';&lt;br /&gt;
  end&lt;br /&gt;
  xyPlantBarley[0] = xyPlantBarley[0] + 5;&lt;br /&gt;
  &lt;br /&gt;
  -- Find the Rain Barrel&lt;br /&gt;
  if not skip_water then&lt;br /&gt;
	local imgDrawWater = &amp;quot;draw_water.png&amp;quot;;&lt;br /&gt;
	local xyDrawWater = srFindImage(imgDrawWater);&lt;br /&gt;
	if not xyDrawWater then&lt;br /&gt;
		error 'Could not find rain barrel';&lt;br /&gt;
	end &lt;br /&gt;
	xyDrawWater[0] = xyDrawWater[0] + 5;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  for loop_count=1, num_loops do&lt;br /&gt;
    local start_time = lsGetTimer();&lt;br /&gt;
    harvested = 0;&lt;br /&gt;
    -- Init watered array to 0&lt;br /&gt;
    for y=grid_h, 1, -1 do&lt;br /&gt;
      for x=grid_w, 1, -1 do &lt;br /&gt;
        watered[x+((y-1)*grid_w)] = 1;&lt;br /&gt;
      end&lt;br /&gt;
    end	&lt;br /&gt;
	  -- Local variables&lt;br /&gt;
    local xyCenter = getCenterPos();&lt;br /&gt;
    local xyBarleyMenu = {};&lt;br /&gt;
    xyBarleyMenu[0] = xyCenter[0] - 43;&lt;br /&gt;
    xyBarleyMenu[1] = xyCenter[1] + 0;&lt;br /&gt;
    local dxi=1;&lt;br /&gt;
    local dt_max=grid_w;&lt;br /&gt;
    local dt=grid_w;&lt;br /&gt;
    local dx={1, 0, -1, 0};&lt;br /&gt;
    local dy={0, -1, 0, 1};&lt;br /&gt;
    local num_at_this_length = 3;&lt;br /&gt;
    local x_pos = 0;&lt;br /&gt;
    local y_pos = 0;&lt;br /&gt;
    for y=1, grid_h do&lt;br /&gt;
      for x=1, grid_w do&lt;br /&gt;
        lsPrintln('doing ' .. x .. ',' .. y .. ' of ' .. grid_w .. ',' .. grid_h);&lt;br /&gt;
        statusScreen(&amp;quot;Planting &amp;quot; .. x .. &amp;quot;, &amp;quot; .. y);&lt;br /&gt;
        &lt;br /&gt;
        -- Plant&lt;br /&gt;
        lsPrintln('planting ' .. xyPlantBarley[0] .. ',' .. xyPlantBarley[1]);&lt;br /&gt;
        setWaitSpot(xyBarleyMenu[0], xyBarleyMenu[1]);&lt;br /&gt;
        srClickMouseNoMove(xyPlantBarley[0], xyPlantBarley[1], 0);&lt;br /&gt;
        srSetMousePos(xyBarleyMenu[0], xyBarleyMenu[1]);&lt;br /&gt;
        waitForChange();&lt;br /&gt;
        &lt;br /&gt;
        -- Bring up menu&lt;br /&gt;
        lsPrintln('menu ' .. xyBarleyMenu[0] .. ',' .. xyBarleyMenu[1]);&lt;br /&gt;
        setWaitSpot(xyBarleyMenu[0]+5, xyBarleyMenu[1]);&lt;br /&gt;
        srClickMouse(xyBarleyMenu[0], xyBarleyMenu[1], 0);&lt;br /&gt;
        waitForChange();&lt;br /&gt;
&lt;br /&gt;
        -- Check for window size&lt;br /&gt;
        window_w = 214;&lt;br /&gt;
        window_h = 218;&lt;br /&gt;
&lt;br /&gt;
        -- Pin&lt;br /&gt;
        lsPrintln('pin ' .. (xyBarleyMenu[0]+5) .. ',' .. xyBarleyMenu[1]);&lt;br /&gt;
        srClickMouseNoMove(xyBarleyMenu[0]+5, xyBarleyMenu[1]+0, 1);&lt;br /&gt;
&lt;br /&gt;
        -- Move window&lt;br /&gt;
        local pp = pinnedPos(x, y);&lt;br /&gt;
        lsPrintln('move ' .. (xyBarleyMenu[0]+5) .. ',' .. xyBarleyMenu[1] .. ' to ' .. pp[0] .. ',' .. pp[1]);&lt;br /&gt;
        drag(xyBarleyMenu[0] + 5, xyBarleyMenu[1], pp[0], pp[1], 0);&lt;br /&gt;
		&lt;br /&gt;
        -- Add 2 water now&lt;br /&gt;
        srReadScreen();&lt;br /&gt;
        local barleyAddButton = srFindImageInRange(&amp;quot;BarleyAdd.png&amp;quot;, pp[0], pp[1], 200, 100);&lt;br /&gt;
        local barleyWater = srFindImageInRange(&amp;quot;barleyWater.png&amp;quot;, pp[0], pp[1] - 50, 220, 150);&lt;br /&gt;
        if not barleyAddButton or not barleyWater then&lt;br /&gt;
          -- bugfix maybe for lag.&lt;br /&gt;
          lsSleep(100);&lt;br /&gt;
          srReadScreen();&lt;br /&gt;
          barleyAddButton = srFindImageInRange(&amp;quot;BarleyAdd.png&amp;quot;, pp[0], pp[1], 200, 100);&lt;br /&gt;
          barleyWater = srFindImageInRange(&amp;quot;barleyWater.png&amp;quot;, pp[0], pp[1] - 50, 220, 150);&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        srClickMouseNoMove(barleyAddButton[0]+8, barleyWater[1]);&lt;br /&gt;
        srClickMouseNoMove(barleyAddButton[0]+8, barleyWater[1]);&lt;br /&gt;
 	   -- Fert&lt;br /&gt;
	   srClickMouseNoMove(barleyAddButton[0]+8, barleyWater[1] + 20);&lt;br /&gt;
        watered[x+((y-1)*grid_w)] = watered[x+((y-1)*grid_w)] + 2;&lt;br /&gt;
&lt;br /&gt;
        -- move to next position&lt;br /&gt;
        if not ((x == grid_w) and (y == grid_h)) then&lt;br /&gt;
          lsPrintln('walking dx=' .. dx[dxi] .. ' dy=' .. dy[dxi]);&lt;br /&gt;
          x_pos = x_pos + dx[dxi];&lt;br /&gt;
          y_pos = y_pos + dy[dxi];&lt;br /&gt;
          srClickMouseNoMove(xyCenter[0] + walk_px_x*dx[dxi], xyCenter[1] + walk_px_y*dy[dxi], 0);&lt;br /&gt;
          lsSleep(walk_time);&lt;br /&gt;
          dt = dt - 1;&lt;br /&gt;
          if dt == 1 then&lt;br /&gt;
            dxi = dxi + 1;&lt;br /&gt;
            num_at_this_length = num_at_this_length - 1;&lt;br /&gt;
            if num_at_this_length == 0 then&lt;br /&gt;
              dt_max = dt_max - 1;&lt;br /&gt;
              num_at_this_length = 2;&lt;br /&gt;
            end&lt;br /&gt;
            if dxi == 5 then&lt;br /&gt;
              dxi = 1;&lt;br /&gt;
            end&lt;br /&gt;
            dt = dt_max;&lt;br /&gt;
          else&lt;br /&gt;
            lsPrintln('skipping walking, on last leg');&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
        checkBreak();&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  &lt;br /&gt;
    statusScreen(&amp;quot;Refocusing windows...&amp;quot;);&lt;br /&gt;
    -- Bring windows to front&lt;br /&gt;
    for y=grid_h, 1, -1 do&lt;br /&gt;
      for x=grid_w, 1, -1 do &lt;br /&gt;
        local rp = refreshPosUp(x, y);&lt;br /&gt;
        srClickMouseNoMove(rp[0], rp[1], 0);&lt;br /&gt;
        lsSleep(refocus_click_time);&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    lsSleep(refocus_time); -- Wait for last window to bring to the foreground before clicking again&lt;br /&gt;
  &lt;br /&gt;
    -- Barley has been planted, pinned and refocused	&lt;br /&gt;
 &lt;br /&gt;
    while 1 do&lt;br /&gt;
      for y=1, grid_h do&lt;br /&gt;
        for x=1, grid_w do &lt;br /&gt;
          local pp = pinnedPos(x, y);&lt;br /&gt;
          local rp = refreshPosDown(x, y);&lt;br /&gt;
          srClickMouse(rp[0],rp[1]);&lt;br /&gt;
          lsSleep(200);&lt;br /&gt;
          srReadScreen();&lt;br /&gt;
          local leftBar = srFindImageInRange(&amp;quot;barleyBarLeft.png&amp;quot;, pp[0], pp[1] - 50, 120, 100);&lt;br /&gt;
          if leftBar then&lt;br /&gt;
            leftBar[0] = leftBar[0] + 4;&lt;br /&gt;
          end&lt;br /&gt;
          local rightBar = srFindImageInRange(&amp;quot;barleyBarRight.png&amp;quot;, pp[0], pp[1] - 50, 220, 200);&lt;br /&gt;
          if rightBar then&lt;br /&gt;
            rightBar[0] = rightBar[0] + 1;&lt;br /&gt;
          end&lt;br /&gt;
          if not rightBar then&lt;br /&gt;
            error 'Could not find rightbar';&lt;br /&gt;
          end&lt;br /&gt;
          local barleyWater = srFindImageInRange(&amp;quot;barleyWater.png&amp;quot;, pp[0], pp[1] - 50, 220, 150);&lt;br /&gt;
          if not barleyWater then error 'Could not find water button.'; end&lt;br /&gt;
          local barleyAddButton = srFindImageInRange(&amp;quot;BarleyAdd.png&amp;quot;, pp[0], pp[1], 200, 100);&lt;br /&gt;
          if not barleyAddButton then error 'Could not find add button. Ended at batch '; end&lt;br /&gt;
&lt;br /&gt;
          while 1 do&lt;br /&gt;
            if leftBar then&lt;br /&gt;
              waterBlue = 0;&lt;br /&gt;
              if rightBar then&lt;br /&gt;
                if barleyWater then&lt;br /&gt;
                  srReadScreen();&lt;br /&gt;
                  for i=leftBar[0],rightBar[0] do&lt;br /&gt;
                    pxval = srReadPixelFromBuffer(i, barleyWater[1]);&lt;br /&gt;
                    b = (math.floor(pxval/256) % 256);&lt;br /&gt;
                    if b &amp;gt; 220 then&lt;br /&gt;
                      waterBlue = waterBlue + 1;&lt;br /&gt;
                    end&lt;br /&gt;
                  end&lt;br /&gt;
                  waterBlue = (waterBlue/(rightBar[0]-leftBar[0])*100);&lt;br /&gt;
                end&lt;br /&gt;
              end&lt;br /&gt;
            end&lt;br /&gt;
            checkBreak();&lt;br /&gt;
			&lt;br /&gt;
            if watered[x+((y-1)*grid_w)] &amp;lt; 7 then&lt;br /&gt;
              statusScreen(&amp;quot;Watering &amp;quot; .. x .. &amp;quot;,&amp;quot; .. y .. &amp;quot;step &amp;quot; .. watered[x+((y-1)*grid_w)] .. &amp;quot;.&amp;quot;);&lt;br /&gt;
              if waterBlue &amp;lt; 90 then&lt;br /&gt;
                if watered[x+((y-1)*grid_w)] == 0 then&lt;br /&gt;
                end&lt;br /&gt;
                srClickMouseNoMove(barleyAddButton[0]+8, barleyWater[1]);&lt;br /&gt;
		if watered[x+((y-1)*grid_w)] == 3 then&lt;br /&gt;
			srClickMouseNoMove(barleyAddButton[0]+8, barleyWater[1]+20);&lt;br /&gt;
		end&lt;br /&gt;
		if watered[x+((y-1)*grid_w)] == 5 then&lt;br /&gt;
			srClickMouseNoMove(barleyAddButton[0]+8, barleyWater[1]+20);&lt;br /&gt;
		end&lt;br /&gt;
                watered[x+((y-1)*grid_w)] = watered[x+((y-1)*grid_w)] + 1;&lt;br /&gt;
                lsSleep(100);&lt;br /&gt;
                break;&lt;br /&gt;
              end&lt;br /&gt;
            else&lt;br /&gt;
              statusScreen(&amp;quot;Harvesting &amp;quot; .. x .. &amp;quot;,&amp;quot; .. y .. &amp;quot;.&amp;quot;);&lt;br /&gt;
              if waterBlue &amp;lt; 90 then&lt;br /&gt;
                srClickMouseNoMove(pp[0]+90, pp[1]+90);&lt;br /&gt;
                lsSleep(100);&lt;br /&gt;
                srClickMouseNoMove(pp[0]+180, pp[1]-25);&lt;br /&gt;
                if watered[x+((y-1)*grid_w)] == 7 then&lt;br /&gt;
                  harvested = 1;&lt;br /&gt;
                end&lt;br /&gt;
                break;&lt;br /&gt;
              end&lt;br /&gt;
            end&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if harvested == 0 then&lt;br /&gt;
        statusScreen(&amp;quot;Refocusing windows...&amp;quot;);&lt;br /&gt;
        -- Bring windows to front&lt;br /&gt;
        for y=grid_h, 1, -1 do&lt;br /&gt;
          for x=grid_w, 1, -1 do &lt;br /&gt;
            local rp = refreshPosUp(x, y);&lt;br /&gt;
            srClickMouseNoMove(rp[0], rp[1], 0);&lt;br /&gt;
            lsSleep(refocus_click_time);&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
        lsSleep(refocus_time); -- Wait for last window to bring to the foreground before clicking again&lt;br /&gt;
      else&lt;br /&gt;
        for x=1, x_pos do&lt;br /&gt;
          srClickMouseNoMove(xyCenter[0] + walk_px_x*-1, xyCenter[1], 0);&lt;br /&gt;
          lsSleep(walk_time);&lt;br /&gt;
        end&lt;br /&gt;
        for x=1, -y_pos do&lt;br /&gt;
          srClickMouseNoMove(xyCenter[0], xyCenter[1] + walk_px_y, 0);&lt;br /&gt;
          lsSleep(walk_time);&lt;br /&gt;
        end&lt;br /&gt;
        break;&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    local end_time = lsGetTimer();&lt;br /&gt;
    statusScreen(&amp;quot;Time taken: &amp;quot; .. (end_time-start_time)/1000);&lt;br /&gt;
    -- move X and Y every 4 batches, but skip the Y move every 20th batch&lt;br /&gt;
    if loop_count % 4 == 0 and loop_count % 5 == 0 then&lt;br /&gt;
      doCorrectiveMove('x')&lt;br /&gt;
    elseif loop_count % 4 == 0 then&lt;br /&gt;
      doCorrectiveMove('xy')&lt;br /&gt;
    end &lt;br /&gt;
    --doStashWH(num_loops*grid_w*grid_w);&lt;br /&gt;
    --doRefillWater(4*numloops*grid_w*grid_w);&lt;br /&gt;
    doStashWH(grid_w*grid_w);&lt;br /&gt;
	if not skip_water then&lt;br /&gt;
		doRefillWater(4*grid_w*grid_w);&lt;br /&gt;
	end&lt;br /&gt;
    debug('end of batch #' .. loop_count)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function doCorrectiveMove(move)&lt;br /&gt;
  statusScreen(&amp;quot;Moving to correct for drift&amp;quot;);&lt;br /&gt;
  local xyCenter = getCenterPos();&lt;br /&gt;
  if move == 'xy' or move == 'x' then&lt;br /&gt;
    srClickMouseNoMove(xyCenter[0] + walk_px_x*-1, xyCenter[1], 0);&lt;br /&gt;
    lsSleep(walk_time);&lt;br /&gt;
  end&lt;br /&gt;
  if move == 'xy' or move == 'y' then&lt;br /&gt;
    srClickMouseNoMove(xyCenter[0], xyCenter[1] + walk_px_y, 0);&lt;br /&gt;
    lsSleep(walk_time);&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function doStashWH(qty)&lt;br /&gt;
  local wh = srFindImage(&amp;quot;stash.png&amp;quot;);&lt;br /&gt;
  if wh then&lt;br /&gt;
    srClickMouseNoMove(wh[0]+9,wh[1]+9)&lt;br /&gt;
    debug('found stash, clicked it');&lt;br /&gt;
    lsSleep(250);&lt;br /&gt;
&lt;br /&gt;
    srReadScreen();&lt;br /&gt;
    local insects = srFindImage(&amp;quot;stashInsectEllipsis.png&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    local stashes = srFindImage(&amp;quot;stashBarley.png&amp;quot;);&lt;br /&gt;
    if not stashes then&lt;br /&gt;
      error &amp;quot;no barley to stash&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    srClickMouseNoMove(stashes[0],stashes[1]);&lt;br /&gt;
&lt;br /&gt;
    lsSleep(250);&lt;br /&gt;
    -- stash exactly the right amount by number so we don't lose our seed barley&lt;br /&gt;
    srKeyEvent(qty);&lt;br /&gt;
    srKeyEvent('\n');&lt;br /&gt;
&lt;br /&gt;
    if insects then&lt;br /&gt;
      srClickMouseNoMove(wh[0]+9,wh[1]+9)&lt;br /&gt;
      lsSleep(250);&lt;br /&gt;
      srReadScreen();&lt;br /&gt;
&lt;br /&gt;
      local insects = srFindImage(&amp;quot;stashInsectEllipsis.png&amp;quot;);&lt;br /&gt;
      if insects then&lt;br /&gt;
        srClickMouseNoMove(insects[0],insects[1]);&lt;br /&gt;
        lsSleep(250);&lt;br /&gt;
&lt;br /&gt;
        srReadScreen();&lt;br /&gt;
        insects = srFindImage(&amp;quot;stashAllTheInsects.png&amp;quot;);&lt;br /&gt;
        if not insects then&lt;br /&gt;
          error &amp;quot;found insects but couldn't stash them&amp;quot;;&lt;br /&gt;
        end&lt;br /&gt;
        srClickMouseNoMove(insects[0],insects[1]);&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function doRefillWater(qty)&lt;br /&gt;
  debug(&amp;quot;in refill&amp;quot;)&lt;br /&gt;
  local rb = srFindImage(&amp;quot;draw_water.png&amp;quot;);&lt;br /&gt;
  if rb then&lt;br /&gt;
    srClickMouseNoMove(rb[0]+5,rb[1]+5)&lt;br /&gt;
    lsSleep(250);&lt;br /&gt;
    srKeyEvent(qty);&lt;br /&gt;
    srKeyEvent('\n');&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function debug(msg)&lt;br /&gt;
  if 0 then&lt;br /&gt;
    statusScreen(msg);&lt;br /&gt;
    lsSleep(1000);&lt;br /&gt;
  end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kasiya</name></author>
	</entry>
</feed>