diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..4ccca42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,201 @@ +# ============================================================ +# 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