Code Monkey home page Code Monkey logo

nitro-imager's Introduction

Nitro Imager

This tool serves as a server-side habbo-imager using the same avatar generator from nitro-renderer. It will download & cache in memory .nitro assets. Rendered figures will also save to a local folder to prevent re-renders. You will use the same process as your nitro-client to update assets for the imager.

Configuration

First you should rename .env.new to .env then set your configuration. Additional options can be found in config.json

Your figuredata, figuremap, effectmap, & HabboAvatarActions can safely point to a remote URL without worrying about performance.

You should set all download urls to local absolute paths on your system, this will allow for faster downloading of figures. However, you may point to remote urls as well.

You must also set an absolute path to a location where rendered figures can save to. This can be a private folder that is not accessible from the web.

Running the server

Make sure you run npm i before first use.

You must compile the server by running npm run build

To start the server you must run npm start

The server will run on the desired host & port as set in the config. You must setup a reverse proxy on your server to make the imager publicly accessible.

NGINX Example

server {
	listen 80;
	listen [::]:80;

	listen 443;
	listen [::]:443;

	server_name habbo-imaging.website.com;

	location / {
		proxy_pass              http://localhost:1338;
		proxy_set_header        Host $host;
		proxy_set_header        X-Real-IP $remote_addr;
		proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
	}
}

URL paramaters

Their are a few different options you may pass as URL parameters to generate figures with different actions. All parameters are optional.

key default description
figure null The figure string to be rendered
action null The actions to render, see actions below
gesture std The gesture to render, see gestures below
direction 2 The direction to render, from 0-7
head_direction 2 The head direction to render, from 0-7
headonly 0 A value of 0 or 1
dance 0 A dance id of 0-4 to render
effect 0 An effect id to render
size n The size to render, see sizes below
frame_num 0 The frame number to render
img_format png A value of png or gif. Gif will render all frames of the figure

Actions

You may render multiple actions with a comma separater

Example: &action=wlk,wav,drk=1

Posture
key description
std Renders the standing posture
wlk,mv Renders the walking posture
sit Renders the sitting posture
lay Renders the laying posture
Expression
key description
wav,wave Renders the waving expression
blow Renders the kissing expression
laugh Renders the laughing expression
respect Renders the respect expression
Carry / Drink

To hold a certain drink, use an equal separator with the hand item id. You can only render one of these options at a time

key description
crr,cri Renders the carry action
drk,usei Renders the drink action

Gestures

key description
std Renders the standard gesture
agr Renders the aggravated gesture
sad Renders the sad gesture
sml Renders the smile gesture
srp Renders the surprised gesture

Sizes

key description
s Renders the small size (0.5)
n Renders the normal size (1)
l Renders the large size (2)

Known Issues

  • GIFs are only able to render 1 bit alpha channels, therefore most effects will not correctly render due to using many different alpha values.
  • The rendered canvas size may not match habbos imager exactly, we will hopefully have this addressed soon.

nitro-imager's People

Contributors

billsonnn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.