Installation de Minetest 5.8.0 + Raspberryjammod 0.20 + Blocky 201612 sous Ubuntu 22.04

Distribution de travail :

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

Liens :
Installation de Minetest 0.4.15 + Raspberryjammod 0.20 + Blocky 201612 sous Ubuntu 22.04
Installation de Minetest 0.4.15 + Raspberryjammod 0.20 + Blocky 201612 sous Raspberry Pi 4

Installation de Python 2.7.

util01@station40:~$ sudo apt install python2
util01@station40:~$ python2.7 --version
util01@station40:~$ Python 2.7.18

I/ Installation de Minetest.

1/ Téléchargement des paquets de développement.

util01@station40:~$ sudo apt-get install libluajit-5.1-dev libopenal-dev libbz2-dev libirrlicht-dev luajit

2/ Création du répertoire de travail.

util01@station40:~$ mkdir -p JEUX/MINETEST.580
util01@station40:~$ cd JEUX/MINETEST.580/
util01@station40:~/JEUX/MINETEST.580$ 

3/ Installation de LUAJIT.

util01@station40:~/JEUX/MINETEST.580$ git clone https://luajit.org/git/luajit.git
util01@station40:~/JEUX/MINETEST.580$ cd luajit/
util01@station40:~/JEUX/MINETEST.580/luajit$
util01@station40:~/JEUX/MINETEST.580/luajit$ make && sudo make install && sudo /sbin/ldconfig
util01@station40:~/JEUX/MINETEST.580/luajit$ cd ..
util01@station40:~/JEUX/MINETEST.580$ 

4/ Téléchargement de Minetest.

util01@station40:~/JEUX/MINETEST.580$ https://github.com/minetest/minetest/archive/refs/tags/5.8.0.tar.gz
util01@station40:~/JEUX/MINETEST.580$ tar xvfz 5.8.0.tar.gz 
util01@station40:~/JEUX/MINETEST.580$ mv minetest-5.8.0/ minetest

5/ Téléchargement du moteur Irrlicht.

util01@station40:~/JEUX/MINETEST.580$ cd minetest/lib/
util01@station40:~/JEUX/MINETEST.580/minetest/lib$ 
util01@station40:~/JEUX/MINETEST.580/minetest/lib$ wget https://github.com/minetest/irrlicht/archive/refs/tags/1.9.0mt13.tar.gz
util01@station40:~/JEUX/MINETEST.580/minetest/lib$ tar xvfz 1.9.0mt13.tar.gz 
util01@station40:~/JEUX/MINETEST.580/minetest/lib$ mv irrlicht-1.9.0mt13/ irrlichtmt
util01@station40:~/JEUX/MINETEST.580/minetest/lib$ cd ..
util01@station40:~/JEUX/MINETEST.580/minetest$ 

6/ Configuration de la compilation.

util01@station40:~/JEUX/MINETEST.580/minetest$ cmake . -DRUN_IN_PLACE=TRUE -DBUILD_SERVER=TRUE -DENABLE_LUAJIT=TRUE -DENABLE_GETTEXT=TRUE -DENABLE_CURL=TRUE -DCMAKE_BUILD_TYPE=Release

7/ Compilation de Minetest.

util01@station40:~/JEUX/MINETEST.580/minetest$ make -j2

8/ Vérification :

util01@station40:~/JEUX/MINETEST.580/minetest$ ls -l bin/minetest*
-rwxr-xr-x 1 util01 www-data 8576640 janv. 30 19:22 bin/minetest
-rwxr-xr-x 1 util01 www-data 5575256 janv. 30 19:19 bin/minetestserver
util01@station40:~/JEUX/MINETEST.580/minetest$ 

9/ Télécharger le jeu Minetest.

util01@station40:~/JEUX/MINETEST.580/minetest$ cd games/
util01@station40:~/JEUX/MINETEST.580/minetest/games$ 
util01@station40:~/JEUX/MINETEST.580/minetest_game$ wget https://github.com/minetest/minetest_game/archive/refs/tags/5.8.0.tar.gz
util01@station40:~/JEUX/MINETEST.580/minetest/games$ tar xvfz 5.8.0.tar.gz 
util01@station40:~/JEUX/MINETEST.580/minetest/games$ mv minetest_game-5.8.0/ minetest_game
util01@station40:~/JEUX/MINETEST.580/minetest/games$ cd ../mods/
util01@station40:~/JEUX/MINETEST.580/minetest/mods$ 

II/ Installation de Raspberryjammod.

1/ Téléchargment de Raspberryjammod

