Les fonctions de base

Minetest + Python = ❤️


Les fonctions de base

Pour cet atelier nous allons nous limiter à quelques fonctions de bases que nous propose Minetest. Nous ne nous attarderons pas non plus sur certains paramètres optionnels que peuvent offrir ces fonctions.

Note: en informatique, la liste des fonctions, méthodes, classes … exposées par un programme se nomme API, nous utiliserons ce terme a partir de maintenant.

.postToChat(message)

Affiche un message dans le chat du jeu.

from mcpi import minecraft
mc = minecraft.Minecraft.create()

mc.postToChat("Salut tout le monde!")

Nous avons déjà vu cette fonction dans l’introduction donc nous ne attarderons pas dessus.

.setBlock(x, y, z, id)

Place un bloc aux coordonnées X, Y et Z. Le paramètre id doit contenir le type de bloc que l’on veut créer. La liste complète des types des blocs se trouve ici en voici quelques uns:

  • AIR (de l’air, du vide)
  • STONE (pierre)
  • GRASS (herbe)
  • WATER (eau)
  • WOOD (bois)
  • GLASS (verre)
  • ICE (glace)
from mcpi import block, minecraft
mc = minecraft.Minecraft.create()

mc.setBlock(0, 25, 0, block.BRICK_BLOCK)

Essayons maintenant de créer un fichier test.py dans le même répertoire que hello.py avec le contenu ci-dessus. Exécutons le en utilisant la commande

/py test

et regardons au dessus de notre tète (dans Minetest évidemment !)

.setBlocks(x1, y1, z1, x2, y2, z2, id)

La méthode setBlocks prend six arguments dont deux jeux de coordonnées, (x1, y1, z1) et (x2, y2, z2) qui permettent de délimiter un parallélépipède rectangle.

Ce parallélépipède rectangle sera rempli par des blocs dont le type est spécifié par l’argument id (tout comme nous l’avons fait pour la méthode setBlock).

Nous allons nous créer un programme qui va nous permettre de nous préparer une zone de travail confortable, appelons ce script efface.py car il nous servira à faire table rase entre deux tests en utilisant la commande /py efface.

from mcpi import block, minecraft
mc = minecraft.Minecraft.create()

mc.setBlocks(-50, 0, -50, 50, 50, 50, block.AIR)

.player.getTilePos()

Cette méthode retourne la position du bloc sur lequel notre personnage se trouve. Nous recevons donc un jeu de coordonnées qui correspond a trois valeurs, une pour chaque axe (x, y et z). Pour tout ce qui a un rapport avec le personnage, nous allons utiliser des méthodes de l’objet player qui se trouve être un attribut de l’objet mc.

from mcpi import block, minecraft
mc = minecraft.Minecraft.create()

x, y, z = mc.player.getTilePos()

⬅️ Retour au sommaire