RitnLibForce¶
Vue raccourcie au-dessus d'une LuaForce. Donne accès aux recettes et technologies de la force (sous forme de wrappers chaînables), aux statistiques de production, à la visibilité des surfaces sur la carte et aux chart tags.
| Source | classes/LuaClass/RitnForce.lua |
| Stage | control (runtime) |
| Accès | global — injecté dans _G par core/setup-classes.lua. Aucun require. |
| Hérite de | — (classe de base) |
| Étendue par | les sous-classes consommateur, ex. RitnCoreForce (cf. ADR-0001) |
object_name |
"RitnLibForce" |
Constructeur¶
RitnLibForce(force) → RitnLibForce¶
Valide l'entrée puis fige les champs. Rejette une entrée qui n'est pas une LuaForce valide.
Paramètres
- force :: LuaForce — la force à encapsuler.
Valeur de retour → RitnLibForce. En cas d'entrée invalide, isPresent vaut false.
Note — Le plus souvent on l'obtient via
RitnLibPlayer:getForce()ouRitnLibEvent:getForce().
Attributs¶
Tous en lecture seule ([Read]), figés à la construction.
force :: LuaForce [Read]¶
La LuaForce encapsulée (référence vivante).
name :: string [Read]¶
Nom de la force ("player", "enemy"…).
index :: uint [Read]¶
Index de la force.
items_launched :: table<string, uint>? [Read]¶
Items lancés en rocket (dictionnaire item→count). Toujours disponible en Factorio 2.0.
rockets_launched :: uint? [Read]¶
Nombre de rockets lancées.
FORCE_ENEMY_NAME :: "enemy" [Read]¶
Constante du nom de la force ennemie.
FORCE_PLAYER_NAME :: "player" [Read]¶
Constante du nom de la force joueur.
FORCE_NEUTRAL_NAME :: "neutral" [Read]¶
Constante du nom de la force neutre.
isPresent :: boolean [Read]¶
false si le constructeur a rejeté son entrée. À tester en garde.
Méthodes¶
:getRecipe(recipe_name) → RitnLibRecipe¶
Renvoie un RitnLibRecipe enveloppant la recette nommée de cette force.
Paramètres
- recipe_name :: string — nom de la recette.
Avertissement — Lève une erreur (
error) si la recette n'existe pas pour cette force. Garantis le nom en amont.
:getTechnology(tech_name) → RitnLibTechnology¶
Renvoie un RitnLibTechnology enveloppant la technologie nommée.
Paramètres
- tech_name :: string — nom de la technologie.
Avertissement — Lève une erreur si la technologie n'existe pas pour cette force.
RitnLibEvent(e):getPlayer():getForce():getTechnology("ritn-tech-lumberjack").technology.researched = true
:setHiddenSurface(surfaceIdentification, value?) → RitnLibForce¶
Masque ou affiche une surface pour cette force sur la carte. Chaînable.
Paramètres
- surfaceIdentification :: SurfaceIdentification — la surface ciblée.
- value :: boolean? — true pour masquer (défaut), false pour afficher.
:countPlayers() → integer¶
Nombre de joueurs dans cette force (#self.force.players).
:getChartTag(tag_number, surface_name, position) → LuaCustomChartTag?¶
Cherche un chart tag par son tag_number à une position donnée.
Paramètres
- tag_number :: uint — identifiant du tag recherché.
- surface_name :: string|LuaSurface — la surface.
- position :: MapPosition — la position (doit avoir .x et .y).
Avertissement — Construit une zone dégénérée
{position, position}pourfind_chart_tags; peut rater un tag à cause d'arrondis flottants.
Statistiques de production — :getStatsProduction · :getStatsProductionItem · :getStatsProductionFluid · :getStatsCount · :getStatsCountKill · :getStatsCountBuild¶
Renvoient des compteurs de production / kills / constructions (integer?).
Avertissement — Ces méthodes dépendent de
self.stats, actuellement désactivé : son bloc constructeur lit l'API statistics Factorio 1.x, retirée en 2.0. Sur une instance de base elles lèvent une erreur ; il faut qu'une sous-classe peupleself.stats. Détails et plan de migration : Migration Factorio 2.0.
Exemples d'usage¶
Désactiver des recettes pour une force (RitnElectronic/modules/electronic.lua) :
RitnLibEvent(e):getPlayer():getForce():getRecipe("radar"):setEnabled(false)
RitnLibEvent(e):getPlayer():getForce():getRecipe("inserter"):setEnabled(false)
Forcer une techno comme recherchée (RitnLumberjack/modules/lumberjack.lua) :
RitnLibEvent(e):getPlayer():getForce():getTechnology("ritn-tech-lumberjack").technology.researched = true
Masquer une surface sur la carte (RitnCoreGame/modules/force.lua) :
Remarques¶
- Wrapper temporaire — ne jamais stocker l'instance dans
storage; la reconstruire dans chaque handler. Voir Wrappers temporaires. getRecipe/getTechnologylèvent — elleserror()si le nom n'existe pas. Préfère un nom dont tu es sûr, ou protège l'appel.getStats*en attente de migration 2.0 — voir l'avertissement ci-dessus et Migration Factorio 2.0.