Combined grouping combinations of Parallel+NonCrossed and Vanilla+Crossed

This commit is contained in:
codemann8
2021-08-20 05:47:15 -05:00
parent 7b0ca2ef6d
commit ed1332b691

View File

@@ -590,234 +590,152 @@ def reorganize_groups(world, groups, player):
new_grouping[(region, axis, terrain)] = (exist_forward_edges, exist_back_edges) new_grouping[(region, axis, terrain)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values()) return list(new_grouping.values())
elif world.owShuffle[player] == 'parallel': elif world.owShuffle[player] == 'parallel' and world.owCrossed[player]:
if world.owCrossed[player]:
if world.owKeepSimilar[player]:
if world.mode[player] == 'standard':
# tuple goes to (A,_,C,D,E,F)
for grouping in (groups,):
new_grouping = {}
for group in grouping.keys():
(std, _, axis, terrain, parallel, count) = group
new_grouping[(std, axis, terrain, parallel, count)] = ([], [])
for group in grouping.keys():
(std, _, axis, terrain, parallel, count) = group
(forward_edges, back_edges) = grouping[group]
(exist_forward_edges, exist_back_edges) = new_grouping[(std, axis, terrain, parallel, count)]
exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges)
new_grouping[(std, axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values())
else:
# tuple goes to (_,_,C,D,E,F)
for grouping in (groups,):
new_grouping = {}
for group in grouping.keys():
(_, _, axis, terrain, parallel, count) = group
new_grouping[(axis, terrain, parallel, count)] = ([], [])
for group in grouping.keys():
(_, _, axis, terrain, parallel, count) = group
(forward_edges, back_edges) = grouping[group]
(exist_forward_edges, exist_back_edges) = new_grouping[(axis, terrain, parallel, count)]
exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges)
new_grouping[(axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values())
else:
if world.mode[player] == 'standard':
# tuple goes to (A,_,C,D,E,_)
for grouping in (groups,):
new_grouping = {}
for group in grouping.keys():
(std, _, axis, terrain, parallel, _) = group
new_grouping[(std, axis, terrain, parallel)] = ([], [])
for group in grouping.keys():
(std, _, axis, terrain, parallel, _) = group
(forward_edges, back_edges) = grouping[group]
forward_edges = [[i] for l in forward_edges for i in l]
back_edges = [[i] for l in back_edges for i in l]
(exist_forward_edges, exist_back_edges) = new_grouping[(std, axis, terrain, parallel)]
exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges)
new_grouping[(std, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values())
else:
# tuple goes to (_,_,C,D,E,_)
for grouping in (groups,):
new_grouping = {}
for group in grouping.keys():
(_, _, axis, terrain, parallel, _) = group
new_grouping[(axis, terrain, parallel)] = ([], [])
for group in grouping.keys():
(_, _, axis, terrain, parallel, _) = group
(forward_edges, back_edges) = grouping[group]
forward_edges = [[i] for l in forward_edges for i in l]
back_edges = [[i] for l in back_edges for i in l]
(exist_forward_edges, exist_back_edges) = new_grouping[(axis, terrain, parallel)]
exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges)
new_grouping[(axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values())
else:
if world.owKeepSimilar[player]:
if world.mode[player] == 'standard':
# tuple stays (A,B,C,D,E,F)
for grouping in (groups,):
return list(grouping.values())
else:
# tuple goes to (_,B,C,D,E,F)
for grouping in (groups,):
new_grouping = {}
for group in grouping.keys():
(_, region, axis, terrain, parallel, count) = group
new_grouping[(region, axis, terrain, parallel, count)] = ([], [])
for group in grouping.keys():
(_, region, axis, terrain, parallel, count) = group
(forward_edges, back_edges) = grouping[group]
(exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain, parallel, count)]
exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges)
new_grouping[(region, axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values())
else:
if world.mode[player] == 'standard':
# tuple goes to (A,B,C,D,E,_)
for grouping in (groups,):
new_grouping = {}
for group in grouping.keys():
(std, region, axis, terrain, parallel, _) = group
new_grouping[(std, region, axis, terrain, parallel)] = ([], [])
for group in grouping.keys():
(std, region, axis, terrain, parallel, _) = group
(forward_edges, back_edges) = grouping[group]
forward_edges = [[i] for l in forward_edges for i in l]
back_edges = [[i] for l in back_edges for i in l]
(exist_forward_edges, exist_back_edges) = new_grouping[(std, region, axis, terrain, parallel)]
exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges)
new_grouping[(std, region, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values())
else:
# tuple goes to (_,B,C,D,E,_)
for grouping in (groups,):
new_grouping = {}
for group in grouping.keys():
(_, region, axis, terrain, parallel, _) = group
new_grouping[(region, axis, terrain, parallel)] = ([], [])
for group in grouping.keys():
(_, region, axis, terrain, parallel, _) = group
(forward_edges, back_edges) = grouping[group]
forward_edges = [[i] for l in forward_edges for i in l]
back_edges = [[i] for l in back_edges for i in l]
(exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain, parallel)]
exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges)
new_grouping[(region, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values())
elif world.owShuffle[player] == 'vanilla' and world.owCrossed[player]:
if world.owKeepSimilar[player]: if world.owKeepSimilar[player]:
if world.mode[player] == 'standard': if world.mode[player] == 'standard':
# tuple goes to (A,B,C,D,_,F) # tuple goes to (A,_,C,D,E,F)
for grouping in (groups,): for grouping in (groups,):
new_grouping = {} new_grouping = {}
for group in grouping.keys(): for group in grouping.keys():
(std, region, axis, terrain, _, count) = group (std, _, axis, terrain, parallel, count) = group
new_grouping[(std, region, axis, terrain, count)] = ([], []) new_grouping[(std, axis, terrain, parallel, count)] = ([], [])
for group in grouping.keys(): for group in grouping.keys():
(std, region, axis, terrain, _, count) = group (std, _, axis, terrain, parallel, count) = group
(forward_edges, back_edges) = grouping[group] (forward_edges, back_edges) = grouping[group]
(exist_forward_edges, exist_back_edges) = new_grouping[(std, region, axis, terrain, count)] (exist_forward_edges, exist_back_edges) = new_grouping[(std, axis, terrain, parallel, count)]
exist_forward_edges.extend(forward_edges) exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges) exist_back_edges.extend(back_edges)
new_grouping[(std, region, axis, terrain, count)] = (exist_forward_edges, exist_back_edges) new_grouping[(std, axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values()) return list(new_grouping.values())
else: else:
# tuple goes to (_,B,C,D,_,F) # tuple goes to (_,_,C,D,E,F)
for grouping in (groups,): for grouping in (groups,):
new_grouping = {} new_grouping = {}
for group in grouping.keys(): for group in grouping.keys():
(_, region, axis, terrain, _, count) = group (_, _, axis, terrain, parallel, count) = group
new_grouping[(region, axis, terrain, count)] = ([], []) new_grouping[(axis, terrain, parallel, count)] = ([], [])
for group in grouping.keys(): for group in grouping.keys():
(_, region, axis, terrain, _, count) = group (_, _, axis, terrain, parallel, count) = group
(forward_edges, back_edges) = grouping[group] (forward_edges, back_edges) = grouping[group]
(exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain, count)] (exist_forward_edges, exist_back_edges) = new_grouping[(axis, terrain, parallel, count)]
exist_forward_edges.extend(forward_edges) exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges) exist_back_edges.extend(back_edges)
new_grouping[(region, axis, terrain, count)] = (exist_forward_edges, exist_back_edges) new_grouping[(axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values()) return list(new_grouping.values())
else: else:
if world.mode[player] == 'standard': if world.mode[player] == 'standard':
# tuple goes to (A,B,C,D,_,_) # tuple goes to (A,_,C,D,E,_)
for grouping in (groups,): for grouping in (groups,):
new_grouping = {} new_grouping = {}
for group in grouping.keys(): for group in grouping.keys():
(std, region, axis, terrain, _, _) = group (std, _, axis, terrain, parallel, _) = group
new_grouping[(std, region, axis, terrain)] = ([], []) new_grouping[(std, axis, terrain, parallel)] = ([], [])
for group in grouping.keys(): for group in grouping.keys():
(std, region, axis, terrain, _, _) = group (std, _, axis, terrain, parallel, _) = group
(forward_edges, back_edges) = grouping[group] (forward_edges, back_edges) = grouping[group]
forward_edges = [[i] for l in forward_edges for i in l] forward_edges = [[i] for l in forward_edges for i in l]
back_edges = [[i] for l in back_edges for i in l] back_edges = [[i] for l in back_edges for i in l]
(exist_forward_edges, exist_back_edges) = new_grouping[(std, region, axis, terrain)] (exist_forward_edges, exist_back_edges) = new_grouping[(std, axis, terrain, parallel)]
exist_forward_edges.extend(forward_edges) exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges) exist_back_edges.extend(back_edges)
new_grouping[(std, region, axis, terrain)] = (exist_forward_edges, exist_back_edges) new_grouping[(std, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values()) return list(new_grouping.values())
else: else:
# tuple goes to (_,B,C,D,_,_) # tuple goes to (_,_,C,D,E,_)
for grouping in (groups,): for grouping in (groups,):
new_grouping = {} new_grouping = {}
for group in grouping.keys(): for group in grouping.keys():
(_, region, axis, terrain, _, _) = group (_, _, axis, terrain, parallel, _) = group
new_grouping[(region, axis, terrain)] = ([], []) new_grouping[(axis, terrain, parallel)] = ([], [])
for group in grouping.keys(): for group in grouping.keys():
(_, region, axis, terrain, _, _) = group (_, _, axis, terrain, parallel, _) = group
(forward_edges, back_edges) = grouping[group] (forward_edges, back_edges) = grouping[group]
forward_edges = [[i] for l in forward_edges for i in l] forward_edges = [[i] for l in forward_edges for i in l]
back_edges = [[i] for l in back_edges for i in l] back_edges = [[i] for l in back_edges for i in l]
(exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain)] (exist_forward_edges, exist_back_edges) = new_grouping[(axis, terrain, parallel)]
exist_forward_edges.extend(forward_edges) exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges) exist_back_edges.extend(back_edges)
new_grouping[(region, axis, terrain)] = (exist_forward_edges, exist_back_edges) new_grouping[(axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values())
elif world.owShuffle[player] == 'parallel' or (world.owShuffle[player] == 'vanilla' and world.owCrossed[player]):
if world.owKeepSimilar[player]:
if world.mode[player] == 'standard':
# tuple stays (A,B,C,D,E,F)
for grouping in (groups,):
return list(grouping.values())
else:
# tuple goes to (_,B,C,D,E,F)
for grouping in (groups,):
new_grouping = {}
for group in grouping.keys():
(_, region, axis, terrain, parallel, count) = group
new_grouping[(region, axis, terrain, parallel, count)] = ([], [])
for group in grouping.keys():
(_, region, axis, terrain, parallel, count) = group
(forward_edges, back_edges) = grouping[group]
(exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain, parallel, count)]
exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges)
new_grouping[(region, axis, terrain, parallel, count)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values())
else:
if world.mode[player] == 'standard':
# tuple goes to (A,B,C,D,E,_)
for grouping in (groups,):
new_grouping = {}
for group in grouping.keys():
(std, region, axis, terrain, parallel, _) = group
new_grouping[(std, region, axis, terrain, parallel)] = ([], [])
for group in grouping.keys():
(std, region, axis, terrain, parallel, _) = group
(forward_edges, back_edges) = grouping[group]
forward_edges = [[i] for l in forward_edges for i in l]
back_edges = [[i] for l in back_edges for i in l]
(exist_forward_edges, exist_back_edges) = new_grouping[(std, region, axis, terrain, parallel)]
exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges)
new_grouping[(std, region, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values())
else:
# tuple goes to (_,B,C,D,E,_)
for grouping in (groups,):
new_grouping = {}
for group in grouping.keys():
(_, region, axis, terrain, parallel, _) = group
new_grouping[(region, axis, terrain, parallel)] = ([], [])
for group in grouping.keys():
(_, region, axis, terrain, parallel, _) = group
(forward_edges, back_edges) = grouping[group]
forward_edges = [[i] for l in forward_edges for i in l]
back_edges = [[i] for l in back_edges for i in l]
(exist_forward_edges, exist_back_edges) = new_grouping[(region, axis, terrain, parallel)]
exist_forward_edges.extend(forward_edges)
exist_back_edges.extend(back_edges)
new_grouping[(region, axis, terrain, parallel)] = (exist_forward_edges, exist_back_edges)
return list(new_grouping.values()) return list(new_grouping.values())
else: else: