Generische Werkzeuge für Welten, RPGs, Aufbauspiele.
Find a file
CI bbd9232e0e
All checks were successful
Verify Build / verify (push) Successful in 2m26s
Update all non-major dependencies to v3.1.2 (#19)
Co-authored-by: CI <ci@16reiche.de>
Co-committed-by: CI <ci@16reiche.de>
2026-04-17 04:11:59 +02:00
.forgejo Cleanup for OSS release 2026-03-30 11:52:55 +02:00
mythforge-appearance Update version number 2026-03-30 11:53:38 +02:00
mythforge-core Update version number 2026-03-30 11:53:38 +02:00
mythforge-heraldry Update version number 2026-03-30 11:53:38 +02:00
mythforge-names Update version number 2026-03-30 11:53:38 +02:00
.gitignore Update README 2026-03-30 12:28:09 +02:00
LICENSE Cleanup for OSS release 2026-03-30 11:52:55 +02:00
lombok.config Use Jacksonized annotation 2026-03-14 11:38:55 +01:00
nb-configuration.xml Migrate character creator 2025-09-04 17:48:48 +02:00
nbactions.xml Implement simple heraldry 2025-09-04 21:19:14 +02:00
pom.xml Update all non-major dependencies to v3.1.2 (#19) 2026-04-17 04:11:59 +02:00
README.md README.md aktualisiert 2026-03-30 12:32:25 +02:00
renovate.json Configure Renovate (#1) 2025-09-04 13:05:15 +02:00

MythForge

MythForge bietet generische Werkzeuge zur Erzeugung von Welt und SpielAssets (Namen, Heraldik, Erscheinungsbilder) — nützlich für RPGs, Aufbauspiele oder Prototyping.

Voraussetzungen & Build

  • Java 21
  • Maven 3.8+

Aus dem ProjektRoot:

mvn package

Nur Tests:

mvn test

Module

  • mythforge-core — gemeinsame Hilfsfunktionen und Utilities
  • mythforge-names — Namensgeneratoren
  • mythforge-appearance — Erscheinungsbild / CharakterRendering
  • mythforge-heraldry — Flaggen / Wappen Erzeugung & Renderer

Die folgenden Abschnitte sind modulbezogen: kurze Beschreibung, typische APIAufrufe und ein minimal nutzbares Beispiel.


mythforge-heraldry

  • Zweck: Erzeugung von Wappen/Flaggen als PNG oder Base64String.
  • Registry: de.mythforge.heraldry.HeraldryRegistry (registerDefaults() setzt Divisions, Ordinaries, Charges, OutputModes und Farben). See: mythforge-heraldry/src/main/java/de/mythforge/heraldry/HeraldryRegistry.java.

Essentiell:

  • de.mythforge.heraldry.HeraldryGenerator.generate(String|long) — erzeugt Design.
  • 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 OutputModes (z. B. Shield) oder Farben nutzen willst, erweitere die Registry oder erstelle eigenes OutputMode/RenderFeature.


mythforge-appearance

  • Zweck: Erzeugung kleiner CharakterSprites (48×48) aus modularen RenderFeatures (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) — erzeugt Appearance.
  • 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-names für APIDetails.

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 ProjektRoot.