def saveNodeData(nodes, directory, id): global regions global cfg global dirs Helpers.createDirectory(directory) fullPath = os.path.join(directory, "data.json") jsonNodes = [] for n in nodes: relativeCoords = Helpers.calcRelativeDistFromPoint(regions["jewel"].getCenter(), n["region"].getCenter(), cfg["radius"]) jsonNodes.append({ "x": relativeCoords[0], "y": relativeCoords[1], "type": n["type"] }) capturedJewels.append({ "id": id, "json": { "nodes": jsonNodes }, "image": os.path.join(dirs["jewel"], str(id) + ".png") }) with open(fullPath, 'w') as f: json.dump(jsonNodes, f, indent=4, sort_keys=True) return
def saveTimelessJewelData(data, directory): Helpers.createDirectory(directory) fullPath = os.path.join(directory, "data.json") newData = { "type": data["type"], "seed": data["seed"], "variant": data["variant"] } with open(fullPath, 'w') as f: json.dump(newData, f, indent=4, sort_keys=True) return
def captureTextFromNodes(nodes, directory): global cfg Helpers.createDirectory(directory) cnt = 0 for n in nodes: mouseMove(n["region"]) wait(0.1) nodeCenter = n["region"].getCenter() y = nodeCenter.getY() - cfg["txtbox"]["yOffset"] if y + cfg["txtbox"]["height"] > regions["poe"].getH(): y = regions["poe"].getH() - cfg["txtbox"]["height"] textRegion = Region(nodeCenter.getX() + cfg["txtbox"]["xOffset"], y, cfg["txtbox"]["width"], cfg["txtbox"]["height"]) capture(textRegion, directory, str(cnt)) cnt += 1
if Helpers.isPointInsideCircle(n.getCenter(), regions["jewel"].getCenter(), cfg["radius"]): nodeData.append({"region": n, "type": type}) return nodeData # Highlights all nodes passed to the method def highlightNodes(nodes, type, color="cyan"): global cfg for n in nodes: if type != "notable": n["region"].highlightOn(color) n["region"].nearby(-(int(cfg["offsets"][type]) / 2)).highlightOn(color) n["region"].nearby(-int(cfg["offsets"][type])).highlightOn(color) # Hotkeys Env.addHotkey(Key.F2, 0, start) Env.addHotkey(Key.F3, 0, adjustZoom) Env.addHotkey(Key.F4, 0, end) if __name__ == '__main__': for dir in dirs: Helpers.createDirectory(dirs[dir]) print "Loading captured jewels" capturedJewels = loadCapturedJewels() print "Ready" while True: wait(0.1)