- Java 100%
|
All checks were successful
Verify Build / verify (push) Successful in 2m26s
Co-authored-by: CI <ci@16reiche.de> Co-committed-by: CI <ci@16reiche.de> |
||
|---|---|---|
| .forgejo | ||
| mythforge-appearance | ||
| mythforge-core | ||
| mythforge-heraldry | ||
| mythforge-names | ||
| .gitignore | ||
| LICENSE | ||
| lombok.config | ||
| nb-configuration.xml | ||
| nbactions.xml | ||
| pom.xml | ||
| README.md | ||
| renovate.json | ||
MythForge
MythForge bietet generische Werkzeuge zur Erzeugung von Welt‑ und Spiel‑Assets (Namen, Heraldik, Erscheinungsbilder) — nützlich für RPGs, Aufbauspiele oder Prototyping.
Voraussetzungen & Build
- Java 21
- Maven 3.8+
Aus dem Projekt‑Root:
mvn package
Nur Tests:
mvn test
Module
mythforge-core— gemeinsame Hilfsfunktionen und Utilitiesmythforge-names— Namensgeneratorenmythforge-appearance— Erscheinungsbild / Charakter‑Renderingmythforge-heraldry— Flaggen / Wappen Erzeugung & Renderer
Die folgenden Abschnitte sind modulbezogen: kurze Beschreibung, typische API‑Aufrufe und ein minimal nutzbares Beispiel.
mythforge-heraldry
- Zweck: Erzeugung von Wappen/Flaggen als PNG oder Base64‑String.
- Registry:
de.mythforge.heraldry.HeraldryRegistry(registerDefaults()setzt Divisions, Ordinaries, Charges, Output‑Modes und Farben). See:mythforge-heraldry/src/main/java/de/mythforge/heraldry/HeraldryRegistry.java.
Essentiell:
de.mythforge.heraldry.HeraldryGenerator.generate(String|long)— erzeugtDesign.renderBytes(Design, OutputMode.class, width)— gibt PNG Bytes zurück.renderBase64(...)— Base64 kodiertes PNG.
Minimalbeispiel:
import de.mythforge.heraldry.HeraldryGenerator;
import de.mythforge.heraldry.HeraldryRegistry;
import de.mythforge.heraldry.feature.mode.Flag;
import java.nio.file.Files;
import java.nio.file.Path;
HeraldryRegistry registry = new HeraldryRegistry();
registry.registerDefaults();
HeraldryGenerator gen = new HeraldryGenerator(registry);
var design = gen.generate("seed-123");
Files.write(Path.of("flag.png"), gen.renderBytes(design, Flag.class, 512));
Kurz: Wenn du andere Output‑Modes (z. B. Shield) oder Farben nutzen willst, erweitere die Registry oder erstelle eigenes OutputMode/RenderFeature.
mythforge-appearance
- Zweck: Erzeugung kleiner Charakter‑Sprites (48×48) aus modularen Render‑Features (Head, Hair, Eyes, Body, Beard, Tool, Accessory).
- Registry:
de.mythforge.appearance.AppearanceRegistry(registerDefaults()registriert die implementierten Features). See:mythforge-appearance/src/main/java/de/mythforge/appearance/AppearanceRegistry.java.
Essentiell:
de.mythforge.appearance.AppearanceGenerator.generate(AppearanceRules, Gender)— erzeugtAppearance.renderBytes(Appearance)/renderBase64(Appearance)— rendert PNG Bytes / Base64.
Minimalbeispiel:
import de.mythforge.appearance.AppearanceGenerator;
import de.mythforge.appearance.AppearanceRegistry;
import de.mythforge.appearance.model.AppearanceRules;
import de.mythforge.common.Gender;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Set;
AppearanceRegistry registry = new AppearanceRegistry();
registry.registerDefaults();
AppearanceGenerator gen = new AppearanceGenerator(registry);
var rules = AppearanceRules.builder()
.skinTones(Set.of("#F5CBA7", "#8D5524"))
.hairColors(Set.of("#000000", "#A0522D"))
.eyeColors(Set.of("#0000FF", "#00FF00"))
.blockedFeatures(Set.of())
.build();
var appearance = gen.generate(rules, Gender.MALE);
Files.write(Path.of("appearance.png"), gen.renderBytes(appearance));
Tipp: Passe AppearanceRules an, um Farbpools oder blockierte Features für bestimmte Rassen/Gruppen zu definieren (mythforge-appearance/src/main/java/de/mythforge/appearance/model/AppearanceRules.java).
mythforge-names
- Zweck: Namensgeneratoren (wenn vorhanden). Falls du dieses Modul nutzen willst, schau in
mythforge-namesfür API‑Details.
mythforge-core
- Zweck: Gemeinsame Utilities (Random, Color utils u.ä.). Andere Module bauen darauf auf (
mythforge-core/src/main/java/de/mythforge).
License
Siehe LICENSE im Projekt‑Root.