Skip to content

Commit

Permalink
evolve the metadat format:assets->asset_base_folder |asset_list
Browse files Browse the repository at this point in the history
  • Loading branch information
wkta committed Sep 3, 2024
1 parent 9f02868 commit d0fb721
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 28 deletions.
4 changes: 3 additions & 1 deletion src/pyvcmdline/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -540,7 +540,9 @@ def test_subcommand(bundle_name):
metadat['thumbnail512x384'],
metadat['thumbnail512x512']
]
files_exp_li.extend(metadat['assets'])
for asset_name in metadat['asset_list']:
files_exp_li.append(metadat['asset_base_folder']+'/'+asset_name)

for elt in files_exp_li:
print('____testing file:', elt)
if not test_isfile_in_cartridge(elt, bundle_name):
Expand Down
10 changes: 7 additions & 3 deletions src/pyvcmdline/cmdline_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,19 +30,23 @@ def verify_metadata(mdat_obj) -> str:
returns a str if something is missing!
"""
expected_fields = (
'assets',
'asset_base_folder',
'asset_list',
'sound_base_folder',
'sound_list',

'vmlib_ver',
'author',
'build_date',
'dependencies',
'description',
'title',
'instructions',
'slug',
'sounds',
'thumbnail512x384',
'thumbnail512x512',
'ktg_services',
'vmlib_ver',

'uses_challenge',
'has_game_server',
'ncr_faucet',
Expand Down
47 changes: 23 additions & 24 deletions src/pyved_engine/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ async def async_run_game():


# --- rest of functions ---
def preload_assets(adhoc_dict: dict, prefix_asset_folder=None, webhack=None):
def preload_assets(adhoc_dict: dict, prefix_asset_folder, prefix_sound_folder, webhack=None):
"""
expected to find the (mandatory) key 'images',
also we may find the (optionnal) key 'sounds'
Expand All @@ -203,7 +203,7 @@ def preload_assets(adhoc_dict: dict, prefix_asset_folder=None, webhack=None):
print(' CALL to preload assets')
print('*'*50)
print()
for asset_desc in adhoc_dict['assets']:
for asset_desc in adhoc_dict['asset_list']:

if isinstance(asset_desc, str): # either sprsheet or image
kk = asset_desc.split('.')
Expand All @@ -223,7 +223,7 @@ def preload_assets(adhoc_dict: dict, prefix_asset_folder=None, webhack=None):
if webhack:
y = webhack + csv_filename
else:
y = prefix_asset_folder + csv_filename if prefix_asset_folder else csv_filename
y = prefix_asset_folder + csv_filename
with open(y, 'r') as file:
# csvreader = csv.reader(file)
str_csv = file.read()
Expand All @@ -235,33 +235,32 @@ def preload_assets(adhoc_dict: dict, prefix_asset_folder=None, webhack=None):
map_data.append(list(map(int, row)))
vars.csvdata[kk[0]] = map_data

else:
filepath = prefix_asset_folder + asset_desc if prefix_asset_folder else asset_desc
elif kk[1] == 'ttf': # a TTF font
key = "custom_ft"
ft_size = 22
ft_filename = asset_desc

if webhack:
y = webhack + ft_filename
else:
y = prefix_asset_folder + ft_filename
print('fetching font:', key, ft_filename, f'[{y}]')
vars.fonts[key] = _hub.pygame.font.Font(
y,
ft_size
)

else: # necessarily an image
filepath = prefix_asset_folder + asset_desc
print('fetching image:', kk[0], filepath)
vars.images[kk[0]] = _hub.pygame.image.load(filepath)

else: # necessarily a TTF font
key, ft_filename, ft_size = asset_desc

if webhack:
y = webhack + ft_filename
else:
y = prefix_asset_folder + ft_filename if prefix_asset_folder else ft_filename
print('fetching font:', key, ft_filename, f'[{y}]')
vars.fonts[key] = _hub.pygame.font.Font(
y,
ft_size
)

if 'sounds' not in adhoc_dict:
return

for snd_elt in adhoc_dict['sounds']:
for snd_elt in adhoc_dict['sound_list']:
k = snd_elt.split('.')[0]
filepath = snd_elt if (prefix_asset_folder is None) else prefix_asset_folder + snd_elt
filepath = prefix_sound_folder + snd_elt
if webhack is not None:
filepath = webhack+filepath
print('fetching sound:', k, filepath)
print('fetching the sound:', k, filepath)
vars.sounds[k] = _hub.pygame.mixer.Sound(filepath)


Expand Down

0 comments on commit d0fb721

Please sign in to comment.