RitnLibPlayer¶
Vue raccourcie au-dessus d'un LuaPlayer. Expose les informations joueur les plus consultées (force, surface, character, admin, driving…) comme propriétés directes, et fournit des accesseurs qui renvoient d'autres wrappers RitnLib — ce qui permet le chaînage :getForce():getRecipe(...).
| Source | classes/LuaClass/RitnPlayer.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. RitnCorePlayer, RitnCharacter (cf. ADR-0001) |
object_name |
"RitnLibPlayer" |
Constructeur¶
RitnLibPlayer(player) → RitnLibPlayer¶
Valide l'entrée puis fige les champs joueur. L'entrée est rejetée si ce n'est pas un LuaPlayer, s'il est invalide (valid == false), ou si is_player() est faux.
Paramètres
- player :: LuaPlayer — le joueur à encapsuler.
Valeur de retour → RitnLibPlayer. En cas d'entrée invalide, l'instance est renvoyée avec isPresent à false et aucun autre champ peuplé.
local rPlayer = RitnLibPlayer(game.get_player(event.player_index))
if not rPlayer.isPresent then return end
Note — Le plus souvent, on obtient un
RitnLibPlayerviaRitnLibEvent:getPlayer()plutôt qu'en appelant le constructeur à la main.
Attributs¶
Tous en lecture seule ([Read]) et figés à la construction (snapshot).
player :: LuaPlayer [Read]¶
Le LuaPlayer encapsulé (référence vivante). Sert d'échappatoire pour appeler n'importe quelle méthode native non exposée par le wrapper.
index :: uint [Read]¶
Index du joueur (snapshot).
name :: string [Read]¶
Nom du joueur (snapshot).
surface :: LuaSurface [Read]¶
Surface du joueur au moment de l'instanciation. Peut devenir périmée si le joueur change de surface ensuite — reconstruis le wrapper si besoin.
force :: LuaForce [Read]¶
Force du joueur au moment de l'instanciation. Snapshot, susceptible de se périmer.
controller_type :: defines.controllers [Read]¶
Type de contrôleur (entier, snapshot).
controller_name :: string? [Read]¶
Nom symbolique résolu depuis controller_type (ex. "character", "god", "editor").
character :: LuaEntity? [Read]¶
Entité personnage du joueur ; nil en contrôleur god/editor.
admin :: boolean [Read]¶
Le joueur est-il admin (snapshot — peut changer au runtime).
driving :: boolean [Read]¶
Le joueur est-il en train de conduire (snapshot).
vehicle :: LuaEntity? [Read]¶
Véhicule conduit, nil sinon.
connected :: boolean [Read]¶
Le joueur est-il connecté (snapshot).
isPresent :: boolean [Read]¶
false si le constructeur a rejeté son entrée, true sinon. À tester en garde avant d'utiliser les autres champs.
Méthodes¶
:print(text) → RitnLibPlayer¶
Imprime un message au joueur. Les table sont sérialisées via serpent.block ; les valeurs ni-string ni-table tombent en tostring (dans un pcall). Renvoie self (chaînable).
Paramètres
- text :: string|table — texte ou table à imprimer (une LocalisedString est une table).
:getForce() → RitnLibForce¶
Enveloppe force dans un RitnLibForce.
:getSurface() → RitnLibSurface¶
Enveloppe surface dans un RitnLibSurface.
:cancel_all_crafting()¶
Annule toutes les entrées de la file de craft du joueur. Encapsulé dans un pcall — les erreurs sont silencieusement ignorées.
:onNauvis() → boolean¶
true si le joueur est sur la surface nauvis.
Note — Renvoie
falsesur les planètes Space Age (vulcanus/fulgora/gleba/aquilo) et sur les plateformes spatiales : le test porte sur le nom de surface'nauvis'exactement.
Exemples d'usage¶
Chaînage fluent — désactiver une recette pour la force du joueur (RitnElectronic/modules/electronic.lua) :
Brancher sur le statut admin (RitnLobbyGame/modules/menu.lua) :
Échappatoire vers le LuaPlayer natif (RitnLobbyGame/classes/RitnSurface.lua) :
local rPlayer = RitnCorePlayer(game.get_player(applicant))
rPlayer.player.print({ "msg.send-request", self.name }, { r = 1, g = 0, b = 0, a = 0.3 })
Remarques¶
- Wrapper temporaire — ne jamais stocker l'instance dans
storage; la reconstruire dans chaque handler. Voir Wrappers temporaires. - Champs snapshot —
surface,force,admin,driving,connected,vehiclesont figés à la construction. Pour une valeur fraîche, relis depuisplayerou reconstruis le wrapper. - God / editor —
charactervautnildans ces contrôleurs.