start of split
This commit is contained in:
parent
fb192b989d
commit
109eb5b9dc
22
Main.py
22
Main.py
|
@ -24,8 +24,8 @@ from worlds.alttp.ItemPool import generate_itempool, difficulties, fill_prizes
|
||||||
from Utils import output_path, parse_player_names, get_options, __version__, _version_tuple
|
from Utils import output_path, parse_player_names, get_options, __version__, _version_tuple
|
||||||
from worlds.hk import gen_hollow
|
from worlds.hk import gen_hollow
|
||||||
from worlds.hk import create_regions as hk_create_regions
|
from worlds.hk import create_regions as hk_create_regions
|
||||||
from worlds.factorio import gen_factorio, factorio_create_regions
|
# from worlds.factorio import gen_factorio, factorio_create_regions
|
||||||
from worlds.factorio.Mod import generate_mod
|
# from worlds.factorio.Mod import generate_mod
|
||||||
from worlds.minecraft import gen_minecraft, fill_minecraft_slot_data, generate_mc_data
|
from worlds.minecraft import gen_minecraft, fill_minecraft_slot_data, generate_mc_data
|
||||||
from worlds.minecraft.Regions import minecraft_create_regions
|
from worlds.minecraft.Regions import minecraft_create_regions
|
||||||
from worlds.generic.Rules import locality_rules
|
from worlds.generic.Rules import locality_rules
|
||||||
|
@ -135,8 +135,8 @@ def main(args, seed=None):
|
||||||
import Options
|
import Options
|
||||||
for hk_option in Options.hollow_knight_options:
|
for hk_option in Options.hollow_knight_options:
|
||||||
setattr(world, hk_option, getattr(args, hk_option, {}))
|
setattr(world, hk_option, getattr(args, hk_option, {}))
|
||||||
for factorio_option in Options.factorio_options:
|
# for factorio_option in Options.factorio_options:
|
||||||
setattr(world, factorio_option, getattr(args, factorio_option, {}))
|
# setattr(world, factorio_option, getattr(args, factorio_option, {}))
|
||||||
for minecraft_option in Options.minecraft_options:
|
for minecraft_option in Options.minecraft_options:
|
||||||
setattr(world, minecraft_option, getattr(args, minecraft_option, {}))
|
setattr(world, minecraft_option, getattr(args, minecraft_option, {}))
|
||||||
world.glitch_triforce = args.glitch_triforce # This is enabled/disabled globally, no per player option.
|
world.glitch_triforce = args.glitch_triforce # This is enabled/disabled globally, no per player option.
|
||||||
|
@ -207,8 +207,8 @@ def main(args, seed=None):
|
||||||
for player in world.hk_player_ids:
|
for player in world.hk_player_ids:
|
||||||
hk_create_regions(world, player)
|
hk_create_regions(world, player)
|
||||||
|
|
||||||
for player in world.factorio_player_ids:
|
# for player in world.factorio_player_ids:
|
||||||
factorio_create_regions(world, player)
|
# factorio_create_regions(world, player)
|
||||||
|
|
||||||
for player in world.minecraft_player_ids:
|
for player in world.minecraft_player_ids:
|
||||||
minecraft_create_regions(world, player)
|
minecraft_create_regions(world, player)
|
||||||
|
@ -269,8 +269,8 @@ def main(args, seed=None):
|
||||||
for player in world.hk_player_ids:
|
for player in world.hk_player_ids:
|
||||||
gen_hollow(world, player)
|
gen_hollow(world, player)
|
||||||
|
|
||||||
for player in world.factorio_player_ids:
|
# for player in world.factorio_player_ids:
|
||||||
gen_factorio(world, player)
|
# gen_factorio(world, player)
|
||||||
|
|
||||||
for player in world.minecraft_player_ids:
|
for player in world.minecraft_player_ids:
|
||||||
gen_minecraft(world, player)
|
gen_minecraft(world, player)
|
||||||
|
@ -423,9 +423,9 @@ def main(args, seed=None):
|
||||||
for team in range(world.teams):
|
for team in range(world.teams):
|
||||||
for player in world.alttp_player_ids:
|
for player in world.alttp_player_ids:
|
||||||
rom_futures.append(pool.submit(_gen_rom, team, player))
|
rom_futures.append(pool.submit(_gen_rom, team, player))
|
||||||
for player in world.factorio_player_ids:
|
# for player in world.factorio_player_ids:
|
||||||
mod_futures.append(pool.submit(generate_mod, world, player,
|
# mod_futures.append(pool.submit(generate_mod, world, player,
|
||||||
str(args.outputname if args.outputname else world.seed)))
|
# str(args.outputname if args.outputname else world.seed)))
|
||||||
|
|
||||||
def get_entrance_to_region(region: Region):
|
def get_entrance_to_region(region: Region):
|
||||||
for entrance in region.entrances:
|
for entrance in region.entrances:
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
import worlds.loader
|
||||||
|
print(worlds.loader.world_types)
|
|
@ -0,0 +1,13 @@
|
||||||
|
class AutoWorldRegister(type):
|
||||||
|
_world_types = {}
|
||||||
|
|
||||||
|
def __new__(cls, name, bases, dct):
|
||||||
|
new_class = super().__new__(cls, name, bases, dct)
|
||||||
|
AutoWorldRegister._world_types[name] = new_class
|
||||||
|
return new_class
|
||||||
|
|
||||||
|
class World(metaclass=AutoWorldRegister):
|
||||||
|
"""A World object encompasses a game's Items, Locations, Rules and additional data or functionality required.
|
||||||
|
A Game should have its own subclass of World in which it defines the required data structures."""
|
||||||
|
def __init__(self):
|
||||||
|
pass
|
|
@ -1,7 +1,25 @@
|
||||||
|
from ..BaseWorld import World
|
||||||
|
|
||||||
|
|
||||||
from BaseClasses import Region, Entrance, Location, MultiWorld, Item
|
from BaseClasses import Region, Entrance, Location, MultiWorld, Item
|
||||||
from .Technologies import tech_table, recipe_sources, technology_table, advancement_technologies, required_technologies
|
from .Technologies import tech_table, recipe_sources, technology_table, advancement_technologies, required_technologies
|
||||||
from .Shapes import get_shapes
|
from .Shapes import get_shapes
|
||||||
|
|
||||||
|
class Factorio(World):
|
||||||
|
def generate_basic(self, world: MultiWorld, player: int):
|
||||||
|
static_nodes = world._static_nodes = {"automation", "logistics"} # turn dynamic/option?
|
||||||
|
for tech_name, tech_id in tech_table.items():
|
||||||
|
tech_item = Item(tech_name, tech_name in advancement_technologies, tech_id, player)
|
||||||
|
tech_item.game = "Factorio"
|
||||||
|
if tech_name in static_nodes:
|
||||||
|
loc = world.get_location(tech_name, player)
|
||||||
|
loc.item = tech_item
|
||||||
|
loc.locked = True
|
||||||
|
loc.event = tech_item.advancement
|
||||||
|
else:
|
||||||
|
world.itempool.append(tech_item)
|
||||||
|
world.custom_data[player]["custom_technologies"] = custom_technologies = set_custom_technologies(world, player)
|
||||||
|
set_rules(world, player, custom_technologies)
|
||||||
|
|
||||||
def gen_factorio(world: MultiWorld, player: int):
|
def gen_factorio(world: MultiWorld, player: int):
|
||||||
static_nodes = world._static_nodes = {"automation", "logistics"} # turn dynamic/option?
|
static_nodes = world._static_nodes = {"automation", "logistics"} # turn dynamic/option?
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
import importlib
|
||||||
|
import os
|
||||||
|
world_types = []
|
||||||
|
world_folder = os.path.dirname(__file__)
|
||||||
|
for entry in os.scandir(world_folder):
|
||||||
|
if entry.is_dir():
|
||||||
|
entryname = entry.name
|
||||||
|
if not entryname.startswith("_"):
|
||||||
|
world_module = importlib.import_module("."+entry.name, package="worlds")
|
||||||
|
world_types.append(world_module)
|
||||||
|
print(world_folder)
|
||||||
|
print(world_types)
|
Loading…
Reference in New Issue