Add main agent, cli and opencv image template comparison test
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
"""Module providing a fishing agent."""
|
||||
|
||||
import os
|
||||
from threading import Thread
|
||||
import time
|
||||
import cv2 as cv
|
||||
import numpy as np
|
||||
import pyautogui
|
||||
|
||||
class FishingAgent:
|
||||
def __init__(self, mainAgent) -> None:
|
||||
self.mainAgent = mainAgent
|
||||
|
||||
# interpolate here_path to get the path to the fishing target image
|
||||
assetPath = os.path.join(
|
||||
os.path.dirname(os.path.realpath(__file__)),
|
||||
"assets"
|
||||
)
|
||||
assetPath = os.path.dirname(os.path.realpath(__file__))
|
||||
print(assetPath)
|
||||
self.fishingBobber = cv.imread(
|
||||
os.path.join(
|
||||
assetPath,
|
||||
"assets", "Bobber.png"
|
||||
)
|
||||
)
|
||||
self.fishingThread = None
|
||||
|
||||
def agentLog(self, log: str):
|
||||
print("Fishing Agent: " + log)
|
||||
|
||||
def castLure(self):
|
||||
self.agentLog("Casting Lure.")
|
||||
# pyautogui.press('1')
|
||||
time.sleep(1)
|
||||
self.findLure()
|
||||
|
||||
def findLure(self):
|
||||
if self.mainAgent.currImg is not None:
|
||||
self.agentLog("Searching for Bobber.")
|
||||
cv.imshow("Bobber", self.fishingBobber)
|
||||
|
||||
lureLoc = cv.matchTemplate(self.mainAgent.currImg, self.fishingBobber, cv.TM_CCORR_NORMED)
|
||||
lureLocArray = np.array(lureLoc)
|
||||
|
||||
minVal, maxVal, minLoc, maxLoc = cv.minMaxLoc(lureLocArray)
|
||||
self.moveToLure(maxLoc)
|
||||
else:
|
||||
print("No curr img")
|
||||
|
||||
def moveToLure(self, maxLoc):
|
||||
if maxLoc:
|
||||
self.agentLog("Moving to Bobber.")
|
||||
pyautogui.moveTo(maxLoc)
|
||||
|
||||
def watchLure(self):
|
||||
self.agentLog("Waiting for fish...")
|
||||
|
||||
def pullLine(self):
|
||||
self.agentLog("Pulling line!")
|
||||
|
||||
def run(self):
|
||||
if self.mainAgent.currImg is None:
|
||||
print("Image capture not found! Did you start the screen capture thread?")
|
||||
return
|
||||
print("Starting fishing thread in 10 seconds...")
|
||||
time.sleep(3)
|
||||
|
||||
# print("Switching to fishing hotbar (hotbar 4)")
|
||||
# pyautogui.keyDown('shift')
|
||||
# pyautogui.press('4')
|
||||
# pyautogui.keyUp('shift')
|
||||
# time.sleep(1)
|
||||
|
||||
self.fishingThread = Thread(
|
||||
target=self.castLure,
|
||||
args=(),
|
||||
name="fishing thread",
|
||||
daemon=True)
|
||||
self.fishingThread.start()
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1010 B |
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 8.9 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.2 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.0 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.9 MiB |
Reference in New Issue
Block a user