mirror of
https://github.com/riperiperi/FreeSO
synced 2026-08-13 20:26:13 -04:00
* Server connection back Get the server connection working again that was lost by the Archive mode changes. Key changes: - Fix server connection bugs caused by the new Archive mode - Update Microsoft.Data.Sqlite.Core to 10.0.2 - Add allOpenable config flag for free roam lot transitions for normal servers. - Add city and lot server configuration options - Make UCP.InitArchive public for CoreGameScreenController - Archive UI improvements (join dialog with direct server IP join) * Keyboard navigation Add full keyboard and Tab navigation support to the UI framework. Key changes: - Tab/Shift+Tab navigation between focusable UI elements - Keyboard support for UIButton, UISlider, UIListBox, UICombobox - UIRadioButton arrow key navigation within groups - Mouse wheel scrolling for UIListBox - UIContextMenu keyboard navigation (arrow keys, Enter, Escape) - UIGridViewer keyboard support - Focus management via InputManager with IFocusableUI interface * FSO.Unix cross-platform support Add FSO.Unix project for native Linux and macOS support. Key changes: - New FSO.Unix project with cross-platform entry point - macOS .app bundle creation and deploy script for macOS/Linux - Native dialogs via osascript (macOS) and zenity (Linux) - ImageSharp-based bitmap/PNG handling instead of Windows drawing library for non-Windows platforms - GameLocator path fixes for TSO on macOS and Linux * Docker containers Add Docker configuration files for running a FreeSO server. Key changes: - Dockerfile and docker-compose.yml for server deployment - Entrypoint script with secret generation - OCI image labels for container metadata - Default server configuration template (config.json) * Spectator mode Allow non-roommate visitors to open and explore lots in a read-only spectator mode. Spectators can walk around and observe but cannot modify the lot (build, buy, delete objects, or use most interactions). Key features: - Basic spectator mode for non-roommate lot opening - Block VM commands, cross-room routing, and portal interactions for spectators - Block pie menu on lot objects with error feedback - Spectator-to-writable transition when a roommate/owner joins - Reload lot save and transition back when lot owner joins - Walls up with roof on spectator lot entry - Spectator label shown in UI - Admins excluded from spectator mode restrictions - Chat event when lot transitions from spectator mode - Allow spectators to use direct control - No spectator lots in Archive mode Also includes: cursor fixes for macOS/Linux, PriorityQueue pathfinder optimization, UIListBox focus fix, CurLoader BMP header fix, API config cleanup, and various other minor fixes. * Spector mode improvements
171 lines
No EOL
7.4 KiB
XML
171 lines
No EOL
7.4 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net9.0</TargetFramework>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<Nullable>disable</Nullable>
|
|
<OutputType>Library</OutputType>
|
|
<RootNamespace>FSO.Server.Database</RootNamespace>
|
|
<AssemblyName>FSO.Server.Database</AssemblyName>
|
|
<FileAlignment>512</FileAlignment>
|
|
<IsAotCompatible>True</IsAotCompatible>
|
|
<PublishAot>true</PublishAot>
|
|
<PublishTrimmed>true</PublishTrimmed>
|
|
<IsAotCompatible>true</IsAotCompatible>
|
|
<TrimMode>full</TrimMode>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
|
<IsAotCompatible>True</IsAotCompatible>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
|
<IsAotCompatible>True</IsAotCompatible>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="Dapper" Version="2.1.66" />
|
|
<PackageReference Include="MySql.Data" Version="9.4.0" />
|
|
<PackageReference Include="Ninject" Version="3.3.6" />
|
|
<PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
|
|
<PackageReference Include="Microsoft.Data.Sqlite" Version="10.0.2" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\FSO.Server.Common\FSO.Server.Common.csproj" />
|
|
<ProjectReference Include="..\tso.common\FSO.Common.csproj" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Content Include="DatabaseScripts\changes\0026_freevote.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0027_tuning_presets.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Content Include="DatabaseScripts\changes\0017_inbox_events.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0018_dyn_payout_tuning.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0020_email_confirm.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0019_skillmode.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0022_lastlogin.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0021_3dthumb.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0023_neighborhoods.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0024_bulletin.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0025_updates.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0028_upgradelevel.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0031_global_cooldowns.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0030_tokens.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0029_generic_participation.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\manifest.json">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</Content>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Content Include="DatabaseScripts\changes\0003_max_roomates.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0002_budget_cant_be_negative.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0001_3_max_avatars.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0004_bookmarks.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0005_lotadmit_primarykey.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0006_outfits.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0011_fso_bonus.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0010_fso_top100.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0009_fso_tasks.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0008_fso_hosts.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0007_fso_lot_visits.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0012_fso_bans.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0013_shard_version.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0014_client_id.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0015_avatar_lot_retire.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\changes\0016_extra_tasks.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\fso_transactions.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\fso_auth_tickets.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\fso_avatars.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\fso_db_changes.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\fso_lots.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\fso_objects.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\fso_shards.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="DatabaseScripts\fso_users.sql">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="dao.xml">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</Content>
|
|
</ItemGroup>
|
|
|
|
</Project> |