# ============================================================================
# JANKENBOTS .gitattributes — Unity + Git LFS
# LFS objects are stored on the Forgejo remote (git.rdx4.com). git-lfs must be
# installed locally (`git lfs install`) — it is, repo-wide, as of 2026-07-12.
# ============================================================================

# Normalize line endings; Unity is happiest with LF for its YAML text assets.
* text=auto eol=lf
*.cs text diff=csharp eol=lf

# ---- Unity YAML *text* assets — mergeable with UnityYAMLMerge, NOT LFS -------
# These are human-readable YAML (Asset Serialization = Force Text). Keep them as
# normal git text so diffs/merges work. Do NOT add them to LFS.
*.unity            merge=unityyamlmerge eol=lf
*.prefab           merge=unityyamlmerge eol=lf
*.asset            merge=unityyamlmerge eol=lf
*.meta             merge=unityyamlmerge eol=lf
*.mat              merge=unityyamlmerge eol=lf
*.anim             merge=unityyamlmerge eol=lf
*.controller       merge=unityyamlmerge eol=lf
*.physicMaterial   merge=unityyamlmerge eol=lf
*.physicsMaterial  merge=unityyamlmerge eol=lf

# ============================================================================
# Git LFS — large binaries (art / audio / video / models / fonts / native libs)
# filter=lfs diff=lfs merge=lfs -text
# ============================================================================

# ---- Images / textures ------------------------------------------------------
*.png    filter=lfs diff=lfs merge=lfs -text
*.jpg    filter=lfs diff=lfs merge=lfs -text
*.jpeg   filter=lfs diff=lfs merge=lfs -text
*.gif    filter=lfs diff=lfs merge=lfs -text
*.bmp    filter=lfs diff=lfs merge=lfs -text
*.tga    filter=lfs diff=lfs merge=lfs -text
*.tif    filter=lfs diff=lfs merge=lfs -text
*.tiff   filter=lfs diff=lfs merge=lfs -text
*.psd    filter=lfs diff=lfs merge=lfs -text
*.ai     filter=lfs diff=lfs merge=lfs -text
*.dds    filter=lfs diff=lfs merge=lfs -text
*.iff    filter=lfs diff=lfs merge=lfs -text
*.pict   filter=lfs diff=lfs merge=lfs -text
*.exr    filter=lfs diff=lfs merge=lfs -text
*.hdr    filter=lfs diff=lfs merge=lfs -text

# ---- Audio ------------------------------------------------------------------
*.wav    filter=lfs diff=lfs merge=lfs -text
*.mp3    filter=lfs diff=lfs merge=lfs -text
*.ogg    filter=lfs diff=lfs merge=lfs -text
*.aif    filter=lfs diff=lfs merge=lfs -text
*.aiff   filter=lfs diff=lfs merge=lfs -text
*.flac   filter=lfs diff=lfs merge=lfs -text
*.mod    filter=lfs diff=lfs merge=lfs -text
*.it     filter=lfs diff=lfs merge=lfs -text
*.s3m    filter=lfs diff=lfs merge=lfs -text
*.xm     filter=lfs diff=lfs merge=lfs -text

# ---- Video ------------------------------------------------------------------
*.mp4    filter=lfs diff=lfs merge=lfs -text
*.mov    filter=lfs diff=lfs merge=lfs -text
*.avi    filter=lfs diff=lfs merge=lfs -text
*.webm   filter=lfs diff=lfs merge=lfs -text
*.mpg    filter=lfs diff=lfs merge=lfs -text
*.mpeg   filter=lfs diff=lfs merge=lfs -text
*.flv    filter=lfs diff=lfs merge=lfs -text
*.ogv    filter=lfs diff=lfs merge=lfs -text
*.wmv    filter=lfs diff=lfs merge=lfs -text

# ---- 3D models --------------------------------------------------------------
*.fbx    filter=lfs diff=lfs merge=lfs -text
*.obj    filter=lfs diff=lfs merge=lfs -text
*.blend  filter=lfs diff=lfs merge=lfs -text
*.dae    filter=lfs diff=lfs merge=lfs -text
*.3ds    filter=lfs diff=lfs merge=lfs -text
*.max    filter=lfs diff=lfs merge=lfs -text
*.c4d    filter=lfs diff=lfs merge=lfs -text
*.mb     filter=lfs diff=lfs merge=lfs -text
*.ma     filter=lfs diff=lfs merge=lfs -text
*.lwo    filter=lfs diff=lfs merge=lfs -text
*.lws    filter=lfs diff=lfs merge=lfs -text
*.abc    filter=lfs diff=lfs merge=lfs -text
*.ply    filter=lfs diff=lfs merge=lfs -text
*.stl    filter=lfs diff=lfs merge=lfs -text
*.glb    filter=lfs diff=lfs merge=lfs -text
*.gltf   filter=lfs diff=lfs merge=lfs -text

# ---- Fonts ------------------------------------------------------------------
*.ttf    filter=lfs diff=lfs merge=lfs -text
*.otf    filter=lfs diff=lfs merge=lfs -text

# ---- Native libraries / archives / binary bundles ---------------------------
*.dll    filter=lfs diff=lfs merge=lfs -text
*.so     filter=lfs diff=lfs merge=lfs -text
*.dylib  filter=lfs diff=lfs merge=lfs -text
*.a      filter=lfs diff=lfs merge=lfs -text
*.bundle filter=lfs diff=lfs merge=lfs -text
*.zip    filter=lfs diff=lfs merge=lfs -text
*.7z     filter=lfs diff=lfs merge=lfs -text
*.rar    filter=lfs diff=lfs merge=lfs -text
*.gz     filter=lfs diff=lfs merge=lfs -text
*.unitypackage filter=lfs diff=lfs merge=lfs -text
*.unity3d      filter=lfs diff=lfs merge=lfs -text
*.assetbundle  filter=lfs diff=lfs merge=lfs -text

# ---- Binary .asset exceptions (override the text rule above) ----------------
# Baked lighting / cubemaps are binary despite the .asset extension.
*.cubemap          filter=lfs diff=lfs merge=lfs -text
LightingData.asset filter=lfs diff=lfs merge=lfs -text