util01@station40:~/JEUX/MINETEST.580/minetest/mods$ wget https://github.com/arpruss/raspberryjammod-minetest/archive/0.20.tar.gz
util01@station40:~/JEUX/MINETEST.580/minetest/mods$ tar xvfz 0.20.tar.gz 
util01@station40:~/JEUX/MINETEST.580/minetest/mods$ mv raspberryjammod-minetest-0.20/raspberryjammod .
util01@station40:~/JEUX/MINETEST.580/minetest/mods$ rm raspberryjammod-minetest-0.20/ -rf
util01@station40:~/JEUX/MINETEST.580/minetest/mods$ cd raspberryjammod/socket/
util01@station40:~/JEUX/MINETEST.580/minetest/mods/raspberryjammod/socket$ 
util01@station40:~/JEUX/MINETEST.580/minetest/mods/raspberryjammod/socket$ rm *
util01@station40:~/JEUX/MINETEST.580/minetest/mods/raspberryjammod/socket$ ln -s /usr/lib/x86_64-linux-gnu/liblua5.1-socket.so.2.0.0 core.so
util01@station40:~/JEUX/MINETEST.580/minetest/mods/raspberryjammod/socket$ cd ../../../
util01@station40:~/JEUX/MINETEST.580/minetest$ 

2/ Modification de Raspberryjammod.

Ouvrir :

mods/raspberryjammod/init.lua

Chercher :

if minetest.request_insecure_environment then
   ie = minetest.request_insecure_environment()
else
   ie = _G
end

3/ Configuration.

Ouvrir :

~/JEUX/MINETEST.580/minetest/minetest.conf

Ajouter à la fin :

creative_mode = true
secure.enable_security = false
secure.trusted_mods = raspberryjammod

III/ Configuration du client Minetest.

1/ Lancement du client Minetest.

util01@station40:~/JEUX/MINETEST.580/minetest$ cd bin/
util01@station40:~/JEUX/MINETEST.580/minetest/bin$ ./minetest

2/ Créer un monde.

Générer un nouveau monde plat, nommé 'plat', avec le générateur de terrain 'flat'. [Sélectionner les mod] en activant le mod 'raspberryjammod'.
Puis quitter le client Minetest.

IV/ Script Python.

1/ Créer un script de création de block.

Ouvrir :

mods/raspberryjammod/mcpipy/pillar.py

Ajouter :

import mcpi.minecraft as minecraft
import mcpi.block as block
import server
import math

# Connect to the Minecraft server
world = minecraft.Minecraft.create(server.address)

# Get the player's current position and store the coordinates
[x,y,z] = world.player.getPos()

# Set some variables to customize your pillar
height = 3 
material = block.BRICK_BLOCK

# Build the pillar. It will be "height" blocks high and located one step away from the player.
for level in range(0, height):
    world.setBlock( x+1, y+level, z+1, material )
    level = level + 1;

Action :

util01@station40:~/JEUX/MINETEST.580/minetest/mods/raspberryjammod/mcpipy$ chmod +x pillar.py

2/ Exécuter le script.

util01@station40:~/JEUX/MINETEST.580/minetest/mods/raspberryjammod/mcpipy$ python2.7 ./pillar.py 

minetest01.png

IV/ Installation de Blocky.

1/ Installation du serveur web Apache.

util01@station40:~$ sudo apt-get install apache2
util01@station40:~$ cd JEUX/MINETEST.580/
util01@station40:~/JEUX/MINETEST.580 $ 

2/ Téléchargement de Google Closure Library de décembre 2016.

util01@station40:~/JEUX/MINETEST.580 $ wget https://github.com/google/closure-library/archive/refs/tags/v20161201.tar.gz
util01@station40:~/JEUX/MINETEST.580 $ tar xvfz v20161201.tar.gz 
util01@station40:~/JEUX/MINETEST.580 $ mv closure-library-20161201/ closure-library

3/ Téléchargement de Blocky pour Minecraft.

util01@station40:~/JEUX/MINETEST.580 $ wget https://github.com/arpruss/blockly-minecraft/archive/refs/heads/master.zip
util01@station40:~/JEUX/MINETEST.580 $ unzip master.zip 
util01@station40:~/JEUX/MINETEST.580 $ cd blockly-minecraft-master/
util01@station40:~/JEUX/MINETEST.580/blockly-minecraft-master $ 

4/ Compilation.

util01@station40:~/JEUX/MINETEST.580/blockly-minecraft-master $ ./build.py
SUCCESS: msg/js/tr.js
SUCCESS: msg/js/de.js
...
SUCCESS: msg/js/sc.js
Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "./build.py", line 162, in run
    self.gen_core()
  File "./build.py", line 193, in gen_core
    self.do_compile(params, target_filename, filenames, "")
  File "./build.py", line 258, in do_compile
    json_data = json.loads(json_str)
  File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

SUCCESS: blockly_uncompressed.js
util01@station40:~/JEUX/MINETEST.580/blockly-minecraft-master $ 

5/ Installation.

util01@station40:~/JEUX/MINETEST.580/blockly-minecraft-master $ cd /var/www/html/
util01@station40:/var/www/html $ 
util01@station40:/var/www/html $ sudo ln -s /home/util01/JEUX/MINETEST.580/blockly-minecraft-master/ blocky

6/ Sous le navigateur Firefox 122.0, lancement de Blockly :

http://localhost/blockly/minecraft/

minetest02.png