1
0
mirror of https://gitlab.com/4w/void.git synced 2024-12-28 03:40:33 +01:00

Initial commit

This commit is contained in:
Dirk Sohler 2020-08-25 19:36:40 +02:00
commit 6ea5a9526d
No known key found for this signature in database
GPG Key ID: B9751241BD7D4E1A
11 changed files with 140 additions and 0 deletions

21
LICENSE.txt Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 “Linuxdirk”
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

58
README.md Normal file
View File

@ -0,0 +1,58 @@
*Void A Game That Contains Nothing*
This game for Minetest was reduced to the bare minimum of files and configuration. It contains quite literally “nothing”. It registers no more items than the essentially needed nodes and the hand.
The game is not meant for playing (well, of course you can but there is nothing fun to do except digging the three essential nodes and placing them again). The purpose of this game is to test mods in an absolutely “clean” environment with absolutely no “3rd-party” mods or APIs provided by such mods.
## Contents
### Game Files
Some necessary game files are used.
* `game.conf` Sets the human-readable name of the game as per Minetest API
* `README.md` This document
* `LICENSE.txt` Licensing information for the whole game including all the mods
* `mods/void_essential` This mod adds essential things for properly running a map generator
* `mods/void_hand` This mod registers the “hand” tool for proper interaction with nodes (i.e. node breaking)
### Void Essential Mod
The `void_essential` mod contains all that is needed for the map generator to create a usable world for testing mods. The following items and nodes are registered by that mod.
* `void_essential:stone` aliased to `mapgen_stone` This is an essential node used by map generators to generate the terrain. Without that node you would fall all the way down to the bottom of the world and could not place anything on ground, because there literally is no ground
* `void_essential:water_source` aliased to `mapgen_water_source` Same as with the stone node the water source is one of the essential nodes that are used by map generators to generate the terrain. Without this node, all bodies of water would not be existent. The registered node does not have ANY water properties. It does not spread out, you cannot swim in it, you cannot see through it. IT basically is just a node named “water”
* `void_essential:river_water_source` aliased to `mapgen_river_water_source` This is exactly the same as with the other water source node and is also one of the essential map generator nodes that need to be registered in order to have proper terrain generation.
All nodes have the only group `oddly_breakable_by_hand = 3` set. The nodes also have `is_ground_content = true` set so the map generator can carve through them when generating caves, etc.
The mod also provides three simple textures.
* `void_essential_stone.png` for the essential stone node
* `void_essential_water_source.png` for the essential water source node
* `void_essential_river_water_source.png` for the essential river water source node
This mod uses the bare minimum that is needed for mods.
### Void Hand Mod
`void_hand` registers the hand tool is not technically needed to generate terrain and entering a world but not having it testing would become unnecessary complicated because the unconfigured hand does not even allow to break nodes that are configured to be *breakable by hand*.
* `:` The “hand tool” registration. Tool capabilities are identical to the capabilities used by *Minetest Game* because it was seen as default since most of the time. The `wield_scale` was slightly changed (`{x = 0.5, y = 1, z = 4}` instead of `{x = 1, y = 1, z = 2.5}`) which only results in visual changes.
This mod also adds a simple texture.
* `void_hand_hand.png` for the registered “hand tool”
This mod also uses the bare minimum that is needed for mods.
## Usage
To use this game simply switch to the game in the client and create a new world. You can use all standards compliant map generators with all of the settings. Except the three essential nodes (stone, water, river water) and the “hand tool” nothing is registered or loaded, or provided. Youll have a pure, absolutely independent, bare minimum version of a game.
In order to test your mods simply configure the created world and add the mods as needed for testing. Then start the world and see whats happening. Since there is no creative inventory turning on creative mode does not change the Minetest-provided default inventory. You need a mod for that or use the `/giveme` command.
## Legal Information
* All code and all documentation of this game and all code and all documentation of all mods of this game are are licensed under the *MIT license*.
* All media files of the game and all media files in all of the games mods are licensed under the *Creative Commons Attribution 4.0 International* license (*CC BY 4.0*).

1
game.conf Normal file
View File

@ -0,0 +1 @@
name = Void (contains nothing)

View File

@ -0,0 +1,29 @@
local register_node = minetest.register_node
local register_alias = minetest.register_alias
register_node('void_essential:stone', {
description = 'Essential node for mapgen alias “mapgen_stone”',
tiles = { 'void_essential_stone.png' },
groups = { oddly_breakable_by_hand = 3 },
is_ground_content = true
})
register_node('void_essential:water_source', {
description = 'Essential node for mapgen alias “mapgen_water_source”',
tiles = { 'void_essential_water_source.png' },
groups = { oddly_breakable_by_hand = 3 },
is_ground_content = true
})
register_node('void_essential:river_water_source', {
description = 'Essential node for mapgen alias “mapgen_river_water_source”',
tiles = { 'void_essential_river_water_source.png' },
groups = { oddly_breakable_by_hand = 3 },
is_ground_content = true
})
register_alias('mapgen_stone', 'void_essential:stone')
register_alias('mapgen_water_source', 'void_essential:water_source')
register_alias('mapgen_river_water_source', 'void_essential:river_water_source')

View File

@ -0,0 +1 @@
name = void_essential

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 B

29
mods/void_hand/init.lua Normal file
View File

@ -0,0 +1,29 @@
local register_item = minetest.register_item
register_item(':', {
type = 'none',
wield_image = 'void_hand_hand.png',
wield_scale = {x = 0.5, y = 1, z = 4},
tool_capabilities = {
full_punch_interval = 0.9,
max_drop_level = 0,
groupcaps = {
crumbly = {
times = {[2] = 3.00, [3] = 0.70},
uses = 0,
maxlevel = 1,
},
snappy = {
times = {[3] = 0.40},
uses = 0,
maxlevel = 1,
},
oddly_breakable_by_hand = {
times = {[1] = 3.50, [2] = 2.00, [3] = 0.70},
uses = 0,
},
},
damage_groups = {fleshy = 1},
}
})

1
mods/void_hand/mod.conf Normal file
View File

@ -0,0 +1 @@
name = void_hand

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B