Carte des classes¶
Cette page recense toutes les classes publiques de RitnLib, avec pour chacune : son fichier source, son mode d'accès, son héritage et une description courte. Pour comprendre comment ces classes s'empilent, voir Architecture en 4 couches.
Comment accéder à une classe¶
Deux modes d'accès selon la famille :
| Famille | Mode d'accès | Exemple |
|---|---|---|
Classes runtime (RitnLib*) |
Globales — injectées en _G par core/setup-classes.lua, aucun require |
local rPlayer = RitnLibPlayer(player) |
Classes data / settings (RitnProto*, RitnIngredient, RitnLibSetting) |
require via le registre ritnlib.defines |
local Recipe = require(ritnlib.defines.class.prototype.recipe) |
-- en tête de fichier data stage :
require("__RitnLib__.defines") -- crée le global ritnlib (idempotent)
local Recipe = require(ritnlib.defines.class.prototype.recipe)
⚠ Les classes runtime produisent des wrappers temporaires : jamais dans storage. Voir la règle d'or.
Arbre d'héritage¶
RitnPrototype ──► tous les RitnProto* (sauf RitnProtoRecipeCategory, sans héritage)
RitnLibPlayer ──► RitnLibGui ──► RitnLibInformatron
Toutes les classes sont construites par la factory maison ritnlib.classFactory (core/class.lua).
Classes runtime (control stage) — globales¶
| Classe | Fichier | Wrappe | Description |
|---|---|---|---|
RitnLibEvent |
classes/LuaClass/RitnEvent.lua |
n'importe quel event | Normalise le payload d'un event en champs prêts à l'emploi (player, surface, force, entity, recipe…). |
RitnLibPlayer |
classes/LuaClass/RitnPlayer.lua |
LuaPlayer |
Accès rapide aux infos joueur : force, surface, character, conduite, statut admin. |
RitnLibSurface |
classes/LuaClass/RitnSurface.lua |
LuaSurface |
Recherche d'entités sur une surface. |
RitnLibForce |
classes/LuaClass/RitnForce.lua |
LuaForce |
Recettes, technologies, statistiques et lancements de rockets d'une force. |
RitnLibEntity |
classes/LuaClass/RitnEntity.lua |
LuaEntity |
Manipulation d'entité : conducteur/passager de véhicule, destruction. |
RitnLibRecipe |
classes/LuaClass/RitnRecipe.lua |
LuaRecipe |
Activation/désactivation d'une recette au runtime. |
RitnLibTechnology |
classes/LuaClass/RitnTechnology.lua |
LuaTechnology |
Hook de fin de recherche d'une technologie. |
RitnLibGui |
classes/LuaClass/RitnGui.lua |
event GUI | Dispatcher d'events GUI par convention de nommage des éléments. Hérite de RitnLibPlayer. |
RitnLibInformatron |
classes/RitnClass/RitnInformatron.lua |
event Informatron | Intégration de pages Informatron. Hérite de RitnLibGui. Marquée -- beta dans defines.lua. |
RitnLibInventory |
classes/RitnClass/RitnInventory.lua |
LuaPlayer + table fournie |
Snapshot et restauration d'inventaire joueur (le mod consommateur fournit la table de stockage). |
RitnLibGuiElement |
classes/RitnClass/gui/RitnGuiElement.lua |
payload add{...} |
Builder fluent du payload de création d'un LuaGuiElement. |
RitnLibStyle |
classes/RitnClass/gui/RitnStyle.lua |
LuaStyle |
Presets de style : étirement, alignement, visibilité, couleurs. |
Ces classes existent aussi en require (clés ritnlib.defines.class.luaClass.*, ritnClass.*, gui.*), mais c'est le chargement interne — en pratique tu utilises les globales.
Classes data (data stage) — via require¶
Clé defines = à préfixer par ritnlib.defines.class. dans le require.
| Classe | Clé defines |
Manipule | Description |
|---|---|---|---|
RitnPrototype |
ritnClass.prototype |
data.raw[type][name] |
Classe de base de tous les manipulateurs : copie du prototype + mutators génériques (:changePrototype, :setPrototype, :update…). |
RitnProtoEntity |
prototype.entity |
data.raw[<entity-type>] |
Entités, type auto-détecté. |
RitnProtoItem |
prototype.item |
data.raw[<item-type>] |
Items, type auto-détecté. |
RitnProtoRecipe |
prototype.recipe |
data.raw.recipe |
Recettes : ingrédients, résultats, activation. |
RitnProtoTech |
prototype.tech (alias technology) |
data.raw.technology |
Technologies : coûts, packs de science, pré-requis, unlocks de recettes, disable en cascade. |
RitnProtoOre |
prototype.ore |
data.raw.resource + autoplace |
Minerais et leur contrôle d'autoplacement. |
RitnProtoSprite |
prototype.sprite |
data.raw.sprite + utility-sprites |
Sprites. |
RitnProtoStyle |
prototype.style |
data.raw["gui-style"].default |
Styles GUI prototypés. |
RitnProtoItemGroup |
prototype.group |
data.raw["item-group"] |
Groupes d'items (onglets de crafting). |
RitnProtoItemSubgroup |
prototype.subgroup |
data.raw["item-subgroup"] |
Sous-groupes d'items (lignes de crafting). |
RitnProtoRecipeCategory |
prototype.category |
data.raw["recipe-category"] |
Catégories de recettes. ⚠ Déclarée sans héritage de RitnPrototype : les mutators génériques ne sont pas disponibles. |
RitnProtoFuelCategory |
prototype.fuelCategory |
data.raw["fuel-category"] |
Catégories de carburant. |
RitnProtoCustomInput |
prototype.customInput |
data.raw["custom-input"] |
Raccourcis clavier custom. |
RitnProtoUtilityConst |
prototype.utility.constants |
data.raw["utility-constants"].default |
Constantes d'interface du moteur. |
RitnIngredient |
ritnClass.ingredient |
table ingrédient | Normalisation d'un ingrédient de recette. |
Note : le nom de classe réel est
RitnProtoTech(et nonRitnProtoTechnology) — c'est lui qui apparaît dansobject_nameet dans les annotations LuaLS.
Settings stage — via require¶
| Classe | Clé defines |
Description |
|---|---|---|
RitnLibSetting |
ritnClass.setting |
Builder fluent d'un prototype de mod-setting, enregistré via data:extend. ⚠ En l'état, seuls les settings bool fonctionnent (voir bugs connus). |
Bibliothèques utilitaires (lualib/) — via require¶
Pas des classes, mais des modules de fonctions. Clés directes dans ritnlib.defines :
| Module | Clé defines |
Description |
|---|---|---|
other-functions |
other |
type() custom (reconnaît LuaPlayer, LuaEntity…), ifElse, tryCatch, uuid, helpers freeplay. |
table-functions |
table |
Wrappers enrichis sur table. |
string-functions |
string |
Wrappers enrichis sur string. |
json-functions |
json |
Encode/décode JSON — embarque rxi/json.lua (MIT). |
entity-functions |
(require direct) | Helpers de prototypes d'entités. |
gui-functions |
(require direct) | Helpers de prototypes GUI. |
LuaStyle-functions |
(require direct) | ⚠ Déprécié — remplacé par RitnLibStyle. |
Couche fondation (core/)¶
| Fichier | Description |
|---|---|
core/class.lua |
La factory ritnlib.classFactory.newclass(super, init) qui construit toutes les classes ci-dessus. Voir ADR-0001. |
core/constants.lua |
Tints de science packs, couleurs UI, marqueurs de chaînes, tailles d'ennemis. |
core/eventListener.lua |
⚠ Fork de event_handler au statut expérimental — non branché par control.lua. |
core/interfaces.lua |
remote.add_interface("RitnLib", {}) — interface vide aujourd'hui, réservée. |