Add custom mods
- nalc modpack containing: - nalc_lib: functions accessible by other mods - nalc_hardtrees: Trees and other nodes becomes not hand breakable
This commit is contained in:
parent
a4aa16083e
commit
193d900a7b
0
custom/mods/nalc/modpack.txt
Normal file
0
custom/mods/nalc/modpack.txt
Normal file
2
custom/mods/nalc/nalc_hardtrees/depends.txt
Normal file
2
custom/mods/nalc/nalc_hardtrees/depends.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
nalc_lib
|
||||||
|
default
|
46
custom/mods/nalc/nalc_hardtrees/init.lua
Normal file
46
custom/mods/nalc/nalc_hardtrees/init.lua
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
--[[ Auteur : sys4
|
||||||
|
|
||||||
|
Ce mod permet de :
|
||||||
|
- Ne plus casser les arbres à la main
|
||||||
|
- Supprimer haches et pioches en bois.
|
||||||
|
- Fabriquer les outils en pierre avec du silex trouvé dans le gravier
|
||||||
|
|
||||||
|
Remarque : Les sticks sont obtenables grâce au mod youngtrees de plantlife_modpack
|
||||||
|
]]
|
||||||
|
|
||||||
|
-- Suppression des haches et pioches en bois
|
||||||
|
minetest.unregister_item("default:axe_wood")
|
||||||
|
minetest.unregister_item("default:pick_wood")
|
||||||
|
|
||||||
|
-- Suppression du groupe oddly_breakable_by_hand pour les nodes en bois du mod default
|
||||||
|
local wood_nodes = {}
|
||||||
|
wood_nodes["default"] = {
|
||||||
|
"tree", "pine_tree", "jungletree", "acacia_tree", "aspen_tree",
|
||||||
|
"bush_stem", "acacia_bush_stem",
|
||||||
|
"wood", "pine_wood", "junglewood", "acacia_wood", "aspen_wood",
|
||||||
|
}
|
||||||
|
|
||||||
|
for mod, nodes in pairs(wood_nodes) do
|
||||||
|
for _,name in ipairs(nodes) do
|
||||||
|
nalc.not_hand_breakable(mod..":"..name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Recette de craft pour pioche et hache avec du silex
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "default:axe_stone",
|
||||||
|
recipe = {
|
||||||
|
{"default:flint", "default:flint", ""},
|
||||||
|
{"default:flint", "default:stick", ""},
|
||||||
|
{"", "default:stick", ""},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "default:pick_stone",
|
||||||
|
recipe = {
|
||||||
|
{"default:flint", "default:flint", "default:flint"},
|
||||||
|
{"", "default:stick", ""},
|
||||||
|
{"", "default:stick", ""},
|
||||||
|
}
|
||||||
|
})
|
0
custom/mods/nalc/nalc_lib/depends.txt
Normal file
0
custom/mods/nalc/nalc_lib/depends.txt
Normal file
28
custom/mods/nalc/nalc_lib/init.lua
Normal file
28
custom/mods/nalc/nalc_lib/init.lua
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
nalc = {}
|
||||||
|
|
||||||
|
-- Remove node from a group
|
||||||
|
local function remove_group(name, group)
|
||||||
|
local node = minetest.registered_nodes[name]
|
||||||
|
|
||||||
|
if node then
|
||||||
|
local groups = node.groups
|
||||||
|
if groups then
|
||||||
|
for g in pairs(groups) do
|
||||||
|
if g == group then
|
||||||
|
groups[g] = 0
|
||||||
|
minetest.log("action", "[nalc_lib] "..name.." removed from group "..group..".")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
minetest.override_item(name, {groups = groups})
|
||||||
|
else
|
||||||
|
minetest.log("warning", "[nalc_lib] "..name.." has no groups, could not remove group "..group..".")
|
||||||
|
end
|
||||||
|
else
|
||||||
|
minetest.log("warning", "[nalc_lib] "..name.." not registered, could not remove group "..group..".")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Remove node from group "oddly_breakable_by_hand"
|
||||||
|
function nalc.not_hand_breakable(name)
|
||||||
|
remove_group(name, "oddly_breakable_by_hand")
|
||||||
|
end
|
222
install.sh
222
install.sh
@ -1,25 +1,184 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Fonctions
|
||||||
|
strip() {
|
||||||
|
echo $1 | cut -d \' -f 2
|
||||||
|
}
|
||||||
|
|
||||||
verif() {
|
verif() {
|
||||||
if [[ $? -gt 0 ]]; then
|
if [[ $? -gt 0 ]]; then
|
||||||
echo "Erreur ! Arrêt du script."
|
echo "Erreur ! Arrêt du script."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
error() {
|
error() {
|
||||||
echo "ERREUR : paramètres invalides !" >&2
|
echo "ERREUR : Vérifiez vos paramètres !" >&2
|
||||||
echo "utilisez l'option -h pour en savoir plus" >&2
|
echo "Utilisez l'option -h pour en savoir plus" >&2
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage : ./install.sh [options]"
|
echo "Usage: ./install.sh [options] [--] <arg>"
|
||||||
echo "--help ou -h : Afficher l'aide"
|
echo "Options :"
|
||||||
echo "--ssh : Authentification par ssh"
|
echo "--help | -h : Affiche l'aide."
|
||||||
echo "--https : Authentification publique anonyme"
|
echo "--verbose | -v : Be verbose !"
|
||||||
|
echo "--ssh <user@host>: Identifiants ssh."
|
||||||
|
echo "--url <URL>: URL distante personnalisée."
|
||||||
|
echo -e "\tSi l'option --ssh est passée en option, il s'agira du chemin distant."
|
||||||
|
echo "Commandes :"
|
||||||
|
echo -e "\tinit : Installation par défaut. Suivez les instructions..."
|
||||||
|
echo -e "\t\tSi une installation précédente est détectée alors le script s'arrête."
|
||||||
|
echo -e "\tupgrade : Met à jour le serveur tout en sauvegardant la version précédente au cas où."
|
||||||
|
echo -e "\tclean_install : /!\ Permet de faire une installation qui supprime toute installation précédente (Perte de la map et des paramètres définitif...)."
|
||||||
|
echo -e "\tuninstall : /!\ Permet de supprimer l'installation courante (Perte de données...)."
|
||||||
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ssh() {
|
||||||
|
ssh=$(strip $1)
|
||||||
|
echo "Installation avec identifiants ssh : $ssh"
|
||||||
|
}
|
||||||
|
|
||||||
|
url() {
|
||||||
|
url=$(strip $1)
|
||||||
|
}
|
||||||
|
|
||||||
|
makeopt() {
|
||||||
|
makeopt=$(strip $1)
|
||||||
|
}
|
||||||
|
|
||||||
|
full() {
|
||||||
|
if [[ -n $URL ]]; then
|
||||||
|
echo "Full install... with "$URL
|
||||||
|
else
|
||||||
|
echo "ERREUR: Vous devez choisir l'option --ssh ou --https avec cette commande !"
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
clean() {
|
||||||
|
echo "clean install..."
|
||||||
|
}
|
||||||
|
|
||||||
|
install_minetest() {
|
||||||
|
if [[ -z $makeopt ]]; then
|
||||||
|
local makeopt=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -d minetest ]]; then
|
||||||
|
echo "Installation précédente de Minetest détecté."
|
||||||
|
read -p "Mettre à jour ? (y,n,clean,cancel) : " continue
|
||||||
|
if [[ $continue == "clean" ]]; then
|
||||||
|
echo "Attention ! Cela va supprimer définitivement toutes les données."
|
||||||
|
read -p "Êtes-vous certains de vouloir continuer ? (y or n) : " continue
|
||||||
|
if [[ $continue == "y" ]]; then
|
||||||
|
echo "rm -rf minetest"
|
||||||
|
echo "Répertoire minetest supprimé."
|
||||||
|
else
|
||||||
|
echo "Installation annulée. Fin"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
elif [[ $continue == "y" ]]; then
|
||||||
|
echo "cd minetest"
|
||||||
|
echo "git pull"
|
||||||
|
echo "cd .."
|
||||||
|
elif [[ $continue == "cancel" ]]; then
|
||||||
|
echo "Installation annulée. Fin"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -d minetest ]]; then
|
||||||
|
echo "git clone $URL/minetest.git"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Minetest va être recompilé..."
|
||||||
|
sleep 3
|
||||||
|
echo "cd minetest"
|
||||||
|
echo "cmake ."
|
||||||
|
echo "make -j$makeopt"
|
||||||
|
echo "Installation de Minetest terminé."
|
||||||
|
echo "cd .."
|
||||||
|
}
|
||||||
|
|
||||||
|
install_minetest_game() {
|
||||||
|
if [[ -d minetest/games/minetest_game ]]; then
|
||||||
|
echo "Installation précédente du jeux Minetest détecté."
|
||||||
|
read -p "Mettre à jour ? (y,n,clean,cancel)" continue
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
init() {
|
||||||
|
if [[ -n $ssh && -n $url ]]; then
|
||||||
|
URL=$ssh\:$url
|
||||||
|
elif [[ -n $url ]]; then
|
||||||
|
URL=$url
|
||||||
|
else
|
||||||
|
URL="https://github.com/sys4-fr"
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -p "L'installation va démarrer. Continuer ? (y or n) : " continue
|
||||||
|
if [[ $continue == "y" ]]; then
|
||||||
|
install_minetest
|
||||||
|
install_minetest_game
|
||||||
|
install_mods
|
||||||
|
post_configuration
|
||||||
|
|
||||||
|
echo "L'installation est terminé. Bravo !"
|
||||||
|
else
|
||||||
|
echo "Installation annulée. Fin."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
action() {
|
||||||
|
local arg=$(strip $1)
|
||||||
|
if [[ $arg == "init" ]]; then
|
||||||
|
init
|
||||||
|
elif [[ $arg == "clean" ]]; then
|
||||||
|
clean
|
||||||
|
else
|
||||||
|
error
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pas de paramètre
|
||||||
|
#[[ $# -lt 1 ]] && error
|
||||||
|
# ou
|
||||||
|
[[ $# -lt 1 ]] && usage
|
||||||
|
|
||||||
|
# -o : Options courtes
|
||||||
|
# -l : options longues
|
||||||
|
OPT=$(getopt -o h,v,j: -l verbose,help,url:,ssh:,makeopt: -- "$@")
|
||||||
|
|
||||||
|
# éclatement de $options en $1, $2...
|
||||||
|
set -- $OPT
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
case "$1" in
|
||||||
|
-v|--verbose)
|
||||||
|
# TODO
|
||||||
|
shift;;
|
||||||
|
-h|--help)
|
||||||
|
usage;;
|
||||||
|
--ssh)
|
||||||
|
ssh $2
|
||||||
|
shift 2;;
|
||||||
|
--url)
|
||||||
|
url $2
|
||||||
|
shift 2;;
|
||||||
|
-j|--makeopt)
|
||||||
|
makeopt $2
|
||||||
|
shift 2;;
|
||||||
|
--)
|
||||||
|
shift;;
|
||||||
|
*)
|
||||||
|
action $1
|
||||||
|
shift;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
install() {
|
install() {
|
||||||
if [[ $1 == "ssh" ]]; then
|
if [[ $1 == "ssh" ]]; then
|
||||||
read -p "Please enter <username>@<host> : " ident
|
read -p "Please enter <username>@<host> : " ident
|
||||||
@ -47,6 +206,7 @@ install() {
|
|||||||
# On créé les liens symboliques nécessaires
|
# On créé les liens symboliques nécessaires
|
||||||
cd ..
|
cd ..
|
||||||
ln -s $(pwd)/minetest_game minetest/games/minetest_game
|
ln -s $(pwd)/minetest_game minetest/games/minetest_game
|
||||||
|
ln -s $(pwd)/custom/mods/nalc nalc-server-mods/nalc
|
||||||
while read -r mod
|
while read -r mod
|
||||||
do
|
do
|
||||||
ln -s $(pwd)/nalc-server-mods/$mod minetest/mods/$mod
|
ln -s $(pwd)/nalc-server-mods/$mod minetest/mods/$mod
|
||||||
@ -69,43 +229,3 @@ install() {
|
|||||||
echo "Mise à jour des mods..."
|
echo "Mise à jour des mods..."
|
||||||
exec ./upgrade.sh --mods-link
|
exec ./upgrade.sh --mods-link
|
||||||
}
|
}
|
||||||
|
|
||||||
sshinstall() {
|
|
||||||
if [[ -z `pidof ssh-agent` ]]; then
|
|
||||||
echo "Exécutez les commandes suivantes :"
|
|
||||||
echo "$ eval \`ssh-agent -s\`"
|
|
||||||
echo "$ ssh-add <chemin vers votre clé privé>"
|
|
||||||
echo "Relancez de nouveau le script : ./install.sh --ssh"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
install "ssh"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Pas de paramètre
|
|
||||||
[[ $# -lt 1 ]] && error
|
|
||||||
|
|
||||||
# -o : Options courtes
|
|
||||||
# -l : options longues
|
|
||||||
options=$(getopt -o h -l help,https,ssh -- "$@")
|
|
||||||
|
|
||||||
# éclatement de $options en $1, $2...
|
|
||||||
set -- $options
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
case "$1" in
|
|
||||||
--ssh) sshinstall
|
|
||||||
#shift 2;;
|
|
||||||
exit 0;;
|
|
||||||
--https) install
|
|
||||||
#shift;;
|
|
||||||
exit 0;;
|
|
||||||
-h|--help) usage
|
|
||||||
exit 0;;
|
|
||||||
--)
|
|
||||||
shift
|
|
||||||
break;;
|
|
||||||
*) error
|
|
||||||
shift;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
26
upgrade.sh
26
upgrade.sh
@ -23,6 +23,7 @@ usage() {
|
|||||||
echo "--mods-link : Met à jour les liens symboliques des mods et le fichier world.mt"
|
echo "--mods-link : Met à jour les liens symboliques des mods et le fichier world.mt"
|
||||||
echo "--mods <mod|all> : Met à jour le(s) mod(s) depuis le dépôt distant"
|
echo "--mods <mod|all> : Met à jour le(s) mod(s) depuis le dépôt distant"
|
||||||
echo "--minetest : Met à jour le moteur du jeux depuis le dépot distant"
|
echo "--minetest : Met à jour le moteur du jeux depuis le dépot distant"
|
||||||
|
echo "--game : Met à jour le jeux minetest depuis le dépot distant"
|
||||||
}
|
}
|
||||||
|
|
||||||
modslink() {
|
modslink() {
|
||||||
@ -78,14 +79,14 @@ modsupgrade() {
|
|||||||
# On met à jour le dépot local des mods
|
# On met à jour le dépot local des mods
|
||||||
cd nalc-server-mods
|
cd nalc-server-mods
|
||||||
git pull
|
git pull
|
||||||
git submodule update --init --recursive
|
git submodule update --remote --recursive
|
||||||
verif
|
verif
|
||||||
cd ..
|
cd ..
|
||||||
else
|
else
|
||||||
# Mise à jour du mod spécifié en ligne de commande
|
# Mise à jour du mod spécifié en ligne de commande
|
||||||
cd nalc-server-mods
|
cd nalc-server-mods
|
||||||
git pull
|
git pull
|
||||||
git submodule update --init --recursive $1
|
git submodule update --remote --recursive $1
|
||||||
verif
|
verif
|
||||||
cd ..
|
cd ..
|
||||||
fi
|
fi
|
||||||
@ -101,8 +102,23 @@ minetestupgrade() {
|
|||||||
cmake . -DRUN_IN_PLACE=true -DENABLE_GETTEXT=true
|
cmake . -DRUN_IN_PLACE=true -DENABLE_GETTEXT=true
|
||||||
make -j33
|
make -j33
|
||||||
cd ..
|
cd ..
|
||||||
|
echo "Upgrade du moteur Minetest terminé."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gameupgrade() {
|
||||||
|
cd minetest/games/minetest_game
|
||||||
|
git pull
|
||||||
|
cd ../../..
|
||||||
|
echo "Upgrade du jeux Minetest terminé."
|
||||||
|
}
|
||||||
|
|
||||||
|
upgradeall() {
|
||||||
|
gameupgrade
|
||||||
|
modsupgrade "all"
|
||||||
|
minetestupgrade
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sshauth() {
|
sshauth() {
|
||||||
if [[ -z `pidof ssh-agent` ]]; then
|
if [[ -z `pidof ssh-agent` ]]; then
|
||||||
echo "Exécutez les commandes suivantes :"
|
echo "Exécutez les commandes suivantes :"
|
||||||
@ -126,7 +142,7 @@ httpauth() {
|
|||||||
|
|
||||||
# -o : Options courtes
|
# -o : Options courtes
|
||||||
# -l : Options longues
|
# -l : Options longues
|
||||||
options=$(getopt -o h -l help,https,ssh,mods-link,minetest,mods: -- "$@")
|
options=$(getopt -o h -l help,https,ssh,mods-link,minetest,game,mods: -- "$@")
|
||||||
|
|
||||||
# Éclatement de $options en $1, $2...
|
# Éclatement de $options en $1, $2...
|
||||||
set -- $options
|
set -- $options
|
||||||
@ -143,6 +159,10 @@ while true; do
|
|||||||
shift 2;;
|
shift 2;;
|
||||||
--minetest) minetestupgrade
|
--minetest) minetestupgrade
|
||||||
shift;;
|
shift;;
|
||||||
|
--game) gameupgrade
|
||||||
|
shift;;
|
||||||
|
--all) upgradeall
|
||||||
|
shift;;
|
||||||
-h|--help) usage
|
-h|--help) usage
|
||||||
exit 0;;
|
exit 0;;
|
||||||
--)
|
--)
|
||||||
|
Loading…
Reference in New Issue
Block a user