diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..73d1437 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,59 @@ +name: Build Simitone + +on: + workflow_dispatch: + inputs: + configuration: + description: 'Build configuration' + required: false + default: 'Release' + type: choice + options: + - Release + - Debug + +jobs: + build: + runs-on: windows-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Setup .NET 9 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '9.0.x' + + - name: Run Protobuild + shell: pwsh + run: | + cd FreeSO/Other/libs/FSOMonoGame/ + ./protobuild.exe --generate + continue-on-error: true + + - name: Restore Simitone dependencies + run: dotnet restore Client/Simitone/Simitone.sln + + - name: Restore FreeSO dependencies + run: dotnet restore FreeSO/TSOClient/FreeSO.sln + continue-on-error: true + + - name: Restore Roslyn dependencies + shell: pwsh + run: | + cd FreeSO/TSOClient/FSO.SimAntics.JIT.Roslyn/ + dotnet restore + continue-on-error: true + + - name: Build + run: dotnet build Client/Simitone/Simitone.sln -c ${{ inputs.configuration || 'Release' }} --no-restore + + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: SimitoneWindows-${{ inputs.configuration || 'Release' }} + path: Client/Simitone/Simitone.Windows/bin/${{ inputs.configuration || 'Release' }}/net9.0-windows/ + if-no-files-found: error diff --git a/Client/Simitone/Simitone.Client/UI/Panels/CAS/UIFamilyCASPanel.cs b/Client/Simitone/Simitone.Client/UI/Panels/CAS/UIFamilyCASPanel.cs index 6547ef9..ee6dbaa 100644 --- a/Client/Simitone/Simitone.Client/UI/Panels/CAS/UIFamilyCASPanel.cs +++ b/Client/Simitone/Simitone.Client/UI/Panels/CAS/UIFamilyCASPanel.cs @@ -22,6 +22,7 @@ public class UIFamilyCASPanel : UIContainer public UIDiagonalStripe NameStripe; public UIDiagonalStripe ListStripe; + public UILabel SecondNameTitle; public UITextBox SecondName; public UIAvatarListPanel AvatarList; public UICategorySwitcher AvatarOptions; @@ -40,11 +41,13 @@ public float ShowI if (value < 1 && AvatarOptions.CategoryExpand == 1) AvatarOptions.Close(); ListStripe.Visible = value > 0; NameStripe.Visible = value > 0; + SecondNameTitle.Visible = value > 0; NameStripe.X = (1 - value) * UIScreen.Current.ScreenWidth; NameStripe.Y = 30; NameStripe.BodySize = new Point((int)(value * UIScreen.Current.ScreenWidth), NameStripe.BodySize.Y); ListStripe.BodySize = new Point((int)(value * UIScreen.Current.ScreenWidth), ListStripe.BodySize.Y); AvatarList.X = (1-value) * (-UIScreen.Current.ScreenWidth); + SecondNameTitle.X = (1 - value) * (UIScreen.Current.ScreenWidth); SecondName.X = (1 - value) * (UIScreen.Current.ScreenWidth); _ShowI = value; } @@ -74,6 +77,16 @@ public UIFamilyCASPanel(List avatar) NameStripe.Position = new Vector2(UIScreen.Current.ScreenWidth, 30); Add(NameStripe); + SecondNameTitle = new UILabel(); + SecondNameTitle.Caption = "Last Name"; + SecondNameTitle.CaptionStyle = SecondNameTitle.CaptionStyle.Clone(); + SecondNameTitle.CaptionStyle.Color = UIStyle.Current.SecondaryText; + SecondNameTitle.CaptionStyle.Size = 15; + SecondNameTitle.Size = new Vector2(UIScreen.Current.ScreenWidth, 25); + SecondNameTitle.Alignment = TextAlignment.Center | TextAlignment.Middle; + SecondNameTitle.Position = new Vector2(0, 15); + Add(SecondNameTitle); + SecondName = new UITextBox(); SecondName.TextMargin = new Rectangle(); SecondName.SetSize(UIScreen.Current.ScreenWidth, 60);