From d0ca7ac024201c6caf7f83ecffcd633ad34c1e37 Mon Sep 17 00:00:00 2001
From: poikilos <7557867+poikilos@users.noreply.github.com>
Date: Thu, 11 Apr 2019 23:17:14 -0400
Subject: [PATCH] move additional modding info to Modding section of webapp
---
webapp/views/pages/getting-started.ejs | 198 +--------------------
webapp/views/pages/modding.ejs | 230 +++++++++++++++++++++++--
2 files changed, 218 insertions(+), 210 deletions(-)
diff --git a/webapp/views/pages/getting-started.ejs b/webapp/views/pages/getting-started.ejs
index 9e9dbcf..84747f2 100644
--- a/webapp/views/pages/getting-started.ejs
+++ b/webapp/views/pages/getting-started.ejs
@@ -221,202 +221,8 @@ games, and your server uses ENLIVEN, consider visiting the
Minetest - Feedback Forum issue on the EnlivenMinetest GitHub
project. Otherwise, contact a moderator of your server (you can still
visit the link to get an idea of what mods are available for Minetest
-servers).
-
-
Modding
-
There are other modding books out there, but they often just rehash
-the documentation of Minetest without explaining much. The Modding
-section of the ENLIVEN Getting Started guide is here to help explain
-some of the assumptions and jargon.
-
-
Modding is easy in Minetest, because it is designed to be modded.
-The Minetest client downloads the "game" (collection of mods and
-modpacks) each time you connect to a server, so you don't have to
-install anything yourself. Automatic "game" downloading also means that
-each server can be very different, but load quickly, offering you many
-experiences to try easily.
-
Anyone can make a "game" using Minetest by
-writing mods or combining existing mods. Most "games" are based on
-games that are included in the Minetest/games directory--however, some
-games that differ drastically in gameplay can be made if one heavily
-edits or replaces mods that provide core functionality. Must of
-Minetest's core functionality is written in Lua.
-
-
Examples are a good way to get started. Since mods are scripted in
-Lua, every mod is open source. Almost every one is released under
-some sort of public license as well, which usually allows you to modify,
-reuse, and redistribute the code (usually under the condition that you
-credit the original author). The license file sometimes has no file
-extension, so you may have to pick a program to open it in Windows.
-You can open it (or any other text file) in Notepad. However, Geany
-is recommended since there is more than one undo step. For Lua
-programming, you can install ZeroBrane Studio (which is free) then
-install
-"MinetestIDE"
-which patches ZeroBrane Studio to provide code completion
-(a form of autocomplete with API usage tips for coding).
-
-
Every mod, at minimum, must have a file called init.lua. You
-should also add a description.txt describing it, a README.md or other
-readme file explaining more, and a LICENSE.md or other license file
-MIT License is used for Minetest itself, that is recommended. Some
-people consider using GPL v3 to prevent the program from being used
-on popular mobile devices, since the GPL v3 specifies that a user must
-be able to not only reprogram but also replace the program with their
-recompiled version--this may not be possible if your version shares a
-namespace and key with the application you are changing, and you may not
-have the same connectivity or functionality without using the same key.
-Therefore, components or mods using GPL v3 may prevent their inclusion
-into future version of Minetest "games", as several versions of
-Minetest (often by other names) are on Google Play and the iOS App
-Store.
-You can find the MIT License online and paste it into Notepad or Geany.
-Be sure to fill
-in your name and the year you created the mod. Having a license will
-make sure others feel safe using your mod and redistributing it if
-that's what you want.
-
-API means application programming interface. It is just the set of
-classes and/or functions you use to change the behavior of an existing
-program such as Minetest. Mods that add significant features, such as
-Mobs Redo or codermobs, usually have their own API. You can see all of
-the functions in the api.lua file if the author has followed naming
-conventions and placed public features there. In addition, many mods
-have a api.txt or similarly named files. You can start by opening up
-your minetest directory on your computer (after installing or otherwise
-installing Minetest) and doing a search for api, or just open the
-following files depending on what you want to do:
-
-Remember, you can always look at examples as well. You can find a mod
-that does something similar to what you want, looking at all of the .lua
-files in a mod like that may help.
-
-
Changing Existing Mods
-
A public license allows you to change and rerelease the mod,
-in addition to just being "open source." Many
-mods are on GitHub, GitLab, or notabug.org to allow easy
-forking. Forking is when someone other than the project owner
-makes improvements or fixes (often forking implies keeping it separate
-and not having your changes pulled in to the project owner's version).
-If the changes
-are applicable to everyone, you would usually fork it by clicking "fork"
-which allows you to download your own copy of the mod with "GitHub
-Desktop" for GitHub on Windows or a public licensed program like "Git
-Cola." Then you would make or paste in your changes, go back to the
-program and stage all tracked and untracked changes (not required on
-GitHub Desktop), name the commit, click commit, then click push. Then
-you can go back to the repository online where you got the mod and click
-"pull request" comparing across forks to the "head" from your
-repository, allowing the owner to "accept" the request or comment on
-changes you need to make or regretfully decline. Usually pull requests
-are preceeded by discussion, often at an issue on the issue tracker.
-Unless you are fixing something, you likely will have to present
-something the project owner already wants or is trivial but helpful.
-If the owner declines,
-you can always keep your repository and use and distribute your version
-of the mod if the license allows that. In some cases, you can instead
-just make a mod that overrides an existing mod--that would require
-putting the mod in depends.txt, clearing crafting recipes, and other
-similar steps--see
-github.com/poikilos/homedecor_ua for an example.
-
-
Craftitems and Nodes
-A node is drawn as a block, 3d mesh, or other drawtype and
-is placeable. A craftitem can't be placed, so the only way to get rid
-of it is to drop it, and like other things dropped it will become a
-floating sprite waiting to be picked up by clicking. There are also
-other types of entities in Minetest such as mobs and particles.
-All items that aren't nodes are called craftitems even if they aren't
-used in recipes. You can use the name of a node or craftitem when
-defining a crafting recipe. However, you must depend on the mod being
-used to ensure that it is loaded before your mod, if the item comes
-from a different mod. You can depend on another mod by adding its name
-to the depends.txt file in your mod.
-
Mobs
-Creating passive or hostile Non-Player Characters or Enemy Characters
-requires a mob api such as Simple Mobs, Mobs Redo, or codermobs
-which share anestry in that order. Codermobs is included in Bucket_Game
-and hence new versions of ENLIVEN. Some other mob frameworks include:
-mobf, Jordan4Ibanez' OpenAI, and others.
-
Codermobs
-Bucket_Game (the basis for ENLIVEN) has codermobs as the modding
-framework. It is a general purpose API based on Mobs Redo but with
-additional features and fixes. If you want to test your mob or do
-performance testing, you can spawn one or more mobs with one command:
-
- "/se" (or "/spawnentity") now supports all of the following modes.
- This feature will show up in the next snapshot. For now, you can see
- it working in the online copy of Wonder World.
-
- /se Ent
- /se Ent Num
- /se Ent Pos
- /se Ent Pos Num
- /se Ent Num Pos
-
- For example: /se codermobs:badger 5
-
- The Num parameter is presently limited to 10. The limit may be increased
- or decreased at a later date.
-
- Note: Spaces are permitted, though optional, before or after commas in
- positions.
-
- -OldCoder
-
-
-
Creating New Ores
-Creating new ores or other blocks may be confusing after you learn the
-API. If you want about 48 blocks before you find another cluster of
-your ore, then the clust_scarcity should be 48*48*48 since the game is
-3D. The chance of finding a cluster is 1 out of the clust_scarcity
-number. The cluster size (clust_size) only affects the size of the
-"vein" (though technically there are multiple shapes of clusters allowed
-and vein is not recommended since it is hundreds of times slower).
-Minetest uses the generic term cluster to refer to all patterns of ore
-deposits. The number of ores in the cluster is determined by
-clust_num_ores. If your clust_size is 3, then that would be a 3*3*3
-cube (but you just specify 3, not 27 there) and the maximum number of
-ores you could set for clust_num_ores is 27, though that is not
-recommended because then the person would find a 3*3*3 area that is
-completely ore (that would give the person 27 ore each time they found
-a cluster). Generally, the ore is a node (drawn as a block) and the gem
-or metal is a craftitem (drawn as a sprite). You normally should set the
-drop of the ore to a separate craftitem (however, if it is something
-you have to smelt such as a metal, you could drop the ore node, then
-provide a "cooking" crafting recipe to get the metal).
-
the absheight option should only be used for ores that should appear
-in mountains. It forces an ore that occurs in a negative range to also
-appear in the corresponding positive range. Another confusing parameter
-of the register_ore function is y_min.
-Most programmers are more concerned with y_max, which is how deep a
-player must dig to have a chance of mining the ore.
-y_min is the value below which the
-ore stops. Sometimes people set this to a very low number that normally
-won't be reached, such as -31000. This number may be useful for certain
-cases where an ore shouldn't occur below a certain point, such as amber
-(all nodes generated in this way are called ores in Minetest even if
-they are not technically a metal or mineral ore and even if they
-cannot be smelted nor drop a mineral--they still use the
-minetest.register_ore function).
+servers). Check out the Modding section as well, and you may be able to
+help more than you think!