mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
integrate maseya-z3pr palette shuffle
This commit is contained in:
6
Main.py
6
Main.py
@@ -246,7 +246,7 @@ def main(args, seed=None):
|
|||||||
return player, team, bytes(rom.name).decode()
|
return player, team, bytes(rom.name).decode()
|
||||||
|
|
||||||
pool = concurrent.futures.ThreadPoolExecutor()
|
pool = concurrent.futures.ThreadPoolExecutor()
|
||||||
|
multidata_task = None
|
||||||
if not args.suppress_rom:
|
if not args.suppress_rom:
|
||||||
|
|
||||||
rom_futures = []
|
rom_futures = []
|
||||||
@@ -302,11 +302,13 @@ def main(args, seed=None):
|
|||||||
with open(output_path('%s.multidata' % outfilebase), 'wb') as f:
|
with open(output_path('%s.multidata' % outfilebase), 'wb') as f:
|
||||||
f.write(multidata)
|
f.write(multidata)
|
||||||
|
|
||||||
pool.submit(write_multidata, rom_futures)
|
multidata_task = pool.submit(write_multidata, rom_futures)
|
||||||
|
|
||||||
if not args.skip_playthrough:
|
if not args.skip_playthrough:
|
||||||
logger.info('Calculating playthrough.')
|
logger.info('Calculating playthrough.')
|
||||||
create_playthrough(world)
|
create_playthrough(world)
|
||||||
|
if multidata_task:
|
||||||
|
multidata_task.result() # retrieve exception if one exists
|
||||||
pool.shutdown() # wait for all queued tasks to complete
|
pool.shutdown() # wait for all queued tasks to complete
|
||||||
if args.create_spoiler: # needs spoiler.hashes to be filled, that depend on rom_futures being done
|
if args.create_spoiler: # needs spoiler.hashes to be filled, that depend on rom_futures being done
|
||||||
world.spoiler.to_file(output_path('%s_Spoiler.txt' % outfilebase))
|
world.spoiler.to_file(output_path('%s_Spoiler.txt' % outfilebase))
|
||||||
|
@@ -10,7 +10,8 @@ def update_command():
|
|||||||
subprocess.call([sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt', '--upgrade'])
|
subprocess.call([sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt', '--upgrade'])
|
||||||
|
|
||||||
|
|
||||||
naming_specialties = {"PyYAML": "yaml"} # PyYAML is imported as the name yaml
|
naming_specialties = {"PyYAML": "yaml", # PyYAML is imported as the name yaml
|
||||||
|
"maseya-z3pr": "maseya"}
|
||||||
|
|
||||||
|
|
||||||
def update():
|
def update():
|
||||||
|
38
Rom.py
38
Rom.py
@@ -25,7 +25,10 @@ from Items import ItemFactory
|
|||||||
from EntranceShuffle import door_addresses
|
from EntranceShuffle import door_addresses
|
||||||
import Patch
|
import Patch
|
||||||
|
|
||||||
|
try:
|
||||||
|
from maseya import z3pr
|
||||||
|
except:
|
||||||
|
z3pr = None
|
||||||
|
|
||||||
class LocalRom(object):
|
class LocalRom(object):
|
||||||
|
|
||||||
@@ -1477,16 +1480,33 @@ def apply_rom_settings(rom, beep, color, quickswap, fastmenu, disable_music, spr
|
|||||||
if sprite is not None:
|
if sprite is not None:
|
||||||
write_sprite(rom, sprite)
|
write_sprite(rom, sprite)
|
||||||
|
|
||||||
|
# reset palette if it was adjusted already
|
||||||
default_ow_palettes(rom)
|
default_ow_palettes(rom)
|
||||||
if ow_palettes == 'random':
|
|
||||||
randomize_ow_palettes(rom, local_random)
|
|
||||||
elif ow_palettes == 'blackout':
|
|
||||||
blackout_ow_palettes(rom)
|
|
||||||
|
|
||||||
default_uw_palettes(rom)
|
default_uw_palettes(rom)
|
||||||
if uw_palettes == 'random':
|
|
||||||
randomize_uw_palettes(rom, local_random)
|
if z3pr:
|
||||||
elif uw_palettes == 'blackout':
|
options = {
|
||||||
|
"randomize_dungeon": uw_palettes == 'random',
|
||||||
|
"randomize_overworld": ow_palettes == 'random'
|
||||||
|
}
|
||||||
|
if any(options.values()):
|
||||||
|
ColorF = z3pr.ColorF
|
||||||
|
|
||||||
|
def next_color():
|
||||||
|
return ColorF(local_random.random(), local_random.random(), local_random.random())
|
||||||
|
|
||||||
|
z3pr.randomize(rom.buffer, "maseya", next_color, options)
|
||||||
|
else:
|
||||||
|
logging.warning("Could not find z3pr palette shuffle. "
|
||||||
|
"If you want improved palette shuffling please install the maseya-z3pr package.")
|
||||||
|
if ow_palettes == 'random':
|
||||||
|
randomize_ow_palettes(rom, local_random)
|
||||||
|
if uw_palettes == 'random':
|
||||||
|
randomize_uw_palettes(rom, local_random)
|
||||||
|
|
||||||
|
if ow_palettes == 'blackout':
|
||||||
|
blackout_ow_palettes(rom)
|
||||||
|
if uw_palettes == 'blackout':
|
||||||
blackout_uw_palettes(rom)
|
blackout_uw_palettes(rom)
|
||||||
|
|
||||||
if isinstance(rom, LocalRom):
|
if isinstance(rom, LocalRom):
|
||||||
|
Reference in New Issue
Block a user