Intial Commit
This commit is contained in:
@@ -15,7 +15,7 @@ import struct
|
||||
from pathlib import Path
|
||||
from PIL import Image
|
||||
|
||||
MOD_ID = 'KnoxBuildworksViewpointCrates' # Retain the ID of the previously installed patch.
|
||||
MOD_ID = 'hrsys_knoxbuildworksviewpoint'
|
||||
HERE = Path(__file__).resolve().parent
|
||||
REPO_ROOT = HERE.parent
|
||||
VERSION_FOLDER = '42.20'
|
||||
@@ -377,6 +377,20 @@ def copy_asset(source_root, binding, media, white=False, tint=None):
|
||||
shutil.copy2(texture,texture_out)
|
||||
return target.relative_to(media).as_posix(), tag
|
||||
|
||||
def mod_info(versioned=False):
|
||||
prefix='../' if versioned else ''
|
||||
art=f'{prefix}common/media/textures/preview.png'
|
||||
lines=['name=Knox Buildworks - Viewpoint Compatibility',f'id={MOD_ID}',f'poster={art}','',
|
||||
'description=3D military crate models for Knox Buildworks in Project Viewpoint.',
|
||||
'author=Riggs0','category=building']
|
||||
if versioned:
|
||||
lines += [f'icon={art}','url=https://hudsonriggs.systems','modversion=2.1.0','versionMin=42.20.0']
|
||||
else:
|
||||
lines += ['versionMin=42.20.0','url=https://hudsonriggs.systems','modversion=2.1.0',f'icon={art}']
|
||||
lines += ['require=KnoxBuildworks,Viewpoint,PZVoxelStudioViewpoint',
|
||||
'loadAfter=KnoxBuildworks,PZVoxelStudioViewpoint,Viewpoint','']
|
||||
return '\n'.join(lines)
|
||||
|
||||
def build_pack(output, source_root, bindings, assignments):
|
||||
media=output/'common/media'
|
||||
media.mkdir(parents=True,exist_ok=True)
|
||||
@@ -395,19 +409,24 @@ def build_pack(output, source_root, bindings, assignments):
|
||||
_,*transform=binding['value'].split(',')
|
||||
lines.append(f"bind.{target}={models[key]},{','.join(transform)}")
|
||||
(media/'knox-viewpoint-crates.properties').write_text('\n'.join(lines)+'\n',encoding='utf-8')
|
||||
info='\n'.join(['name=Knox Buildworks - Viewpoint Compatibility',f'id={MOD_ID}','author=Local compatibility patch',
|
||||
'modversion=2.1.0','description=Green, gray-green (#626763) and white military crates. Gray crates use retextured green crate meshes.',
|
||||
'require=KnoxBuildworks,Viewpoint,PZVoxelStudioViewpoint','loadAfter=KnoxBuildworks,PZVoxelStudioViewpoint,Viewpoint','versionMin=42.0',''])
|
||||
(output/VERSION_FOLDER).mkdir(parents=True,exist_ok=True)
|
||||
(output/VERSION_FOLDER/'mod.info').write_text(info,encoding='utf-8')
|
||||
(output/'mod.info').write_text(info,encoding='utf-8')
|
||||
(output/VERSION_FOLDER/'mod.info').write_text(mod_info(versioned=True),encoding='utf-8')
|
||||
(output/'mod.info').write_text(mod_info(),encoding='utf-8')
|
||||
# Keep the published preview and mod-list art consistent on future rebuilds.
|
||||
preview=output/'preview.png'
|
||||
if not preview.exists():
|
||||
preview=REPO_ROOT/'preview.png'
|
||||
if preview.exists():
|
||||
art=media/'textures/preview.png'
|
||||
art.parent.mkdir(parents=True,exist_ok=True)
|
||||
shutil.copy2(preview,art)
|
||||
lua='''-- Render bindings only. No recipe, object, inventory or save changes.
|
||||
local registered = false
|
||||
local warned = false
|
||||
local function register()
|
||||
if registered or not Viewpoint or not Viewpoint.ModelPacks then return end
|
||||
local ok, result = pcall(Viewpoint.ModelPacks.register,
|
||||
"KnoxBuildworksViewpointCrates", "media/knox-viewpoint-crates.properties")
|
||||
"%MOD_ID%", "media/knox-viewpoint-crates.properties")
|
||||
if ok and result then
|
||||
registered = true
|
||||
print("[Knox Viewpoint Crates] Registered %COUNT% reviewed compatibility sprite bindings.")
|
||||
@@ -419,7 +438,7 @@ end
|
||||
Events.OnGameBoot.Add(register)
|
||||
Events.OnGameStart.Add(register)
|
||||
register()
|
||||
'''.replace('%COUNT%',str(len(assignments)))
|
||||
'''.replace('%MOD_ID%',MOD_ID).replace('%COUNT%',str(len(assignments)))
|
||||
(media/'lua/client').mkdir(parents=True,exist_ok=True)
|
||||
(media/'lua/client/ZZ_KnoxViewpointCrates.lua').write_text(lua,encoding='utf-8')
|
||||
return len(models)
|
||||
|
||||
Reference in New Issue
Block a user