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
50 lines
1.2 KiB
Bash
Executable file
50 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
OS="$(uname -s)"
|
|
|
|
if [ "$OS" = "Darwin" ]; then
|
|
RID="osx-arm64"
|
|
elif [ "$OS" = "Linux" ]; then
|
|
RID="linux-x64"
|
|
else
|
|
echo "Unsupported platform: $OS" && exit 1
|
|
fi
|
|
|
|
PUBLISH_DIR="$SCRIPT_DIR/bin/Release/net9.0/$RID/publish"
|
|
|
|
echo "Building FSO.Unix for $OS..."
|
|
dotnet publish -c Release -r "$RID" --self-contained true -p:PublishSingleFile=true
|
|
|
|
if [ "$OS" = "Darwin" ]; then
|
|
rm -rf /Applications/FreeSO.app
|
|
cp -R "$PUBLISH_DIR/FreeSO.app" /Applications/
|
|
open /Applications/FreeSO.app
|
|
else
|
|
INSTALL_DIR="$HOME/.local/share/FreeSO"
|
|
mkdir -p "$INSTALL_DIR"
|
|
rm -rf "$INSTALL_DIR"/*
|
|
cp -R "$PUBLISH_DIR"/* "$INSTALL_DIR/"
|
|
chmod +x "$INSTALL_DIR/FreeSO"
|
|
|
|
mkdir -p "$HOME/.local/share/icons"
|
|
cp "$SCRIPT_DIR/fso.png" "$HOME/.local/share/icons/freeso.png"
|
|
|
|
cat > "$HOME/.local/share/applications/FreeSO.desktop" << EOF
|
|
[Desktop Entry]
|
|
Name=FreeSO
|
|
Comment=Free re-implementation of The Sims Online
|
|
Exec=$INSTALL_DIR/FreeSO
|
|
Icon=$HOME/.local/share/icons/freeso.png
|
|
Terminal=false
|
|
Type=Application
|
|
Categories=Game;
|
|
EOF
|
|
|
|
"$INSTALL_DIR/FreeSO" &
|
|
fi
|
|
|
|
echo "Done."
|