39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
import sys
|
|
import os
|
|
from assetstool.args import args
|
|
from assetstool.assetcache import assetCache, assetGetCache
|
|
from assetstool.assethelpers import getAssetRelativePath
|
|
from dusk.defs import defs
|
|
|
|
def processScript(asset):
|
|
cache = assetGetCache(asset['path'])
|
|
if cache is not None:
|
|
return cache
|
|
|
|
# Load the lua file as a string
|
|
with open(asset['path'], 'r', encoding='utf-8') as f:
|
|
luaCode = f.read()
|
|
|
|
# TODO: I will precompile or minify the Lua code here in the future
|
|
|
|
# Create output Dusk Script File (DSF) data
|
|
data = ""
|
|
data += "DSF"
|
|
data += luaCode
|
|
|
|
# Write to relative output file path.
|
|
relative = getAssetRelativePath(asset['path'])
|
|
fileNameWithoutExt = os.path.splitext(os.path.basename(asset['path']))[0]
|
|
outputFileRelative = os.path.join(os.path.dirname(relative), f"{fileNameWithoutExt}.dsf")
|
|
outputFilePath = os.path.join(args.output_assets, outputFileRelative)
|
|
os.makedirs(os.path.dirname(outputFilePath), exist_ok=True)
|
|
with open(outputFilePath, "wb") as f:
|
|
f.write(data.encode('utf-8'))
|
|
|
|
outScript = {
|
|
'data': data,
|
|
'path': asset['path'],
|
|
'files': [ outputFilePath ],
|
|
'scriptPath': outputFileRelative,
|
|
}
|
|
return assetCache(asset['path'], outScript) |