8bbc0dc0eb
Binary files (.glb, .gltf, .png, .jpg, .jpeg, .webp) were pushed as raw Git blobs via Octokit, bypassing Git LFS. This caused LFS-tracked repos to see all files as modified after git pull, requiring spurious commits. Now the bot uploads binaries to the LFS server via the Batch API and stores LFS pointer files in the Git tree. Also fixes getRemoteFolder() to read the real file size from LFS pointers instead of the pointer size.
33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
// ---------------------------------------------------------------------------
|
|
// Shared constants — used by both client and server
|
|
// ---------------------------------------------------------------------------
|
|
|
|
export const MODEL_EXTENSIONS = new Set(['.glb', '.gltf'])
|
|
export const TEXTURE_EXTENSIONS = new Set(['.png', '.jpg', '.jpeg', '.webp'])
|
|
export const ALL_ALLOWED_EXTENSIONS = new Set([...MODEL_EXTENSIONS, ...TEXTURE_EXTENSIONS])
|
|
|
|
/** Extensions tracked by Git LFS (must match .gitattributes) */
|
|
export const LFS_EXTENSIONS = new Set(['.glb', '.gltf', '.png', '.jpg', '.jpeg', '.webp'])
|
|
|
|
export const REQUIRED_TEXTURES = ['roughness', 'normal', 'metalness', 'color', 'displace'] as const
|
|
|
|
export const VALID_DESTINATIONS = new Set<string>([
|
|
'farm', 'map', 'powergrid', 'workshop', 'general', 'environment',
|
|
])
|
|
|
|
export const DESTINATIONS = [
|
|
{ value: 'farm', label: 'Farm' },
|
|
{ value: 'map', label: 'Map' },
|
|
{ value: 'powergrid', label: 'Powergrid' },
|
|
{ value: 'workshop', label: 'Workshop' },
|
|
{ value: 'general', label: 'General' },
|
|
{ value: 'environment', label: 'Environment' },
|
|
] as const
|
|
|
|
export type Destination = typeof DESTINATIONS[number]['value']
|
|
|
|
export const TMP_DIR = '/tmp/assets'
|
|
|
|
/** Maximum file size in bytes (100 MB) */
|
|
export const MAX_FILE_SIZE = 100 * 1024 * 1024
|