Finished minetest_game diffs
|
@ -0,0 +1,10 @@
|
|||
Boats
|
||||
=====================================================================
|
||||
Main: PilzAdam
|
||||
Lisc: MIT
|
||||
Text: CC0
|
||||
By Tirifto
|
||||
3Dmo: CC-BY-SA 3.0
|
||||
By thetoon & Zeg9
|
||||
Modified by PavelS & sofar
|
||||
Link: https://github.com/minetest/minetest_game
|
|
@ -0,0 +1,27 @@
|
|||
1,15c1,10
|
||||
< Minetest Game mod: boats
|
||||
< ========================
|
||||
< See license.txt for license information.
|
||||
<
|
||||
< Authors of source code
|
||||
< ----------------------
|
||||
< Originally by PilzAdam (MIT)
|
||||
< Various Minetest developers and contributors (MIT)
|
||||
<
|
||||
< Authors of media (textures and model)
|
||||
< -------------------------------------
|
||||
< Textures: Zeg9 (CC BY-SA 3.0)
|
||||
< Model: thetoon and Zeg9 (CC BY-SA 3.0),
|
||||
< modified by PavelS(SokolovPavel) (CC BY-SA 3.0),
|
||||
< modified by sofar (CC BY-SA 3.0)
|
||||
---
|
||||
> Boats
|
||||
> =====================================================================
|
||||
> Main: PilzAdam
|
||||
> Lisc: MIT
|
||||
> Text: CC0
|
||||
> By Tirifto
|
||||
> 3Dmo: CC-BY-SA 3.0
|
||||
> By thetoon & Zeg9
|
||||
> Modified by PavelS & sofar
|
||||
> Link: https://github.com/minetest/minetest_game
|
|
@ -0,0 +1,77 @@
|
|||
License of source code
|
||||
----------------------
|
||||
|
||||
The MIT License (MIT)
|
||||
Copyright (C) 2012-2016 PilzAdam
|
||||
Copyright (C) 2012-2016 Various Minetest developers and contributors
|
||||
|
||||
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.
|
||||
|
||||
For more details:
|
||||
https://opensource.org/licenses/MIT
|
||||
|
||||
|
||||
Licenses of model
|
||||
-----------------
|
||||
|
||||
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||
Copyright (C) 2012-2016 Zeg9
|
||||
Copyright (C) 2012-2016 thetoon
|
||||
Copyright (C) 2012-2016 PavelS(SokolovPavel)
|
||||
Copyright (C) 2016 sofar (sofar@foo-projects.org)
|
||||
|
||||
You are free to:
|
||||
Share — copy and redistribute the material in any medium or format.
|
||||
Adapt — remix, transform, and build upon the material for any purpose, even commercially.
|
||||
The licensor cannot revoke these freedoms as long as you follow the license terms.
|
||||
|
||||
Under the following terms:
|
||||
|
||||
Attribution — You must give appropriate credit, provide a link to the license, and
|
||||
indicate if changes were made. You may do so in any reasonable manner, but not in any way
|
||||
that suggests the licensor endorses you or your use.
|
||||
|
||||
ShareAlike — If you remix, transform, or build upon the material, you must distribute
|
||||
your contributions under the same license as the original.
|
||||
|
||||
No additional restrictions — You may not apply legal terms or technological measures that
|
||||
legally restrict others from doing anything the license permits.
|
||||
|
||||
Notices:
|
||||
|
||||
You do not have to comply with the license for elements of the material in the public
|
||||
domain or where your use is permitted by an applicable exception or limitation.
|
||||
No warranties are given. The license may not give you all of the permissions necessary
|
||||
for your intended use. For example, other rights such as publicity, privacy, or moral
|
||||
rights may limit how you use the material.
|
||||
|
||||
For more details:
|
||||
http://creativecommons.org/licenses/by-sa/3.0/
|
||||
|
||||
|
||||
License of textures
|
||||
-------------------
|
||||
|
||||
CC0 1.0 Universal – Public Domain Dedication
|
||||
Copyright (C) 2017 Tirifto
|
||||
|
||||
The person who associated a work with this deed has dedicated the work to the public
|
||||
domain by waiving all of his or her rights to the work worldwide under copyright law,
|
||||
including all related and neighboring rights, to the extent allowed by law.
|
||||
|
||||
For more details:
|
||||
https://creativecommons.org/publicdomain/zero/1.0/legalcode
|
|
@ -0,0 +1,21 @@
|
|||
28,29c28,29
|
||||
< Licenses of media (textures and model)
|
||||
< --------------------------------------
|
||||
---
|
||||
> Licenses of model
|
||||
> -----------------
|
||||
63a64,77
|
||||
>
|
||||
>
|
||||
> License of textures
|
||||
> -------------------
|
||||
>
|
||||
> CC0 1.0 Universal – Public Domain Dedication
|
||||
> Copyright (C) 2017 Tirifto
|
||||
>
|
||||
> The person who associated a work with this deed has dedicated the work to the public
|
||||
> domain by waiving all of his or her rights to the work worldwide under copyright law,
|
||||
> including all related and neighboring rights, to the extent allowed by law.
|
||||
>
|
||||
> For more details:
|
||||
> https://creativecommons.org/publicdomain/zero/1.0/legalcode
|
|
@ -0,0 +1 @@
|
|||
https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz
|
After Width: | Height: | Size: 116 B |
After Width: | Height: | Size: 116 B |
|
@ -0,0 +1,9 @@
|
|||
Bones
|
||||
=====================================================================
|
||||
Main: PilzAdam
|
||||
Lisc: MIT
|
||||
Text: MIT
|
||||
By jadedctrl
|
||||
3Dmo: MIT
|
||||
By jadedctrl
|
||||
Link: https://github.com/minetest/minetest_game
|
|
@ -0,0 +1,23 @@
|
|||
1,12c1,9
|
||||
< Minetest Game mod: bones
|
||||
< ========================
|
||||
< See license.txt for license information.
|
||||
<
|
||||
< Authors of source code
|
||||
< ----------------------
|
||||
< Originally by PilzAdam (MIT)
|
||||
< Various Minetest developers and contributors (MIT)
|
||||
<
|
||||
< Authors of media (textures)
|
||||
< ---------------------------
|
||||
< All textures: paramat (CC BY-SA 3.0)
|
||||
---
|
||||
> Bones
|
||||
> =====================================================================
|
||||
> Main: PilzAdam
|
||||
> Lisc: MIT
|
||||
> Text: MIT
|
||||
> By jadedctrl
|
||||
> 3Dmo: MIT
|
||||
> By jadedctrl
|
||||
> Link: https://github.com/minetest/minetest_game
|
|
@ -0,0 +1,286 @@
|
|||
-- Minetest 0.4 mod: bones
|
||||
-- See README.txt for licensing and other information.
|
||||
|
||||
local function is_owner(pos, name)
|
||||
local owner = minetest.get_meta(pos):get_string("owner")
|
||||
if owner == "" or owner == name or minetest.check_player_privs(name, "protection_bypass") then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local bones_formspec =
|
||||
"size[8,9]" ..
|
||||
default.gui_bg ..
|
||||
default.gui_bg_img ..
|
||||
default.gui_slots ..
|
||||
"list[current_name;main;0,0.3;8,4;]" ..
|
||||
"list[current_player;main;0,4.85;8,1;]" ..
|
||||
"list[current_player;main;0,6.08;8,3;8]" ..
|
||||
"listring[current_name;main]" ..
|
||||
"listring[current_player;main]" ..
|
||||
default.get_hotbar_bg(0,4.85)
|
||||
|
||||
local share_bones_time = tonumber(minetest.settings:get("share_bones_time")) or 1200
|
||||
local share_bones_time_early = tonumber(minetest.settings:get("share_bones_time_early")) or share_bones_time / 4
|
||||
|
||||
minetest.register_node("bones:bones", {
|
||||
description = "Bones",
|
||||
tiles = {
|
||||
"bones_nonshade.png",
|
||||
"bones_shade.png",
|
||||
"bones.png",
|
||||
"bones.png",
|
||||
"bones.png",
|
||||
"bones.png"
|
||||
},
|
||||
paramtype2 = "facedir",
|
||||
drawtype="nodebox",
|
||||
node_box= {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.125, -0.5, -0.1875, -0.0625, -0.25, 0.1875}, -- NodeBox16
|
||||
{-0.0625, -0.5, -0.125, 0, -0.25, 0.1875}, -- NodeBox17
|
||||
{0, -0.5, -0.1875, 0.0625, -0.25, 0.1875}, -- NodeBox18
|
||||
{0.0625, -0.5, -0.125, 0.125, -0.25, 0.1875}, -- NodeBox19
|
||||
{0.125, -0.5, -0.1875, 0.1875, -0.25, 0.1875}, -- NodeBox20
|
||||
{-0.1875, -0.25, -0.1875, 0.25, -0.1875, 0.3125}, -- NodeBox22
|
||||
{-0.25, -0.1875, -0.25, 0.3125, -0.125, 0.375}, -- NodeBox23
|
||||
{-0.3125, -0.125, -0.25, -0.0625, 0, 0.4375}, -- NodeBox24
|
||||
{-0.0625, -0.125, -0.0625, 0, 0, 0.4375}, -- NodeBox26
|
||||
{0.0625, -0.125, -0.0625, 0.125, 0, 0.4375}, -- NodeBox27
|
||||
{0, -0.125, -0.25, 0.0625, 0, 0.4375}, -- NodeBox28
|
||||
{0.125, -0.125, -0.25, 0.375, 0, 0.4375}, -- NodeBox29
|
||||
{-0.3125, 0, -0.25, 0.375, 0.0625, 0.4375}, -- NodeBox30
|
||||
{-0.3125, 0.0625, -0.25, -0.1875, 0.125, 0.4375}, -- NodeBox31
|
||||
{-0.0625, 0.0625, -0.25, 0.125, 0.125, 0.4375}, -- NodeBox32
|
||||
{0.25, 0.0625, -0.25, 0.375, 0.125, 0.4375}, -- NodeBox33
|
||||
{-0.3125, 0.125, -0.25, -0.25, 0.25, 0.4375}, -- NodeBox34
|
||||
{-0.25, 0.25, -0.25, -0.1875, 0.3125, 0.4375}, -- NodeBox35
|
||||
{-0.1875, 0.3125, -0.25, 0.25, 0.375, 0.4375}, -- NodeBox37
|
||||
{-0.0625, 0.25, -0.25, 0.125, 0.3125, 0.4375}, -- NodeBox39
|
||||
{0, 0.125, -0.25, 0.0625, 0.25, 0.4375}, -- NodeBox40
|
||||
{0.3125, 0.125, -0.25, 0.375, 0.25, 0.4375}, -- NodeBox41
|
||||
{0.25, 0.25, -0.25, 0.3125, 0.3125, 0.4375}, -- NodeBox42
|
||||
{-0.25, 0.0625, 0.0625, 0.3125, 0.25, 0.4375}, -- NodeBox46
|
||||
{-0.1875, 0.25, 0.0625, 0.25, 0.3125, 0.4375}, -- NodeBox47
|
||||
{-0.25, -0.0625, 0.4375, 0.3125, 0.1875, 0.5}, -- NodeBox48
|
||||
{-0.125, 0.1875, 0.4375, 0.1875, 0.25, 0.5}, -- NodeBox49
|
||||
}
|
||||
},
|
||||
groups = {dig_immediate = 2},
|
||||
sounds = default.node_sound_gravel_defaults(),
|
||||
|
||||
can_dig = function(pos, player)
|
||||
local inv = minetest.get_meta(pos):get_inventory()
|
||||
local name = ""
|
||||
if player then
|
||||
name = player:get_player_name()
|
||||
end
|
||||
return is_owner(pos, name) and inv:is_empty("main")
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
if is_owner(pos, player:get_player_name()) then
|
||||
return count
|
||||
end
|
||||
return 0
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
return 0
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
if is_owner(pos, player:get_player_name()) then
|
||||
return stack:get_count()
|
||||
end
|
||||
return 0
|
||||
end,
|
||||
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_inventory():is_empty("main") then
|
||||
minetest.remove_node(pos)
|
||||
end
|
||||
end,
|
||||
|
||||
on_punch = function(pos, node, player)
|
||||
if not is_owner(pos, player:get_player_name()) then
|
||||
return
|
||||
end
|
||||
|
||||
if minetest.get_meta(pos):get_string("infotext") == "" then
|
||||
return
|
||||
end
|
||||
|
||||
local inv = minetest.get_meta(pos):get_inventory()
|
||||
local player_inv = player:get_inventory()
|
||||
local has_space = true
|
||||
|
||||
for i = 1, inv:get_size("main") do
|
||||
local stk = inv:get_stack("main", i)
|
||||
if player_inv:room_for_item("main", stk) then
|
||||
inv:set_stack("main", i, nil)
|
||||
player_inv:add_item("main", stk)
|
||||
else
|
||||
has_space = false
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
-- remove bones if player emptied them
|
||||
if has_space then
|
||||
if player_inv:room_for_item("main", {name = "bones:bones"}) then
|
||||
player_inv:add_item("main", {name = "bones:bones"})
|
||||
else
|
||||
minetest.add_item(pos,"bones:bones")
|
||||
end
|
||||
minetest.remove_node(pos)
|
||||
end
|
||||
end,
|
||||
|
||||
on_timer = function(pos, elapsed)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local time = meta:get_int("time") + elapsed
|
||||
if time >= share_bones_time then
|
||||
meta:set_string("infotext", meta:get_string("owner") .. "'s old dreams")
|
||||
meta:set_string("owner", "")
|
||||
minetest.chat_send_all("Someone's forsaken the carcass of their dreams.")
|
||||
minetest.chat_send_all("It can be found at " .. minetest.pos_to_string(pos) .. ".")
|
||||
else
|
||||
meta:set_int("time", time)
|
||||
return true
|
||||
end
|
||||
end,
|
||||
on_blast = function(pos)
|
||||
end,
|
||||
})
|
||||
|
||||
local function may_replace(pos, player)
|
||||
local node_name = minetest.get_node(pos).name
|
||||
local node_definition = minetest.registered_nodes[node_name]
|
||||
|
||||
-- if the node is unknown, we return false
|
||||
if not node_definition then
|
||||
return false
|
||||
end
|
||||
|
||||
-- allow replacing air and liquids
|
||||
if node_name == "air" or node_definition.liquidtype ~= "none" then
|
||||
return true
|
||||
end
|
||||
|
||||
-- don't replace filled chests and other nodes that don't allow it
|
||||
local can_dig_func = node_definition.can_dig
|
||||
if can_dig_func and not can_dig_func(pos, player) then
|
||||
return false
|
||||
end
|
||||
|
||||
-- default to each nodes buildable_to; if a placed block would replace it, why shouldn't bones?
|
||||
-- flowers being squished by bones are more realistical than a squished stone, too
|
||||
-- exception are of course any protected buildable_to
|
||||
return node_definition.buildable_to and not minetest.is_protected(pos, player:get_player_name())
|
||||
end
|
||||
|
||||
local drop = function(pos, itemstack)
|
||||
local obj = minetest.add_item(pos, itemstack:take_item(itemstack:get_count()))
|
||||
if obj then
|
||||
obj:setvelocity({
|
||||
x = math.random(-10, 10) / 9,
|
||||
y = 5,
|
||||
z = math.random(-10, 10) / 9,
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_on_dieplayer(function(player)
|
||||
|
||||
local bones_mode = minetest.settings:get("bones_mode") or "bones"
|
||||
if bones_mode ~= "bones" and bones_mode ~= "drop" and bones_mode ~= "keep" then
|
||||
bones_mode = "bones"
|
||||
end
|
||||
|
||||
-- return if keep inventory set or in creative mode
|
||||
if bones_mode == "keep" or (creative and creative.is_enabled_for
|
||||
and creative.is_enabled_for(player:get_player_name())) then
|
||||
return
|
||||
end
|
||||
|
||||
local player_inv = player:get_inventory()
|
||||
if player_inv:is_empty("main") and
|
||||
player_inv:is_empty("craft") then
|
||||
return
|
||||
end
|
||||
|
||||
local pos = vector.round(player:getpos())
|
||||
local player_name = player:get_player_name()
|
||||
|
||||
-- check if it's possible to place bones, if not find space near player
|
||||
if bones_mode == "bones" and not may_replace(pos, player) then
|
||||
local air = minetest.find_node_near(pos, 1, {"air"})
|
||||
if air and not minetest.is_protected(air, player_name) then
|
||||
pos = air
|
||||
else
|
||||
bones_mode = "drop"
|
||||
end
|
||||
end
|
||||
|
||||
if bones_mode == "drop" then
|
||||
|
||||
-- drop inventory items
|
||||
for i = 1, player_inv:get_size("main") do
|
||||
drop(pos, player_inv:get_stack("main", i))
|
||||
end
|
||||
player_inv:set_list("main", {})
|
||||
|
||||
-- drop crafting grid items
|
||||
for i = 1, player_inv:get_size("craft") do
|
||||
drop(pos, player_inv:get_stack("craft", i))
|
||||
end
|
||||
player_inv:set_list("craft", {})
|
||||
|
||||
drop(pos, ItemStack("bones:bones"))
|
||||
return
|
||||
end
|
||||
|
||||
local param2 = minetest.dir_to_facedir(player:get_look_dir())
|
||||
minetest.set_node(pos, {name = "bones:bones", param2 = param2})
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("main", 8 * 4)
|
||||
inv:set_list("main", player_inv:get_list("main"))
|
||||
|
||||
for i = 1, player_inv:get_size("craft") do
|
||||
local stack = player_inv:get_stack("craft", i)
|
||||
if inv:room_for_item("main", stack) then
|
||||
inv:add_item("main", stack)
|
||||
else
|
||||
--drop if no space left
|
||||
drop(pos, stack)
|
||||
end
|
||||
end
|
||||
|
||||
player_inv:set_list("main", {})
|
||||
player_inv:set_list("craft", {})
|
||||
|
||||
meta:set_string("formspec", bones_formspec)
|
||||
meta:set_string("owner", player_name)
|
||||
|
||||
minetest.chat_send_player(player_name, "Your dreams can be found at " .. minetest.pos_to_string(pos) .. ".")
|
||||
|
||||
if share_bones_time ~= 0 then
|
||||
meta:set_string("infotext", player_name .. "'s fresh skull")
|
||||
|
||||
if share_bones_time_early == 0 or not minetest.is_protected(pos, player_name) then
|
||||
meta:set_int("time", 0)
|
||||
else
|
||||
meta:set_int("time", (share_bones_time - share_bones_time_early))
|
||||
end
|
||||
|
||||
minetest.get_node_timer(pos):start(10)
|
||||
else
|
||||
meta:set_string("infotext", player_name.."'s old dreams")
|
||||
end
|
||||
end)
|
|
@ -0,0 +1,66 @@
|
|||
30,35c30,35
|
||||
< "bones_top.png^[transform2",
|
||||
< "bones_bottom.png",
|
||||
< "bones_side.png",
|
||||
< "bones_side.png",
|
||||
< "bones_rear.png",
|
||||
< "bones_front.png"
|
||||
---
|
||||
> "bones_nonshade.png",
|
||||
> "bones_shade.png",
|
||||
> "bones.png",
|
||||
> "bones.png",
|
||||
> "bones.png",
|
||||
> "bones.png"
|
||||
37a38,70
|
||||
> drawtype="nodebox",
|
||||
> node_box= {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {-0.125, -0.5, -0.1875, -0.0625, -0.25, 0.1875}, -- NodeBox16
|
||||
> {-0.0625, -0.5, -0.125, 0, -0.25, 0.1875}, -- NodeBox17
|
||||
> {0, -0.5, -0.1875, 0.0625, -0.25, 0.1875}, -- NodeBox18
|
||||
> {0.0625, -0.5, -0.125, 0.125, -0.25, 0.1875}, -- NodeBox19
|
||||
> {0.125, -0.5, -0.1875, 0.1875, -0.25, 0.1875}, -- NodeBox20
|
||||
> {-0.1875, -0.25, -0.1875, 0.25, -0.1875, 0.3125}, -- NodeBox22
|
||||
> {-0.25, -0.1875, -0.25, 0.3125, -0.125, 0.375}, -- NodeBox23
|
||||
> {-0.3125, -0.125, -0.25, -0.0625, 0, 0.4375}, -- NodeBox24
|
||||
> {-0.0625, -0.125, -0.0625, 0, 0, 0.4375}, -- NodeBox26
|
||||
> {0.0625, -0.125, -0.0625, 0.125, 0, 0.4375}, -- NodeBox27
|
||||
> {0, -0.125, -0.25, 0.0625, 0, 0.4375}, -- NodeBox28
|
||||
> {0.125, -0.125, -0.25, 0.375, 0, 0.4375}, -- NodeBox29
|
||||
> {-0.3125, 0, -0.25, 0.375, 0.0625, 0.4375}, -- NodeBox30
|
||||
> {-0.3125, 0.0625, -0.25, -0.1875, 0.125, 0.4375}, -- NodeBox31
|
||||
> {-0.0625, 0.0625, -0.25, 0.125, 0.125, 0.4375}, -- NodeBox32
|
||||
> {0.25, 0.0625, -0.25, 0.375, 0.125, 0.4375}, -- NodeBox33
|
||||
> {-0.3125, 0.125, -0.25, -0.25, 0.25, 0.4375}, -- NodeBox34
|
||||
> {-0.25, 0.25, -0.25, -0.1875, 0.3125, 0.4375}, -- NodeBox35
|
||||
> {-0.1875, 0.3125, -0.25, 0.25, 0.375, 0.4375}, -- NodeBox37
|
||||
> {-0.0625, 0.25, -0.25, 0.125, 0.3125, 0.4375}, -- NodeBox39
|
||||
> {0, 0.125, -0.25, 0.0625, 0.25, 0.4375}, -- NodeBox40
|
||||
> {0.3125, 0.125, -0.25, 0.375, 0.25, 0.4375}, -- NodeBox41
|
||||
> {0.25, 0.25, -0.25, 0.3125, 0.3125, 0.4375}, -- NodeBox42
|
||||
> {-0.25, 0.0625, 0.0625, 0.3125, 0.25, 0.4375}, -- NodeBox46
|
||||
> {-0.1875, 0.25, 0.0625, 0.25, 0.3125, 0.4375}, -- NodeBox47
|
||||
> {-0.25, -0.0625, 0.4375, 0.3125, 0.1875, 0.5}, -- NodeBox48
|
||||
> {-0.125, 0.1875, 0.4375, 0.1875, 0.25, 0.5}, -- NodeBox49
|
||||
> }
|
||||
> },
|
||||
114c147
|
||||
< meta:set_string("infotext", meta:get_string("owner") .. "'s old bones")
|
||||
---
|
||||
> meta:set_string("infotext", meta:get_string("owner") .. "'s old dreams")
|
||||
115a149,150
|
||||
> minetest.chat_send_all("Someone's forsaken the carcass of their dreams.")
|
||||
> minetest.chat_send_all("It can be found at " .. minetest.pos_to_string(pos) .. ".")
|
||||
235a271,272
|
||||
> minetest.chat_send_player(player_name, "Your dreams can be found at " .. minetest.pos_to_string(pos) .. ".")
|
||||
>
|
||||
237c274
|
||||
< meta:set_string("infotext", player_name .. "'s fresh bones")
|
||||
---
|
||||
> meta:set_string("infotext", player_name .. "'s fresh skull")
|
||||
247c284
|
||||
< meta:set_string("infotext", player_name.."'s bones")
|
||||
---
|
||||
> meta:set_string("infotext", player_name.."'s old dreams")
|
|
@ -0,0 +1,51 @@
|
|||
License of source code
|
||||
----------------------
|
||||
|
||||
The MIT License (MIT)
|
||||
Copyright (C) 2012-2016 PilzAdam
|
||||
Copyright (C) 2012-2016 Various Minetest developers and contributors
|
||||
|
||||
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.
|
||||
|
||||
For more details:
|
||||
https://opensource.org/licenses/MIT
|
||||
|
||||
|
||||
Licenses of media (textures & nodebox)
|
||||
----------------------------
|
||||
|
||||
The MIT License (MIT)
|
||||
Copyright (C) 2017-2018 jadedctrl
|
||||
|
||||
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.
|
||||
|
||||
For more details:
|
||||
https://opensource.org/licenses/MIT
|
|
@ -0,0 +1,54 @@
|
|||
28c28
|
||||
< Licenses of media (textures)
|
||||
---
|
||||
> Licenses of media (textures & nodebox)
|
||||
31,32c31,32
|
||||
< Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||
< Copyright (C) 2016 paramat
|
||||
---
|
||||
> The MIT License (MIT)
|
||||
> Copyright (C) 2017-2018 jadedctrl
|
||||
34,57c34,48
|
||||
< You are free to:
|
||||
< Share — copy and redistribute the material in any medium or format.
|
||||
< Adapt — remix, transform, and build upon the material for any purpose, even commercially.
|
||||
< The licensor cannot revoke these freedoms as long as you follow the license terms.
|
||||
<
|
||||
< Under the following terms:
|
||||
<
|
||||
< Attribution — You must give appropriate credit, provide a link to the license, and
|
||||
< indicate if changes were made. You may do so in any reasonable manner, but not in any way
|
||||
< that suggests the licensor endorses you or your use.
|
||||
<
|
||||
< ShareAlike — If you remix, transform, or build upon the material, you must distribute
|
||||
< your contributions under the same license as the original.
|
||||
<
|
||||
< No additional restrictions — You may not apply legal terms or technological measures that
|
||||
< legally restrict others from doing anything the license permits.
|
||||
<
|
||||
< Notices:
|
||||
<
|
||||
< You do not have to comply with the license for elements of the material in the public
|
||||
< domain or where your use is permitted by an applicable exception or limitation.
|
||||
< No warranties are given. The license may not give you all of the permissions necessary
|
||||
< for your intended use. For example, other rights such as publicity, privacy, or moral
|
||||
< rights may limit how you use the material.
|
||||
---
|
||||
> 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.
|
||||
58a50,51
|
||||
> For more details:
|
||||
> https://opensource.org/licenses/MIT
|
|
@ -0,0 +1 @@
|
|||
https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz
|
After Width: | Height: | Size: 77 B |
After Width: | Height: | Size: 740 B |
After Width: | Height: | Size: 77 B |
After Width: | Height: | Size: 77 B |
|
@ -0,0 +1,7 @@
|
|||
Bucket
|
||||
=====================================================================
|
||||
Main: Kahrl, celeron55, Ahola
|
||||
Lisc: LGPL 2.1
|
||||
Text: CC-BY-SA 3.0
|
||||
By ElementW
|
||||
Link: https://github.com/minetest/minetest_game
|
|
@ -0,0 +1,22 @@
|
|||
1,13c1,7
|
||||
< Minetest Game mod: bucket
|
||||
< =========================
|
||||
< See license.txt for license information.
|
||||
<
|
||||
< Authors of source code
|
||||
< ----------------------
|
||||
< Kahrl <kahrl@gmx.net> (LGPL 2.1)
|
||||
< celeron55, Perttu Ahola <celeron55@gmail.com> (LGPL 2.1)
|
||||
< Various Minetest developers and contributors (LGPL 2.1)
|
||||
<
|
||||
< Authors of media (textures)
|
||||
< ---------------------------
|
||||
< ElementW (CC BY-SA 3.0)
|
||||
---
|
||||
> Bucket
|
||||
> =====================================================================
|
||||
> Main: Kahrl, celeron55, Ahola
|
||||
> Lisc: LGPL 2.1
|
||||
> Text: CC-BY-SA 3.0
|
||||
> By ElementW
|
||||
> Link: https://github.com/minetest/minetest_game
|
|
@ -0,0 +1,51 @@
|
|||
License of source code
|
||||
----------------------
|
||||
|
||||
GNU Lesser General Public License, version 2.1
|
||||
Copyright (C) 2011-2016 Kahrl <kahrl@gmx.net>
|
||||
Copyright (C) 2011-2016 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Copyright (C) 2011-2016 Various Minetest developers and contributors
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under the terms
|
||||
of the GNU Lesser General Public License as published by the Free Software Foundation;
|
||||
either version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details:
|
||||
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
|
||||
|
||||
|
||||
Licenses of media (textures)
|
||||
----------------------------
|
||||
|
||||
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||
Copyright (C) 2015-2016 ElementW
|
||||
|
||||
You are free to:
|
||||
Share — copy and redistribute the material in any medium or format.
|
||||
Adapt — remix, transform, and build upon the material for any purpose, even commercially.
|
||||
The licensor cannot revoke these freedoms as long as you follow the license terms.
|
||||
|
||||
Under the following terms:
|
||||
|
||||
Attribution — You must give appropriate credit, provide a link to the license, and
|
||||
indicate if changes were made. You may do so in any reasonable manner, but not in any way
|
||||
that suggests the licensor endorses you or your use.
|
||||
|
||||
ShareAlike — If you remix, transform, or build upon the material, you must distribute
|
||||
your contributions under the same license as the original.
|
||||
|
||||
No additional restrictions — You may not apply legal terms or technological measures that
|
||||
legally restrict others from doing anything the license permits.
|
||||
|
||||
Notices:
|
||||
|
||||
You do not have to comply with the license for elements of the material in the public
|
||||
domain or where your use is permitted by an applicable exception or limitation.
|
||||
No warranties are given. The license may not give you all of the permissions necessary
|
||||
for your intended use. For example, other rights such as publicity, privacy, or moral
|
||||
rights may limit how you use the material.
|
||||
|
||||
For more details:
|
||||
http://creativecommons.org/licenses/by-sa/3.0/
|
|
@ -0,0 +1 @@
|
|||
https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz
|
After Width: | Height: | Size: 135 B |
After Width: | Height: | Size: 136 B |
After Width: | Height: | Size: 158 B |
After Width: | Height: | Size: 140 B |
|
@ -0,0 +1 @@
|
|||
GEGL-geglmodule.c-Message: Module '/usr/lib/gegl-0.2/openraw.so' load error: libopenraw.so.7: cannot open shared object file: No such file or directory
|
|
@ -0,0 +1,20 @@
|
|||
Carts
|
||||
=====================================================================
|
||||
Main: SmallJoker
|
||||
Lisc: MIT
|
||||
Text: CC-0
|
||||
Derivative of Gambit
|
||||
carts_cart_side.png
|
||||
carts_cart_top.png
|
||||
carts_cart_front.png
|
||||
carts_cart.png
|
||||
Derivative of hexafraction & sofar
|
||||
carts_rail_*.png
|
||||
3Dmo: CC-0
|
||||
By sofar & stujones11
|
||||
carts_card.b3d
|
||||
carts_card.blend
|
||||
Audi: CC-BY-SA 3.9
|
||||
By YleArkisto
|
||||
carts_cart_moving*.ogg
|
||||
Link: https://github.com/minetest/minetest_game
|
|
@ -0,0 +1,44 @@
|
|||
1,22c1,20
|
||||
< Carts (formerly boost_cart)
|
||||
< ==========================
|
||||
<
|
||||
< Carts, based almost entirely on the mod boost_cart [1], which
|
||||
< itself is based on (and fully compatible with) the carts mod [2].
|
||||
<
|
||||
< The model was originally designed by stujones11 [3] (CC-0).
|
||||
<
|
||||
< Cart textures are based on original work from PixelBOX (WTFPL).
|
||||
<
|
||||
<
|
||||
< [1] https://github.com/SmallJoker/boost_cart/
|
||||
< [2] https://github.com/PilzAdam/carts/
|
||||
< [3] https://github.com/stujones11/railcart/
|
||||
<
|
||||
<
|
||||
< Features
|
||||
< ----------
|
||||
< - A fast cart for your railway or roller coaster (up to 7 m/s!)
|
||||
< - Boost and brake rails
|
||||
< - Rail junction switching with the 'right-left' walking keys
|
||||
< - Handbrake with the 'back' key
|
||||
---
|
||||
> Carts
|
||||
> =====================================================================
|
||||
> Main: SmallJoker
|
||||
> Lisc: MIT
|
||||
> Text: CC-0
|
||||
> Derivative of Gambit
|
||||
> carts_cart_side.png
|
||||
> carts_cart_top.png
|
||||
> carts_cart_front.png
|
||||
> carts_cart.png
|
||||
> Derivative of hexafraction & sofar
|
||||
> carts_rail_*.png
|
||||
> 3Dmo: CC-0
|
||||
> By sofar & stujones11
|
||||
> carts_card.b3d
|
||||
> carts_card.blend
|
||||
> Audi: CC-BY-SA 3.9
|
||||
> By YleArkisto
|
||||
> carts_cart_moving*.ogg
|
||||
> Link: https://github.com/minetest/minetest_game
|
|
@ -0,0 +1,59 @@
|
|||
carts:register_rail("carts:rail", {
|
||||
description = "Rail",
|
||||
tiles = {
|
||||
"carts_rail_straight.png", "carts_rail_curved.png",
|
||||
"carts_rail_t_junction.png", "carts_rail_crossing.png"
|
||||
},
|
||||
inventory_image = "carts_rail_straight.png",
|
||||
wield_image = "carts_rail_straight.png",
|
||||
groups = carts:get_rail_groups(),
|
||||
}, {})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "carts:rail 18",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "group:wood", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "group:wood", "default:steel_ingot"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_alias("default:rail", "carts:rail")
|
||||
|
||||
|
||||
carts:register_rail("carts:powerrail", {
|
||||
description = "Powered Rail",
|
||||
tiles = {
|
||||
"carts_rail_straight_pwr.png", "carts_rail_curved_pwr.png",
|
||||
"carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png"
|
||||
},
|
||||
groups = carts:get_rail_groups(),
|
||||
}, {acceleration = 20})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "carts:powerrail 18",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "group:wood", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "default:mese_crystal", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "group:wood", "default:steel_ingot"},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
carts:register_rail("carts:brakerail", {
|
||||
description = "Brake Rail",
|
||||
tiles = {
|
||||
"carts_rail_straight_brk.png", "carts_rail_curved_brk.png",
|
||||
"carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png"
|
||||
},
|
||||
groups = carts:get_rail_groups(),
|
||||
}, {acceleration = -3})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "carts:brakerail 18",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "group:wood", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "default:coal_lump", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "group:wood", "default:steel_ingot"},
|
||||
}
|
||||
})
|
|
@ -0,0 +1,12 @@
|
|||
25c25
|
||||
< description = "Powered rail",
|
||||
---
|
||||
> description = "Powered Rail",
|
||||
31c31
|
||||
< }, {acceleration = 5})
|
||||
---
|
||||
> }, {acceleration = 20})
|
||||
44c44
|
||||
< description = "Brake rail",
|
||||
---
|
||||
> description = "Brake Rail",
|
|
@ -0,0 +1 @@
|
|||
https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz
|
After Width: | Height: | Size: 274 B |
After Width: | Height: | Size: 133 B |
After Width: | Height: | Size: 156 B |
After Width: | Height: | Size: 152 B |
After Width: | Height: | Size: 238 B |
After Width: | Height: | Size: 254 B |
After Width: | Height: | Size: 237 B |
After Width: | Height: | Size: 310 B |
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 270 B |
After Width: | Height: | Size: 171 B |
After Width: | Height: | Size: 180 B |
After Width: | Height: | Size: 182 B |
After Width: | Height: | Size: 299 B |
After Width: | Height: | Size: 313 B |
After Width: | Height: | Size: 299 B |
|
@ -0,0 +1 @@
|
|||
Consolidate torch.lua and nodes.lua
|
|
@ -0,0 +1,80 @@
|
|||
-- mods/default/aliases.lua
|
||||
|
||||
-- Aliases to support loading worlds using nodes following the old naming convention
|
||||
-- These can also be helpful when using chat commands, for example /giveme
|
||||
minetest.register_alias("stone", "default:stone")
|
||||
minetest.register_alias("stone_with_coal", "default:stone_with_coal")
|
||||
minetest.register_alias("stone_with_iron", "default:stone_with_iron")
|
||||
minetest.register_alias("dirt_with_grass", "default:dirt_with_grass")
|
||||
minetest.register_alias("dirt_with_grass_footsteps", "default:dirt_with_grass_footsteps")
|
||||
minetest.register_alias("dirt", "default:dirt")
|
||||
minetest.register_alias("sand", "default:sand")
|
||||
minetest.register_alias("gravel", "default:gravel")
|
||||
minetest.register_alias("sandstone", "default:sandstone")
|
||||
minetest.register_alias("clay", "default:clay")
|
||||
minetest.register_alias("brick", "default:brick")
|
||||
minetest.register_alias("tree", "default:tree")
|
||||
minetest.register_alias("jungletree", "default:jungletree")
|
||||
minetest.register_alias("junglegrass", "default:junglegrass")
|
||||
minetest.register_alias("leaves", "default:leaves")
|
||||
minetest.register_alias("cactus", "default:cactus")
|
||||
minetest.register_alias("papyrus", "default:papyrus")
|
||||
minetest.register_alias("bookshelf", "default:bookshelf")
|
||||
minetest.register_alias("glass", "default:glass")
|
||||
minetest.register_alias("wooden_fence", "default:fence_wood")
|
||||
minetest.register_alias("rail", "carts:rail")
|
||||
minetest.register_alias("ladder", "default:ladder_wood")
|
||||
minetest.register_alias("wood", "default:wood")
|
||||
minetest.register_alias("mese", "default:mese")
|
||||
minetest.register_alias("cloud", "default:cloud")
|
||||
minetest.register_alias("water_flowing", "default:water_flowing")
|
||||
minetest.register_alias("water_source", "default:water_source")
|
||||
minetest.register_alias("lava_flowing", "default:lava_flowing")
|
||||
minetest.register_alias("lava_source", "default:lava_source")
|
||||
minetest.register_alias("torch", "default:torch")
|
||||
minetest.register_alias("sign_wall", "default:sign_wall_wood")
|
||||
minetest.register_alias("furnace", "default:furnace")
|
||||
minetest.register_alias("chest", "default:chest")
|
||||
minetest.register_alias("locked_chest", "default:chest_locked")
|
||||
minetest.register_alias("cobble", "default:cobble")
|
||||
minetest.register_alias("mossycobble", "default:mossycobble")
|
||||
minetest.register_alias("steelblock", "default:steelblock")
|
||||
minetest.register_alias("sapling", "default:sapling")
|
||||
minetest.register_alias("apple", "default:apple")
|
||||
|
||||
minetest.register_alias("WPick", "default:pick_wood")
|
||||
minetest.register_alias("STPick", "default:pick_stone")
|
||||
minetest.register_alias("SteelPick", "default:pick_steel")
|
||||
minetest.register_alias("MesePick", "default:pick_mese")
|
||||
minetest.register_alias("WShovel", "default:shovel_wood")
|
||||
minetest.register_alias("STShovel", "default:shovel_stone")
|
||||
minetest.register_alias("SteelShovel", "default:shovel_steel")
|
||||
minetest.register_alias("WAxe", "default:axe_wood")
|
||||
minetest.register_alias("STAxe", "default:axe_stone")
|
||||
minetest.register_alias("SteelAxe", "default:axe_steel")
|
||||
minetest.register_alias("WSword", "default:sword_wood")
|
||||
minetest.register_alias("STSword", "default:sword_stone")
|
||||
minetest.register_alias("SteelSword", "default:sword_steel")
|
||||
|
||||
minetest.register_alias("Stick", "default:stick")
|
||||
minetest.register_alias("paper", "default:paper")
|
||||
minetest.register_alias("book", "default:book")
|
||||
minetest.register_alias("lump_of_coal", "default:coal_lump")
|
||||
minetest.register_alias("lump_of_iron", "default:iron_lump")
|
||||
minetest.register_alias("lump_of_clay", "default:clay_lump")
|
||||
minetest.register_alias("steel_ingot", "default:steel_ingot")
|
||||
minetest.register_alias("clay_brick", "default:clay_brick")
|
||||
minetest.register_alias("snow", "default:snow")
|
||||
|
||||
-- 'mese_block' was used for a while for the block form of mese
|
||||
minetest.register_alias("default:mese_block", "default:mese")
|
||||
|
||||
-- Aliases for corrected pine node names
|
||||
minetest.register_alias("default:pinetree", "default:pine_tree")
|
||||
minetest.register_alias("default:pinewood", "default:pine_wood")
|
||||
|
||||
minetest.register_alias("default:ladder", "default:ladder_wood")
|
||||
minetest.register_alias("default:sign_wall", "default:sign_wall_wood")
|
||||
|
||||
-- Etc.
|
||||
minetest.register_alias("default:torch_out", "default:torch")
|
|
@ -0,0 +1,4 @@
|
|||
77a78,80
|
||||
>
|
||||
> -- Etc.
|
||||
> minetest.register_alias("default:torch_out", "default:torch")
|
|
@ -0,0 +1,193 @@
|
|||
81c81
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
89,90c89,90
|
||||
< {'', 'group:stick', ''},
|
||||
< {'', 'group:stick', ''},
|
||||
---
|
||||
> {'', 'group:wood', ''},
|
||||
> {'', 'group:wood', ''},
|
||||
98,99c98,99
|
||||
< {'', 'group:stick', ''},
|
||||
< {'', 'group:stick', ''},
|
||||
---
|
||||
> {'', 'group:wood', ''},
|
||||
> {'', 'group:wood', ''},
|
||||
107,108c107,108
|
||||
< {'', 'group:stick', ''},
|
||||
< {'', 'group:stick', ''},
|
||||
---
|
||||
> {'', 'group:wood', ''},
|
||||
> {'', 'group:wood', ''},
|
||||
116,117c116,117
|
||||
< {'', 'group:stick', ''},
|
||||
< {'', 'group:stick', ''},
|
||||
---
|
||||
> {'', 'group:wood', ''},
|
||||
> {'', 'group:wood', ''},
|
||||
125,126c125,126
|
||||
< {'', 'group:stick', ''},
|
||||
< {'', 'group:stick', ''},
|
||||
---
|
||||
> {'', 'group:wood', ''},
|
||||
> {'', 'group:wood', ''},
|
||||
134,135c134,135
|
||||
< {'', 'group:stick', ''},
|
||||
< {'', 'group:stick', ''},
|
||||
---
|
||||
> {'', 'group:wood', ''},
|
||||
> {'', 'group:wood', ''},
|
||||
143,144c143,144
|
||||
< {'group:stick'},
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
> {'group:wood'},
|
||||
152,153c152,153
|
||||
< {'group:stick'},
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
> {'group:wood'},
|
||||
161,162c161,162
|
||||
< {'group:stick'},
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
> {'group:wood'},
|
||||
170,171c170,171
|
||||
< {'group:stick'},
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
> {'group:wood'},
|
||||
179,180c179,180
|
||||
< {'group:stick'},
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
> {'group:wood'},
|
||||
188,234c188,189
|
||||
< {'group:stick'},
|
||||
< {'group:stick'},
|
||||
< }
|
||||
< })
|
||||
<
|
||||
< minetest.register_craft({
|
||||
< output = 'default:axe_wood',
|
||||
< recipe = {
|
||||
< {'group:wood', 'group:wood'},
|
||||
< {'group:wood', 'group:stick'},
|
||||
< {'', 'group:stick'},
|
||||
< }
|
||||
< })
|
||||
<
|
||||
< minetest.register_craft({
|
||||
< output = 'default:axe_stone',
|
||||
< recipe = {
|
||||
< {'group:stone', 'group:stone'},
|
||||
< {'group:stone', 'group:stick'},
|
||||
< {'', 'group:stick'},
|
||||
< }
|
||||
< })
|
||||
<
|
||||
< minetest.register_craft({
|
||||
< output = 'default:axe_steel',
|
||||
< recipe = {
|
||||
< {'default:steel_ingot', 'default:steel_ingot'},
|
||||
< {'default:steel_ingot', 'group:stick'},
|
||||
< {'', 'group:stick'},
|
||||
< }
|
||||
< })
|
||||
<
|
||||
< minetest.register_craft({
|
||||
< output = 'default:axe_bronze',
|
||||
< recipe = {
|
||||
< {'default:bronze_ingot', 'default:bronze_ingot'},
|
||||
< {'default:bronze_ingot', 'group:stick'},
|
||||
< {'', 'group:stick'},
|
||||
< }
|
||||
< })
|
||||
<
|
||||
< minetest.register_craft({
|
||||
< output = 'default:axe_mese',
|
||||
< recipe = {
|
||||
< {'default:mese_crystal', 'default:mese_crystal'},
|
||||
< {'default:mese_crystal', 'group:stick'},
|
||||
< {'', 'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
> {'group:wood'},
|
||||
238,245c193,194
|
||||
< minetest.register_craft({
|
||||
< output = 'default:axe_diamond',
|
||||
< recipe = {
|
||||
< {'default:diamond', 'default:diamond'},
|
||||
< {'default:diamond', 'group:stick'},
|
||||
< {'', 'group:stick'},
|
||||
< }
|
||||
< })
|
||||
---
|
||||
> -- Axes
|
||||
> -- Recipes face left to match appearence in textures and inventory
|
||||
251,252c200,201
|
||||
< {'group:stick', 'group:wood'},
|
||||
< {'group:stick',''},
|
||||
---
|
||||
> {'group:wood', 'group:wood'},
|
||||
> {'', 'group:wood'},
|
||||
260,261c209,210
|
||||
< {'group:stick', 'group:stone'},
|
||||
< {'group:stick', ''},
|
||||
---
|
||||
> {'group:stone', 'group:wood'},
|
||||
> {'', 'group:wood'},
|
||||
269,270c218,219
|
||||
< {'group:stick', 'default:steel_ingot'},
|
||||
< {'group:stick', ''},
|
||||
---
|
||||
> {'default:steel_ingot', 'group:wood'},
|
||||
> {'', 'group:wood'},
|
||||
278,279c227,228
|
||||
< {'group:stick', 'default:bronze_ingot'},
|
||||
< {'group:stick', ''},
|
||||
---
|
||||
> {'default:bronze_ingot', 'group:wood'},
|
||||
> {'', 'group:wood'},
|
||||
287,288c236,237
|
||||
< {'group:stick', 'default:mese_crystal'},
|
||||
< {'group:stick', ''},
|
||||
---
|
||||
> {'default:mese_crystal', 'group:wood'},
|
||||
> {'', 'group:wood'},
|
||||
296,297c245,246
|
||||
< {'group:stick', 'default:diamond'},
|
||||
< {'group:stick', ''},
|
||||
---
|
||||
> {'default:diamond', 'group:wood'},
|
||||
> {'', 'group:wood'},
|
||||
306c255
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
315c264
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
324c273
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
333c282
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
342c291
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
||||
351c300
|
||||
< {'group:stick'},
|
||||
---
|
||||
> {'group:wood'},
|
|
@ -0,0 +1 @@
|
|||
player_api?
|
|
@ -0,0 +1,580 @@
|
|||
-- mods/default/functions.lua
|
||||
|
||||
--
|
||||
-- Sounds
|
||||
--
|
||||
|
||||
function default.node_sound_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "", gain = 1.0}
|
||||
table.dug = table.dug or
|
||||
{name = "default_dug_node", gain = 0.25}
|
||||
table.place = table.place or
|
||||
{name = "default_place_node_hard", gain = 1.0}
|
||||
return table
|
||||
end
|
||||
|
||||
function default.node_sound_stone_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "default_hard_footstep", gain = 0.3}
|
||||
table.dug = table.dug or
|
||||
{name = "default_hard_footstep", gain = 1.0}
|
||||
default.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function default.node_sound_dirt_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "default_dirt_footstep", gain = 0.4}
|
||||
table.dug = table.dug or
|
||||
{name = "default_dirt_footstep", gain = 1.0}
|
||||
table.place = table.place or
|
||||
{name = "default_place_node", gain = 1.0}
|
||||
default.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function default.node_sound_sand_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "default_sand_footstep", gain = 0.12}
|
||||
table.dug = table.dug or
|
||||
{name = "default_sand_footstep", gain = 0.24}
|
||||
table.place = table.place or
|
||||
{name = "default_place_node", gain = 1.0}
|
||||
default.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function default.node_sound_gravel_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "default_gravel_footstep", gain = 0.4}
|
||||
table.dug = table.dug or
|
||||
{name = "default_gravel_footstep", gain = 1.0}
|
||||
table.place = table.place or
|
||||
{name = "default_place_node", gain = 1.0}
|
||||
default.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function default.node_sound_wood_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "default_wood_footstep", gain = 0.3}
|
||||
table.dug = table.dug or
|
||||
{name = "default_wood_footstep", gain = 1.0}
|
||||
default.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function default.node_sound_leaves_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "default_grass_footstep", gain = 0.45}
|
||||
table.dug = table.dug or
|
||||
{name = "default_grass_footstep", gain = 0.7}
|
||||
table.place = table.place or
|
||||
{name = "default_place_node", gain = 1.0}
|
||||
default.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function default.node_sound_glass_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "default_glass_footstep", gain = 0.3}
|
||||
table.dig = table.dig or
|
||||
{name = "default_glass_footstep", gain = 0.5}
|
||||
table.dug = table.dug or
|
||||
{name = "default_break_glass", gain = 1.0}
|
||||
default.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function default.node_sound_metal_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "default_metal_footstep", gain = 0.4}
|
||||
table.dig = table.dig or
|
||||
{name = "default_dig_metal", gain = 0.5}
|
||||
table.dug = table.dug or
|
||||
{name = "default_dug_metal", gain = 0.5}
|
||||
table.place = table.place or
|
||||
{name = "default_place_node_metal", gain = 0.5}
|
||||
default.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function default.node_sound_water_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "default_water_footstep", gain = 0.2}
|
||||
default.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
--
|
||||
-- Lavacooling
|
||||
--
|
||||
|
||||
default.cool_lava = function(pos, node)
|
||||
if node.name == "default:lava_source" then
|
||||
minetest.set_node(pos, {name = "default:obsidian"})
|
||||
else -- Lava flowing
|
||||
minetest.set_node(pos, {name = "default:stone"})
|
||||
end
|
||||
minetest.sound_play("default_cool_lava",
|
||||
{pos = pos, max_hear_distance = 16, gain = 0.25})
|
||||
end
|
||||
|
||||
if minetest.settings:get_bool("enable_lavacooling") ~= false then
|
||||
minetest.register_abm({
|
||||
label = "Lava cooling",
|
||||
nodenames = {"default:lava_source", "default:lava_flowing"},
|
||||
neighbors = {"group:cools_lava", "group:water"},
|
||||
interval = 2,
|
||||
chance = 2,
|
||||
catch_up = false,
|
||||
action = function(...)
|
||||
default.cool_lava(...)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
--
|
||||
-- optimized helper to put all items in an inventory into a drops list
|
||||
--
|
||||
|
||||
function default.get_inventory_drops(pos, inventory, drops)
|
||||
local inv = minetest.get_meta(pos):get_inventory()
|
||||
local n = #drops
|
||||
for i = 1, inv:get_size(inventory) do
|
||||
local stack = inv:get_stack(inventory, i)
|
||||
if stack:get_count() > 0 then
|
||||
drops[n+1] = stack:to_table()
|
||||
n = n + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--
|
||||
-- Papyrus and cactus growing
|
||||
--
|
||||
|
||||
-- wrapping the functions in abm action is necessary to make overriding them possible
|
||||
|
||||
function default.grow_cactus(pos, node)
|
||||
if node.param2 >= 4 then
|
||||
return
|
||||
end
|
||||
pos.y = pos.y - 1
|
||||
if minetest.get_item_group(minetest.get_node(pos).name, "sand") == 0 then
|
||||
return
|
||||
end
|
||||
pos.y = pos.y + 1
|
||||
local height = 0
|
||||
while node.name == "default:cactus" and height < 4 do
|
||||
height = height + 1
|
||||
pos.y = pos.y + 1
|
||||
node = minetest.get_node(pos)
|
||||
end
|
||||
if height == 4 or node.name ~= "air" then
|
||||
return
|
||||
end
|
||||
if minetest.get_node_light(pos) < 13 then
|
||||
return
|
||||
end
|
||||
minetest.set_node(pos, {name = "default:cactus"})
|
||||
return true
|
||||
end
|
||||
|
||||
function default.grow_papyrus(pos, node)
|
||||
pos.y = pos.y - 1
|
||||
local name = minetest.get_node(pos).name
|
||||
if name ~= "default:dirt_with_grass" and name ~= "default:dirt" then
|
||||
return
|
||||
end
|
||||
if not minetest.find_node_near(pos, 3, {"group:water"}) then
|
||||
return
|
||||
end
|
||||
pos.y = pos.y + 1
|
||||
local height = 0
|
||||
while node.name == "default:papyrus" and height < 4 do
|
||||
height = height + 1
|
||||
pos.y = pos.y + 1
|
||||
node = minetest.get_node(pos)
|
||||
end
|
||||
if height == 4 or node.name ~= "air" then
|
||||
return
|
||||
end
|
||||
if minetest.get_node_light(pos) < 13 then
|
||||
return
|
||||
end
|
||||
minetest.set_node(pos, {name = "default:papyrus"})
|
||||
return true
|
||||
end
|
||||
|
||||
minetest.register_abm({
|
||||
label = "Grow cactus",
|
||||
nodenames = {"default:cactus"},
|
||||
neighbors = {"group:sand"},
|
||||
interval = 12,
|
||||
chance = 83,
|
||||
action = function(...)
|
||||
default.grow_cactus(...)
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
label = "Grow papyrus",
|
||||
nodenames = {"default:papyrus"},
|
||||
neighbors = {"default:dirt", "default:dirt_with_grass"},
|
||||
interval = 14,
|
||||
chance = 71,
|
||||
action = function(...)
|
||||
default.grow_papyrus(...)
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
--
|
||||
-- dig upwards
|
||||
--
|
||||
|
||||
function default.dig_up(pos, node, digger)
|
||||
if digger == nil then return end
|
||||
local np = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local nn = minetest.get_node(np)
|
||||
if nn.name == node.name then
|
||||
minetest.node_dig(np, nn, digger)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Fence registration helper
|
||||
--
|
||||
|
||||
function default.register_fence(name, def)
|
||||
minetest.register_craft({
|
||||
output = name .. " 4",
|
||||
recipe = {
|
||||
{ def.material, 'group:stick', def.material },
|
||||
{ def.material, 'group:stick', def.material },
|
||||
}
|
||||
})
|
||||
|
||||
local fence_texture = "default_fence_overlay.png^" .. def.texture ..
|
||||
"^default_fence_overlay.png^[makealpha:255,126,126"
|
||||
-- Allow almost everything to be overridden
|
||||
local default_fields = {
|
||||
paramtype = "light",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "connected",
|
||||
fixed = {{-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}},
|
||||
-- connect_top =
|
||||
-- connect_bottom =
|
||||
connect_front = {{-1/16,3/16,-1/2,1/16,5/16,-1/8},
|
||||
{-1/16,-5/16,-1/2,1/16,-3/16,-1/8}},
|
||||
connect_left = {{-1/2,3/16,-1/16,-1/8,5/16,1/16},
|
||||
{-1/2,-5/16,-1/16,-1/8,-3/16,1/16}},
|
||||
connect_back = {{-1/16,3/16,1/8,1/16,5/16,1/2},
|
||||
{-1/16,-5/16,1/8,1/16,-3/16,1/2}},
|
||||
connect_right = {{1/8,3/16,-1/16,1/2,5/16,1/16},
|
||||
{1/8,-5/16,-1/16,1/2,-3/16,1/16}},
|
||||
},
|
||||
connects_to = {"group:fence", "group:wood", "group:tree"},
|
||||
inventory_image = fence_texture,
|
||||
wield_image = fence_texture,
|
||||
tiles = {def.texture},
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = false,
|
||||
groups = {},
|
||||
}
|
||||
for k, v in pairs(default_fields) do
|
||||
if not def[k] then
|
||||
def[k] = v
|
||||
end
|
||||
end
|
||||
|
||||
-- Always add to the fence group, even if no group provided
|
||||
def.groups.fence = 1
|
||||
|
||||
def.texture = nil
|
||||
def.material = nil
|
||||
|
||||
minetest.register_node(name, def)
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Leafdecay
|
||||
--
|
||||
|
||||
-- Prevent decay of placed leaves
|
||||
|
||||
default.after_place_leaves = function(pos, placer, itemstack, pointed_thing)
|
||||
if placer and not placer:get_player_control().sneak then
|
||||
local node = minetest.get_node(pos)
|
||||
node.param2 = 1
|
||||
minetest.set_node(pos, node)
|
||||
end
|
||||
end
|
||||
|
||||
-- Leafdecay
|
||||
local function leafdecay_after_destruct(pos, oldnode, def)
|
||||
for _, v in pairs(minetest.find_nodes_in_area(vector.subtract(pos, def.radius),
|
||||
vector.add(pos, def.radius), def.leaves)) do
|
||||
local node = minetest.get_node(v)
|
||||
local timer = minetest.get_node_timer(v)
|
||||
if node.param2 == 0 and not timer:is_started() then
|
||||
timer:start(math.random(20, 120) / 10)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function leafdecay_on_timer(pos, def)
|
||||
if minetest.find_node_near(pos, def.radius, def.trunks) then
|
||||
return false
|
||||
end
|
||||
|
||||
local node = minetest.get_node(pos)
|
||||
local drops = minetest.get_node_drops(node.name)
|
||||
for _, item in ipairs(drops) do
|
||||
local is_leaf
|
||||
for _, v in pairs(def.leaves) do
|
||||
if v == item then
|
||||
is_leaf = true
|
||||
end
|
||||
end
|
||||
if minetest.get_item_group(item, "leafdecay_drop") ~= 0 or
|
||||
not is_leaf then
|
||||
minetest.add_item({
|
||||
x = pos.x - 0.5 + math.random(),
|
||||
y = pos.y - 0.5 + math.random(),
|
||||
z = pos.z - 0.5 + math.random(),
|
||||
}, item)
|
||||
end
|
||||
end
|
||||
|
||||
minetest.remove_node(pos)
|
||||
minetest.check_for_falling(pos)
|
||||
end
|
||||
|
||||
function default.register_leafdecay(def)
|
||||
assert(def.leaves)
|
||||
assert(def.trunks)
|
||||
assert(def.radius)
|
||||
for _, v in pairs(def.trunks) do
|
||||
minetest.override_item(v, {
|
||||
after_destruct = function(pos, oldnode)
|
||||
leafdecay_after_destruct(pos, oldnode, def)
|
||||
end,
|
||||
})
|
||||
end
|
||||
for _, v in pairs(def.leaves) do
|
||||
minetest.override_item(v, {
|
||||
on_timer = function(pos)
|
||||
leafdecay_on_timer(pos, def)
|
||||
end,
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
--
|
||||
-- Convert dirt to something that fits the environment
|
||||
--
|
||||
|
||||
minetest.register_abm({
|
||||
label = "Grass spread",
|
||||
nodenames = {"default:dirt"},
|
||||
neighbors = {
|
||||
"air",
|
||||
"group:grass",
|
||||
"group:dry_grass",
|
||||
"default:snow",
|
||||
},
|
||||
interval = 6,
|
||||
chance = 50,
|
||||
catch_up = false,
|
||||
action = function(pos, node)
|
||||
-- Check for darkness: night, shadow or under a light-blocking node
|
||||
-- Returns if ignore above
|
||||
local above = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node_light(above) or 0) < 13 then
|
||||
return
|
||||
end
|
||||
|
||||
-- Look for spreading dirt-type neighbours
|
||||
local p2 = minetest.find_node_near(pos, 1, "group:spreading_dirt_type")
|
||||
if p2 then
|
||||
local n3 = minetest.get_node(p2)
|
||||
minetest.set_node(pos, {name = n3.name})
|
||||
return
|
||||
end
|
||||
|
||||
-- Else, any seeding nodes on top?
|
||||
local name = minetest.get_node(above).name
|
||||
-- Snow check is cheapest, so comes first
|
||||
if name == "default:snow" then
|
||||
minetest.set_node(pos, {name = "default:dirt_with_snow"})
|
||||
-- Most likely case first
|
||||
elseif minetest.get_item_group(name, "grass") ~= 0 then
|
||||
minetest.set_node(pos, {name = "default:dirt_with_grass"})
|
||||
elseif minetest.get_item_group(name, "dry_grass") ~= 0 then
|
||||
minetest.set_node(pos, {name = "default:dirt_with_dry_grass"})
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
--
|
||||
-- Grass and dry grass removed in darkness
|
||||
--
|
||||
|
||||
minetest.register_abm({
|
||||
label = "Grass covered",
|
||||
nodenames = {"group:spreading_dirt_type"},
|
||||
interval = 8,
|
||||
chance = 50,
|
||||
catch_up = false,
|
||||
action = function(pos, node)
|
||||
local above = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local name = minetest.get_node(above).name
|
||||
local nodedef = minetest.registered_nodes[name]
|
||||
if name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or
|
||||
nodedef.paramtype == "light") and
|
||||
nodedef.liquidtype == "none") then
|
||||
minetest.set_node(pos, {name = "default:dirt"})
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
--
|
||||
-- Moss growth on cobble near water
|
||||
--
|
||||
|
||||
minetest.register_abm({
|
||||
label = "Moss growth",
|
||||
nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble", "walls:cobble"},
|
||||
neighbors = {"group:water"},
|
||||
interval = 16,
|
||||
chance = 200,
|
||||
catch_up = false,
|
||||
action = function(pos, node)
|
||||
if node.name == "default:cobble" then
|
||||
minetest.set_node(pos, {name = "default:mossycobble"})
|
||||
elseif node.name == "stairs:slab_cobble" then
|
||||
minetest.set_node(pos, {name = "stairs:slab_mossycobble", param2 = node.param2})
|
||||
elseif node.name == "stairs:stair_cobble" then
|
||||
minetest.set_node(pos, {name = "stairs:stair_mossycobble", param2 = node.param2})
|
||||
elseif node.name == "walls:cobble" then
|
||||
minetest.set_node(pos, {name = "walls:mossycobble", param2 = node.param2})
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
--
|
||||
-- Checks if specified volume intersects a protected volume
|
||||
--
|
||||
|
||||
function default.intersects_protection(minp, maxp, player_name, interval)
|
||||
-- 'interval' is the largest allowed interval for the 3D lattice of checks
|
||||
|
||||
-- Compute the optimal float step 'd' for each axis so that all corners and
|
||||
-- borders are checked. 'd' will be smaller or equal to 'interval'.
|
||||
-- Subtracting 1e-4 ensures that the max co-ordinate will be reached by the
|
||||
-- for loop (which might otherwise not be the case due to rounding errors).
|
||||
local d = {}
|
||||
for _, c in pairs({"x", "y", "z"}) do
|
||||
if maxp[c] > minp[c] then
|
||||
d[c] = (maxp[c] - minp[c]) / math.ceil((maxp[c] - minp[c]) / interval) - 1e-4
|
||||
elseif maxp[c] == minp[c] then
|
||||
d[c] = 1 -- Any value larger than 0 to avoid division by zero
|
||||
else -- maxp[c] < minp[c], print error and treat as protection intersected
|
||||
minetest.log("error", "maxp < minp in 'default.intersects_protection()'")
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
for zf = minp.z, maxp.z, d.z do
|
||||
local z = math.floor(zf + 0.5)
|
||||
for yf = minp.y, maxp.y, d.y do
|
||||
local y = math.floor(yf + 0.5)
|
||||
for xf = minp.x, maxp.x, d.x do
|
||||
local x = math.floor(xf + 0.5)
|
||||
if minetest.is_protected({x = x, y = y, z = z}, player_name) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Coral death near air
|
||||
--
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"default:coral_brown", "default:coral_orange"},
|
||||
neighbors = {"air"},
|
||||
interval = 17,
|
||||
chance = 5,
|
||||
catch_up = false,
|
||||
action = function(pos, node)
|
||||
minetest.set_node(pos, {name = "default:coral_skeleton"})
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
--
|
||||
-- NOTICE: This method is not an official part of the API yet!
|
||||
-- This method may change in future.
|
||||
--
|
||||
|
||||
function default.can_interact_with_node(player, pos)
|
||||
if player then
|
||||
if minetest.check_player_privs(player, "protection_bypass") then
|
||||
return true
|
||||
end
|
||||
else
|
||||
return false
|
||||
end
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
local owner = meta:get_string("owner")
|
||||
|
||||
if not owner or owner == "" or owner == player:get_player_name() then
|
||||
return true
|
||||
end
|
||||
|
||||
-- is player wielding the right key?
|
||||
local item = player:get_wielded_item()
|
||||
if item:get_name() == "default:key" then
|
||||
local key_meta = item:get_meta()
|
||||
|
||||
if key_meta:get_string("secret") == "" then
|
||||
local key_oldmeta = item:get_metadata()
|
||||
if key_oldmeta == "" or not minetest.parse_json(key_oldmeta) then
|
||||
return false
|
||||
end
|
||||
|
||||
key_meta:set_string("secret", minetest.parse_json(key_oldmeta).secret)
|
||||
item:set_metadata("")
|
||||
end
|
||||
|
||||
return meta:get_string("key_lock_secret") == key_meta:get_string("secret")
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
139c139
|
||||
< interval = 1,
|
||||
---
|
||||
> interval = 2,
|
||||
142c142,144
|
||||
< action = default.cool_lava,
|
||||
---
|
||||
> action = function(...)
|
||||
> default.cool_lava(...)
|
||||
> end,
|
||||
225c227,229
|
||||
< action = default.grow_cactus
|
||||
---
|
||||
> action = function(...)
|
||||
> default.grow_cactus(...)
|
||||
> end
|
||||
234c238,240
|
||||
< action = default.grow_papyrus
|
||||
---
|
||||
> action = function(...)
|
||||
> default.grow_papyrus(...)
|
||||
> end
|
|
@ -0,0 +1,36 @@
|
|||
-- mods/default/legacy.lua
|
||||
|
||||
-- Horrible stuff to support old code registering falling nodes
|
||||
-- Don't use this and never do what this does, it's completely wrong!
|
||||
-- (More specifically, the client and the C++ code doesn't get the group)
|
||||
function default.register_falling_node(nodename, texture)
|
||||
minetest.log("error", debug.traceback())
|
||||
minetest.log('error', "WARNING: default.register_falling_node is deprecated")
|
||||
if minetest.registered_nodes[nodename] then
|
||||
minetest.registered_nodes[nodename].groups.falling_node = 1
|
||||
end
|
||||
end
|
||||
|
||||
function default.spawn_falling_node(p, nodename)
|
||||
spawn_falling_node(p, nodename)
|
||||
end
|
||||
|
||||
-- Liquids
|
||||
WATER_ALPHA = minetest.registered_nodes["default:water_source"].alpha
|
||||
WATER_VISC = minetest.registered_nodes["default:water_source"].liquid_viscosity
|
||||
LAVA_VISC = minetest.registered_nodes["default:lava_source"].liquid_viscosity
|
||||
LIGHT_MAX = default.LIGHT_MAX
|
||||
|
||||
-- Formspecs
|
||||
default.gui_suvival_form = default.gui_survival_form
|
||||
|
||||
-- Players
|
||||
if minetest.get_modpath("player_api") then
|
||||
default.registered_player_models = player_api.registered_models
|
||||
default.player_register_model = player_api.register_model
|
||||
default.player_attached = player_api.player_attached
|
||||
default.player_get_animation = player_api.get_animation
|
||||
default.player_set_model = player_api.set_model
|
||||
default.player_set_textures = player_api.set_textures
|
||||
default.player_set_animation = player_api.set_animation
|
||||
end
|
|
@ -0,0 +1,12 @@
|
|||
25a26,36
|
||||
>
|
||||
> -- Players
|
||||
> if minetest.get_modpath("player_api") then
|
||||
> default.registered_player_models = player_api.registered_models
|
||||
> default.player_register_model = player_api.register_model
|
||||
> default.player_attached = player_api.player_attached
|
||||
> default.player_get_animation = player_api.get_animation
|
||||
> default.player_set_model = player_api.set_model
|
||||
> default.player_set_textures = player_api.set_textures
|
||||
> default.player_set_animation = player_api.set_animation
|
||||
> end
|
|
@ -0,0 +1,439 @@
|
|||
46,48d45
|
||||
< -- Blob ores
|
||||
< -- These first to avoid other ores in blobs
|
||||
<
|
||||
51c48,51
|
||||
< function default.register_mgv6_blob_ores()
|
||||
---
|
||||
> function default.register_mgv6_ores()
|
||||
>
|
||||
> -- Blob ore
|
||||
> -- These first to avoid other ores in blobs
|
||||
136a137,407
|
||||
>
|
||||
> -- Scatter ores
|
||||
>
|
||||
> -- Coal
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_coal",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 8 * 8 * 8,
|
||||
> clust_num_ores = 9,
|
||||
> clust_size = 3,
|
||||
> y_min = 1025,
|
||||
> y_max = 31000,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_coal",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 8 * 8 * 8,
|
||||
> clust_num_ores = 8,
|
||||
> clust_size = 3,
|
||||
> y_min = -31000,
|
||||
> y_max = 64,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_coal",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 24 * 24 * 24,
|
||||
> clust_num_ores = 27,
|
||||
> clust_size = 6,
|
||||
> y_min = -31000,
|
||||
> y_max = 0,
|
||||
> })
|
||||
>
|
||||
> -- Iron
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_iron",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 9 * 9 * 9,
|
||||
> clust_num_ores = 12,
|
||||
> clust_size = 3,
|
||||
> y_min = 1025,
|
||||
> y_max = 31000,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_iron",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 7 * 7 * 7,
|
||||
> clust_num_ores = 5,
|
||||
> clust_size = 3,
|
||||
> y_min = -31000,
|
||||
> y_max = 0,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_iron",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 24 * 24 * 24,
|
||||
> clust_num_ores = 27,
|
||||
> clust_size = 6,
|
||||
> y_min = -31000,
|
||||
> y_max = -64,
|
||||
> })
|
||||
>
|
||||
> -- Copper
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_copper",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 9 * 9 * 9,
|
||||
> clust_num_ores = 5,
|
||||
> clust_size = 3,
|
||||
> y_min = 1025,
|
||||
> y_max = 31000,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_copper",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 12 * 12 * 12,
|
||||
> clust_num_ores = 4,
|
||||
> clust_size = 3,
|
||||
> y_min = -63,
|
||||
> y_max = -16,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_copper",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 9 * 9 * 9,
|
||||
> clust_num_ores = 5,
|
||||
> clust_size = 3,
|
||||
> y_min = -31000,
|
||||
> y_max = -64,
|
||||
> })
|
||||
>
|
||||
> -- Tin
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_tin",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 10 * 10 * 10,
|
||||
> clust_num_ores = 5,
|
||||
> clust_size = 3,
|
||||
> y_min = 1025,
|
||||
> y_max = 31000,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_tin",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 13 * 13 * 13,
|
||||
> clust_num_ores = 4,
|
||||
> clust_size = 3,
|
||||
> y_min = -127,
|
||||
> y_max = -32,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_tin",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 10 * 10 * 10,
|
||||
> clust_num_ores = 5,
|
||||
> clust_size = 3,
|
||||
> y_min = -31000,
|
||||
> y_max = -128,
|
||||
> })
|
||||
>
|
||||
> -- Gold
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_gold",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 13 * 13 * 13,
|
||||
> clust_num_ores = 5,
|
||||
> clust_size = 3,
|
||||
> y_min = 1025,
|
||||
> y_max = 31000,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_gold",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 15 * 15 * 15,
|
||||
> clust_num_ores = 3,
|
||||
> clust_size = 2,
|
||||
> y_min = -255,
|
||||
> y_max = -64,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_gold",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 13 * 13 * 13,
|
||||
> clust_num_ores = 5,
|
||||
> clust_size = 3,
|
||||
> y_min = -31000,
|
||||
> y_max = -256,
|
||||
> })
|
||||
>
|
||||
> -- Mese crystal
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_mese",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 14 * 14 * 14,
|
||||
> clust_num_ores = 5,
|
||||
> clust_size = 3,
|
||||
> y_min = 1025,
|
||||
> y_max = 31000,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_mese",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 18 * 18 * 18,
|
||||
> clust_num_ores = 3,
|
||||
> clust_size = 2,
|
||||
> y_min = -255,
|
||||
> y_max = -64,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_mese",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 14 * 14 * 14,
|
||||
> clust_num_ores = 5,
|
||||
> clust_size = 3,
|
||||
> y_min = -31000,
|
||||
> y_max = -256,
|
||||
> })
|
||||
>
|
||||
> -- Diamond
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_diamond",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 15 * 15 * 15,
|
||||
> clust_num_ores = 4,
|
||||
> clust_size = 3,
|
||||
> y_min = 1025,
|
||||
> y_max = 31000,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_diamond",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 17 * 17 * 17,
|
||||
> clust_num_ores = 4,
|
||||
> clust_size = 3,
|
||||
> y_min = -255,
|
||||
> y_max = -128,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:stone_with_diamond",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 15 * 15 * 15,
|
||||
> clust_num_ores = 4,
|
||||
> clust_size = 3,
|
||||
> y_min = -31000,
|
||||
> y_max = -256,
|
||||
> })
|
||||
>
|
||||
> -- Mese block
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:mese",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 36 * 36 * 36,
|
||||
> clust_num_ores = 3,
|
||||
> clust_size = 2,
|
||||
> y_min = 1025,
|
||||
> y_max = 31000,
|
||||
> })
|
||||
>
|
||||
> minetest.register_ore({
|
||||
> ore_type = "scatter",
|
||||
> ore = "default:mese",
|
||||
> wherein = "default:stone",
|
||||
> clust_scarcity = 36 * 36 * 36,
|
||||
> clust_num_ores = 3,
|
||||
> clust_size = 2,
|
||||
> y_min = -31000,
|
||||
> y_max = -1024,
|
||||
> })
|
||||
142c413,416
|
||||
< function default.register_blob_ores()
|
||||
---
|
||||
> function default.register_ores()
|
||||
>
|
||||
> -- Blob ore
|
||||
> -- These first to avoid other ores in blobs
|
||||
144a419
|
||||
> -- This first to avoid clay in sand blobs
|
||||
191c466
|
||||
< "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"}
|
||||
---
|
||||
> "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"}
|
||||
215,216c490
|
||||
< "rainforest", "rainforest_swamp", "floatland_grassland",
|
||||
< "floatland_coniferous_forest"}
|
||||
---
|
||||
> "rainforest", "rainforest_swamp", "floatland_coniferous_forest"}
|
||||
245c519
|
||||
< "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"}
|
||||
---
|
||||
> "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"}
|
||||
247,248d520
|
||||
< end
|
||||
<
|
||||
250,253c522
|
||||
< -- Scatter ores
|
||||
< -- All mapgens
|
||||
<
|
||||
< function default.register_ores()
|
||||
---
|
||||
> -- Scatter ores
|
||||
1178a1448
|
||||
> -- Used when mgv7 'biomerepeat' flag is false
|
||||
1180,1202c1450
|
||||
< function default.register_floatland_biomes(floatland_level, shadow_limit)
|
||||
<
|
||||
< -- Coniferous forest
|
||||
<
|
||||
< minetest.register_biome({
|
||||
< name = "floatland_coniferous_forest",
|
||||
< --node_dust = "",
|
||||
< node_top = "default:dirt_with_grass",
|
||||
< depth_top = 1,
|
||||
< node_filler = "default:dirt",
|
||||
< depth_filler = 3,
|
||||
< --node_stone = "",
|
||||
< --node_water_top = "",
|
||||
< --depth_water_top = ,
|
||||
< --node_water = "",
|
||||
< --node_river_water = "",
|
||||
< --node_riverbed = "",
|
||||
< --depth_riverbed = ,
|
||||
< y_min = floatland_level + 2,
|
||||
< y_max = 31000,
|
||||
< heat_point = 50,
|
||||
< humidity_point = 70,
|
||||
< })
|
||||
---
|
||||
> -- TODO Temporary simple biomes to be replaced by special floatland biomes later.
|
||||
1204c1452
|
||||
< -- Grassland
|
||||
---
|
||||
> function default.register_floatland_biomes(floatland_level, shadow_limit)
|
||||
1220c1468
|
||||
< y_min = floatland_level + 2,
|
||||
---
|
||||
> y_min = floatland_level + 4,
|
||||
1223,1245c1471
|
||||
< humidity_point = 35,
|
||||
< })
|
||||
<
|
||||
< -- Sandstone desert
|
||||
<
|
||||
< minetest.register_biome({
|
||||
< name = "floatland_sandstone_desert",
|
||||
< --node_dust = "",
|
||||
< node_top = "default:sand",
|
||||
< depth_top = 1,
|
||||
< node_filler = "default:sand",
|
||||
< depth_filler = 1,
|
||||
< node_stone = "default:sandstone",
|
||||
< --node_water_top = "",
|
||||
< --depth_water_top = ,
|
||||
< --node_water = "",
|
||||
< --node_river_water = "",
|
||||
< --node_riverbed = "",
|
||||
< --depth_riverbed = ,
|
||||
< y_min = floatland_level + 2,
|
||||
< y_max = 31000,
|
||||
< heat_point = 50,
|
||||
< humidity_point = 0,
|
||||
---
|
||||
> humidity_point = 50,
|
||||
1248,1249d1473
|
||||
< -- Floatland ocean / underground
|
||||
<
|
||||
1251c1475
|
||||
< name = "floatland_ocean",
|
||||
---
|
||||
> name = "floatland_grassland_ocean",
|
||||
1265c1489
|
||||
< y_max = floatland_level + 1,
|
||||
---
|
||||
> y_max = floatland_level + 3,
|
||||
1383c1607
|
||||
< "floatland_grassland", "floatland_coniferous_forest"},
|
||||
---
|
||||
> "floatland_grassland"},
|
||||
1497c1721
|
||||
< biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
|
||||
---
|
||||
> biomes = {"taiga", "coniferous_forest"},
|
||||
1797c2021
|
||||
< "mountains, ridges, nofloatlands"
|
||||
---
|
||||
> "mountains, ridges, nofloatlands, caverns, biomerepeat"
|
||||
1799a2024
|
||||
> local captures_nobiorep = string.match(mgv7_spflags, "nobiomerepeat")
|
||||
1801,1802c2026,2031
|
||||
< local mgv7_floatland_level = minetest.get_mapgen_setting("mgv7_floatland_level") or 1280
|
||||
< local mgv7_shadow_limit = minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024
|
||||
---
|
||||
> -- Get setting or default
|
||||
> -- Make global for mods to use to register floatland biomes
|
||||
> default.mgv7_floatland_level =
|
||||
> minetest.get_mapgen_setting("mgv7_floatland_level") or 1280
|
||||
> default.mgv7_shadow_limit =
|
||||
> minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024
|
||||
1808a2038
|
||||
>
|
||||
1810,1811c2040
|
||||
< default.register_mgv6_blob_ores()
|
||||
< default.register_ores()
|
||||
---
|
||||
> default.register_mgv6_ores()
|
||||
1813,1818c2042,2051
|
||||
< elseif mg_name == "v7" and captures_float == "floatlands" and
|
||||
< captures_nofloat ~= "nofloatlands" then
|
||||
< -- Mgv7 with floatlands
|
||||
< default.register_biomes(mgv7_shadow_limit - 1)
|
||||
< default.register_floatland_biomes(mgv7_floatland_level, mgv7_shadow_limit)
|
||||
< default.register_blob_ores()
|
||||
---
|
||||
> elseif mg_name == "v7" and
|
||||
> captures_float == "floatlands" and
|
||||
> -- Need to check for 'nofloatlands' because that contains
|
||||
> -- 'floatlands' which makes the second condition true.
|
||||
> captures_nofloat ~= "nofloatlands" and
|
||||
> captures_nobiorep == "nobiomerepeat" then
|
||||
> -- Mgv7 with floatlands and floatland biomes
|
||||
> default.register_biomes(default.mgv7_shadow_limit - 1)
|
||||
> default.register_floatland_biomes(
|
||||
> default.mgv7_floatland_level, default.mgv7_shadow_limit)
|
||||
1823d2055
|
||||
< default.register_blob_ores()
|
|
@ -0,0 +1,610 @@
|
|||
78,81c78,81
|
||||
< default:jungletree
|
||||
< default:junglewood
|
||||
< default:jungleleaves
|
||||
< default:junglesapling
|
||||
---
|
||||
> default:jungle_tree
|
||||
> default:jungle_wood
|
||||
> default:jungle_leaves
|
||||
> default:jungle_sapling
|
||||
131c131
|
||||
< default:junglegrass
|
||||
---
|
||||
> default:jungle_grass
|
||||
188c188
|
||||
< default:fence_junglewood
|
||||
---
|
||||
> default:fence_jungle_wood
|
||||
572c572
|
||||
< description = "Tree",
|
||||
---
|
||||
> description = "Apple Tree",
|
||||
583c583
|
||||
< description = "Wooden Planks",
|
||||
---
|
||||
> description = "Apple Wood Planks",
|
||||
593,595c593,610
|
||||
< description = "Sapling",
|
||||
< drawtype = "plantlike",
|
||||
< tiles = {"default_sapling.png"},
|
||||
---
|
||||
> description = "Apple Tree Sapling",
|
||||
> drawtype = "nodebox",
|
||||
> paramtype = "light",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1
|
||||
> {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2
|
||||
> {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3
|
||||
> }
|
||||
> },
|
||||
> tiles = {"default_sapling_top.png",
|
||||
> "default_sapling_bottom.png",
|
||||
> "default_sapling_side.png",
|
||||
> "default_sapling_side.png",
|
||||
> "default_sapling_side.png",
|
||||
> "default_sapling_side.png"
|
||||
> },
|
||||
600c615
|
||||
< walkable = false,
|
||||
---
|
||||
> walkable = true,
|
||||
611c626
|
||||
< minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
---
|
||||
> minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
629c644
|
||||
< description = "Leaves",
|
||||
---
|
||||
> description = "Apple Tree Leaves",
|
||||
659c674,681
|
||||
< drawtype = "plantlike",
|
||||
---
|
||||
> drawtype = "nodebox",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {-0.25, -0.5, -0.25, 0.25, 0.0625, 0.25}, -- NodeBox1
|
||||
> {-0.0625, 0.0625, -0.0625, 0.0625, 0.25, 0.0625}, -- NodeBox2
|
||||
> }
|
||||
> },
|
||||
683c705
|
||||
< minetest.register_node("default:jungletree", {
|
||||
---
|
||||
> minetest.register_node("default:jungle_tree", {
|
||||
685,686c707,708
|
||||
< tiles = {"default_jungletree_top.png", "default_jungletree_top.png",
|
||||
< "default_jungletree.png"},
|
||||
---
|
||||
> tiles = {"default_jungle_tree_top.png", "default_jungle_tree_top.png",
|
||||
> "default_jungle_tree.png"},
|
||||
695c717
|
||||
< minetest.register_node("default:junglewood", {
|
||||
---
|
||||
> minetest.register_node("default:jungle_wood", {
|
||||
699c721
|
||||
< tiles = {"default_junglewood.png"},
|
||||
---
|
||||
> tiles = {"default_jungle_wood.png"},
|
||||
705,706c727,728
|
||||
< minetest.register_node("default:jungleleaves", {
|
||||
< description = "Jungle Leaves",
|
||||
---
|
||||
> minetest.register_node("default:jungle_leaves", {
|
||||
> description = "Jungle Tree Leaves",
|
||||
709,710c731,732
|
||||
< tiles = {"default_jungleleaves.png"},
|
||||
< special_tiles = {"default_jungleleaves_simple.png"},
|
||||
---
|
||||
> tiles = {"default_jungle_leaves.png"},
|
||||
> special_tiles = {"default_jungle_leaves_simple.png"},
|
||||
717,718c739,740
|
||||
< {items = {'default:junglesapling'}, rarity = 20},
|
||||
< {items = {'default:jungleleaves'}}
|
||||
---
|
||||
> {items = {'default:jungle_sapling'}, rarity = 20},
|
||||
> {items = {'default:jungle_leaves'}}
|
||||
726,731c748,769
|
||||
< minetest.register_node("default:junglesapling", {
|
||||
< description = "Jungle Sapling",
|
||||
< drawtype = "plantlike",
|
||||
< tiles = {"default_junglesapling.png"},
|
||||
< inventory_image = "default_junglesapling.png",
|
||||
< wield_image = "default_junglesapling.png",
|
||||
---
|
||||
> minetest.register_node("default:jungle_sapling", {
|
||||
> description = "Jungle Tree Sapling",
|
||||
> tiles = {
|
||||
> "default_jungle_sapling_top.png",
|
||||
> "default_jungle_sapling_bottom.png",
|
||||
> "default_jungle_sapling_side.png",
|
||||
> "default_jungle_sapling_side.png",
|
||||
> "default_jungle_sapling_side.png",
|
||||
> "default_jungle_sapling_side.png"
|
||||
> },
|
||||
> drawtype = "nodebox",
|
||||
> paramtype = "light",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1
|
||||
> {-0.25, -0.3125, -0.25, 0.25, 0, 0.25}, -- NodeBox3
|
||||
> {-0.125, -0.0625, -0.125, 0.1875, 0.125, 0.1875}, -- NodeBox4
|
||||
> }
|
||||
> },
|
||||
> inventory_image = "default_jungle_sapling.png",
|
||||
> wield_image = "default_jungle_sapling.png",
|
||||
734c772
|
||||
< walkable = false,
|
||||
---
|
||||
> walkable = true,
|
||||
745c783
|
||||
< minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
---
|
||||
> minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
806,808c844,865
|
||||
< description = "Pine Sapling",
|
||||
< drawtype = "plantlike",
|
||||
< tiles = {"default_pine_sapling.png"},
|
||||
---
|
||||
> description = "Pine Tree Sapling",
|
||||
> drawtype = "nodebox",
|
||||
> paramtype = "light",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1
|
||||
> {-0.3125, -0.375, -0.3125, 0.3125, -0.3125, 0.3125}, -- NodeBox2
|
||||
> {-0.25, -0.3125, -0.25, 0.25, -0.25, 0.25}, -- NodeBox3
|
||||
> {-0.1875, -0.25, -0.1875, 0.1875, -0.125, 0.1875}, -- NodeBox4
|
||||
> {-0.125, -0.1875, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox5
|
||||
> {-0.0625, -0.0625, -0.0625, 0.0625, 0.0625, 0.0625}, -- NodeBox6
|
||||
> }
|
||||
> },
|
||||
> tiles = {
|
||||
> "default_pine_sapling_top.png",
|
||||
> "default_pine_sapling_bottom.png",
|
||||
> "default_pine_sapling_side.png",
|
||||
> "default_pine_sapling_side.png",
|
||||
> "default_pine_sapling_side.png",
|
||||
> "default_pine_sapling_side.png"
|
||||
> },
|
||||
824c881
|
||||
< minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
---
|
||||
> minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
865c922
|
||||
< description = "Acacia Leaves",
|
||||
---
|
||||
> description = "Acacia Tree Leaves",
|
||||
887,888c944,960
|
||||
< drawtype = "plantlike",
|
||||
< tiles = {"default_acacia_sapling.png"},
|
||||
---
|
||||
> drawtype = "nodebox",
|
||||
> paramtype = "light",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1
|
||||
> {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2
|
||||
> {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3
|
||||
> }
|
||||
> },
|
||||
> tiles = {"default_acacia_sapling_top.png",
|
||||
> "default_acacia_sapling_bottom.png",
|
||||
> "default_acacia_sapling_side.png",
|
||||
> "default_acacia_sapling_side.png",
|
||||
> "default_acacia_sapling_side.png",
|
||||
> "default_acacia_sapling_side.png"
|
||||
> },
|
||||
893c965
|
||||
< walkable = false,
|
||||
---
|
||||
> walkable = true,
|
||||
904c976
|
||||
< minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
---
|
||||
> minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
944c1016
|
||||
< description = "Aspen Leaves",
|
||||
---
|
||||
> description = "Aspen Tree Leaves",
|
||||
965,966c1037,1053
|
||||
< drawtype = "plantlike",
|
||||
< tiles = {"default_aspen_sapling.png"},
|
||||
---
|
||||
> drawtype = "nodebox",
|
||||
> paramtype = "light",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1
|
||||
> {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2
|
||||
> {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3
|
||||
> }
|
||||
> },
|
||||
> tiles = {"default_aspen_sapling_top.png",
|
||||
> "default_aspen_sapling_bottom.png",
|
||||
> "default_aspen_sapling_side.png",
|
||||
> "default_aspen_sapling_side.png",
|
||||
> "default_aspen_sapling_side.png",
|
||||
> "default_aspen_sapling_side.png"
|
||||
> },
|
||||
971c1058
|
||||
< walkable = false,
|
||||
---
|
||||
> walkable = true,
|
||||
982c1069
|
||||
< minetest.get_node_timer(pos):start(math.random(2400,4800))
|
||||
---
|
||||
> minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
1147c1234,1243
|
||||
< drawtype = "plantlike",
|
||||
---
|
||||
> drawtype = "nodebox",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {0.1875, -0.5, 0.1875, 0.4375, 0.5, 0.4375}, -- NodeBox1
|
||||
> {0.1875, -0.5, -0.4375, 0.4375, 0.5, -0.1875}, -- NodeBox2
|
||||
> {-0.4375, -0.5, -0.4375, -0.1875, 0.5, -0.1875}, -- NodeBox3
|
||||
> {-0.4375, -0.5, 0.1875, -0.1875, 0.5, 0.4375}, -- NodeBox4
|
||||
> }
|
||||
> },
|
||||
1149,1150c1245,1246
|
||||
< inventory_image = "default_papyrus.png",
|
||||
< wield_image = "default_papyrus.png",
|
||||
---
|
||||
> inventory_image = "default_inv_papyrus.png",
|
||||
> wield_image = "default_inv_papyrus.png",
|
||||
1185c1281
|
||||
< minetest.register_node("default:junglegrass", {
|
||||
---
|
||||
> minetest.register_node("default:jungle_grass", {
|
||||
1187,1192c1283,1297
|
||||
< drawtype = "plantlike",
|
||||
< waving = 1,
|
||||
< visual_scale = 1.69,
|
||||
< tiles = {"default_junglegrass.png"},
|
||||
< inventory_image = "default_junglegrass.png",
|
||||
< wield_image = "default_junglegrass.png",
|
||||
---
|
||||
> drawtype = "nodebox",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {-0.125, -0.5, -0.125, 0.125, 0.25, 0.125}, -- NodeBox18
|
||||
> {0.125, 0.25, -0.125, 0.375, 0.5, 0.125}, -- NodeBox19
|
||||
> {0.25, -0.5, 0.25, 0.5, -0.125, 0.5}, -- NodeBox20
|
||||
> {-0.5, -0.5, 0.25, -0.25, -0.25, 0.5}, -- NodeBox21
|
||||
> {0.25, -0.5, -0.5, 0.5, -0.1875, -0.25}, -- NodeBox22
|
||||
> {-0.5, -0.5, -0.5, -0.25, -0.0625, -0.25}, -- NodeBox23
|
||||
> }
|
||||
> },
|
||||
> tiles = {"default_grass.png"},
|
||||
> inventory_image = "default_jungle_grass.png",
|
||||
> wield_image = "default_jungle_grass.png",
|
||||
1193a1299
|
||||
> paramtype2 = "facedir",
|
||||
1208c1314,1322
|
||||
< drawtype = "plantlike",
|
||||
---
|
||||
> drawtype = "nodebox",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {-0.375, -0.5, 0.125, -0.125, -0.25, 0.375}, -- NodeBox9
|
||||
> {0.125, -0.5, 0.125, 0.375, -0.25, 0.375}, -- NodeBox11
|
||||
> {-0.375, -0.5, -0.375, -0.125, -0.25, -0.125}, -- NodeBox12
|
||||
> }
|
||||
> },
|
||||
1210c1324
|
||||
< tiles = {"default_grass_1.png"},
|
||||
---
|
||||
> tiles = {"default_grass.png"},
|
||||
1212,1213d1325
|
||||
< inventory_image = "default_grass_3.png",
|
||||
< wield_image = "default_grass_3.png",
|
||||
1223a1336
|
||||
> })
|
||||
1225,1231c1338,1364
|
||||
< on_place = function(itemstack, placer, pointed_thing)
|
||||
< -- place a random grass node
|
||||
< local stack = ItemStack("default:grass_" .. math.random(1,5))
|
||||
< local ret = minetest.item_place(stack, placer, pointed_thing)
|
||||
< return ItemStack("default:grass_1 " ..
|
||||
< itemstack:get_count() - (1 - ret:get_count()))
|
||||
< end,
|
||||
---
|
||||
> minetest.register_node("default:grass_2", {
|
||||
> description = "Grass",
|
||||
> drawtype = "nodebox",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {-0.125, -0.5, -0.125, 0.125, -0.1875, 0.125}, -- NodeBox8
|
||||
> {-0.375, -0.5, 0.125, -0.125, 0.0625, 0.375}, -- NodeBox9
|
||||
> {0.125, -0.5, 0.125, 0.375, 0.0625, 0.375}, -- NodeBox11
|
||||
> {-0.375, -0.5, -0.375, -0.125, 0.0625, -0.125}, -- NodeBox12
|
||||
> {0.125, -0.5, -0.375, 0.375, 0.0625, -0.125}, -- NodeBox13
|
||||
> }
|
||||
> },
|
||||
> waving = 1,
|
||||
> tiles = {"default_grass.png"},
|
||||
> paramtype = "light",
|
||||
> sunlight_propagates = true,
|
||||
> walkable = false,
|
||||
> buildable_to = true,
|
||||
> drop = "default:grass_2",
|
||||
> groups = {snappy = 3, flora = 1, attached_node = 1,
|
||||
> not_in_creative_inventory = 1, grass = 1, flammable = 1},
|
||||
> sounds = default.node_sound_leaves_defaults(),
|
||||
> selection_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16},
|
||||
> },
|
||||
1234,1248c1367,1388
|
||||
< for i = 2, 5 do
|
||||
< minetest.register_node("default:grass_" .. i, {
|
||||
< description = "Grass",
|
||||
< drawtype = "plantlike",
|
||||
< waving = 1,
|
||||
< tiles = {"default_grass_" .. i .. ".png"},
|
||||
< inventory_image = "default_grass_" .. i .. ".png",
|
||||
< wield_image = "default_grass_" .. i .. ".png",
|
||||
< paramtype = "light",
|
||||
< sunlight_propagates = true,
|
||||
< walkable = false,
|
||||
< buildable_to = true,
|
||||
< drop = "default:grass_1",
|
||||
< groups = {snappy = 3, flora = 1, attached_node = 1,
|
||||
< not_in_creative_inventory = 1, grass = 1, flammable = 1},
|
||||
---
|
||||
> minetest.register_node("default:grass_3", {
|
||||
> description = "Grass",
|
||||
> drawtype = "nodebox",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {-0.125, -0.5, -0.125, 0.125, -0.1875, 0.125}, -- NodeBox8
|
||||
> {-0.375, -0.5, 0.125, -0.125, 0.3125, 0.375}, -- NodeBox9
|
||||
> {0.125, -0.5, 0.125, 0.375, 0.3125, 0.375}, -- NodeBox11
|
||||
> {-0.375, -0.5, -0.375, -0.125, 0.3125, -0.125}, -- NodeBox12
|
||||
> {0.125, -0.5, -0.375, 0.375, 0.3125, -0.125}, -- NodeBox13
|
||||
> }
|
||||
> },
|
||||
> waving = 1,
|
||||
> tiles = {"default_grass.png"},
|
||||
> paramtype = "light",
|
||||
> sunlight_propagates = true,
|
||||
> walkable = false,
|
||||
> buildable_to = true,
|
||||
> drop = "default:grass_3",
|
||||
> groups = {snappy = 3, flora = 1, attached_node = 1,
|
||||
> not_in_creative_inventory = 1, grass = 1, flammable = 1},
|
||||
1250,1255c1390,1423
|
||||
< selection_box = {
|
||||
< type = "fixed",
|
||||
< fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16},
|
||||
< },
|
||||
< })
|
||||
< end
|
||||
---
|
||||
> selection_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16},
|
||||
> },
|
||||
> })
|
||||
>
|
||||
> minetest.register_node("default:grass_4", {
|
||||
> description = "Grass",
|
||||
> drawtype = "nodebox",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {0.125, -0.5, 0.125, 0.4375, 0.5, 0.4375}, -- NodeBox1
|
||||
> {0.125, -0.5, -0.4375, 0.4375, 0.5, -0.125}, -- NodeBox2
|
||||
> {-0.4375, -0.5, -0.4375, -0.125, 0.5, -0.125}, -- NodeBox3
|
||||
> {-0.4375, -0.5, 0.125, -0.125, 0.5, 0.4375}, -- NodeBox4
|
||||
> {-0.125, -0.5, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox7
|
||||
> }
|
||||
> },
|
||||
> waving = 1,
|
||||
> tiles = {"default_grass.png"},
|
||||
> paramtype = "light",
|
||||
> sunlight_propagates = true,
|
||||
> walkable = false,
|
||||
> buildable_to = true,
|
||||
> drop = "default:grass_3",
|
||||
> groups = {snappy = 3, flora = 1, attached_node = 1,
|
||||
> not_in_creative_inventory = 1, grass = 1, flammable = 1},
|
||||
> sounds = default.node_sound_leaves_defaults(),
|
||||
> selection_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16},
|
||||
> },
|
||||
> })
|
||||
1256a1425,1452
|
||||
> minetest.register_node("default:grass_5", {
|
||||
> description = "Grass",
|
||||
> drawtype = "nodebox",
|
||||
> node_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {
|
||||
> {0.125, -0.5, 0.125, 0.4375, 0.5, 0.4375}, -- NodeBox1
|
||||
> {0.125, -0.5, -0.4375, 0.4375, 0.5, -0.125}, -- NodeBox2
|
||||
> {-0.4375, -0.5, -0.4375, -0.125, 0.5, -0.125}, -- NodeBox3
|
||||
> {-0.4375, -0.5, 0.125, -0.125, 0.5, 0.4375}, -- NodeBox4
|
||||
> {-0.125, -0.5, -0.125, 0.125, 0.125, 0.125}, -- NodeBox7
|
||||
> }
|
||||
> },
|
||||
> waving = 1,
|
||||
> tiles = {"default_grass.png"},
|
||||
> paramtype = "light",
|
||||
> sunlight_propagates = true,
|
||||
> walkable = false,
|
||||
> buildable_to = true,
|
||||
> drop = "default:grass_3",
|
||||
> groups = {snappy = 3, flora = 1, attached_node = 1,
|
||||
> not_in_creative_inventory = 1, grass = 1, flammable = 1},
|
||||
> sounds = default.node_sound_leaves_defaults(),
|
||||
> selection_box = {
|
||||
> type = "fixed",
|
||||
> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16},
|
||||
> },
|
||||
> })
|
||||
1365c1561
|
||||
< minetest.get_node_timer(pos):start(math.random(1200, 2400))
|
||||
---
|
||||
> minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
1436c1632
|
||||
< minetest.get_node_timer(pos):start(math.random(1200, 2400))
|
||||
---
|
||||
> minetest.get_node_timer(pos):start(math.random(300, 1500))
|
||||
1712c1908
|
||||
< liquid_renewable = false,
|
||||
---
|
||||
> liquid_renewable = true,
|
||||
1758c1954
|
||||
< liquid_renewable = false,
|
||||
---
|
||||
> liquid_renewable = true,
|
||||
1769c1965
|
||||
< local function get_chest_formspec(pos)
|
||||
---
|
||||
> function default.get_chest_formspec(pos)
|
||||
1786c1982
|
||||
< local above = { x = pos.x, y = pos.y + 1, z = pos.z }
|
||||
---
|
||||
> local above = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
1789c1985,1986
|
||||
< if def.drawtype == "airlike" or
|
||||
---
|
||||
> if def and
|
||||
> (def.drawtype == "airlike" or
|
||||
1792c1989
|
||||
< (def.drawtype == "nodebox" and def.paramtype2 == "wallmounted") then
|
||||
---
|
||||
> (def.drawtype == "nodebox" and def.paramtype2 == "wallmounted")) then
|
||||
1892c2089
|
||||
< "default:chest", get_chest_formspec(pos))
|
||||
---
|
||||
> "default:chest", default.get_chest_formspec(pos))
|
||||
1914c2111
|
||||
< get_chest_formspec(pos)
|
||||
---
|
||||
> default.get_chest_formspec(pos)
|
||||
1959c2156
|
||||
< "default:chest", get_chest_formspec(pos))
|
||||
---
|
||||
> "default:chest", default.get_chest_formspec(pos))
|
||||
1991a2189,2195
|
||||
> for i = 1, #def_opened.tiles do
|
||||
> if type(def_opened.tiles[i]) == "string" then
|
||||
> def_opened.tiles[i] = {name = def_opened.tiles[i], backface_culling = true}
|
||||
> elseif def_opened.tiles[i].backface_culling == nil then
|
||||
> def_opened.tiles[i].backface_culling = true
|
||||
> end
|
||||
> end
|
||||
1997c2201
|
||||
< }
|
||||
---
|
||||
> }
|
||||
2146a2351,2389
|
||||
> torch_box = {
|
||||
> type = "wallmounted",
|
||||
> wall_top = {-0.5/3, -0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3},
|
||||
> wall_bottom = {-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},
|
||||
> wall_side = {-1.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},
|
||||
> }
|
||||
>
|
||||
> minetest.register_node("default:torch", {
|
||||
> drawtype = "nodebox",
|
||||
> description = "Torch",
|
||||
> tiles = {"default_torch.png"},
|
||||
> inventory_image = "default_torch_inventory.png",
|
||||
> wield_image = "default_torch_inventory.png",
|
||||
> paramtype = "light",
|
||||
> paramtype2 = "wallmounted",
|
||||
> legacy_wallmounted = true,
|
||||
> sunlight_propagates = true,
|
||||
> walkable = false,
|
||||
> light_source = default.LIGHT_MAX-2,
|
||||
> node_box = torch_box,
|
||||
> groups = {attached_node=1, dig_immediate=3,not_in_creative_inventory=1},
|
||||
> drop='"default:torch" 1',
|
||||
> sounds = default.node_sound_wood_defaults(),
|
||||
> -- on_construct = function(pos)
|
||||
> -- local tmr = minetest.env:get_node_timer(pos)
|
||||
> -- tmr:start(torch_time)
|
||||
> -- end,
|
||||
> -- on_rightclick = function(pos, node)
|
||||
> -- local tmr = minetest.env:get_node_timer(pos)
|
||||
> -- local meta = minetest.get_meta(pos)
|
||||
> -- local proc = math.floor(tmr:get_elapsed()/(torch_time/100))
|
||||
> -- meta:set_string("infotext", proc.."%")
|
||||
> -- end,
|
||||
> -- on_timer = function(pos,elapsed)
|
||||
> -- local node = minetest.get_node(pos)
|
||||
> -- minetest.set_node(pos, {name="default:torch_out", param2 = node.param2})
|
||||
> -- end,
|
||||
> })
|
||||
>
|
||||
2247c2490
|
||||
< description = "Wooden Fence",
|
||||
---
|
||||
> description = "Apple Wood Fence",
|
||||
2257c2500
|
||||
< description = "Acacia Fence",
|
||||
---
|
||||
> description = "Acacia Wood Fence",
|
||||
2266c2509
|
||||
< default.register_fence("default:fence_junglewood", {
|
||||
---
|
||||
> default.register_fence("default:fence_jungle_wood", {
|
||||
2268,2271c2511,2514
|
||||
< texture = "default_fence_junglewood.png",
|
||||
< inventory_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126",
|
||||
< wield_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126",
|
||||
< material = "default:junglewood",
|
||||
---
|
||||
> texture = "default_fence_jungle_wood.png",
|
||||
> inventory_image = "default_fence_overlay.png^default_jungle_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
|
||||
> wield_image = "default_fence_overlay.png^default_jungle_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
|
||||
> material = "default:jungle_wood",
|
||||
2277c2520
|
||||
< description = "Pine Fence",
|
||||
---
|
||||
> description = "Pine Wood Fence",
|
||||
2287c2530
|
||||
< description = "Aspen Fence",
|
||||
---
|
||||
> description = "Aspen Wood Fence",
|
||||
2301c2544
|
||||
< paramtype2 = "glasslikeliquidlevel",
|
||||
---
|
||||
> -- paramtype2 = "glasslikeliquidlevel",
|
||||
2389,2390c2632,2633
|
||||
< trunks = {"default:jungletree"},
|
||||
< leaves = {"default:jungleleaves"},
|
||||
---
|
||||
> trunks = {"default:jungle_tree"},
|
||||
> leaves = {"default:jungle_leaves"},
|
||||
2407,2408c2650,2651
|
||||
< trunks = {"default:jungletree"},
|
||||
< leaves = {"default:jungleleaves"},
|
||||
---
|
||||
> trunks = {"default:jungle_tree"},
|
||||
> leaves = {"default:jungle_leaves"},
|
||||
2441a2685,2692
|
||||
>
|
||||
> minetest.register_alias("default:jungleleaves", "default:jungle_leaves")
|
||||
> minetest.register_alias("default:junglewood", "default:jungle_wood")
|
||||
> minetest.register_alias("default:junglesapling", "default:jungle_sapling")
|
||||
> minetest.register_alias("default:jungletree", "default:jungle_tree")
|
||||
> minetest.register_alias("default:junglegrass", "default:jungle_grass")
|
||||
>
|
||||
> minetest.register_alias("default:fence_junglewood", "default:fence_jungle_wood")
|
|
@ -0,0 +1 @@
|
|||
https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz
|
After Width: | Height: | Size: 123 B |
After Width: | Height: | Size: 163 B |
After Width: | Height: | Size: 145 B |
After Width: | Height: | Size: 173 B |
After Width: | Height: | Size: 222 B |
After Width: | Height: | Size: 128 B |
After Width: | Height: | Size: 128 B |
After Width: | Height: | Size: 213 B |
After Width: | Height: | Size: 169 B |
After Width: | Height: | Size: 162 B |
After Width: | Height: | Size: 151 B |
After Width: | Height: | Size: 127 B |
After Width: | Height: | Size: 528 B |
After Width: | Height: | Size: 140 B |
After Width: | Height: | Size: 164 B |
After Width: | Height: | Size: 110 B |
After Width: | Height: | Size: 192 B |
After Width: | Height: | Size: 167 B |
After Width: | Height: | Size: 163 B |
After Width: | Height: | Size: 151 B |
After Width: | Height: | Size: 138 B |
After Width: | Height: | Size: 138 B |
After Width: | Height: | Size: 142 B |
After Width: | Height: | Size: 87 B |
After Width: | Height: | Size: 94 B |
After Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 307 B |
After Width: | Height: | Size: 294 B |
After Width: | Height: | Size: 315 B |
After Width: | Height: | Size: 103 B |
After Width: | Height: | Size: 150 B |
After Width: | Height: | Size: 156 B |
After Width: | Height: | Size: 150 B |
After Width: | Height: | Size: 165 B |
After Width: | Height: | Size: 428 B |
After Width: | Height: | Size: 134 B |