Fix typos
This commit is contained in:
parent
706d74427e
commit
de4f083a5b
@ -13,7 +13,7 @@
|
||||
|
||||
- hr: true
|
||||
|
||||
- title: Nodes, Items and Crafting
|
||||
- title: Nodes, Items, and Crafting
|
||||
num: 3
|
||||
link: chapters/nodes_items_crafting.html
|
||||
|
||||
|
@ -17,13 +17,13 @@ This is an essential skill when creating mods.
|
||||
|
||||

|
||||
|
||||
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. Mods can be grouped into mod packs, which are explained below.
|
||||
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. Mods can be grouped into mod packs which are explained below.
|
||||
|
||||
A "mod name" is used to refer to a mod. Each mod should have a unique mod name,
|
||||
which you can choose - a good mod name can describes what the mod does.
|
||||
Mod names can be make up of letters, numbers or underscores. The folder a mod is
|
||||
which you can choose - a good mod name describes what the mod does.
|
||||
Mod names can be made up of letters, numbers, or underscores. The folder a mod is
|
||||
in needs to be called the same as the mod name.
|
||||
|
||||
### Mod Folder Structure
|
||||
@ -35,12 +35,12 @@ in needs to be called the same as the mod name.
|
||||
- (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
|
||||
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 their functionality.
|
||||
|
||||
## Dependencies
|
||||
|
||||
The depends text file allows you to specify what mods this mod requires to run, and what
|
||||
The depends text file allows you to specify which mods this mod requires to run and what
|
||||
needs to be loaded before this mod.
|
||||
|
||||
**depends.txt**
|
||||
@ -54,12 +54,12 @@ As you can see, each modname is on its own line.
|
||||
Mod names with a question mark following them are optional dependencies.
|
||||
If an optional dependency is installed, it is loaded before the mod.
|
||||
However, if the dependency is not installed, the mod still loads.
|
||||
This is in contrast to normal dependencies, which will cause the current
|
||||
This is in contrast to normal dependencies which will cause the current
|
||||
mod not to work if the dependency is not installed.
|
||||
|
||||
## Mod Packs
|
||||
|
||||
Modpacks allow multiple mods to be packaged together, and move together.
|
||||
Modpacks allow multiple mods to be packaged together and be moved together.
|
||||
They are useful if you want to supply multiple mods to a player but don't
|
||||
want to make them download each one individually.
|
||||
|
||||
@ -106,5 +106,5 @@ minetest.register_node("mymod:node", {
|
||||
|
||||
Our mod has a name of "mymod". It has two text 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.\\
|
||||
The depends text file adds a dependency to the default mod which is in minetest_game.\\
|
||||
There is also a texture in textures/ for the node.
|
||||
|
@ -40,7 +40,7 @@ function ctf.post(team,msg)
|
||||
end
|
||||
{% endhighlight %}
|
||||
|
||||
For example, keywords in the above snippet are highlighted, such as if, then, end, return.
|
||||
For example, keywords in the above snippet are highlighted such as if, then, end, return.
|
||||
table.insert is a function which comes with Lua by default.
|
||||
|
||||
### Recommended Editors
|
||||
@ -93,11 +93,11 @@ a = a + 10
|
||||
print("Sum is "..result)
|
||||
{% endhighlight %}
|
||||
|
||||
Woah, what happened there? a, b and result are **variables**. They're like what
|
||||
Woah, what happened there? a, b, and result are **variables**. They're like what
|
||||
you get in mathematics, A = w * h. The equals signs are **assignments**, so
|
||||
"result" is set to a + b. Variable names can be longer than one character
|
||||
unlike in maths, as seen with the "result" variable. Lua is **case sensitive**.
|
||||
A is a different variable to a.
|
||||
unlike in mathematics, as seen with the "result" variable. Lua is **case sensitive**.
|
||||
A is a different variable than a.
|
||||
|
||||
The word "local" before they are first used means that they have local scope,
|
||||
I'll discuss that shortly.
|
||||
@ -189,8 +189,8 @@ end
|
||||
Programming is the action of talking a problem, such as sorting a list
|
||||
of items, and then turning it into steps that a computer can understand.
|
||||
|
||||
Teaching you the logical process of programming is beyond the scope of this book,
|
||||
however the following websites are quite useful in developing this:
|
||||
Teaching you the logical process of programming is beyond the scope of this book;
|
||||
however, the following websites are quite useful in developing this:
|
||||
|
||||
### Codecademy
|
||||
[Codecademy](http://www.codecademy.com/) is one of the best resources for learning to 'code',
|
||||
@ -277,8 +277,8 @@ one()
|
||||
two()
|
||||
{% endhighlight %}
|
||||
|
||||
Nil means **not initalised**. The variable hasn't been assigned a variable yet,
|
||||
doesn't exist or has been uninitialised (ie: set to nil)
|
||||
Nil means **not initalised**. The variable hasn't been assigned a value yet,
|
||||
doesn't exist, or has been uninitialised. (ie: set to nil)
|
||||
|
||||
The same goes for functions. Functions are variables of a special type.
|
||||
You should make functions as local as much as possible,
|
||||
@ -306,7 +306,7 @@ mymod.foo("foobar")
|
||||
|
||||
## Including other Lua Scripts
|
||||
|
||||
You can include Lua scripts from your mod, or another mod like this:
|
||||
You can include Lua scripts from your mod or another mod like this:
|
||||
|
||||
{% highlight lua %}
|
||||
dofile(minetest.get_modpath("modname") .. "/script.lua")
|
||||
@ -316,5 +316,5 @@ dofile(minetest.get_modpath("modname") .. "/script.lua")
|
||||
You won't be able to access them from any other scripts.
|
||||
|
||||
As for how you divide code up into files, it doesn't matter that much.
|
||||
The most important thing is your code is easy to read and edit.
|
||||
The most important thing is that your code is easy to read and edit.
|
||||
You won't need to use it for smaller projects.
|
||||
|
@ -77,7 +77,7 @@ minetest.register_node("mymod:diamond", {
|
||||
|
||||
## Airlike
|
||||
|
||||
These nodes are see through, and thus have no textures.
|
||||
These nodes are see through and thus have no textures.
|
||||
|
||||
{% highlight lua %}
|
||||
minetest.register_node("myair:air", {
|
||||
@ -181,7 +181,7 @@ minetest.register_node("default:water_source", {
|
||||
### FlowingLiquid
|
||||
|
||||
See default:water_flowing in the default mod in minetest_game, it is mostly
|
||||
the same as the above example
|
||||
the same as the above example.
|
||||
|
||||
## Glasslike
|
||||
|
||||
@ -278,9 +278,9 @@ TorchLike
|
||||
---------
|
||||
|
||||
TorchLike nodes are 2D nodes which allow you to have different textures
|
||||
depending on whether they are placed against a wall, on the floor or on the ceiling.
|
||||
depending on whether they are placed against a wall, on the floor, or on the ceiling.
|
||||
|
||||
TorchLike nodes are not restricted to torches, you could use the for switches or other
|
||||
TorchLike nodes are not restricted to torches, you could use them for switches or other
|
||||
items which need to have different textures depending on where they are placed.
|
||||
|
||||
{% highlight lua %}
|
||||
@ -353,8 +353,7 @@ create node boxes by dragging the edges, it is more visual than doing it by hand
|
||||
|
||||
### Wallmounted Nodebox
|
||||
|
||||
Sometimes you want different nodeboxes for when it is place on the floor, wall and
|
||||
ceiling, like with torches.
|
||||
Sometimes you want different nodeboxes for when it is placed on the floor, wall, or ceiling like with torches.
|
||||
|
||||
{% highlight lua %}
|
||||
minetest.register_node("default:sign_wall", {
|
||||
|
@ -26,8 +26,8 @@ You may use metadata to store:
|
||||
* progress on crafting (such as in a furnace).
|
||||
* who owns the node (such as in a locked chest).
|
||||
|
||||
The node's type, light levels
|
||||
and orientation are not stored in the metadata, but are rather part
|
||||
The node's type, light levels,
|
||||
and orientation are not stored in the metadata, but rather are part
|
||||
of the data itself.
|
||||
|
||||
Metadata is stored in a key value relationship.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Nodes, Items and Crafting
|
||||
title: Nodes, Items, and Crafting
|
||||
layout: default
|
||||
root: ../
|
||||
---
|
||||
@ -19,15 +19,15 @@ and create craft recipes.
|
||||
|
||||
## Item Strings
|
||||
|
||||
Each item, whether that be a node, craftitem, tool or entity, has an item string.\\
|
||||
Each item, whether that be a node, craftitem, tool, or entity, has an item string.\\
|
||||
This is sometimes referred to as registered name or just name.
|
||||
A string in programming terms is a piece of text.
|
||||
|
||||
modname:itemname
|
||||
|
||||
The modname is the name of the folder your mod is in.
|
||||
You may call the itemname any thing you like, however it should be relevant to
|
||||
what the item is, and it can't already be registered.
|
||||
You may call the itemname anything you like; however, it should be relevant to
|
||||
what the item is and it can't already be registered.
|
||||
|
||||
### Overriding
|
||||
|
||||
@ -60,13 +60,13 @@ minetest.register_craftitem("mymod:diamond_fragments", {
|
||||
})
|
||||
{% endhighlight %}
|
||||
|
||||
Item definitions like seen above are usually made up of an unique
|
||||
Item definitions like seen above are usually made up of a unique
|
||||
[item string](#item-strings) and a definition table. The definition table
|
||||
contains attributes which affect the behaviour of the item.
|
||||
|
||||
### Foods
|
||||
|
||||
Foods are items that cure health. To create a food item, you need to define the on_use property like this:
|
||||
Foods are items that cure health. To create a food item you need to define the on_use property like this:
|
||||
|
||||
{% highlight lua %}
|
||||
minetest.register_craftitem("mymod:mudpie", {
|
||||
@ -77,7 +77,7 @@ minetest.register_craftitem("mymod:mudpie", {
|
||||
{% endhighlight %}
|
||||
|
||||
The number supplied to the minetest.item_eat function is the number of hit points that are healed by this food.
|
||||
Two hit points make one heart, and because there are 10 hearts there are 20 hitpoints.
|
||||
Two hit points make one heart and because there are 10 hearts there are 20 hitpoints.
|
||||
Hitpoints don't have to be integers (whole numbers), they can be decimals.
|
||||
|
||||
Sometimes you may want a food to be replaced with another item when being eaten,
|
||||
@ -125,11 +125,11 @@ mod, you should consider using minetest.register_on_item_eat
|
||||
## Registering a basic node
|
||||
|
||||
In Minetest, a node is an item that you can place.
|
||||
Most nodes are 1m x 1m x 1m cubes, however the shape doesn't
|
||||
Most nodes are 1m x 1m x 1m cubes; however, the shape doesn't
|
||||
have to be a cube - as we will explore later.
|
||||
|
||||
Let's get onto it. A node's definition table is very similar to a craftitem's
|
||||
definition table, however you need to set the textures for the faces of the cube.
|
||||
definition table; however, you need to set the textures for the faces of the cube.
|
||||
|
||||
{% highlight lua %}
|
||||
minetest.register_node("mymod:diamond", {
|
||||
@ -267,7 +267,7 @@ minetest.register_craft({
|
||||
|
||||
As you can see from this example, the only real difference in the code
|
||||
is that the recipe is just a single item, compared to being in a table
|
||||
(between braces). They also have an optional "cooktime" parameter, which
|
||||
(between braces). They also have an optional "cooktime" parameter which
|
||||
defines how long the item takes to cook. If this is not set it defaults to 3.
|
||||
|
||||
The recipe above works when the coal block is in the input slot,
|
||||
@ -288,14 +288,14 @@ minetest.register_craft({
|
||||
{% endhighlight %}
|
||||
|
||||
They don't have an output like other recipes, but they have a burn time
|
||||
which defines how long they will last as fuel, in seconds.
|
||||
which defines how long they will last as fuel in seconds.
|
||||
So, the diamond is good as fuel for 300 seconds!
|
||||
|
||||
## Groups
|
||||
|
||||
Items can be members of many groups, and groups can have many members.
|
||||
Items can be members of many groups and groups can have many members.
|
||||
Groups are usually identified using `group:group_name`
|
||||
There are several reason you use groups.
|
||||
There are several reasons you use groups.
|
||||
|
||||
Groups can be used in crafting recipes to allow interchangeability
|
||||
of ingredients. For example, you may use group:wood to allow any wood
|
||||
|
Loading…
x
Reference in New Issue
Block a user