# Lowpoly Asset Editor

Éditeur 3D low-poly côté navigateur pour créer des assets et des scènes destinés à un jeu de stratégie/gestion médiéval-fantastique.

L'éditeur fonctionne comme un outil de construction modulaire : primitives, assets, scènes, variantes de palettes, gizmos, pinceaux et générateurs.

## Démarrage local

Le projet utilise des modules JavaScript ES et doit être servi par un petit serveur local.

Exemple avec Visual Studio Code :

1. ouvrir le dossier du projet ;
2. lancer l'extension Live Server ;
3. ouvrir `index.html`.

Éviter l'ouverture directe en `file://`, car le navigateur peut bloquer les imports JavaScript ou le chargement des assets JSON.

## Publication sur Internet

Le projet est publiable en hébergement statique.

Fichiers/dossiers nécessaires :

- `index.html`
- `viewer.html`
- `favicon.png`
- `src/`
- `assets/`

Aucun backend n'est requis.

### Déploiement PlanetHoster

1. créer un sous-domaine, par exemple `editor.votre-domaine.fr` ;
2. créer ou repérer le dossier web associé au sous-domaine ;
3. envoyer le contenu du dossier projet dans ce dossier ;
4. vérifier que `index.html` s'ouvre correctement ;
5. tester aussi `viewer.html` ;
6. ouvrir la console navigateur et vérifier l'absence d'erreurs de chargement.

## Statut actuel

Le projet est actuellement en phase :

Bêta publique

L'éditeur est accessible en ligne pour les premiers testeurs.

Fonctionnalités récentes :

* gizmos W/E/R ;
* pinceau primitive ;
* pinceau asset ;
* générateurs interactifs ;
* guide HTML intégré ;
* système de retour utilisateur ;
* publication Internet.

## Raccourcis principaux

| Raccourci | Action |
|---|---|
| Q | Sélection |
| B | Pinceau primitive |
| A | Pinceau asset |
| G | Générateur interactif |
| W | Déplacer |
| E | Tourner |
| R | Redimensionner |
| F | Cadrer la vue |
| Ctrl/Cmd + A | Tout sélectionner |
| Q / E en placement | Rotation du fantôme |
| Shift + molette | Altitude du placement |

## Structure

- `src/editor.js` : logique principale de l'éditeur ;
- `src/assets.js` : bibliothèque, validation et import/export d'assets ;
- `src/shapes.js` : primitives géométriques ;
- `src/palettes.js` : palettes et rôles de matériaux ;
- `src/utils.js` : fonctions utilitaires ;
- `assets/index.json` : index des assets distribués ;
- `tools/` : scripts de maintenance.

## Documentation utile

- `GUIDE_TESTEUR.md` : protocole pour les testeurs ;
- `CONTRIBUTING.md` : règles de contribution ;
- `SECURITY.md` : notes de sécurité ;
- `CHANGELOG.md` : historique consolidé.

## Notes importantes

Les assets distribués sont chargés via `assets/index.json`. Si vous ajoutez un fichier JSON dans `assets/`, mettez également l'index à jour.
