EnergyLink: lots of cleanup

This commit is contained in:
Fabian Dill
2022-02-24 04:47:01 +01:00
parent 11a13967d5
commit 6bf2f5611a
5 changed files with 50 additions and 16 deletions

View File

@@ -107,15 +107,20 @@ class FactorioContext(CommonContext):
if "checked_locations" in args and args["checked_locations"]:
self.rcon_client.send_commands({item_name: f'/ap-get-technology ap-{item_name}-\t-1' for
item_name in args["checked_locations"]})
if cmd == "Connected" and self.energy_link_increment:
asyncio.create_task(self.send_msgs([{
"cmd": "SetNotify", "data": ["EnergyLink"]
}]))
elif cmd == "SetReply":
if args["key"] == "EnergyLink":
logger.info(f"Got EnergyLink package: {args}")
if self.energy_link_increment and args.get("last_deplete", -1) == self.last_deplete:
# it's our deplete request
gained = args["original_value"] - args["value"]
gained = int(args["original_value"] - args["value"])
gained_text = Utils.format_SI_prefix(gained) + "J"
if gained:
logger.info(f"EnergyLink: Received {gained} Joules")
self.rcon_client.send_command(f"/ap-energylink {int(gained)}")
logger.info(f"EnergyLink: Received {gained_text}. "
f"{Utils.format_SI_prefix(args['value'])}J remaining.")
self.rcon_client.send_command(f"/ap-energylink {gained}")
async def game_watcher(ctx: FactorioContext):
@@ -267,7 +272,7 @@ async def factorio_server_watcher(ctx: FactorioContext):
factorio_process.wait(5)
async def get_info(ctx, rcon_client):
async def get_info(ctx: FactorioContext, rcon_client: factorio_rcon.RCONClient):
info = json.loads(rcon_client.send_command("/ap-rcon-info"))
ctx.auth = info["slot_name"]
ctx.seed_name = info["seed_name"]
@@ -275,6 +280,8 @@ async def get_info(ctx, rcon_client):
death_link = bool(info.get("death_link", False))
ctx.energy_link_increment = info.get("energy_link", 0)
logger.debug(f"Energy Link Increment: {ctx.energy_link_increment}")
if ctx.energy_link_increment and ctx.ui:
ctx.ui.enable_energy_link()
await ctx.update_death_link(death_link)