Initial Commit
This commit is contained in:
parent
816b7d010d
commit
de9a5e60ad
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
_site
|
||||||
|
.directory
|
7
README.md
Normal file
7
README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
minetest_doc
|
||||||
|
============
|
||||||
|
|
||||||
|
Minetest Tutorials
|
||||||
|
|
||||||
|
|
||||||
|
Don't fork or clone, I am going to rebase all these commits into "Initial Commit"
|
6
_config.yml
Normal file
6
_config.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
name: Minetest Tutorial and Documentation
|
||||||
|
description: Simple and easy to understand tutorial book
|
||||||
|
author: rubenwardy and contributors
|
||||||
|
permalink: pretty
|
||||||
|
absolute_url: http://rubenwardy.github.io/minetest_doc
|
||||||
|
url: http://localhost:4000/minetest_doc
|
3
_includes/footer.html
Normal file
3
_includes/footer.html
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
14
_includes/header.html
Normal file
14
_includes/header.html
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>{% if page.title != "Minetest Tutorial" %}{{ page.title }} - {% endif %}Minetest Tutorials and Documentation</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="{{ site.url }}/static/style.css">
|
||||||
|
<link rel="stylesheet" href="{{ site.url }}/static/syntax.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<ul id="navbar">
|
||||||
|
<li><a href="{{ site.url }}/" class="title">Minetest Tutorials</a></li>
|
||||||
|
<li><a href="{{ site.url }}/started">1 - Getting Started</a></li>
|
||||||
|
</ul>
|
||||||
|
<div id="page">
|
3
_layouts/default.html
Normal file
3
_layouts/default.html
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{% include header.html %}
|
||||||
|
{{ content }}
|
||||||
|
{% include footer.html %}
|
3
_layouts/index.html
Normal file
3
_layouts/index.html
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{% include header.html %}
|
||||||
|
{{ content }}
|
||||||
|
{% include footer.html %}
|
29
index.md
29
index.md
@ -1,4 +1,27 @@
|
|||||||
Minetest Documentation
|
---
|
||||||
======================
|
title: Minetest Tutorial
|
||||||
|
permalink: index.html
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
|
||||||
* [Chapter One - Getting Started](started)
|
Minetest Tutorials and Documentation
|
||||||
|
====================================
|
||||||
|
|
||||||
|
What is this?
|
||||||
|
-------------
|
||||||
|
|
||||||
|
This online book will teach you how to create mods in easy chapters.
|
||||||
|
The chapters will explain a concept, give examples, and set tasks for you
|
||||||
|
to complete.
|
||||||
|
|
||||||
|
This documentation was created by the Minetest community in order to help
|
||||||
|
new modders gain a foothold.
|
||||||
|
|
||||||
|
Contribution
|
||||||
|
------------
|
||||||
|
|
||||||
|
You can contribute to this project on [GitHub](https://github.com/rubenwardy/minetest_doc).
|
||||||
|
It uses Jekyll to turn Markdown into a website.
|
||||||
|
|
||||||
|
Book written by rubenwardy and contributers.\\
|
||||||
|
License: [CC-BY-NC-SA 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)
|
||||||
|
118
started.md
Normal file
118
started.md
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
---
|
||||||
|
title: Chapter One - Getting Started
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
|
||||||
|
Chapter One – Getting Started
|
||||||
|
=============================
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
In this chapter we will learn how to create a mod's folder structure,
|
||||||
|
explore the modding API that Minetest has to offer, and learn how to use
|
||||||
|
it to create simple decorative mods.
|
||||||
|
|
||||||
|
### What you will need:
|
||||||
|
* A plain text editor (eg: NotePad+, ConTEXT, or GEdit)
|
||||||
|
* OR A Lua IDE such as Eclipse.
|
||||||
|
* A copy of Minetest in the 0.4 series. (eg: 0.4.10)
|
||||||
|
|
||||||
|
### Contents
|
||||||
|
* Mod Folders
|
||||||
|
* Mod Packs
|
||||||
|
* Dependencies
|
||||||
|
* Registering a simple node
|
||||||
|
|
||||||
|
Mod Folders
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Each mod has its own folder, where all its Lua code, textures, models and sounds are placed.
|
||||||
|
These folders need to be placed in a mod location, such as minetest/mods, and they can be
|
||||||
|
placed in mod packs: as explained below.
|
||||||
|
|
||||||
|
### Mod Folder Structure
|
||||||
|
Mod Name
|
||||||
|
- init.lua - the main scripting code file, which is run when the game loads.
|
||||||
|
- (optional) depends.txt - a list of mod names that needs to be loaded before this mod.
|
||||||
|
- (optional) textures/ - place images here, commonly in the format modname_itemname.png
|
||||||
|
- (optional) sounds/ - place sounds in here
|
||||||
|
- (optional) models/ - place 3d models in here
|
||||||
|
...and any other lua files to be included by init.lua
|
||||||
|
|
||||||
|
Only the init.lua file is required in a mod for it to run on game load, however the other
|
||||||
|
items are needed by some mods to perform its functionality.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
------------
|
||||||
|
|
||||||
|
The depends text file allows you to specify what mods this mod requires to run, and what
|
||||||
|
needs to be loaded before this mod.
|
||||||
|
|
||||||
|
depends.txt
|
||||||
|
modone
|
||||||
|
modtwo
|
||||||
|
modthree?
|
||||||
|
|
||||||
|
As you can see, each mod name is on its own line. The question mark after a mod name
|
||||||
|
means that it is not required for the mod to load, but if it is present,
|
||||||
|
then it needed to be loaded before this mod. Running your mod without having the
|
||||||
|
mods with names without a question mark above, such as ``modone``, will cause your mod to
|
||||||
|
be disabled, or if an earlier version of Minetest is used,
|
||||||
|
then the game will stop with an error message.
|
||||||
|
|
||||||
|
Mod Packs
|
||||||
|
---------
|
||||||
|
|
||||||
|
Mods can be grouped into mod packs, which are folders with the file modpack.txt in it
|
||||||
|
|
||||||
|
### Mod Pack Folder Structure
|
||||||
|
Mod Name
|
||||||
|
- modone/
|
||||||
|
- modtwo/
|
||||||
|
- modthree/
|
||||||
|
- modfour/
|
||||||
|
- Modpack.txt – signals that this is a mod pack, content does not matter
|
||||||
|
|
||||||
|
Example Time
|
||||||
|
------------
|
||||||
|
|
||||||
|
Are you confused? Don't worry, here is an example putting all of this together.
|
||||||
|
|
||||||
|
### Mod Folder
|
||||||
|
mymod/
|
||||||
|
- init.lua
|
||||||
|
- depends.txt
|
||||||
|
|
||||||
|
|
||||||
|
### depends.txt
|
||||||
|
default
|
||||||
|
|
||||||
|
### init.lua
|
||||||
|
{% highlight lua %}
|
||||||
|
print("This file will be run at load time!")
|
||||||
|
|
||||||
|
minetest.register_node("mymod:node",{
|
||||||
|
description = "This is a node",
|
||||||
|
tiles = {
|
||||||
|
"mymod_node.png",
|
||||||
|
"mymod_node.png",
|
||||||
|
"mymod_node.png",
|
||||||
|
"mymod_node.png",
|
||||||
|
"mymod_node.png",
|
||||||
|
"mymod_node.png"
|
||||||
|
},
|
||||||
|
groups = {cracky = 1}
|
||||||
|
})
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
Our mod has a name of "mymod". It has two files: init.lua and depends.txt.
|
||||||
|
The script prints a message and then registers a node – which will be explained in the next chapter.
|
||||||
|
The depends text file adds a dependency to the default mod, which is in minetest_game.
|
||||||
|
|
||||||
|
Questions
|
||||||
|
---------
|
||||||
|
|
||||||
|
* What is the minimum that a mod folder can contain?
|
||||||
|
* What language does Minetest use in its modding capability?
|
||||||
|
|
89
static/style.css
Normal file
89
static/style.css
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
html, body {
|
||||||
|
font-family: "Arial", sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
background: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page {
|
||||||
|
background: white;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 20px 20px 20px;
|
||||||
|
position: absolute;
|
||||||
|
left: 250px;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navbar {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
width: 250px;
|
||||||
|
top: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
display: block;
|
||||||
|
list-style: none;
|
||||||
|
background: #333;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navbar li {
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navbar li a {
|
||||||
|
display: block;
|
||||||
|
padding: 5px;
|
||||||
|
color: #ccc;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navbar li a:hover {
|
||||||
|
background: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#navbar li a.title {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 120%;
|
||||||
|
font-weight: bold;
|
||||||
|
background: #363;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navbar li a.section_title {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 110%;
|
||||||
|
border-bottom: 1px solid #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 2px;
|
||||||
|
background: #f0f0f0;
|
||||||
|
border: 1px solid #e0e0e0;
|
||||||
|
border-radius: 2px;
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
text-align: center;
|
||||||
|
margin: 10px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
border-bottom: 1px solid black;
|
||||||
|
margin: 40px 0 10px 0;
|
||||||
|
display: block;
|
||||||
|
padding: 0 0 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 105%;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 20px 0 10px 0;
|
||||||
|
}
|
63
static/syntax.css
Normal file
63
static/syntax.css
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/* https://github.com/mojombo/tpw/blob/master/css/syntax.css -MIT licensed*/
|
||||||
|
|
||||||
|
.highlight { background: #ffffff; }
|
||||||
|
.highlight .c { color: #999988; font-style: italic } /* Comment */
|
||||||
|
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
|
||||||
|
.highlight .k { font-weight: bold } /* Keyword */
|
||||||
|
.highlight .o { font-weight: bold } /* Operator */
|
||||||
|
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
|
||||||
|
.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
|
||||||
|
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
|
||||||
|
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
|
||||||
|
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
|
||||||
|
.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
|
||||||
|
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||||
|
.highlight .gr { color: #aa0000 } /* Generic.Error */
|
||||||
|
.highlight .gh { color: #999999 } /* Generic.Heading */
|
||||||
|
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
|
||||||
|
.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
|
||||||
|
.highlight .go { color: #888888 } /* Generic.Output */
|
||||||
|
.highlight .gp { color: #555555 } /* Generic.Prompt */
|
||||||
|
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||||
|
.highlight .gu { color: #aaaaaa } /* Generic.Subheading */
|
||||||
|
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
|
||||||
|
.highlight .kc { font-weight: bold } /* Keyword.Constant */
|
||||||
|
.highlight .kd { font-weight: bold } /* Keyword.Declaration */
|
||||||
|
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
|
||||||
|
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
|
||||||
|
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
|
||||||
|
.highlight .m { color: #009999 } /* Literal.Number */
|
||||||
|
.highlight .s { color: #d14 } /* Literal.String */
|
||||||
|
.highlight .na { color: #008080 } /* Name.Attribute */
|
||||||
|
.highlight .nb { color: #0086B3 } /* Name.Builtin */
|
||||||
|
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
|
||||||
|
.highlight .no { color: #008080 } /* Name.Constant */
|
||||||
|
.highlight .ni { color: #800080 } /* Name.Entity */
|
||||||
|
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
|
||||||
|
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
|
||||||
|
.highlight .nn { color: #555555 } /* Name.Namespace */
|
||||||
|
.highlight .nt { color: #000080 } /* Name.Tag */
|
||||||
|
.highlight .nv { color: #008080 } /* Name.Variable */
|
||||||
|
.highlight .ow { font-weight: bold } /* Operator.Word */
|
||||||
|
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
|
||||||
|
.highlight .mf { color: #009999 } /* Literal.Number.Float */
|
||||||
|
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
|
||||||
|
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
|
||||||
|
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
|
||||||
|
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
|
||||||
|
.highlight .sc { color: #d14 } /* Literal.String.Char */
|
||||||
|
.highlight .sd { color: #d14 } /* Literal.String.Doc */
|
||||||
|
.highlight .s2 { color: #d14 } /* Literal.String.Double */
|
||||||
|
.highlight .se { color: #d14 } /* Literal.String.Escape */
|
||||||
|
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
|
||||||
|
.highlight .si { color: #d14 } /* Literal.String.Interpol */
|
||||||
|
.highlight .sx { color: #d14 } /* Literal.String.Other */
|
||||||
|
.highlight .sr { color: #009926 } /* Literal.String.Regex */
|
||||||
|
.highlight .s1 { color: #d14 } /* Literal.String.Single */
|
||||||
|
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
|
||||||
|
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
|
||||||
|
.highlight .vc { color: #008080 } /* Name.Variable.Class */
|
||||||
|
.highlight .vg { color: #008080 } /* Name.Variable.Global */
|
||||||
|
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
|
||||||
|
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user