# ============================================================
# Line endings
# ============================================================
* text=auto

# Force CRLF for Windows-only
*.bat   text eol=crlf
*.cmd   text eol=crlf
*.ps1   text eol=crlf
*.sln   text eol=crlf

# Force LF for cross-platform scripts
*.sh    text eol=lf

# Explicit text (auto catches them, but keeps diffs clean)
*.cpp        text
*.c          text
*.h          text
*.hpp        text
*.cs         text
*.ini        text
*.uproject   text
*.uplugin    text
*.json       text
*.xml        text
*.md         text
*.yaml       text
*.yml        text
*.svg        text
*.gltf       text

# ============================================================
# Git LFS - UE runtime binary assets (globalno)
# Extension je ovde jednoznacan: samo UE engine proizvodi ove fajlove.
# ============================================================
*.uasset   filter=lfs diff=lfs merge=lfs -text
*.umap     filter=lfs diff=lfs merge=lfs -text
*.uexp     filter=lfs diff=lfs merge=lfs -text
*.ubulk    filter=lfs diff=lfs merge=lfs -text
*.uptnl    filter=lfs diff=lfs merge=lfs -text
*.ucas     filter=lfs diff=lfs merge=lfs -text
*.utoc     filter=lfs diff=lfs merge=lfs -text
*.pak      filter=lfs diff=lfs merge=lfs -text
*.locres   filter=lfs diff=lfs merge=lfs -text

# ============================================================
# Fonts - globalno (uvek binarno, nema ambiguity sa docs slikama)
# ============================================================
*.ttf      filter=lfs diff=lfs merge=lfs -text
*.otf      filter=lfs diff=lfs merge=lfs -text

# ============================================================
# Media / DCC - folder-scoped
# SourceArt/** i RawContent/** su jasno "source asset" lokacije.
# Globalno pravilo po ekstenziji bi hvatalo i docs/screenshot.png,
# README_banner.jpg itd. - ovde to ne zelimo.
#
# Ako tvoj workflow drzi raw source fajlove pored .uasset fajlova
# u Content/, raskomentarisi Content/** blok na dnu.
# ============================================================

# ----- Images / Textures -----
SourceArt/**/*.png      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.jpg      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.jpeg     filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.gif      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.bmp      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.tga      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.tif      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.tiff     filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.exr      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.hdr      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.psd      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.psb      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.ai       filter=lfs diff=lfs merge=lfs -text

RawContent/**/*.png     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.jpg     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.jpeg    filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.gif     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.bmp     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.tga     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.tif     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.tiff    filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.exr     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.hdr     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.psd     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.psb     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.ai      filter=lfs diff=lfs merge=lfs -text

# ----- 3D / Meshes -----
SourceArt/**/*.fbx      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.obj      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.3ds      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.max      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.blend    filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.dae      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.abc      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.usd      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.usda     filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.usdc     filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.usdz     filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.stl      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.ply      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.glb      filter=lfs diff=lfs merge=lfs -text

RawContent/**/*.fbx     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.obj     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.3ds     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.max     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.blend   filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.dae     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.abc     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.usd     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.usda    filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.usdc    filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.usdz    filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.stl     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.ply     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.glb     filter=lfs diff=lfs merge=lfs -text

# ----- Audio -----
SourceArt/**/*.wav      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.mp3      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.ogg      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.flac     filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.aif      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.aiff     filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.m4a      filter=lfs diff=lfs merge=lfs -text

RawContent/**/*.wav     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.mp3     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.ogg     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.flac    filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.aif     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.aiff    filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.m4a     filter=lfs diff=lfs merge=lfs -text

# ----- Video -----
SourceArt/**/*.mp4      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.mov      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.avi      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.mkv      filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.webm     filter=lfs diff=lfs merge=lfs -text
SourceArt/**/*.wmv      filter=lfs diff=lfs merge=lfs -text

RawContent/**/*.mp4     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.mov     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.avi     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.mkv     filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.webm    filter=lfs diff=lfs merge=lfs -text
RawContent/**/*.wmv     filter=lfs diff=lfs merge=lfs -text

# ============================================================
# Icons - zadrzano globalno (uvek mali binarni fajlovi)
# ============================================================
*.ico      filter=lfs diff=lfs merge=lfs -text
*.icns     filter=lfs diff=lfs merge=lfs -text

# ============================================================
# NAPOMENE - sta NIJE u LFS-u i zasto
# ============================================================
# - *.pdf, *.zip, *.rar, *.7z, *.woff, *.woff2
#   => nisu UE-specificni; ako ti zatrebaju, dodaj folder-scope pravilo
#      tamo gde zaista zive, ne globalno.
# - *.svg, *.gltf
#   => to su tekst formati (XML / JSON), ostaju kao text u Git-u.
#      Za binarni 3D format koristi *.glb (vec je u LFS-u gore).
# - "lockable" atribut nije postavljen jer je to workflow policy,
#   ne univerzalni default. Ako tvoj tim koristi LFS locking, dodaj npr.:
#   *.uasset  filter=lfs diff=lfs merge=lfs -text lockable
#   *.umap    filter=lfs diff=lfs merge=lfs -text lockable

# ============================================================
# Opt-in: Content/** source workflow
# Raskomentarisi ako tvoj projekat drzi raw PNG/WAV/FBX/PSD pored
# importovanih .uasset fajlova u Content/. Ovo je svestan izbor
# workflow-a (neki timovi to rade, neki ne).
# ============================================================
# Content/**/*.png      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.jpg      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.jpeg     filter=lfs diff=lfs merge=lfs -text
# Content/**/*.tga      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.tif      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.tiff     filter=lfs diff=lfs merge=lfs -text
# Content/**/*.exr      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.hdr      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.psd      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.psb      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.wav      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.mp3      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.ogg      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.flac     filter=lfs diff=lfs merge=lfs -text
# Content/**/*.fbx      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.obj      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.blend    filter=lfs diff=lfs merge=lfs -text
# Content/**/*.abc      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.usd      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.glb      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.mp4      filter=lfs diff=lfs merge=lfs -text
# Content/**/*.mov      filter=lfs diff=lfs merge=lfs -text
