Split overworld model up by screen
This commit is contained in:
21
Utils.py
21
Utils.py
@@ -743,6 +743,27 @@ def load_cached_yaml(path_list):
|
||||
return data
|
||||
|
||||
|
||||
class bidict(dict):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(bidict, self).__init__(*args, **kwargs)
|
||||
self.inverse = {}
|
||||
for key, value in self.items():
|
||||
self.inverse.setdefault(value,[]).append(key)
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
if key in self:
|
||||
self.inverse[self[key]].remove(key)
|
||||
super(bidict, self).__setitem__(key, value)
|
||||
self.inverse.setdefault(value,[]).append(key)
|
||||
|
||||
def __delitem__(self, key):
|
||||
value = self[key]
|
||||
self.inverse.setdefault(value,[]).remove(key)
|
||||
if value in self.inverse and not self.inverse[value]:
|
||||
del self.inverse[value]
|
||||
super(bidict, self).__delitem__(key)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# make_new_base2current()
|
||||
# read_entrance_data(old_rom=sys.argv[1])
|
||||
|
||||
Reference in New Issue
Block a user