Files
rr3-server/RR3CommunityServer/obj/RR3CommunityServer.csproj.nuget.g.targets
Daniel Elliott bfd37dc7c2 Add Game Asset Preservation System Foundation
DATABASE SCHEMA:
+ GameAsset entity added to RR3DbContext
  - Asset identification (ID, type, filename)
  - EA CDN tracking (original URL, CDN path)
  - Local storage (path, size, SHA256)
  - Metadata (downloads, access count, timestamps)
  - Game-specific (carId, trackId, category)

FEATURES:
- Track all cached assets in database
- Store EA CDN URLs while available
- SHA256 integrity checking
- Access statistics
- Category organization
- Version tracking

PURPOSE:
Foundation for full asset caching system.
Next step: AssetsController with EA CDN proxying.

STORAGE STRUCTURE:
wwwroot/assets/
├── cars/
├── tracks/
├── textures/
├── audio/
├── models/
└── misc/

PRESERVATION STRATEGY:
Phase 1 (EA online): Proxy + cache assets
Phase 2 (EA offline): Serve from cache
Result: Complete game preservation! 🎮💾

Package added: Microsoft.Extensions.Http (for CDN proxying)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-17 22:50:04 -08:00

10 lines
1.7 KiB
XML

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets')" />
<Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net8.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net8.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\10.0.3\buildTransitive\net8.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\10.0.3\buildTransitive\net8.0\Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.binder\10.0.3\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.binder\10.0.3\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\10.0.3\buildTransitive\net8.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\10.0.3\buildTransitive\net8.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
</ImportGroup>
</Project>