-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
BuildTools
committed
Oct 26, 2016
1 parent
d2aea2a
commit 6f98bb6
Showing
487 changed files
with
13,498 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,8 @@ | ||
# MineFix | ||
|
||
MineFix is a project that tries to (slowly) implement all missing features from the game [Minecraft](https://minecraft.net) to [Minetest](https://minetest.net). It does this by adding new mods that supply missing blocks and items, and removing non-Minecraft features from the base Minetest game. | ||
|
||
## Installation instructions | ||
|
||
Copy or clone this repository to `minetestdirectory/games/minefix`. | ||
Now go into the `minefix/mods` directory and read every README.md for every mod starting with `minefix` in the name for any further installation instructions. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
name = Minefix |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
Minetest Game mod: beds | ||
======================= | ||
See license.txt for license information. | ||
|
||
Authors of source code | ||
---------------------- | ||
Originally by BlockMen (MIT) | ||
Various Minetest developers and contributors (MIT) | ||
|
||
Authors of media (textures) | ||
--------------------------- | ||
BlockMen (CC BY-SA 3.0) | ||
|
||
This mod adds a bed to Minetest which allows to skip the night. | ||
To sleep, rightclick the bed. If playing in singleplayer mode the night gets skipped | ||
immediately. If playing multiplayer you get shown how many other players are in bed too, | ||
if all players are sleeping the night gets skipped. The night skip can be forced if more | ||
than 50% of the players are lying in bed and use this option. | ||
|
||
Another feature is a controlled respawning. If you have slept in bed (not just lying in | ||
it) your respawn point is set to the beds location and you will respawn there after | ||
death. | ||
You can disable the respawn at beds by setting "enable_bed_respawn = false" in | ||
minetest.conf. | ||
You can disable the night skip feature by setting "enable_bed_night_skip = false" in | ||
minetest.conf or by using the /set command in-game. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
|
||
local reverse = true | ||
|
||
local function destruct_bed(pos, n) | ||
local node = minetest.get_node(pos) | ||
local other | ||
|
||
if n == 2 then | ||
local dir = minetest.facedir_to_dir(node.param2) | ||
other = vector.subtract(pos, dir) | ||
elseif n == 1 then | ||
local dir = minetest.facedir_to_dir(node.param2) | ||
other = vector.add(pos, dir) | ||
end | ||
|
||
if reverse then | ||
reverse = not reverse | ||
minetest.remove_node(other) | ||
nodeupdate(other) | ||
else | ||
reverse = not reverse | ||
end | ||
end | ||
|
||
function beds.register_bed(name, def) | ||
minetest.register_node(name .. "_bottom", { | ||
description = def.description, | ||
inventory_image = def.inventory_image, | ||
wield_image = def.wield_image, | ||
drawtype = "nodebox", | ||
tiles = def.tiles.bottom, | ||
paramtype = "light", | ||
paramtype2 = "facedir", | ||
is_ground_content = false, | ||
stack_max = 1, | ||
groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 1}, | ||
sounds = default.node_sound_wood_defaults(), | ||
node_box = { | ||
type = "fixed", | ||
fixed = def.nodebox.bottom, | ||
}, | ||
selection_box = { | ||
type = "fixed", | ||
fixed = def.selectionbox, | ||
}, | ||
|
||
on_place = function(itemstack, placer, pointed_thing) | ||
local under = pointed_thing.under | ||
local pos | ||
if minetest.registered_items[minetest.get_node(under).name].buildable_to then | ||
pos = under | ||
else | ||
pos = pointed_thing.above | ||
end | ||
|
||
if minetest.is_protected(pos, placer:get_player_name()) and | ||
not minetest.check_player_privs(placer, "protection_bypass") then | ||
minetest.record_protection_violation(pos, placer:get_player_name()) | ||
return itemstack | ||
end | ||
|
||
local node_def = minetest.registered_nodes[minetest.get_node(pos).name] | ||
if not node_def or not node_def.buildable_to then | ||
return itemstack | ||
end | ||
|
||
local dir = minetest.dir_to_facedir(placer:get_look_dir()) | ||
local botpos = vector.add(pos, minetest.facedir_to_dir(dir)) | ||
|
||
if minetest.is_protected(botpos, placer:get_player_name()) and | ||
not minetest.check_player_privs(placer, "protection_bypass") then | ||
minetest.record_protection_violation(botpos, placer:get_player_name()) | ||
return itemstack | ||
end | ||
|
||
local botdef = minetest.registered_nodes[minetest.get_node(botpos).name] | ||
if not botdef or not botdef.buildable_to then | ||
return itemstack | ||
end | ||
|
||
minetest.set_node(pos, {name = name .. "_bottom", param2 = dir}) | ||
minetest.set_node(botpos, {name = name .. "_top", param2 = dir}) | ||
|
||
if not minetest.setting_getbool("creative_mode") then | ||
itemstack:take_item() | ||
end | ||
return itemstack | ||
end, | ||
|
||
on_destruct = function(pos) | ||
destruct_bed(pos, 1) | ||
end, | ||
|
||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||
beds.on_rightclick(pos, clicker) | ||
return itemstack | ||
end, | ||
|
||
on_rotate = function(pos, node, user, mode, new_param2) | ||
local dir = minetest.facedir_to_dir(node.param2) | ||
local p = vector.add(pos, dir) | ||
local node2 = minetest.get_node_or_nil(p) | ||
if not node2 or not minetest.get_item_group(node2.name, "bed") == 2 or | ||
not node.param2 == node2.param2 then | ||
return false | ||
end | ||
if minetest.is_protected(p, user:get_player_name()) then | ||
minetest.record_protection_violation(p, user:get_player_name()) | ||
return false | ||
end | ||
if mode ~= screwdriver.ROTATE_FACE then | ||
return false | ||
end | ||
local newp = vector.add(pos, minetest.facedir_to_dir(new_param2)) | ||
local node3 = minetest.get_node_or_nil(newp) | ||
local node_def = node3 and minetest.registered_nodes[node3.name] | ||
if not node_def or not node_def.buildable_to then | ||
return false | ||
end | ||
if minetest.is_protected(newp, user:get_player_name()) then | ||
minetest.record_protection_violation(newp, user:get_player_name()) | ||
return false | ||
end | ||
node.param2 = new_param2 | ||
-- do not remove_node here - it will trigger destroy_bed() | ||
minetest.set_node(p, {name = "air"}) | ||
minetest.set_node(pos, node) | ||
minetest.set_node(newp, {name = name .. "_top", param2 = new_param2}) | ||
return true | ||
end, | ||
}) | ||
|
||
minetest.register_node(name .. "_top", { | ||
drawtype = "nodebox", | ||
tiles = def.tiles.top, | ||
paramtype = "light", | ||
paramtype2 = "facedir", | ||
is_ground_content = false, | ||
pointable = false, | ||
groups = {snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 2}, | ||
sounds = default.node_sound_wood_defaults(), | ||
drop = name .. "_bottom", | ||
node_box = { | ||
type = "fixed", | ||
fixed = def.nodebox.top, | ||
}, | ||
on_destruct = function(pos) | ||
destruct_bed(pos, 2) | ||
end, | ||
}) | ||
|
||
minetest.register_alias(name, name .. "_bottom") | ||
|
||
minetest.register_craft({ | ||
output = name, | ||
recipe = def.recipe | ||
}) | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
-- Fancy shaped bed | ||
|
||
beds.register_bed("beds:fancy_bed", { | ||
description = "Fancy Bed", | ||
inventory_image = "beds_bed_fancy.png", | ||
wield_image = "beds_bed_fancy.png", | ||
tiles = { | ||
bottom = { | ||
"beds_bed_top1.png", | ||
"default_wood.png", | ||
"beds_bed_side1.png", | ||
"beds_bed_side1.png^[transformFX", | ||
"default_wood.png", | ||
"beds_bed_foot.png", | ||
}, | ||
top = { | ||
"beds_bed_top2.png", | ||
"default_wood.png", | ||
"beds_bed_side2.png", | ||
"beds_bed_side2.png^[transformFX", | ||
"beds_bed_head.png", | ||
"default_wood.png", | ||
} | ||
}, | ||
nodebox = { | ||
bottom = { | ||
{-0.5, -0.5, -0.5, -0.375, -0.065, -0.4375}, | ||
{0.375, -0.5, -0.5, 0.5, -0.065, -0.4375}, | ||
{-0.5, -0.375, -0.5, 0.5, -0.125, -0.4375}, | ||
{-0.5, -0.375, -0.5, -0.4375, -0.125, 0.5}, | ||
{0.4375, -0.375, -0.5, 0.5, -0.125, 0.5}, | ||
{-0.4375, -0.3125, -0.4375, 0.4375, -0.0625, 0.5}, | ||
}, | ||
top = { | ||
{-0.5, -0.5, 0.4375, -0.375, 0.1875, 0.5}, | ||
{0.375, -0.5, 0.4375, 0.5, 0.1875, 0.5}, | ||
{-0.5, 0, 0.4375, 0.5, 0.125, 0.5}, | ||
{-0.5, -0.375, 0.4375, 0.5, -0.125, 0.5}, | ||
{-0.5, -0.375, -0.5, -0.4375, -0.125, 0.5}, | ||
{0.4375, -0.375, -0.5, 0.5, -0.125, 0.5}, | ||
{-0.4375, -0.3125, -0.5, 0.4375, -0.0625, 0.4375}, | ||
} | ||
}, | ||
selectionbox = {-0.5, -0.5, -0.5, 0.5, 0.06, 1.5}, | ||
recipe = { | ||
{"", "", "group:stick"}, | ||
{"wool:red", "wool:red", "wool:white"}, | ||
{"group:wood", "group:wood", "group:wood"}, | ||
}, | ||
}) | ||
|
||
-- Simple shaped bed | ||
|
||
beds.register_bed("beds:bed", { | ||
description = "Simple Bed", | ||
inventory_image = "beds_bed.png", | ||
wield_image = "beds_bed.png", | ||
tiles = { | ||
bottom = { | ||
"beds_bed_top_bottom.png^[transformR90", | ||
"default_wood.png", | ||
"beds_bed_side_bottom_r.png", | ||
"beds_bed_side_bottom_r.png^[transformfx", | ||
"beds_transparent.png", | ||
"beds_bed_side_bottom.png" | ||
}, | ||
top = { | ||
"beds_bed_top_top.png^[transformR90", | ||
"default_wood.png", | ||
"beds_bed_side_top_r.png", | ||
"beds_bed_side_top_r.png^[transformfx", | ||
"beds_bed_side_top.png", | ||
"beds_transparent.png", | ||
} | ||
}, | ||
nodebox = { | ||
bottom = {-0.5, -0.5, -0.5, 0.5, 0.06, 0.5}, | ||
top = {-0.5, -0.5, -0.5, 0.5, 0.06, 0.5}, | ||
}, | ||
selectionbox = {-0.5, -0.5, -0.5, 0.5, 0.06, 1.5}, | ||
recipe = { | ||
{"wool:red", "wool:red", "wool:white"}, | ||
{"group:wood", "group:wood", "group:wood"} | ||
}, | ||
}) | ||
|
||
-- Aliases for PilzAdam's beds mod | ||
|
||
minetest.register_alias("beds:bed_bottom_red", "beds:bed_bottom") | ||
minetest.register_alias("beds:bed_top_red", "beds:bed_top") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
default | ||
wool |
Oops, something went wrong.