Ajout settings moretrees (dev) + guide serveur (loin d'être terminé)

This commit is contained in:
Sys Quatre 2020-06-14 11:35:38 +02:00
parent 76ed01631c
commit c03108539c
7 changed files with 1300 additions and 32 deletions

BIN
doc/Guide/architecture.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

887
doc/Guide/index.html Normal file
View File

@ -0,0 +1,887 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2019-12-08 dim. 18:38 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: visible;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
</head>
<body>
<div id="content">
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orga5f75cf">1. Guide détaillé de l'utilisation du serveur NALC</a>
<ul>
<li><a href="#org05bc941">1.1. Architecture et fichiers principaux du serveur</a></li>
<li><a href="#orgbbeab62">1.2. Installation</a>
<ul>
<li><a href="#org8fb7c66">1.2.1. Pré-requis</a></li>
<li><a href="#orga304b05">1.2.2. Ce que je recommande pour avoir de bonnes performances</a></li>
<li><a href="#org1e0d563">1.2.3. Créer un utilisateur dédié</a></li>
<li><a href="#org58b0a15">1.2.4. Télécharger les sources du serveur</a></li>
<li><a href="#orgeef8acb">1.2.5. Installer le serveur</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-orga5f75cf" class="outline-2">
<h2 id="orga5f75cf"><span class="section-number-2">1</span> Guide détaillé de l'utilisation du serveur NALC</h2>
<div class="outline-text-2" id="text-1">
<p>
Ce guide explique comment installer et utiliser les scripts du serveur NALC pour sa gestion au quotidien par les administrateurs du serveur.
En dernière partie le guide explique les bonnes pratiques à adopter pour contribuer au développement du serveur NALC.
</p>
</div>
<div id="outline-container-org05bc941" class="outline-3">
<h3 id="org05bc941"><span class="section-number-3">1.1</span> Architecture et fichiers principaux du serveur</h3>
<div class="outline-text-3" id="text-1-1">
<p>
Avant de commencer, voici une illustration de l'architecture du serveur une fois installé.
</p>
<div class="figure">
<p><img src="architecture.png" alt="architecture.png" />
</p>
</div>
<p>
Ne prenez pas peur par la complexité apparente du schéma, la pluspart des opérations que vous aurez à gérer se feront à travers les scripts qui vous faciliterons la tâche.
</p>
<p>
Nous reviendrons plus en détail sur certaines parties au moment opportun.
</p>
</div>
</div>
<div id="outline-container-orgbbeab62" class="outline-3">
<h3 id="orgbbeab62"><span class="section-number-3">1.2</span> Installation</h3>
<div class="outline-text-3" id="text-1-2">
</div>
<div id="outline-container-org8fb7c66" class="outline-4">
<h4 id="org8fb7c66"><span class="section-number-4">1.2.1</span> Pré-requis</h4>
<div class="outline-text-4" id="text-1-2-1">
<ul class="org-ul">
<li>Système d'exploitation : GNU/Linux avec interpréteur BASH,</li>
<li>git,</li>
<li>Librairies et dépendances de Minetest :
Consulter les pré-requis sur cette page : <a href="https://github.com/minetest/minetest/blob/master/README.md">https://github.com/minetest/minetest/blob/master/README.md</a></li>
</ul>
</div>
</div>
<div id="outline-container-orga304b05" class="outline-4">
<h4 id="orga304b05"><span class="section-number-4">1.2.2</span> Ce que je recommande pour avoir de bonnes performances</h4>
<div class="outline-text-4" id="text-1-2-2">
<ul class="org-ul">
<li><b>PostgreSQL</b> pour le backend de la MAP et des Utilisateurs.</li>
<li><b>Redis</b> pour le backend de la MAP est une bonne alternative, mais elle ne sera pas traitée dans ce guide. Cependant j'avais fait une vidéo d'installation d'un serveur Minetest avec le backend Redis disponible ici : <a href="https://www.youtube.com/watch?v=cz_-Q0Uct1c">https://www.youtube.com/watch?v=cz_-Q0Uct1c</a></li>
<li>Utiliser les librairies fournis par le système plûtot que celle incluse avec Minetest, comme Luajit par exemple.</li>
</ul>
</div>
</div>
<div id="outline-container-org1e0d563" class="outline-4">
<h4 id="org1e0d563"><span class="section-number-4">1.2.3</span> Créer un utilisateur dédié</h4>
<div class="outline-text-4" id="text-1-2-3">
<p>
Je recommande de créer un utilisateur dédié que nous nommerons "minetest" dans ce guide. Cela permettra une meilleure organisation ; et du point de vue sécurité c'est pas mal aussi.
</p>
<p>
Lancez un Terminal en root et entrez les commandes suivantes :
</p>
<pre class="example">
# useradd -m -U minetest -s /bin/bash minetest
# passwd minetest
</pre>
<p>
Maintenant vous pouvez suivre le reste du guide avec l'utilisateur minetest.
</p>
</div>
</div>
<div id="outline-container-org58b0a15" class="outline-4">
<h4 id="org58b0a15"><span class="section-number-4">1.2.4</span> Télécharger les sources du serveur</h4>
<div class="outline-text-4" id="text-1-2-4">
<p>
Depuis un terminal nous allons rapatrier le code source du serveur avec git :
</p>
<pre class="example">
cd ~
git clone --depth 1 https://sys4.fr/gitea/nalc/nalc-server.git
</pre>
<p>
Après un court laps de temps, vous devriez avoir le répertoire /home/minetest/nalc-server créé dont le contenue est le suivant :
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-right" />
<col class="org-left" />
<col class="org-left" />
<col class="org-right" />
<col class="org-right" />
<col class="org-left" />
<col class="org-right" />
<col class="org-left" />
</colgroup>
<tbody>
<tr>
<td class="org-left">total</td>
<td class="org-right">136</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">&#xa0;</td>
<td class="org-right">&#xa0;</td>
<td class="org-right">&#xa0;</td>
<td class="org-left">&#xa0;</td>
<td class="org-right">&#xa0;</td>
<td class="org-left">&#xa0;</td>
</tr>
<tr>
<td class="org-left">-rwxr-xr-x</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">1101</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">backup.sh</td>
</tr>
<tr>
<td class="org-left">drwxr-xr-x</td>
<td class="org-right">3</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">4096</td>
<td class="org-right">8</td>
<td class="org-left">déc.</td>
<td class="org-right">14:14</td>
<td class="org-left">doc</td>
</tr>
<tr>
<td class="org-left">-rwxr-xr-x</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">9650</td>
<td class="org-right">8</td>
<td class="org-left">déc.</td>
<td class="org-right">01:14</td>
<td class="org-left">install.sh</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">34570</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">LICENSE</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">10388</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">minetest-1.0.conf</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">10509</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">minetest-1.1.conf</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">10579</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">minetest-dev.conf</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">10509</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">minetest-stable.conf</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">261</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">README.md</td>
</tr>
<tr>
<td class="org-left">-rwxr-xr-x</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">1468</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">shutdown.sh</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">691</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">start.sh.example</td>
</tr>
<tr>
<td class="org-left">-rwxr-xr-x</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">7589</td>
<td class="org-right">8</td>
<td class="org-left">déc.</td>
<td class="org-right">01:14</td>
<td class="org-left">upgrade.sh</td>
</tr>
<tr>
<td class="org-left">drwxr-xr-x</td>
<td class="org-right">2</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">4096</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">world</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">62</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">worldmt-1.0.conf</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">85</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">14:33</td>
<td class="org-left">worldmt-1.1.conf</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-orgeef8acb" class="outline-4">
<h4 id="orgeef8acb"><span class="section-number-4">1.2.5</span> Installer le serveur</h4>
<div class="outline-text-4" id="text-1-2-5">
<p>
Maintenant il nous faut mettre en place tout le nécessaires pour avoir un serveur fonctionnel comme illustré dans l'image 1 et dont le contenu doit ressembler à ça :
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-right" />
<col class="org-left" />
<col class="org-left" />
<col class="org-right" />
<col class="org-right" />
<col class="org-left" />
<col class="org-right" />
<col class="org-left" />
</colgroup>
<tbody>
<tr>
<td class="org-left">total</td>
<td class="org-right">172</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">&#xa0;</td>
<td class="org-right">&#xa0;</td>
<td class="org-right">&#xa0;</td>
<td class="org-left">&#xa0;</td>
<td class="org-right">&#xa0;</td>
<td class="org-left">&#xa0;</td>
</tr>
<tr>
<td class="org-left">-rwxr-xr-x</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">1101</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:25</td>
<td class="org-left">backup.sh</td>
</tr>
<tr>
<td class="org-left">drwxr-xr-x</td>
<td class="org-right">2</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">4096</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:25</td>
<td class="org-left">doc</td>
</tr>
<tr>
<td class="org-left">-rwxr-xr-x</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">11301</td>
<td class="org-right">8</td>
<td class="org-left">déc.</td>
<td class="org-right">00:30</td>
<td class="org-left">install.sh</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">34570</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:25</td>
<td class="org-left">LICENSE</td>
</tr>
<tr>
<td class="org-left">drwxr-xr-x</td>
<td class="org-right">2</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">4096</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:51</td>
<td class="org-left">logs</td>
</tr>
<tr>
<td class="org-left">drwxr-xr-x</td>
<td class="org-right">23</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">4096</td>
<td class="org-right">8</td>
<td class="org-left">déc.</td>
<td class="org-right">00:31</td>
<td class="org-left">minetest</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">10388</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:25</td>
<td class="org-left">minetest-1.0.conf</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">10509</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:25</td>
<td class="org-left">minetest-1.1.conf</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">10579</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:25</td>
<td class="org-left">minetest-dev.conf</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">10515</td>
<td class="org-right">8</td>
<td class="org-left">déc.</td>
<td class="org-right">00:46</td>
<td class="org-left">minetest-stable.conf</td>
</tr>
<tr>
<td class="org-left">drwxr-xr-x</td>
<td class="org-right">5</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">4096</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">23:48</td>
<td class="org-left">nalc<sub>game</sub></td>
</tr>
<tr>
<td class="org-left">drwxr-xr-x</td>
<td class="org-right">144</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">4096</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">23:49</td>
<td class="org-left">nalc-server-mods</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">261</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:25</td>
<td class="org-left">README.md</td>
</tr>
<tr>
<td class="org-left">-rwxr-xr-x</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">1498</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:35</td>
<td class="org-left">shutdown.sh</td>
</tr>
<tr>
<td class="org-left">-rwxr&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">729</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">18:08</td>
<td class="org-left">start.sh</td>
</tr>
<tr>
<td class="org-left">-rwxr&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">722</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:53</td>
<td class="org-left">start.sh~</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">691</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:25</td>
<td class="org-left">start.sh.example</td>
</tr>
<tr>
<td class="org-left">-rwxr-xr-x</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">7589</td>
<td class="org-right">8</td>
<td class="org-left">déc.</td>
<td class="org-right">00:12</td>
<td class="org-left">upgrade.sh</td>
</tr>
<tr>
<td class="org-left">drwxr-xr-x</td>
<td class="org-right">2</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">4096</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:25</td>
<td class="org-left">world</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">8028</td>
<td class="org-right">8</td>
<td class="org-left">déc.</td>
<td class="org-right">00:41</td>
<td class="org-left">world.mt</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">62</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:25</td>
<td class="org-left">worldmt-1.0.conf</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">85</td>
<td class="org-right">7</td>
<td class="org-left">déc.</td>
<td class="org-right">17:25</td>
<td class="org-left">worldmt-1.1.conf</td>
</tr>
<tr>
<td class="org-left">-rw-r&#x2013;r--</td>
<td class="org-right">1</td>
<td class="org-left">sys4</td>
<td class="org-left">sys4</td>
<td class="org-right">85</td>
<td class="org-right">8</td>
<td class="org-left">déc.</td>
<td class="org-right">00:41</td>
<td class="org-left">world.mt.bak</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="date">Created: 2019-12-08 dim. 18:38</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
</html>

167
doc/Guide/index.org Normal file
View File

@ -0,0 +1,167 @@
* Guide détaillé de l'utilisation du serveur NALC
Ce guide explique comment installer et utiliser les scripts du serveur NALC pour sa gestion au quotidien par les administrateurs du serveur.
En dernière partie le guide explique les bonnes pratiques à adopter pour contribuer au développement du serveur NALC.
** Architecture et fichiers principaux du serveur
Avant de commencer, voici une illustration de l'architecture du serveur une fois installé.
#+begin_src plantuml :file architecture.png
folder "nalc-server" as nalcserver {
Component install.sh
Component upgrade.sh
Component start.sh
Component shutdown.sh
Component backup.sh
Component "worldmt-$version.conf" as wmtver
Component "<&flag>world.mt" as worldmt
Component "minetest-$version.conf" as mtver
folder doc
folder logs
folder backup
folder world
folder "<&flag>nalc_game" as nalc_game
folder "nalc-server-mods" as nalcservermods {
folder "<&flag>mod1" as mod1
folder "<&flag>mod2" as mod2
folder "<&flag>modN..." as modn
}
folder minetest {
Component "minetest.conf" as mtconf
folder games {
Component "<&people>nalc_game" as nalcgamelink
}
folder worlds {
folder "nalc-$version" as nalc_world {
Component "<&people>world.mt" as worldmtlink
}
}
folder mods {
Component "<&people>mod1" as mod1l
Component "<&people>mod2" as mod2l
Component "<&people>modn..." as modnl
}
}
}
worldmtlink ..> worldmt :<<Lien symbolique>>
nalcgamelink ..> nalc_game :<<Lien symbolique>>
mod1l ..> mod1 :<<Lien symbolique>>
mod2l ..> mod2 :<<Lien symbolique>>
modnl ..> modn :<<Lien symbolique>>
wmtver --> worldmt : Copie
mtver --> mtconf : Copie
world --> nalc_world : Copie du contenue
legend right
<&flag> Dossier ou fichier source
<&people> Lien symbolique vers <&flag>
endlegend
node "Serveur Gitea Sys4" as gitea {
Component "Dépôt nalc-server-mods" as depot_nalc
Component "Dépôt nalc_game" as depot_nalc_game
Component "Dépôt nalc-serveur" as depot_nalc_serveur
}
node "Serveur Gitlab de Minetest" as gitlab {
Component "Dépôt minetest" as depot_minetest
}
interface "https ou ssh" as intergitea
interface "https" as intergitlab
nalcserver ..> intergitea : utilise
nalcservermods ..> intergitea : utilise
nalc_game ..> intergitea : utilise
minetest ..> intergitlab : utilise
intergitea - gitea
intergitlab - gitlab
#+end_src
#+RESULTS:
[[file:architecture.png]]
Ne prenez pas peur par la complexité apparente du schéma, la pluspart des opérations que vous aurez à gérer se feront à travers les scripts qui vous faciliterons la tâche.
Nous reviendrons plus en détail sur certaines parties au moment opportun.
** Installation
*** Pré-requis
- Système d'exploitation : GNU/Linux avec interpréteur BASH,
- git,
- Librairies et dépendances de Minetest :
Consulter les pré-requis sur cette page : [[https://github.com/minetest/minetest/blob/master/README.md]]
*** Ce que je recommande pour avoir de bonnes performances
- *PostgreSQL* pour le backend de la MAP et des Utilisateurs.
- *Redis* pour le backend de la MAP est une bonne alternative, mais elle ne sera pas traitée dans ce guide. Cependant j'avais fait une vidéo d'installation d'un serveur Minetest avec le backend Redis disponible ici : [[https://www.youtube.com/watch?v=cz_-Q0Uct1c]]
- Utiliser les librairies fournis par le système plûtot que celle incluse avec Minetest, comme Luajit par exemple.
*** Créer un utilisateur dédié
Je recommande de créer un utilisateur dédié que nous nommerons "minetest" dans ce guide. Cela permettra une meilleure organisation ; et du point de vue sécurité c'est pas mal aussi.
Lancez un Terminal en root et entrez les commandes suivantes :
#+begin_example :src shell
# useradd -m -U minetest -s /bin/bash minetest
# passwd minetest
#+end_example
Maintenant vous pouvez suivre le reste du guide avec l'utilisateur minetest.
*** Télécharger les sources du serveur
Depuis un terminal nous allons rapatrier le code source du serveur avec git :
#+begin_example :src shell
cd ~
git clone --depth 1 https://sys4.fr/gitea/nalc/nalc-server.git
#+end_example
Après un court laps de temps, vous devriez avoir le répertoire /home/minetest/nalc-server créé dont le contenue est le suivant :
#+begin_src sh :exports results
ls -l ../..
#+end_src
#+RESULTS:
| total | 136 | | | | | | | |
| -rwxr-xr-x | 1 | sys4 | sys4 | 1101 | 7 | déc. | 14:33 | backup.sh |
| drwxr-xr-x | 3 | sys4 | sys4 | 4096 | 8 | déc. | 14:14 | doc |
| -rwxr-xr-x | 1 | sys4 | sys4 | 9650 | 8 | déc. | 01:14 | install.sh |
| -rw-r--r-- | 1 | sys4 | sys4 | 34570 | 7 | déc. | 14:33 | LICENSE |
| -rw-r--r-- | 1 | sys4 | sys4 | 10388 | 7 | déc. | 14:33 | minetest-1.0.conf |
| -rw-r--r-- | 1 | sys4 | sys4 | 10509 | 7 | déc. | 14:33 | minetest-1.1.conf |
| -rw-r--r-- | 1 | sys4 | sys4 | 10579 | 7 | déc. | 14:33 | minetest-dev.conf |
| -rw-r--r-- | 1 | sys4 | sys4 | 10509 | 7 | déc. | 14:33 | minetest-stable.conf |
| -rw-r--r-- | 1 | sys4 | sys4 | 261 | 7 | déc. | 14:33 | README.md |
| -rwxr-xr-x | 1 | sys4 | sys4 | 1468 | 7 | déc. | 14:33 | shutdown.sh |
| -rw-r--r-- | 1 | sys4 | sys4 | 691 | 7 | déc. | 14:33 | start.sh.example |
| -rwxr-xr-x | 1 | sys4 | sys4 | 7589 | 8 | déc. | 01:14 | upgrade.sh |
| drwxr-xr-x | 2 | sys4 | sys4 | 4096 | 7 | déc. | 14:33 | world |
| -rw-r--r-- | 1 | sys4 | sys4 | 62 | 7 | déc. | 14:33 | worldmt-1.0.conf |
| -rw-r--r-- | 1 | sys4 | sys4 | 85 | 7 | déc. | 14:33 | worldmt-1.1.conf |
*** Installer le serveur
Maintenant il nous faut mettre en place tout le nécessaires pour avoir un serveur fonctionnel comme illustré dans l'image 1 et dont le contenu doit ressembler à ça :
#+begin_src sh :exports results
ls -l ../../../tests/nalc-server
#+end_src
#+RESULTS:
| total | 172 | | | | | | | |
| -rwxr-xr-x | 1 | sys4 | sys4 | 1101 | 7 | déc. | 17:25 | backup.sh |
| drwxr-xr-x | 2 | sys4 | sys4 | 4096 | 7 | déc. | 17:25 | doc |
| -rwxr-xr-x | 1 | sys4 | sys4 | 11301 | 8 | déc. | 00:30 | install.sh |
| -rw-r--r-- | 1 | sys4 | sys4 | 34570 | 7 | déc. | 17:25 | LICENSE |
| drwxr-xr-x | 2 | sys4 | sys4 | 4096 | 7 | déc. | 17:51 | logs |
| drwxr-xr-x | 23 | sys4 | sys4 | 4096 | 8 | déc. | 00:31 | minetest |
| -rw-r--r-- | 1 | sys4 | sys4 | 10388 | 7 | déc. | 17:25 | minetest-1.0.conf |
| -rw-r--r-- | 1 | sys4 | sys4 | 10509 | 7 | déc. | 17:25 | minetest-1.1.conf |
| -rw-r--r-- | 1 | sys4 | sys4 | 10579 | 7 | déc. | 17:25 | minetest-dev.conf |
| -rw-r--r-- | 1 | sys4 | sys4 | 10515 | 8 | déc. | 00:46 | minetest-stable.conf |
| drwxr-xr-x | 5 | sys4 | sys4 | 4096 | 7 | déc. | 23:48 | nalc_game |
| drwxr-xr-x | 144 | sys4 | sys4 | 4096 | 7 | déc. | 23:49 | nalc-server-mods |
| -rw-r--r-- | 1 | sys4 | sys4 | 261 | 7 | déc. | 17:25 | README.md |
| -rwxr-xr-x | 1 | sys4 | sys4 | 1498 | 7 | déc. | 17:35 | shutdown.sh |
| -rwxr--r-- | 1 | sys4 | sys4 | 729 | 7 | déc. | 18:08 | start.sh |
| -rwxr--r-- | 1 | sys4 | sys4 | 722 | 7 | déc. | 17:53 | start.sh~ |
| -rw-r--r-- | 1 | sys4 | sys4 | 691 | 7 | déc. | 17:25 | start.sh.example |
| -rwxr-xr-x | 1 | sys4 | sys4 | 7589 | 8 | déc. | 00:12 | upgrade.sh |
| drwxr-xr-x | 2 | sys4 | sys4 | 4096 | 7 | déc. | 17:25 | world |
| -rw-r--r-- | 1 | sys4 | sys4 | 8028 | 8 | déc. | 00:41 | world.mt |
| -rw-r--r-- | 1 | sys4 | sys4 | 62 | 7 | déc. | 17:25 | worldmt-1.0.conf |
| -rw-r--r-- | 1 | sys4 | sys4 | 85 | 7 | déc. | 17:25 | worldmt-1.1.conf |
| -rw-r--r-- | 1 | sys4 | sys4 | 85 | 8 | déc. | 00:41 | world.mt.bak |

16
doc/Guide/out.txt Normal file
View File

@ -0,0 +1,16 @@
total 136
-rwxr-xr-x 1 sys4 sys4 1101 7 déc. 14:33 backup.sh
drwxr-xr-x 3 sys4 sys4 4096 8 déc. 14:14 doc
-rwxr-xr-x 1 sys4 sys4 9650 8 déc. 01:14 install.sh
-rw-r--r-- 1 sys4 sys4 34570 7 déc. 14:33 LICENSE
-rw-r--r-- 1 sys4 sys4 10388 7 déc. 14:33 minetest-1.0.conf
-rw-r--r-- 1 sys4 sys4 10509 7 déc. 14:33 minetest-1.1.conf
-rw-r--r-- 1 sys4 sys4 10579 7 déc. 14:33 minetest-dev.conf
-rw-r--r-- 1 sys4 sys4 10509 7 déc. 14:33 minetest-stable.conf
-rw-r--r-- 1 sys4 sys4 261 7 déc. 14:33 README.md
-rwxr-xr-x 1 sys4 sys4 1468 7 déc. 14:33 shutdown.sh
-rw-r--r-- 1 sys4 sys4 691 7 déc. 14:33 start.sh.example
-rwxr-xr-x 1 sys4 sys4 7589 8 déc. 01:14 upgrade.sh
drwxr-xr-x 2 sys4 sys4 4096 7 déc. 14:33 world
-rw-r--r-- 1 sys4 sys4 62 7 déc. 14:33 worldmt-1.0.conf
-rw-r--r-- 1 sys4 sys4 85 7 déc. 14:33 worldmt-1.1.conf

60
doc/vegetation_gen.org Normal file
View File

@ -0,0 +1,60 @@
| Nom arbre | Températures | Humidité | Altitude | Biome |
|----------------+--------------+----------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------|
| Apple tree | 5 - 32°C | 60-100 | 48-200 | *Tempéré froid humide, deciduous_forest, mixed_mushroom_cold, coniferous_forest |
| Oak | | | | *Méditéranéen, deciduous_forest, rainforest, savanna, mixed_mushroom_hot, mixed_mushroom_deciduous, mixed_mushroom_cold, coniferous_forest, grassland |
| sequoia | | | 150-210 | Coniferous_forest |
| palm | 75 | | | Desert_Ocean, Sandstone_desert_ocean, *Méditeranean_shore, Deciduous_forest_shore, |
| date | 75 | | | Desert_Ocean, Sandstone_desert_ocean, *Méditeranean_shore, Deciduous_forest_shore, |
| Cedar | | | 70-100 | coniferous_forest, mediterranean |
| rubber | | | | rainforest, mixed_mushroom_hot, savanna_shore |
| willow | | | | Grassland, deciduous_forest, coniferous_forest, mixed_mushroom_cold |
| birch | | | | Grassland, deciduous_forest, coniferous_forest, mixed_mushroom_cold |
| spruce | | | 40-200(tempéré) | Taiga, coniferous_forest, mixed_mushroom_cold, pine_forest, snow_biome_forest, snow_biome_lush |
| jungletree | | | | À supprimer. |
| fir | | | 40-200(tempéré) | Taiga, coniferous_forest, mixed_mushroom_cold, pine_forest, snow_biome_forest |
| poplar(_small) | | | | Grassland, deciduous_forest, coniferous_forest, mixed_mushroom_cold, |
| Biome | Arbres |
|--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| snow_biome_alpine | - |
| snow_biome_forest | spruce, fir(SPWN; très rare) |
| taiga | spruce, fir(SPWN; très rare) |
| snow_biome_lush | spruce, fir(ALT: 0-31000) |
| pine_forest | Cedar,spruce,fir |
| mixed_mushroom_hot | rubber |
| Mushroom_forest | - |
| Mixed Mushroom Deciduous | AppleTree(ALT:48-200,SPAWN:rare); Oak; Cedar(ALT:100 SPAWN:rare); willow(SPAWN: rare); birch(SPAWN: rare); Spruce&fir(ALT: 40-200, SPAWM: rare) Poplar_small(SPWN: rare) |
| deciduous Forest | AppleTree(ALT:48-200,SPAWN:rare); Oak; Cedar(ALT:100 SPAWN:rare); willow(SPAWN: rare); birch(SPAWN: rare); Spruce&fir(ALT: 40-200, SPAWM: rare) Poplar_small(SPWN: rare) |
| Mixed Mushroom Cold | AppleTree(ALT:48-200,SPAWN:très rare); Oak(SPWN: rare); Cedar(ALT:50 SPAWN:rare); birch; Spruce&fir |
| Coniferous_Forest | AppleTree(ALT:48-200,SPAWN:très rare); Oak(SPWN: rare); Cedar(ALT:50 SPAWN:rare); birch; Spruce&fir |
| Grassland | Birch(SPAWN: rare), oak,apple(SPAWN: tres rare) |
| Desert | Palm,Date(ALT:0-3) |
| Desert sandstone | Palm,Date(ALT:0-3) |
| Desert ocean | Palm,Date |
| Sandstone desert ocean | Palm,Date |
| Savanna | rubber(SPWN: Rare ALT: 0-5) |
| Savanna Shore | Datier, rubber(SPWN: Rare ALT: 0-5) |
| Rainforest | Rubber |
| Rainforest_swamp | Palm, rubber |
| Mediterranean | Cedar(ALT: 100), oak(ALT: 10-80: SPAWN: rare mais par paquets) |
| Mediterranean shore | Datier |
| Deciduous Cold | Poplar,poplar_small,willow |
| Deciduous Cold Humid | Poplar,poplar_small(SPAWN: dense), willow |
* Nouveaux biomes
- Biome méditéranéen
- Température : 77
- Humidité : 50
- Altitude : 3-50
- Biome méditéranéen plage
- Température : 77
- Humidité : 50
- Altitude : 0-3
- deciduous_cold
- Température : 55
- Humidité : 69
- 3-300
- deciduous_cold_humid
- Température : 55
- Humidité : 111

View File

@ -170,7 +170,7 @@ update_world() {
fi
if [[ $WORLD_FILE == "all" ]]; then
WORLD_FILE="news technic fbn fbnp bitchange christmas randommsg worldmt"
WORLD_FILE="moretrees news technic fbn fbnp bitchange christmas randommsg worldmt"
fi
for w_file in $WORLD_FILE; do
@ -178,6 +178,9 @@ update_world() {
local file_dest=""
local do_copy=1
case $w_file in
moretrees)
file_dest=$world_dest/moretrees_settings.txt
file=$world_repos/moretrees_settings-$BRANCH.txt;;
news)
file_dest=$world_dest/news.txt
file=$world_repos/news-$BRANCH.txt;;

View File

@ -0,0 +1,135 @@
-- Global configuration variables
-- Enable the various kinds of trees.
moretrees.enable_apple_tree = false
moretrees.enable_oak = false
moretrees.enable_sequoia = false
moretrees.enable_palm = false
moretrees.enable_date_palm = false
moretrees.enable_cedar = false
moretrees.enable_rubber_tree = false
moretrees.enable_willow = false
moretrees.enable_birch = false
moretrees.enable_spruce = false
moretrees.enable_jungle_tree = false
moretrees.enable_fir = false
moretrees.enable_poplar = false
moretrees.enable_beech = false
-- set this to true to make moretrees spawn saplings at mapgen time instead
-- of fully-grown trees, which will grow into full trees after a very short
-- delay. This reduces mapgen lag in some situations, and fixes situations
-- where the mapgen conflicts with the tree generator.
moretrees.spawn_saplings = true
-- Set this to true to allow defining stairs/slabs/etc. If Moreblocks is
-- installed, this will use that mod's Stairs Plus component. Otherwise, it
-- will use the default stairs mod in minetest_game, if present
moretrees.enable_stairs = true
-- If this variable is set to true, register fences for moretrees wood
moretrees.enable_fences = true
-- Set this to true if you want the plantlike drawtype for leaves, which
-- improves some peoples' framerates without resorting to making leaf nodes opaque.
-- Affects default leaves and default jungle leaves also.
moretrees.plantlike_leaves = true
-- Enable this if you want moretrees to redefine default apples so that they
-- fall when leaves decay/are dug.
moretrees.enable_redefine_apple = true
-- Set this to true to enable leaf decay of all trees except the default ones.
moretrees.enable_leafdecay = true
-- various related settings to configure leaf decay.
moretrees.leafdecay_delay = 2
moretrees.leafdecay_chance = 5
moretrees.leafdecay_radius = 5
moretrees.palm_leafdecay_radius = 10
-- Change these settings if you want default trees to be gradually cut down
-- above the elevation where firs normally generate.
moretrees.firs_remove_default_trees = false
moretrees.firs_remove_interval = 2
moretrees.firs_remove_chance = 150
-- Cocos palm settings
moretrees.coconuts_regrow = true
moretrees.coconuts_convert_existing_palms = true -- Converting existing palm trees will make coconuts regrow on them as well
-- Else, they will only regrow on newly-spawned palms
-- However, conversion is not an exact science, and although an attempt is
-- made to detect whether a trunk belongs to an actual palm, some coconut trunks
-- and some coconuts may be incorrectly converted.
moretrees.coconut_flower_interval = 59
moretrees.coconut_flower_chance = 67
moretrees.coconut_grow_interval = 2 * moretrees.coconut_flower_interval * moretrees.coconut_flower_chance
-- Actual interval will randomly vary between 67% and 133% of this value
-- 2 * 59 * 67 ~ 2 hours. So flowers become coconuts in about 6 hours
moretrees.coconut_item_drop_ichance = 10 -- inverse probability of ripe coconuts dropping as items (instead of disappearing)
-- Date palm settings
-- Suggested configuration alternatives:
-- - Dates grow only when pollinated:
-- - Set dates_regrow_pollinated to true
-- - Set dates_regrow_unpollinated_percent to 0
-- - Dates grow without pollination. Pollination disabled:
-- - Set dates_regrow_pollinated to false
-- - Set dates_regrow_unpollinated_percent to some larger positive value, e.g. 95
-- - Dates grow, but more and faster if male flowers are nearby
-- - Set dates_regrow_pollinated to true
-- - Set dates_regrow_unpollinated_percent to some small positive value, e.g. 33
-- - Optional but recommended: Reduce the pollination distance, e.g. to 30
-- Note that it should not be necessary to disable pollination for performance
-- reasons. A lot of effort has gone into ensuring that date growing will not cause lag.
--
-- If lag is suspected, use the chat command '/dates_stats' to obtain the male dates
-- search time, as well as the counts of total number of searches requested and the
-- number of searches actually performed.
moretrees.dates_regrow_pollinated = true -- Enable pollination. If enabled, male trees are required for dates to grow.
-- If disabled, dates_regrow_unpollinated_percent must be non-zero for dates to regrow.
moretrees.dates_regrow_unpollinated_percent = 0 -- Percentage of female dates becoming dates without being pollinated.
-- If 0, dates_regrow_pollinated must be enabled for dates to grow.
moretrees.dates_female_percent = 57 -- Ratio of female to male trees - tune this to improve # of generated trees that actually bear fruit
-- ~57% gives near optimal results for groups of 3 random trees, while it is only slightly suboptimal
-- for groups of 2 and 4 random trees (~2% less fruit than optimal).
-- Optimal values per group size: 2: 50%, 3: 57.78%, 4: 63%, 5: 66.9%, 6: 69.9%, [...], 12: 79.8%
-- So 57% is optimal for small groups of trees. As larger groups have more female palms anyway, a
-- less than optimal proportion of female to male trees is not a problem.
moretrees.dates_pollination_distance = 120
moretrees.dates_blossom_search_time_treshold = 1000 -- If average male blossom search time (in microseconds) exceeds this, start limiting the search load.
moretrees.dates_blossom_search_iload = 10 -- Inverse fraction of CPU time that male blossom searching search may consume.
-- As searching a large area (radius: dates_pollination_distance/3 per attempt) can cause lag,
-- this limits the search frequency server-wide so that the impact on server lag is minimised
-- For personal servers, this can be set lower, or even to 1 or 0 (0 disables load limiting).
-- Obtain the current average search time using /dates_stats
moretrees.dates_flower_interval = 59
moretrees.dates_flower_chance = 181
moretrees.dates_grow_interval = 2 * moretrees.dates_flower_interval * moretrees.dates_flower_chance
-- As date palms have a high yield, don't grow dates too fast
-- The actual interval will vary randomly between 67% and 133% of this value.
-- 2 * 59 * 181 ~ 6 hours. So by default flowers become dates in about one (human) day.
moretrees.dates_item_drop_ichance = 10 -- inverse probability of ripe dates dropping as items (instead of disappearing)
-- Sapling settings
moretrees.sapling_interval = 100
moretrees.sapling_chance = 5
-- If this variable is set to true, drop leaves out as entities during leaf
-- decay, rather than just disappearing them.
moretrees.decay_leaves_as_items = false