Factorio: Filter bridged technologies correctly
Turns out, lua does not use regex, nor simple string matching, but its own invention.
This commit is contained in:
parent
73bc5fb376
commit
432ae5865d
|
@ -108,7 +108,8 @@ async def game_watcher(ctx: FactorioContext):
|
||||||
with open(bridge_file) as f:
|
with open(bridge_file) as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
research_data = data["research_done"]
|
research_data = data["research_done"]
|
||||||
research_data = {int(tech_name.split("-")[1]) for tech_name in research_data if tech_name.startswith("ap-")}
|
|
||||||
|
research_data = {int(tech_name.split("-")[1]) for tech_name in research_data}
|
||||||
if ctx.locations_checked != research_data:
|
if ctx.locations_checked != research_data:
|
||||||
bridge_logger.info(f"New researches done: "
|
bridge_logger.info(f"New researches done: "
|
||||||
f"{[lookup_id_to_name[rid] for rid in research_data - ctx.locations_checked]}")
|
f"{[lookup_id_to_name[rid] for rid in research_data - ctx.locations_checked]}")
|
||||||
|
|
|
@ -3,7 +3,7 @@ import typing
|
||||||
|
|
||||||
|
|
||||||
class AssembleOptions(type):
|
class AssembleOptions(type):
|
||||||
def __new__(cls, name, bases, attrs):
|
def __new__(mcs, name, bases, attrs):
|
||||||
options = attrs["options"] = {}
|
options = attrs["options"] = {}
|
||||||
name_lookup = attrs["name_lookup"] = {}
|
name_lookup = attrs["name_lookup"] = {}
|
||||||
for base in bases:
|
for base in bases:
|
||||||
|
@ -17,7 +17,7 @@ class AssembleOptions(type):
|
||||||
# apply aliases, without name_lookup
|
# apply aliases, without name_lookup
|
||||||
options.update({name[6:].lower(): option_id for name, option_id in attrs.items() if
|
options.update({name[6:].lower(): option_id for name, option_id in attrs.items() if
|
||||||
name.startswith("alias_")})
|
name.startswith("alias_")})
|
||||||
return super(AssembleOptions, cls).__new__(cls, name, bases, attrs)
|
return super(AssembleOptions, mcs).__new__(mcs, name, bases, attrs)
|
||||||
|
|
||||||
|
|
||||||
class Option(metaclass=AssembleOptions):
|
class Option(metaclass=AssembleOptions):
|
||||||
|
|
|
@ -51,11 +51,11 @@ function dumpTech(force)
|
||||||
local data_collection = {["research_done"] = research_done}
|
local data_collection = {["research_done"] = research_done}
|
||||||
|
|
||||||
for tech_name, tech in pairs(force.technologies) do
|
for tech_name, tech in pairs(force.technologies) do
|
||||||
if tech.researched and string.find(tech_name, "ap-") == 1 then
|
if tech.researched and string.find(tech_name, "ap%-") == 1 then
|
||||||
research_done[tech_name] = tech.researched
|
research_done[tech_name] = tech.researched
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
game.write_file("ap_bridge.json", game.table_to_json(data_collection), false)
|
game.write_file("ap_bridge.json", game.table_to_json(data_collection), false, 0)
|
||||||
-- game.write_file("research_done.json", game.table_to_json(data_collection), false, 0)
|
-- game.write_file("research_done.json", game.table_to_json(data_collection), false, 0)
|
||||||
-- game.print("Sent progress to Archipelago.")
|
-- game.print("Sent progress to Archipelago.")
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue