From bd4a484d9c8c0c72148c463f0ec625d87d83438e Mon Sep 17 00:00:00 2001 From: Quackster Date: Sat, 14 Jan 2023 15:54:01 +1000 Subject: [PATCH] Update github workflow and readme --- .github/workflows/pre-release.yml | 36 ++++++++-- README.md | 109 +++++++++++++++++++++++------- 2 files changed, 115 insertions(+), 30 deletions(-) diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index a851983..bbb41de 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -31,19 +31,47 @@ jobs: - name: Build Linux 64-bit run: dotnet publish -c Release -r linux-x64 --output linux-x64 Minerva.sln --self-contained false + - name: Unzip figuredata file + uses: montudor/action-zip@v1 + with: + args: unzip -qq ./tools/figuredata-shockwave.zip -d linux-x64 + + - name: Unzip badges file + uses: montudor/action-zip@v1 + with: + args: unzip -qq ./tools/badges.zip -d linux-x64 + + - name: File release preparation + run: | + sudo cp tools/badge_resource.json linux-x64 + - name: Compress release files uses: montudor/action-zip@v1 with: - args: zip -qq -r ./Minerva-${{ steps.sha-short.outputs.sha-short }}-linux-x64.zip linux-x64 + args: zip -qq -r ./Minerva-linux-x64.zip linux-x64 # Publish Windows 64-bit executable - name: Build Windows 64-bit run: dotnet publish -c Release -r win-x64 --output win-x64 Minerva.sln --self-contained false + - name: Unzip figuredata file + uses: montudor/action-zip@v1 + with: + args: unzip -qq ./tools/figuredata-shockwave.zip -d win-x64 + + - name: Unzip badges file + uses: montudor/action-zip@v1 + with: + args: unzip -qq ./tools/badges.zip -d win-x64 + + - name: File release preparation + run: | + sudo cp tools/badge_resource.json win-x64 + - name: Compress release files uses: montudor/action-zip@v1 with: - args: zip -qq -r ./Minerva-${{ steps.sha-short.outputs.sha-short }}-win-x64.zip win-x64 + args: zip -qq -r ./Minerva-win-x64.zip win-x64 # Create latest tag - uses: "marvinpinto/action-automatic-releases@latest" @@ -53,5 +81,5 @@ jobs: prerelease: true title: "Development Build ${{ steps.sha-short.outputs.sha-short }}" files: | - Minerva-${{ steps.sha-short.outputs.sha-short }}-linux-x64.zip - Minerva-${{ steps.sha-short.outputs.sha-short }}-win-x64.zip \ No newline at end of file + Minerva-linux-x64.zip + Minerva-win-x64.zip \ No newline at end of file diff --git a/README.md b/README.md index 65bd711..7a5b7f6 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,97 @@ # Minerva - Imager for Habbo Hotel releases Shockwave and Flash. It uses the two projects (Badger, and Avatara) as libraries combined into one, to make the web server. -# Installing +Imager for Habbo Hotel releases Shockwave and Flash. It uses the two projects (Badger, and Avatara) as libraries combined into one, to make the web server. -Locate the .zip files in /tools/ +It supports rendering both figures/avatars and group badges. -Extract in same directory as what the project is running on. - -Extract *figuredata-shockwave.zip* if you plan to use 2012-2007 era clothing. - -Extract *figuredata-2013.zip* if you plan to use 2013 era clothing. - -You can add your own SWFs by simply replacing the SWFS in /figuredata/compiled/ and also replace the figuredata.xml. - -If the **xml** and **images** folder doesn't exist, Avatara will automatically create the folders and extract the SWFs on first run, so that each subsequent run is quicker. - -Run the project. - -(On Linux for example) - -``./Minerva --urls=http://*:8090/`` - -(On Windows for example) - -``Minerva.exe --urls=http://*:8090/`` - - -The endpoints will be available: +When used, the following endpoints will be available: ``/habbo-imaging/avatarimage`` ``/habbo-imaging/badge/{badge-code}.gif`` +(This is for the client **only** due to the way Shockwave handles transparency) + ``/habbo-imaging/badge-fill/{badge-code}.gif`` -## How do I use it for my site? +# Installing + +The latest builds for Linux and Windows are found on the [latest](https://github.com/Quackster/Minerva/releases/tag/latest) tag. + +| OS | Download | +|---|---| +| Linux (64-bit) | [Minerva-linux-x64.zip](https://github.com/Quackster/Minerva/releases/download/latest/Minerva-linux-x64.zip) | +| Windows (64-bit) | [Minerva-windows-x64.zip](https://github.com/Quackster/Minerva/releases/download/latest/Minerva-windows-x64.zip) | + +Once downloaded, you may execute ``./Minerva`` (Linux) or ``Minerva.exe`` (Windows). + +As soon as it starts, it will extract all the SWFS in /figuredata/ and build the XML and image files, all this will be located in /xml/ and /images/ inside /figuredata/. + +Once that's done, you should see the following console output. + +``` +Loading flash assets... +9762 flash assets loaded +Loading figure data... +301 figure sets loaded +11 figure set types loaded +3 figure palettes loaded +info: Microsoft.Hosting.Lifetime[14] + Now listening on: http://localhost:5000 +info: Microsoft.Hosting.Lifetime[14] + Now listening on: https://localhost:5001 +info: Microsoft.Hosting.Lifetime[0] + Application started. Press Ctrl+C to shut down. +info: Microsoft.Hosting.Lifetime[0] + Hosting environment: Production +info: Microsoft.Hosting.Lifetime[0] + Content root path... +``` + +The the following path should give the expected output: + +``` +http://localhost:5000/habbo-imaging/avatarimage?figure=hd-180-1.hr-100-61.ch-210-66.lg-270-82.sh-290-80&size=b&direction=4&head_direction=4&crr=0&gesture=sml&frame=1 +``` + +![image](https://user-images.githubusercontent.com/1328523/212457834-67011df8-db85-41da-ad71-129bd1fadd33.png) + +By default the port it listens on will be 5000 but this can be changed to 8080 (or any other port for your liking) with the command line arguments ``--urls=http://*:8080/`` + +### Group badges in-client setup + +Minerva has a special path to use for the Shockwave client, ensure that "badge-fill" is being used. + +In external_texts.txt (yes, the client reads from this file...) + +Make sure the line is (with port 5000 being changed to what you are using): + +``` +group_logo_url_template=http://localhost:5000/habbo-imaging/badge-fill/%imagerdata%.gif +``` + +**Note:** if you are using Havana with the latest version (at minimum, released 14th Janurary 2023), then set as line below: + +``` +group_logo_url_template=http://localhost/habbo-imaging/badge-fill/%imagerdata%.gif +``` + +Group badges should now work in-game. + +![image](https://user-images.githubusercontent.com/1328523/212458081-6f3d390b-48de-4401-bb56-8beab3250269.png) + + +## Adding custom clothes + +1. Adding more clothes is easy, ensure /xml/ and /images/ are either empty or don't exist in /figuredata/ + +2. Put the SWFs that have these clothes inside /figuredata/compiled/ + +3. Update figuredata.xml with the one that has the new clothes inside of it + +Run Minerva and it should be supported. + +## How do I use it for my site written in a different language? You can proxy it.