merge master of minetest/minetest_game
This commit is contained in:
commit
0b4aa7b59c
15 changed files with 383 additions and 211 deletions
|
@ -11,14 +11,24 @@ minetest.register_craftitem("default:paper", {
|
|||
inventory_image = "default_paper.png",
|
||||
})
|
||||
|
||||
local function book_on_use(itemstack, user, pointed_thing)
|
||||
local function book_on_use(itemstack, user)
|
||||
local player_name = user:get_player_name()
|
||||
local data = minetest.deserialize(itemstack:get_metadata())
|
||||
local title, text, owner = "", "", player_name
|
||||
local formspec, title, text, owner = "", "", "", player_name
|
||||
local page, page_max, cpp = 1, 1, 650
|
||||
|
||||
if data then
|
||||
title, text, owner = data.title, data.text, data.owner
|
||||
title = data.title
|
||||
text = data.text
|
||||
owner = data.owner
|
||||
|
||||
if data.page then
|
||||
page = data.page
|
||||
page_max = data.page_max
|
||||
cpp = data.chars_per_page
|
||||
end
|
||||
end
|
||||
local formspec
|
||||
|
||||
if owner == player_name then
|
||||
formspec = "size[8,8]" .. default.gui_bg ..
|
||||
default.gui_bg_img ..
|
||||
|
@ -31,48 +41,81 @@ local function book_on_use(itemstack, user, pointed_thing)
|
|||
formspec = "size[8,8]" .. default.gui_bg ..
|
||||
default.gui_bg_img ..
|
||||
"label[0.5,0.5;by " .. owner .. "]" ..
|
||||
"label[0.5,0;" .. minetest.formspec_escape(title) .. "]" ..
|
||||
"textarea[0.5,1.5;7.5,7;text;;" ..
|
||||
minetest.formspec_escape(text) .. "]"
|
||||
"tablecolumns[color;text]" ..
|
||||
"tableoptions[background=#00000000;highlight=#00000000;border=false]" ..
|
||||
"table[0.4,0;7,0.5;title;#FFFF00," .. minetest.formspec_escape(title) .. "]" ..
|
||||
"textarea[0.5,1.5;7.5,7;;" .. minetest.formspec_escape(text:sub(
|
||||
(cpp * page) - cpp, cpp * page)) .. ";]" ..
|
||||
"button[2.4,7.6;0.8,0.8;book_prev;<]" ..
|
||||
"label[3.2,7.7;Page " .. page .. " of " .. page_max .. "]" ..
|
||||
"button[4.9,7.6;0.8,0.8;book_next;>]"
|
||||
end
|
||||
minetest.show_formspec(user:get_player_name(), "default:book", formspec)
|
||||
|
||||
minetest.show_formspec(player_name, "default:book", formspec)
|
||||
end
|
||||
|
||||
minetest.register_on_player_receive_fields(function(player, form_name, fields)
|
||||
if form_name ~= "default:book" or not fields.save or
|
||||
fields.title == "" or fields.text == "" then
|
||||
return
|
||||
end
|
||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
if formname ~= "default:book" then return end
|
||||
local inv = player:get_inventory()
|
||||
local stack = player:get_wielded_item()
|
||||
local new_stack, data
|
||||
if stack:get_name() ~= "default:book_written" then
|
||||
local count = stack:get_count()
|
||||
if count == 1 then
|
||||
stack:set_name("default:book_written")
|
||||
|
||||
if fields.save and fields.title ~= "" and fields.text ~= "" then
|
||||
local new_stack, data
|
||||
if stack:get_name() ~= "default:book_written" then
|
||||
local count = stack:get_count()
|
||||
if count == 1 then
|
||||
stack:set_name("default:book_written")
|
||||
else
|
||||
stack:set_count(count - 1)
|
||||
new_stack = ItemStack("default:book_written")
|
||||
end
|
||||
else
|
||||
stack:set_count(count - 1)
|
||||
new_stack = ItemStack("default:book_written")
|
||||
data = minetest.deserialize(stack:get_metadata())
|
||||
end
|
||||
else
|
||||
data = minetest.deserialize(stack:get_metadata())
|
||||
end
|
||||
if not data then data = {} end
|
||||
data.title = fields.title
|
||||
data.text = fields.text
|
||||
data.owner = player:get_player_name()
|
||||
local data_str = minetest.serialize(data)
|
||||
if new_stack then
|
||||
new_stack:set_metadata(data_str)
|
||||
if inv:room_for_item("main", new_stack) then
|
||||
inv:add_item("main", new_stack)
|
||||
|
||||
if not data then data = {} end
|
||||
data.title = fields.title
|
||||
data.text = fields.text
|
||||
data.text_len = fields.text:len()
|
||||
data.page = 1
|
||||
data.chars_per_page = 650
|
||||
data.page_max = math.ceil(data.text_len / data.chars_per_page)
|
||||
data.owner = player:get_player_name()
|
||||
local data_str = minetest.serialize(data)
|
||||
|
||||
if new_stack then
|
||||
new_stack:set_metadata(data_str)
|
||||
if inv:room_for_item("main", new_stack) then
|
||||
inv:add_item("main", new_stack)
|
||||
else
|
||||
minetest.add_item(player:getpos(), new_stack)
|
||||
end
|
||||
else
|
||||
minetest.add_item(player:getpos(), new_stack)
|
||||
stack:set_metadata(data_str)
|
||||
end
|
||||
else
|
||||
|
||||
player:set_wielded_item(stack)
|
||||
|
||||
elseif fields.book_next or fields.book_prev then
|
||||
local data = minetest.deserialize(stack:get_metadata())
|
||||
if not data.page then return end
|
||||
|
||||
if fields.book_next then
|
||||
data.page = data.page + 1
|
||||
if data.page > data.page_max then
|
||||
data.page = 1
|
||||
end
|
||||
else
|
||||
data.page = data.page - 1
|
||||
if data.page == 0 then
|
||||
data.page = data.page_max
|
||||
end
|
||||
end
|
||||
|
||||
local data_str = minetest.serialize(data)
|
||||
stack:set_metadata(data_str)
|
||||
book_on_use(stack, player)
|
||||
end
|
||||
player:set_wielded_item(stack)
|
||||
end)
|
||||
|
||||
minetest.register_craftitem("default:book", {
|
||||
|
|
|
@ -40,9 +40,9 @@ end
|
|||
function default.node_sound_sand_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "default_sand_footstep", gain = 0.2}
|
||||
{name = "default_sand_footstep", gain = 0.12}
|
||||
table.dug = table.dug or
|
||||
{name = "default_sand_footstep", gain = 0.4}
|
||||
{name = "default_sand_footstep", gain = 0.24}
|
||||
table.place = table.place or
|
||||
{name = "default_place_node", gain = 1.0}
|
||||
default.node_sound_defaults(table)
|
||||
|
|
|
@ -1204,7 +1204,6 @@ function default.register_decorations()
|
|||
y_max = 31000,
|
||||
schematic = minetest.get_modpath("default").."/schematics/aspen_tree.mts",
|
||||
flags = "place_center_x, place_center_z",
|
||||
rotation = "random",
|
||||
})
|
||||
|
||||
minetest.register_decoration({
|
||||
|
|
|
@ -14,7 +14,7 @@ language (for example pinewood and pine wood) the underscore form should be used
|
|||
|
||||
Stone
|
||||
-----
|
||||
(1. Material 2. Cobble variant 3. Brick variant [4. Modified forms])
|
||||
(1. Material 2. Cobble variant 3. Brick variant 4. Modified forms)
|
||||
|
||||
default:stone
|
||||
default:cobble
|
||||
|
@ -33,7 +33,7 @@ default:obsidianbrick
|
|||
|
||||
Soft / Non-Stone
|
||||
----------------
|
||||
(1. Material [2. Modified forms])
|
||||
(1. Material 2. Modified forms)
|
||||
|
||||
default:dirt
|
||||
default:dirt_with_grass
|
||||
|
@ -55,7 +55,7 @@ default:ice
|
|||
|
||||
Trees
|
||||
-----
|
||||
(1. Trunk 2. Fabricated trunk 3. Leaves 4. Sapling [5. Fruits])
|
||||
(1. Trunk 2. Fabricated trunk 3. Leaves 4. Sapling 5. Fruits)
|
||||
|
||||
default:tree
|
||||
default:wood
|
||||
|
@ -82,9 +82,10 @@ default:aspen_tree
|
|||
default:aspen_wood
|
||||
default:aspen_leaves
|
||||
default:aspen_sapling
|
||||
|
||||
Ores
|
||||
----
|
||||
(1. In stone 2. Block)
|
||||
(1. In stone 2. Blocks)
|
||||
|
||||
default:stone_with_coal
|
||||
default:coalblock
|
||||
|
@ -107,6 +108,7 @@ default:diamondblock
|
|||
|
||||
Plantlife (non-cubic)
|
||||
---------------------
|
||||
|
||||
default:cactus
|
||||
default:papyrus
|
||||
default:dry_shrub
|
||||
|
@ -139,6 +141,7 @@ default:lava_flowing
|
|||
|
||||
Tools / "Advanced" crafting / Non-"natural"
|
||||
-------------------------------------------
|
||||
|
||||
default:torch
|
||||
|
||||
default:chest
|
||||
|
@ -169,6 +172,7 @@ default:meselamp
|
|||
|
||||
Misc
|
||||
----
|
||||
|
||||
default:cloud
|
||||
default:nyancat
|
||||
default:nyancat_rainbow
|
||||
|
@ -884,7 +888,7 @@ minetest.register_node("default:cactus", {
|
|||
tiles = {"default_cactus_top.png", "default_cactus_top.png",
|
||||
"default_cactus_side.png"},
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy = 1, choppy = 3, flammable = 2},
|
||||
groups = {snappy = 1, choppy = 3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_place = minetest.rotate_node,
|
||||
})
|
||||
|
@ -942,7 +946,7 @@ minetest.register_node("default:junglegrass", {
|
|||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
groups = {snappy = 3, flammable = 2, flora = 1, attached_node = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
|
@ -963,7 +967,7 @@ minetest.register_node("default:grass_1", {
|
|||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
|
@ -992,8 +996,8 @@ for i = 2, 5 do
|
|||
walkable = false,
|
||||
buildable_to = true,
|
||||
drop = "default:grass_1",
|
||||
groups = {snappy = 3, flammable = 3, flora = 1,
|
||||
attached_node = 1, not_in_creative_inventory = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1,
|
||||
not_in_creative_inventory = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
|
@ -1667,7 +1671,7 @@ end
|
|||
|
||||
register_sign("wood", "Wooden", {
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
groups = {choppy = 2, attached_node = 1, flammable = 2}
|
||||
groups = {choppy = 2, attached_node = 1, flammable = 2, oddly_breakable_by_hand = 3}
|
||||
})
|
||||
|
||||
register_sign("steel", "Steel", {
|
||||
|
|
|
@ -403,7 +403,7 @@ function default.grow_new_jungle_tree(pos)
|
|||
local path = minetest.get_modpath("default") ..
|
||||
"/schematics/jungle_tree_from_sapling.mts"
|
||||
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
|
||||
path, "0", nil, false)
|
||||
path, "random", nil, false)
|
||||
end
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue