From 91a0edda5b00a028b44d1a722656e053e8b9f879 Mon Sep 17 00:00:00 2001 From: Benedikt Ziemons Date: Tue, 30 Jan 2024 01:32:04 +0100 Subject: [PATCH] Add first visualisation revision Caveats: UI hangs while selecting recipes No calculation is done based on input resource flow --- Pipfile | 2 + Pipfile.lock | 24 +++- README.md | 13 ++ factorygame/data/fetch.py | 28 ++-- factorygame/data/models.py | 24 ++++ factorygame/data/sfp.py | 22 ++-- factorygame/data/vis.py | 254 +++++++++++++++++++++++++++++++++++++ factorygame/helper.py | 13 ++ vis.png | Bin 0 -> 70754 bytes 9 files changed, 355 insertions(+), 25 deletions(-) mode change 100644 => 100755 factorygame/data/fetch.py create mode 100755 factorygame/data/vis.py create mode 100644 factorygame/helper.py create mode 100644 vis.png diff --git a/Pipfile b/Pipfile index 688b2c5..e22c7dc 100644 --- a/Pipfile +++ b/Pipfile @@ -7,6 +7,7 @@ name = "pypi" selenium = "*" click = "*" sqlalchemy = "*" +nodegraphqt = "*" [dev-packages] @@ -15,3 +16,4 @@ python_version = "3.11" [scripts] fetch = {call = "factorygame.data.fetch:main()"} +vis = {call = "factorygame.data.vis:main()"} diff --git a/Pipfile.lock b/Pipfile.lock index f84fc00..e276ce4 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "45cb685b915b5e5bab1ba5339a033373d210e09d6f0b4d9ac9acbe8fe15b5402" + "sha256": "0d398759a0afc9f55cbd2e892bf1f819b572167c2396e2b978515124ada547a9" }, "pipfile-spec": 6, "requires": { @@ -121,6 +121,15 @@ "markers": "python_version >= '3.5'", "version": "==3.6" }, + "nodegraphqt": { + "hashes": [ + "sha256:2f0e4b0a2c1a3360deaa2fb6cc42cbf0dce25a7076d036473773d58b0f4fae31", + "sha256:97796bf36845c7e0413e72608507401b04e92106de620b804a234d0cad26e24f" + ], + "index": "pypi", + "markers": "python_version >= '3.6'", + "version": "==0.6.35" + }, "outcome": { "hashes": [ "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8", @@ -137,6 +146,12 @@ ], "version": "==1.7.1" }, + "qt.py": { + "hashes": [ + "sha256:ab072ac955bdc9318966c078f1bb5941e77166f9e92df3db5726b1eb5afea83b" + ], + "version": "==1.3.9" + }, "selenium": { "hashes": [ "sha256:5aee79026c07985dc1b0c909f34084aa996dfe5b307602de9016d7a621a473f2", @@ -233,6 +248,13 @@ "markers": "python_version >= '3.7'", "version": "==0.11.1" }, + "types-pyside2": { + "hashes": [ + "sha256:5bc2763bc6b595b2c5fc1191ce5147dcc6f44d56efdc2b264b6c082282cc1c57", + "sha256:de4b575e57fdb9e5fd8507537cdd770866fdbe1972eadc3793b2026eaec92875" + ], + "version": "==5.15.2.1.6" + }, "typing-extensions": { "hashes": [ "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783", diff --git a/README.md b/README.md index da6064a..98df70c 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,16 @@ Using pipenv, run e.g. ```sh pipenv run fetch --result 'Molten Iron' ``` + +## Visualisation + +Thanks to [NodeGraphQt](https://github.com/jchanvfx/NodeGraphQt) a graph base visualisation is available, which looks like the following: + +[!Graph Visualisation Example](vis.png) + +The visualisation window can be opened with e.g. + +```sh +pipenv run fetch --result 'Plastic' +pipenv run vis 'Plastic' +``` diff --git a/factorygame/data/fetch.py b/factorygame/data/fetch.py old mode 100644 new mode 100755 index 2cc2225..15dc908 --- a/factorygame/data/fetch.py +++ b/factorygame/data/fetch.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 + import datetime from typing import Optional @@ -7,6 +9,7 @@ from sqlalchemy.orm import Session from .models import Base, Resource, ResourceFlow, Recipe from .sfp import SatisfactoryPlus +from ..helper import prompt __recipe_info_timeout = datetime.timedelta(days=30) @@ -27,14 +30,17 @@ def main(result: bool, debug: bool, refetch: bool, search: str): if len(matching_resources) == 0: print("Could not find existing resources matching the search string.. starting wiki search") else: - for idx in range(1, len(matching_resources) + 1): - print(f"{idx}: {matching_resources[idx - 1].label}") - user_choice = click.prompt( - "Chose a resource to continue or 0 to continue with a wiki search", default=1 + options = {(idx + 1): str(matching_resources[idx].label) for idx in range(len(matching_resources))} + options[0] = "" + selected_res = prompt( + options=options, text="Chose a resource to continue or 0 to continue with a wiki search", default=1 ) - if user_choice != 0: - resource = matching_resources[user_choice - 1] + if selected_res is None: + return + if selected_res != 0: + resource = matching_resources[selected_res - 1] do_provider_search = False + exists_in_db = True with SatisfactoryPlus(debug=debug) as data_provider: if do_provider_search: @@ -76,8 +82,8 @@ def main(result: bool, debug: bool, refetch: bool, search: str): stmt = select(Recipe).join(Recipe.results).filter(ResourceFlow.resource_id == resource.id) for recipe in session.scalars(stmt): - print(recipe) - for flow in recipe.ingredients: - print("ingredient:", flow.resource, flow) - for flow in recipe.results: - print("result: ", flow.resource, flow) + print("Recipe:", recipe.describe()) + + +if __name__ == "__main__": + main() diff --git a/factorygame/data/models.py b/factorygame/data/models.py index 98d5623..22751ec 100644 --- a/factorygame/data/models.py +++ b/factorygame/data/models.py @@ -1,4 +1,5 @@ import datetime +import re from typing import Optional from sqlalchemy import String, Select, select, Table, Column, ForeignKey @@ -59,6 +60,9 @@ results_table = Table( Column("resource_flow_id", ForeignKey("resource_flows.id"), primary_key=True), ) +amount_number = re.compile(r"^\d*(\.\d+)?") +time_number = re.compile(r"^(\d+) seconds?") + class ResourceFlow(Base): __tablename__ = "resource_flows" @@ -71,6 +75,16 @@ class ResourceFlow(Base): amount: Mapped[str] time: Mapped[str] + def amount_per_minute(self) -> float: + per_crafting_step_str = amount_number.match(self.amount).group(0) + per_crafting_step = float(per_crafting_step_str) + crafting_time_seconds_str = time_number.match(self.time).group(1) + crafting_time_seconds = float(crafting_time_seconds_str) + return per_crafting_step * (60.0 / crafting_time_seconds) + + def describe(self) -> str: + return f"{repr(str(self.resource.label))}x{self.amount}" + def __repr__(self): return f"ResourceFlow(id={self.id}, resource_id={self.resource_id}, amount={self.amount}, time={self.time})" @@ -86,5 +100,15 @@ class Recipe(Base): ) results: Mapped[list["ResourceFlow"]] = relationship(secondary=results_table, back_populates="result_of") + def describe(self) -> str: + def list_flows(flows: list["ResourceFlow"]) -> str: + return ", ".join(map(ResourceFlow.describe, flows)) + + return ( + f"in machine: {self.factory.label}, " + f"ingredients: {list_flows(self.ingredients)}, " + f"results: {list_flows(self.results)}" + ) + def __repr__(self): return f"Recipe(id={self.id}, factory={self.factory}, ingredients={self.ingredients}, results={self.results})" diff --git a/factorygame/data/sfp.py b/factorygame/data/sfp.py index 4c2a168..07beff1 100644 --- a/factorygame/data/sfp.py +++ b/factorygame/data/sfp.py @@ -3,7 +3,6 @@ from datetime import datetime from typing import Optional from urllib.parse import urljoin -import click from selenium.webdriver import Firefox from selenium.webdriver.common.by import By from selenium.webdriver.firefox.options import Options @@ -11,6 +10,7 @@ from sqlalchemy.orm import Session from .models import Resource, ResourceFlow, Factory, Recipe from .provider import RecipeProvider +from ..helper import prompt class SatisfactoryPlus(RecipeProvider, AbstractContextManager): @@ -59,20 +59,16 @@ class SatisfactoryPlus(RecipeProvider, AbstractContextManager): elif len(choices) > 1: default_choice = 1 - choice_names: list[str] = [] - for choice_idx in range(1, len(choices) + 1): - recipe_choice = choices[choice_idx - 1] + options: dict[int, str] = {} + for idx in range(len(choices)): + recipe_choice = choices[idx] name = recipe_choice.find_element(By.TAG_NAME, "img").get_attribute("alt") - choice_names.append(name) + options[idx + 1] = name if name.casefold() == search.casefold(): - default_choice = choice_idx - print(f"{choice_idx}: {name}") - user_choice = click.prompt("Chose a recipe to continue…", default=default_choice) - if not user_choice: - user_choice = default_choice - else: - user_choice = int(user_choice) - + default_choice = idx + 1 + user_choice = prompt(options=options, text="Chose a recipe to continue…", default=default_choice) + if user_choice is None: + return None link_html_elem = choices[user_choice - 1] else: link_html_elem = choices[0] diff --git a/factorygame/data/vis.py b/factorygame/data/vis.py new file mode 100755 index 0000000..987a9c0 --- /dev/null +++ b/factorygame/data/vis.py @@ -0,0 +1,254 @@ +#!/usr/bin/env python3 + +import click +from NodeGraphQt import BaseNode, NodeBaseWidget +from NodeGraphQt import NodeGraph, Port +from NodeGraphQt.constants import PortTypeEnum +from PySide2.QtCore import Qt +from PySide2.QtWidgets import QSlider +from Qt import QtWidgets +from sqlalchemy import create_engine, select +from sqlalchemy.orm import Session + +from .models import Recipe, ResourceFlow, Resource +from .sfp import SatisfactoryPlus +from ..helper import prompt + + +class NodeSlider(NodeBaseWidget): + def __init__(self, name, label="", parent=None): + super(NodeSlider, self).__init__(parent) + self.set_name(name) + self.pure_label = label or name + slider = QSlider(Qt.Horizontal) + slider.setMinimum(1) + slider.setMaximum(250) + slider.setValue(100) + slider.setSingleStep(1) + slider.setTickInterval(10) + slider.setTickPosition(QSlider.TicksBelow) + slider.valueChanged.connect(self.on_value_changed) + slider.valueChanged.connect(self._update_label) + self.set_custom_widget(slider) + self._update_label() + + def get_value(self): + widget: QSlider = self.get_custom_widget() + return widget.value() + + def set_value(self, value): + widget: QSlider = self.get_custom_widget() + widget.setValue(value) + + def _update_label(self): + self.set_label(f"{self.pure_label} ({int(self.get_value())}%)") + + +class GlobalInput(BaseNode): + __identifier__ = "factorygame" + NODE_NAME = "Global Input" + + def __init__(self): + super().__init__() + self.add_output("Create Machine") + + +class Machine(BaseNode): + __identifier__ = "factorygame" + NODE_NAME = "FactoryGame Machine" + + def assign_recipe(self, recipe: Recipe): + for port_idx in range(len(self._inputs)): + self.delete_input(port_idx) + + for port_idx in range(len(self._outputs)): + self.delete_output(port_idx) + + self.set_property("name", recipe.factory.label, push_undo=False) + + def in_amount_name(resource_label: str): + return f"In {resource_label} amount" + + def out_amount_name(resource_label: str): + return f"Out {resource_label} amount" + + input_resources: dict[str, float] = {} + for ingredient in recipe.ingredients: + resource_label = ingredient.resource.label + if resource_label in input_resources: + input_resources[resource_label] += ingredient.amount_per_minute() + self.get_widget(in_amount_name(resource_label)).set_value( + f"{input_resources[resource_label]:.2f} / min" + ) + else: + port = self.add_input(resource_label, color=(180, 80, 0)) + port.add_accept_port_type(resource_label, PortTypeEnum.OUT.value, "factorygame.Machine") + port.add_accept_port_type("Create Machine", PortTypeEnum.OUT.value, "factorygame.GlobalInput") + self._add_text_label(in_amount_name(resource_label), ingredient, input_resources, resource_label) + + output_resources: dict[str, float] = {} + for result in recipe.results: + resource_label = result.resource.label + if resource_label in output_resources: + output_resources[resource_label] += result.amount_per_minute() + self.get_widget(out_amount_name(resource_label)).set_value( + f"{output_resources[resource_label]:.2f} / min" + ) + else: + port = self.add_output(resource_label, color=(200, 20, 0)) + port.add_accept_port_type(resource_label, PortTypeEnum.IN.value, "factorygame.Machine") + self._add_text_label(out_amount_name(resource_label), result, output_resources, resource_label) + + performance_slider_name = "machine performance" + + def set_performance(percentage): + factor = percentage / 100.0 + for ingredient_label, amount in input_resources.items(): + self.get_widget(in_amount_name(ingredient_label)).set_value(f"{amount * factor:.2f} / min") + for result_label, amount in output_resources.items(): + self.get_widget(out_amount_name(result_label)).set_value(f"{amount * factor:.2f} / min") + self.get_widget(performance_slider_name).get_value() + + slider = NodeSlider(name=performance_slider_name, label="Overclocking Performance", parent=self.view) + self.add_custom_widget(slider) + slider.value_changed.connect(lambda name, value: set_performance(max(1, min(250, value)))) + + def _add_text_label(self, name, flow, resource_amounts, resource_label): + resource_amounts[resource_label] = flow.amount_per_minute() + self.add_text_input(name=name, label=name, text=f"{resource_amounts[resource_label]} / min") + widget = self.get_widget(name) + widget.get_custom_widget().setReadOnly(True) + widget.widget().setMaximumWidth(220) + + +def on_port_connected(input_port: Port, output_port: Port): + global debug + if debug: + print(f"Port {output_port} connected to {input_port}") + if isinstance(output_port.node(), GlobalInput) and output_port.name() == "Create Machine": + output_port.clear_connections(push_undo=False, emit_signal=False) + with Session(engine) as session, SatisfactoryPlus() as data_provider: + do_provider_search = False + resource_label = input_port.name() + matching_resources = session.scalars(Resource.by_label(resource_label)).all() + if len(matching_resources) == 0: + print("Could not find existing resources matching the search string.. starting wiki search") + else: + options = {(idx + 1): str(matching_resources[idx].label) for idx in range(len(matching_resources))} + options[0] = "" + selected_res = prompt( + options=options, + text="Chose a resource to continue or 0 to continue with a wiki search", + default=1, + ) + if selected_res is None: + return + if selected_res != 0: + resource = matching_resources[selected_res - 1] + do_provider_search = False + + if do_provider_search: + ret = data_provider.search_for_resource(session=session, search=resource_label) + if ret is None: + print("Resource not found") + return + + resource, exists_in_db = ret + if not exists_in_db: + print("Resource not yet fetched, run fetch first") + return + + stmt = select(Recipe).join(Recipe.results).filter(ResourceFlow.resource_id == resource.id) + recipes = session.scalars(stmt).all() + if len(recipes) == 0: + print("No recipes found for resource") + return + elif len(recipes) > 1: + options = {(idx + 1): recipes[idx].describe() for idx in range(len(recipes))} + user_choice = prompt(options=options, text="Select recipe", default=1) + if user_choice is None: + return + recipe = recipes[user_choice - 1] + else: + recipe = recipes[0] + + recipe_machine = graph.create_node("factorygame.Machine", push_undo=True) + recipe_machine.assign_recipe(recipe) + recipe_machine.update() + recipe_machine.set_x_pos(input_port.node().x_pos() - recipe_machine.view.width - 200) + recipe_machine.get_output(input_port.name()).connect_to(input_port) + if recipe_machine.x_pos() - (global_input.x_pos() - global_input.view.width) < 200: + global_input.set_x_pos(recipe_machine.x_pos() - global_input.view.width - 200) + + +@click.command +@click.option("--debug", is_flag=True) +@click.argument("search") +def main(debug: bool, search: str): + global engine + globals()["debug"] = debug + engine = create_engine("sqlite:///file.db", echo=debug) + with Session(engine) as session, SatisfactoryPlus(debug=debug) as data_provider: + do_provider_search = False + matching_resources = session.scalars(Resource.by_label(search)).all() + if len(matching_resources) == 0: + print("Could not find existing resources matching the search string.. starting wiki search") + else: + options = {(idx + 1): str(matching_resources[idx].label) for idx in range(len(matching_resources))} + options[0] = "" + selected_res = prompt( + options=options, text="Chose a resource to continue or 0 to continue with a wiki search", default=1 + ) + if selected_res is None: + return + if selected_res != 0: + resource = matching_resources[selected_res - 1] + do_provider_search = False + + if do_provider_search: + ret = data_provider.search_for_resource(session=session, search=search) + if ret is None: + print("Resource not found") + return + + resource, exists_in_db = ret + if not exists_in_db: + print("Resource not yet fetched, run fetch first") + return + + stmt = select(Recipe).join(Recipe.results).filter(ResourceFlow.resource_id == resource.id) + recipes = session.scalars(stmt).all() + if len(recipes) == 0: + print("No recipes found for resource") + return + elif len(recipes) > 1: + options = {(idx + 1): recipes[idx].describe() for idx in range(len(recipes))} + user_choice = prompt(options=options, text="Select recipe", default=1) + if user_choice is None: + return + recipe = recipes[user_choice - 1] + else: + recipe = recipes[0] + + app = QtWidgets.QApplication([]) + global graph + graph = NodeGraph() + graph.widget.resize(1280, 720) + graph.register_node(Machine) + graph.register_node(GlobalInput) + graph_widget = graph.widget + graph_widget.show() + global global_input + global_input = graph.create_node("factorygame.GlobalInput", push_undo=False) + recipe_machine = graph.create_node("factorygame.Machine", push_undo=False) + recipe_machine.assign_recipe(recipe) + graph.auto_layout_nodes([global_input, recipe_machine]) + global_input.set_y_pos(recipe_machine.y_pos()) + global_input.set_x_pos(global_input.x_pos() - global_input.model.width - 200) + graph.center_on([global_input, recipe_machine]) + graph.port_connected.connect(on_port_connected) + app.exec_() + + +if __name__ == "__main__": + main() diff --git a/factorygame/helper.py b/factorygame/helper.py new file mode 100644 index 0000000..5a59252 --- /dev/null +++ b/factorygame/helper.py @@ -0,0 +1,13 @@ +import click + + +def prompt(options: dict[int, str], **kwargs) -> int | None: + for idx, label in options.items(): + if label: + click.echo(f"{idx}: {label}") + ret = click.prompt(**kwargs) + ret = int(ret) + if ret not in options: + click.echo("Invalid choice.") + return None + return ret diff --git a/vis.png b/vis.png new file mode 100644 index 0000000000000000000000000000000000000000..5472cce857219c04702c178cd9d2680e2a30fcbb GIT binary patch literal 70754 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 E1DYYXVgLXD literal 0 HcmV?d00001