1
Fork 0
mirror of https://github.com/Quackster/Minerva.git synced 2025-06-29 21:07:45 +00:00

Update github workflow and readme

This commit is contained in:
Quackster 2023-01-14 15:54:01 +10:00
parent f4b0f2f856
commit bd4a484d9c
2 changed files with 115 additions and 30 deletions

View file

@ -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
Minerva-linux-x64.zip
Minerva-win-x64.zip

109
README.md
View file

@ -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
It supports rendering both figures/avatars and group badges.
Locate the .zip files in /tools/
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.