-
Notifications
You must be signed in to change notification settings - Fork 773
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
core: rip out RegionType and rework Region class #814
Conversation
Went ahead and added a Region class rewrite to this PR, |
@@ -1254,23 +1250,31 @@ def parse_data(self): | |||
|
|||
self.locations = OrderedDict() | |||
listed_locations = set() | |||
lw_locations = [] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of moving more data around within this function, please use or create World hooks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This entire function is specific for LTTP handling as far as I can tell and out of scope for this PR. Planning to revisit it after moving each of the options it parses here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do agree with treble on this one: getting rid of the lttp details in BaseClasses / other worlds is separate from getting rid of the handling here. Rewriting the whole function is kind of a bigger task (assuming we want to find a good, generic solution) and future change to this can be made without breaking the API once this is merged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems good. Is it possible to get a generation to run for every game something like 30-50 times to ensure things look good logically? Or some other testing mechanism, if possible.
worlds/archipidle/__init__.py
Outdated
@@ -25,10 +25,12 @@ class ArchipIDLEWorld(World): | |||
""" | |||
game = "ArchipIDLE" | |||
topology_present = False | |||
data_version = 4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do think we should merge this sooner than later, as it removes a lot of jank from writing worlds.
However I think all of my (and zerk's) comments should be addressed plus I don't see and update to Docs. Was the current implementation never documented, or did you forget about updating world api.md?
@Berserker66 this looks good now. The one big remaining question, besides merge order, is at what point we want to have the world API semi-stable (i.e. implement backwards compat and throw Deprecation Warnings): when we merge this, the APWorlds currently distributed will not work anymore, and when the APWorlds get updated, they won't work with current stable anymore. |
# Conflicts: # worlds/lufia2ac/__init__.py
Not sure yet. I want to try and find time for the .apworld installer soonish, which could do some version checking in there - and would run unittests so it would bubble up some of these issues. |
oh yeah, might as well ping @espeon65536 as the OoT changes go a bit beyond mere fixing. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but i did not test OoT either
Unsure if the special handling in the spoiler class can be fully ripped out so I worked around it for now. Also unhappy with how I handled getting region entrances so maybe this could be changed to a Region method instead of a function in main?