From 05fad37b3c5d69b792a4b1998e7d2f13d6f8dbe4 Mon Sep 17 00:00:00 2001 From: An0n3m0us Date: Mon, 6 Apr 2020 14:15:50 +0100 Subject: [PATCH 01/43] Sort items into correct categories (#2612) --- game_api.txt | 7 +++++++ mods/creative/inventory.lua | 25 ++++++++++++++++++++++--- mods/doors/init.lua | 8 ++++---- mods/xpanes/init.lua | 4 ++-- 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/game_api.txt b/game_api.txt index fda371c6..6d8b08f7 100644 --- a/game_api.txt +++ b/game_api.txt @@ -103,6 +103,13 @@ The contents of `creative.formspec_add` is appended to every creative inventory page. Mods can use it to add additional formspec elements onto the default creative inventory formspec to be drawn after each update. +Group overrides can be used for any registered item, node or tool. Use one of +the groups stated below to pick which category it will appear in. + + node = 1 -- Appears in the Nodes category + tool = 1 -- Appears in the Tools category + craftitem = 1 -- Appears in the Items category + Chests API ---------- diff --git a/mods/creative/inventory.lua b/mods/creative/inventory.lua index 2e93e5ff..ad82a3ea 100644 --- a/mods/creative/inventory.lua +++ b/mods/creative/inventory.lua @@ -199,10 +199,29 @@ function creative.register_tab(name, title, items) }) end +-- Sort registered items +local registered_nodes = {} +local registered_tools = {} +local registered_craftitems = {} + +minetest.register_on_mods_loaded(function() + for name, def in pairs(minetest.registered_items) do + local group = def.groups or {} + + if group.node or minetest.registered_nodes[name] then + registered_nodes[name] = def + elseif group.tool or minetest.registered_tools[name] then + registered_tools[name] = def + elseif group.craftitem or minetest.registered_craftitems[name] then + registered_craftitems[name] = def + end + end +end) + creative.register_tab("all", S("All"), minetest.registered_items) -creative.register_tab("nodes", S("Nodes"), minetest.registered_nodes) -creative.register_tab("tools", S("Tools"), minetest.registered_tools) -creative.register_tab("craftitems", S("Items"), minetest.registered_craftitems) +creative.register_tab("nodes", S("Nodes"), registered_nodes) +creative.register_tab("tools", S("Tools"), registered_tools) +creative.register_tab("craftitems", S("Items"), registered_craftitems) local old_homepage_name = sfinv.get_homepage_name function sfinv.get_homepage_name(player) diff --git a/mods/doors/init.lua b/mods/doors/init.lua index ee4a188c..5bfa1d42 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -457,7 +457,7 @@ doors.register("door_wood", { tiles = {{ name = "doors_door_wood.png", backface_culling = true }}, description = S("Wooden Door"), inventory_image = "doors_item_wood.png", - groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + groups = {node = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, recipe = { {"group:wood", "group:wood"}, {"group:wood", "group:wood"}, @@ -470,7 +470,7 @@ doors.register("door_steel", { description = S("Steel Door"), inventory_image = "doors_item_steel.png", protected = true, - groups = {cracky = 1, level = 2}, + groups = {node = 1, cracky = 1, level = 2}, sounds = default.node_sound_metal_defaults(), sound_open = "doors_steel_door_open", sound_close = "doors_steel_door_close", @@ -485,7 +485,7 @@ doors.register("door_glass", { tiles = {"doors_door_glass.png"}, description = S("Glass Door"), inventory_image = "doors_item_glass.png", - groups = {cracky=3, oddly_breakable_by_hand=3}, + groups = {node = 1, cracky=3, oddly_breakable_by_hand=3}, sounds = default.node_sound_glass_defaults(), sound_open = "doors_glass_door_open", sound_close = "doors_glass_door_close", @@ -500,7 +500,7 @@ doors.register("door_obsidian_glass", { tiles = {"doors_door_obsidian_glass.png"}, description = S("Obsidian Glass Door"), inventory_image = "doors_item_obsidian_glass.png", - groups = {cracky=3}, + groups = {node = 1, cracky=3}, sounds = default.node_sound_glass_defaults(), sound_open = "doors_glass_door_open", sound_close = "doors_glass_door_close", diff --git a/mods/xpanes/init.lua b/mods/xpanes/init.lua index 4f4f0f56..e195dbbc 100644 --- a/mods/xpanes/init.lua +++ b/mods/xpanes/init.lua @@ -223,7 +223,7 @@ if minetest.get_modpath("doors") then description = S("Steel Bar Door"), inventory_image = "xpanes_item_steel_bar.png", protected = true, - groups = {cracky = 1, level = 2}, + groups = {node = 1, cracky = 1, level = 2}, sounds = default.node_sound_metal_defaults(), sound_open = "xpanes_steel_bar_door_open", sound_close = "xpanes_steel_bar_door_close", @@ -241,7 +241,7 @@ if minetest.get_modpath("doors") then tile_front = "xpanes_trapdoor_steel_bar.png", tile_side = "xpanes_trapdoor_steel_bar_side.png", protected = true, - groups = {cracky = 1, level = 2, door = 1}, + groups = {node = 1, cracky = 1, level = 2, door = 1}, sounds = default.node_sound_metal_defaults(), sound_open = "xpanes_steel_bar_door_open", sound_close = "xpanes_steel_bar_door_close", From 7fc7fa4843387f83bbc43276ca8857d787b9d3fc Mon Sep 17 00:00:00 2001 From: An0n3m0us Date: Mon, 6 Apr 2020 14:19:52 +0100 Subject: [PATCH 02/43] Transform brick top texture to align bricks correctly (#2607) --- mods/default/nodes.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index cd465934..601014df 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -2816,7 +2816,10 @@ minetest.register_node("default:brick", { description = S("Brick Block"), paramtype2 = "facedir", place_param2 = 0, - tiles = {"default_brick.png"}, + tiles = { + "default_brick.png^[transformFX", + "default_brick.png", + }, is_ground_content = false, groups = {cracky = 3}, sounds = default.node_sound_stone_defaults(), From 7d230fdbf88cb41b458a83351fa886e446f86cf7 Mon Sep 17 00:00:00 2001 From: Maksim Date: Mon, 6 Apr 2020 15:22:08 +0200 Subject: [PATCH 03/43] Enable player animation when Right Click (#2622) --- mods/player_api/api.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mods/player_api/api.lua b/mods/player_api/api.lua index 4cb3944b..c1e578c9 100644 --- a/mods/player_api/api.lua +++ b/mods/player_api/api.lua @@ -106,7 +106,7 @@ function minetest.calculate_knockback(player, ...) end -- Check each player and apply animations -minetest.register_globalstep(function(dtime) +minetest.register_globalstep(function() for _, player in pairs(minetest.get_connected_players()) do local name = player:get_player_name() local model_name = player_model[name] @@ -134,13 +134,13 @@ minetest.register_globalstep(function(dtime) player_anim[name] = nil player_sneak[name] = controls.sneak end - if controls.LMB then + if controls.LMB or controls.RMB then player_set_animation(player, "walk_mine", animation_speed_mod) else player_set_animation(player, "walk", animation_speed_mod) end - elseif controls.LMB then - player_set_animation(player, "mine") + elseif controls.LMB or controls.RMB then + player_set_animation(player, "mine", animation_speed_mod) else player_set_animation(player, "stand", animation_speed_mod) end From 4243d288464f9a2d364643ad27c21965c65bda5c Mon Sep 17 00:00:00 2001 From: Paramat Date: Mon, 6 Apr 2020 21:03:57 +0100 Subject: [PATCH 04/43] Clarify descriptions of dry grass, dry dirt --- mods/default/nodes.lua | 10 +++++----- mods/farming/nodes.lua | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 601014df..3b8b5115 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -458,7 +458,7 @@ minetest.register_node("default:dirt_with_grass_footsteps", { }) minetest.register_node("default:dirt_with_dry_grass", { - description = S("Dirt with Dry Grass"), + description = S("Dirt with Savanna Grass"), tiles = {"default_dry_grass.png", "default_dirt.png", {name = "default_dirt.png^default_dry_grass_side.png", @@ -513,14 +513,14 @@ minetest.register_node("default:dirt_with_coniferous_litter", { }) minetest.register_node("default:dry_dirt", { - description = S("Dry Dirt"), + description = S("Savanna Dirt"), tiles = {"default_dry_dirt.png"}, groups = {crumbly = 3, soil = 1}, sounds = default.node_sound_dirt_defaults(), }) minetest.register_node("default:dry_dirt_with_dry_grass", { - description = S("Dry Dirt with Dry Grass"), + description = S("Savanna Dirt with Savanna Grass"), tiles = {"default_dry_grass.png", "default_dry_dirt.png", {name = "default_dry_dirt.png^default_dry_grass_side.png", tileable_vertical = false}}, @@ -1497,7 +1497,7 @@ end minetest.register_node("default:dry_grass_1", { - description = S("Dry Grass"), + description = S("Savanna Grass"), drawtype = "plantlike", waving = 1, tiles = {"default_dry_grass_1.png"}, @@ -1526,7 +1526,7 @@ minetest.register_node("default:dry_grass_1", { for i = 2, 5 do minetest.register_node("default:dry_grass_" .. i, { - description = S("Dry Grass"), + description = S("Savanna Grass"), drawtype = "plantlike", waving = 1, tiles = {"default_dry_grass_" .. i .. ".png"}, diff --git a/mods/farming/nodes.lua b/mods/farming/nodes.lua index 22dd51c8..051f4ef9 100644 --- a/mods/farming/nodes.lua +++ b/mods/farming/nodes.lua @@ -86,7 +86,7 @@ minetest.register_node("farming:soil_wet", { }) minetest.register_node("farming:dry_soil", { - description = S("Dry Soil"), + description = S("Savanna Soil"), tiles = {"default_dry_dirt.png^farming_soil.png", "default_dry_dirt.png"}, drop = "default:dry_dirt", groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1, field = 1}, @@ -99,7 +99,7 @@ minetest.register_node("farming:dry_soil", { }) minetest.register_node("farming:dry_soil_wet", { - description = S("Wet Dry Soil"), + description = S("Wet Savanna Soil"), tiles = {"default_dry_dirt.png^farming_soil_wet.png", "default_dry_dirt.png^farming_soil_wet_side.png"}, drop = "default:dry_dirt", groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1, field = 1}, From 720b24ed2d03d84f33427dc75bea0684a36b68c5 Mon Sep 17 00:00:00 2001 From: Paramat Date: Mon, 6 Apr 2020 21:05:07 +0100 Subject: [PATCH 05/43] Weather mod: Tune cloud density variation Previously, cloud density was too low at medium humidity. Tune cloud density variation to match the default/classic value at humidity midvalue 50. Tune the lower limit of cloud density that occurs at extreme low humidity. Increase minimum cloud thickness to 2 nodes. Add comments. --- mods/weather/init.lua | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/mods/weather/init.lua b/mods/weather/init.lua index c0d1098f..3b9a305a 100644 --- a/mods/weather/init.lua +++ b/mods/weather/init.lua @@ -82,18 +82,26 @@ local function update_clouds() nobj_speedx = nobj_speedx or minetest.get_perlin(np_speedx) nobj_speedz = nobj_speedz or minetest.get_perlin(np_speedz) - local n_density = nobj_density:get_2d({x = time, y = 0}) - local n_thickness = nobj_thickness:get_2d({x = time, y = 0}) - local n_speedx = nobj_speedx:get_2d({x = time, y = 0}) - local n_speedz = nobj_speedz:get_2d({x = time, y = 0}) + local n_density = nobj_density:get_2d({x = time, y = 0}) -- 0 to 1 + local n_thickness = nobj_thickness:get_2d({x = time, y = 0}) -- 0 to 1 + local n_speedx = nobj_speedx:get_2d({x = time, y = 0}) -- -1 to 1 + local n_speedz = nobj_speedz:get_2d({x = time, y = 0}) -- -1 to 1 for _, player in ipairs(minetest.get_connected_players()) do local humid = minetest.get_humidity(player:get_pos()) + -- Default and classic density value is 0.4, make this happen + -- at humidity midvalue 50 when n_density is at midvalue 0.5. + -- density_max = 0.25 at humid = 0. + -- density_max = 0.8 at humid = 50. + -- density_max = 1.35 at humid = 100. + local density_max = 0.8 + ((humid - 50) / 50) * 0.55 player:set_clouds({ - density = rangelim(humid / 100, 0.25, 1.0) * n_density, + -- Range limit density_max to always have occasional + -- small scattered clouds at extreme low humidity. + density = rangelim(density_max, 0.2, 1.0) * n_density, thickness = math.max(math.floor( rangelim(32 * humid / 100, 8, 32) * n_thickness - ), 1), + ), 2), speed = {x = n_speedx * 4, z = n_speedz * 4}, }) end From 03c9aed2212099c764912e4c7b1c86679237f00d Mon Sep 17 00:00:00 2001 From: Maksim Date: Mon, 6 Apr 2020 22:09:39 +0200 Subject: [PATCH 06/43] Fire mod: Code cleanup, compress textures --- mods/fire/init.lua | 165 ++++++------------ mods/fire/textures/fire_basic_flame.png | Bin 646 -> 594 bytes .../textures/fire_basic_flame_animated.png | Bin 1051 -> 1029 bytes mods/fire/textures/fire_flint_steel.png | Bin 459 -> 205 bytes 4 files changed, 54 insertions(+), 111 deletions(-) diff --git a/mods/fire/init.lua b/mods/fire/init.lua index c35207e2..298063e5 100644 --- a/mods/fire/init.lua +++ b/mods/fire/init.lua @@ -1,15 +1,12 @@ -- fire/init.lua -- Global namespace for functions - fire = {} -- Load support for MT game translation. local S = minetest.get_translator("fire") - -- 'Enable fire' setting - local fire_enabled = minetest.settings:get_bool("enable_fire") if fire_enabled == nil then -- enable_fire setting not specified, check for disable_fire @@ -27,12 +24,9 @@ end -- -- Flood flame function - -local function flood_flame(pos, oldnode, newnode) +local function flood_flame(pos, _, newnode) -- Play flame extinguish sound if liquid is not an 'igniter' - local nodedef = minetest.registered_items[newnode.name] - if not (nodedef and nodedef.groups and - nodedef.groups.igniter and nodedef.groups.igniter > 0) then + if minetest.get_item_group(newnode.name, "igniter") == 0 then minetest.sound_play("fire_extinguish_flame", {pos = pos, max_hear_distance = 16, gain = 0.15}, true) end @@ -41,19 +35,16 @@ local function flood_flame(pos, oldnode, newnode) end -- Flame nodes - -minetest.register_node("fire:basic_flame", { +local fire_node = { drawtype = "firelike", - tiles = { - { - name = "fire_basic_flame_animated.png", - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 1 - }, - }, + tiles = {{ + name = "fire_basic_flame_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1 + }} }, inventory_image = "fire_basic_flame.png", paramtype = "light", @@ -63,61 +54,35 @@ minetest.register_node("fire:basic_flame", { sunlight_propagates = true, floodable = true, damage_per_second = 4, - groups = {igniter = 2, dig_immediate = 3, not_in_creative_inventory = 1}, + groups = {igniter = 2, dig_immediate = 3, fire = 1}, drop = "", + on_flood = flood_flame +} - on_timer = function(pos) - local f = minetest.find_node_near(pos, 1, {"group:flammable"}) - if not fire_enabled or not f then - minetest.remove_node(pos) - return - end - -- Restart timer - return true - end, +-- Basic flame node +local flame_fire_node = table.copy(fire_node) +flame_fire_node.groups.not_in_creative_inventory = 1 +flame_fire_node.on_timer = function(pos) + if not minetest.find_node_near(pos, 1, {"group:flammable"}) then + minetest.remove_node(pos) + return + end + -- Restart timer + return true +end +flame_fire_node.on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(30, 60)) +end - on_construct = function(pos) - if not fire_enabled then - minetest.remove_node(pos) - else - minetest.get_node_timer(pos):start(math.random(30, 60)) - end - end, +minetest.register_node("fire:basic_flame", flame_fire_node) - on_flood = flood_flame, -}) +-- Permanent flame node +local permanent_fire_node = table.copy(fire_node) +permanent_fire_node.description = S("Permanent Flame") -minetest.register_node("fire:permanent_flame", { - description = S("Permanent Flame"), - drawtype = "firelike", - tiles = { - { - name = "fire_basic_flame_animated.png", - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 1 - }, - }, - }, - inventory_image = "fire_basic_flame.png", - paramtype = "light", - light_source = 13, - walkable = false, - buildable_to = true, - sunlight_propagates = true, - floodable = true, - damage_per_second = 4, - groups = {igniter = 2, dig_immediate = 3}, - drop = "", - - on_flood = flood_flame, -}) - - --- Flint and steel +minetest.register_node("fire:permanent_flame", permanent_fire_node) +-- Flint and Steel minetest.register_tool("fire:flint_and_steel", { description = S("Flint and Steel"), inventory_image = "fire_flint_steel.png", @@ -125,11 +90,8 @@ minetest.register_tool("fire:flint_and_steel", { on_use = function(itemstack, user, pointed_thing) local sound_pos = pointed_thing.above or user:get_pos() - minetest.sound_play( - "fire_flint_and_steel", - {pos = sound_pos, gain = 0.5, max_hear_distance = 8}, - true - ) + minetest.sound_play("fire_flint_and_steel", + {pos = sound_pos, gain = 0.5, max_hear_distance = 8}, true) local player_name = user:get_player_name() if pointed_thing.type == "node" then local node_under = minetest.get_node(pointed_thing.under).name @@ -153,10 +115,11 @@ minetest.register_tool("fire:flint_and_steel", { -- Wear tool local wdef = itemstack:get_definition() itemstack:add_wear(1000) + -- Tool break sound if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then - minetest.sound_play(wdef.sound.breaks, {pos = sound_pos, - gain = 0.5}, true) + minetest.sound_play(wdef.sound.breaks, + {pos = sound_pos, gain = 0.5}, true) end return itemstack end @@ -170,23 +133,21 @@ minetest.register_craft({ } }) - -- Override coalblock to enable permanent flame above -- Coalblock is non-flammable to avoid unwanted basic_flame nodes - minetest.override_item("default:coalblock", { - after_destruct = function(pos, oldnode) + after_destruct = function(pos) pos.y = pos.y + 1 if minetest.get_node(pos).name == "fire:permanent_flame" then minetest.remove_node(pos) end end, - on_ignite = function(pos, igniter) + on_ignite = function(pos) local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z} if minetest.get_node(flame_pos).name == "air" then minetest.set_node(flame_pos, {name = "fire:permanent_flame"}) end - end, + end }) @@ -194,24 +155,18 @@ minetest.override_item("default:coalblock", { -- Sound -- -local flame_sound = minetest.settings:get_bool("flame_sound") -if flame_sound == nil then - -- Enable if no setting present - flame_sound = true -end +-- Enable if no setting present +local flame_sound = minetest.settings:get_bool("flame_sound", true) if flame_sound then - local handles = {} local timer = 0 -- Parameters - local radius = 8 -- Flame node search radius around player local cycle = 3 -- Cycle time for sound updates -- Update sound for player - function fire.update_player_sound(player) local player_name = player:get_player_name() -- Search for flame nodes in radius around player @@ -263,16 +218,13 @@ if flame_sound then fposmid = vector.divide(vector.add(fposmin, fposmax), 2) end -- Play sound - local handle = minetest.sound_play( - "fire_fire", - { - pos = fposmid, - to_player = player_name, - gain = math.min(0.06 * (1 + flames * 0.125), 0.18), - max_hear_distance = 32, - loop = true, -- In case of lag - } - ) + local handle = minetest.sound_play("fire_fire", { + pos = fposmid, + to_player = player_name, + gain = math.min(0.06 * (1 + flames * 0.125), 0.18), + max_hear_distance = 32, + loop = true -- In case of lag + }) -- Store sound handle for this player if handle then handles[player_name] = handle @@ -281,7 +233,6 @@ if flame_sound then end -- Cycle for updating players sounds - minetest.register_globalstep(function(dtime) timer = timer + dtime if timer < cycle then @@ -296,7 +247,6 @@ if flame_sound then end) -- Stop sound and clear handle on player leave - minetest.register_on_leaveplayer(function(player) local player_name = player:get_player_name() if handles[player_name] then @@ -308,19 +258,14 @@ end -- Deprecated function kept temporarily to avoid crashes if mod fire nodes call it - -function fire.update_sounds_around(pos) -end - +function fire.update_sounds_around() end -- -- ABMs -- if fire_enabled then - -- Ignite neighboring nodes, add basic flames - minetest.register_abm({ label = "Ignite flame", nodenames = {"group:flammable"}, @@ -333,11 +278,10 @@ if fire_enabled then if p then minetest.set_node(p, {name = "fire:basic_flame"}) end - end, + end }) -- Remove flammable nodes around basic flame - minetest.register_abm({ label = "Remove flammable nodes", nodenames = {"fire:basic_flame"}, @@ -358,7 +302,6 @@ if fire_enabled then minetest.remove_node(p) minetest.check_for_falling(p) end - end, + end }) - end diff --git a/mods/fire/textures/fire_basic_flame.png b/mods/fire/textures/fire_basic_flame.png index 1da0702d85369becb732573b894c97f198246fa9..484bcb1957b80a64bdd670241c8e08b464545a3d 100644 GIT binary patch delta 580 zcmV-K0=xZ&1=0kN8Gix*005AYXf^-<00wkYPE!B?00000Zl(v300069Nkl>MB-sIFQUib-Fc3^_+wP&Z zZQHhO+qP}vZQHhO8~c+pVhn;sd!|htzIv%;B?aP2qbeZm>wi#tWz&Y*K3}`mYDnRc=O=+LNWq?dVuSb3F=^ZtBQL~$>PIFcZla{vipV$aODU156Ze_3Pn7OSh zqYHh}<*je8V1gqZc#WQC38o#%YIuR(i0~^N zfuqu0;SM9RT_>>YgB|ctK;XEApL$5qbW?!)z|C~F37aM{@*n25B#o9|I0@H z-bDPWKmNo$|Diqo$u{!1HTK0Z|AR2}n=kfT%#5)<~VHDOx5nL1y#x@SoJ`2v73a2Fi|NL$L%wYfMUw`@AU;po2|J_>u%2xm2 zPXEA8|Mg4%w@d%gNdKHi=Ve9r$VC6YMDol-_Qyl^q(S?ZKL3wB-p4!lwLAa8I`O1B z|JFJ9v^n^YIsb$?>s2!KeKGlrFZ_Be69tyyC?sfC;yBm`Ee)u za3}GKCFi0e=YPB)-iILYdLYtDAo6q{%#|MbY#r=s9NSVH^k^I9gci#nDYt}_v ztn7LXTydP=0RJYf!96|uav&({Q=h=QLlY7aOh*e#V0000ANTKiY4WK8~JP<|JOrC5ed;%0B;%!|G`A{nlJyqMDVpW?0;$;;eHtSwL0^8289T^k^IDlqvYDL8Czc|G-ZCu1?!h9P?Z!=e!`iPYyg0 z2=ZYng%|-_5fJvrL;vqxs3Z;E$2<0jI>;^SvvJ)HdoDZj&hpVPhW-(XupiUHs|qseRmuqsh09isaQoK_d^ zr7lL?_a2;h4Gtgv%|C%aFr;=68AYf36N>|`mDOotV>P*((qsnbz@=3?%#q4Z3ct=~ zMM~gZE`P)K+R9qB_Qy9oD(YLX9UAUb8ahP|Z4*ee4w{EY$N&EK!wK!PPHOw&H~m59 zDsugoJEbq73;1x$2+k;1VUG_lo*cTp(EC`>M9!4Ic>@Pe_3lEnY zfn-oB4IbfPkv*(H;NGKlM7++Z&*$HaOCDx<$>3KZg1JCKR4+>s9A+cU6(&@Pj)Mt;b z(PS~ZWFP~l?3ub|vlB7j3QClQg^<_jboq&kCJ+dyQ71=2$nB5EMRDm-uR0>hXez4l z4F&*OwK}(vAMIvh8Ua))U9Kb&iH!rNP0cdWd9$z<;Q6GF+{gU;po2^2|f{t3mOkI`w@q@|-XEj4$$GD*u}&=e!`>QXITb z4m=SE%QFGUPyqa{PXEtG>69tvswd8w3iiiC_M}1H$2(gQ5UMu;pI62-00001bW%=J z06^y0W&i*Jc1c7*R7l6{)Yn!TQ5Xf_JxrlGLmzrmKz~65L9rv!M3E?om}t}_Cb6cy z|5g4oLzzXg@&ws)b@tu<);WWjM8UEIJ#(O#0my9tUmRGZ4{rc$wzEH>833Qe!f8ME;}R(qodaOC{&HXF z3UVBx7l76B=-oJ9e*gCKF%oB{{OayI?$Pw*yZRN);^HXz@ch7r$1us#lD?kJH*z>I zH}Yt2>K@QM*2zQ80_0=#Xki@5%skx8!xlt_fPW+@k|Gbk?%`td?^1l&*R-cgrP_5v z^We!NqQq`D1t+*xy#k69W>uX9*`nTsA;#`YG_d7 z@pyRfp?wkx)*1~e=2QG$*cVFY(@JT38+H_t=i@uY{o7$cA)rcS{>Eyx?iA2hhFeZ2 zQ0a6)K$hMHc?eFZ=nP*da=IhK(S+5KSqmwiAKxJVpP!x2d= rMosqr|Ks;Y%a76WW3>DrxBLJAts&A)NM9EG00000NkvXXu0mjfDL(rU diff --git a/mods/fire/textures/fire_flint_steel.png b/mods/fire/textures/fire_flint_steel.png index c262ebc096f471c95e66b33ca3cd44a14494419d..9d32d85b001c0836b969989ffeb7bc16856eb71c 100644 GIT binary patch delta 189 zcmX@je3o&7L_G^L0|Ud`yN`l^lx~1ei0l9V|7~n+qQe3*Q({F#M9PbDyj<*@oSZCx zz*u+f+O<=rOfl8htgf!k&(D`SlRFWpk+CGmFPOpM*^M+H$IsKnF{FYq`2d?lB99{D ziiU~IQv{zKxOa~sg~Q$N<*itTl#Y3G_H7e8A}~ABZ0p?jRudjh+qkW9FVl&H!ux!t p?aA-CIhyxAvO4pIYfTt4!*n*mIRyeM-vW(h@O1TaS?83{1ORHON4Nk0 delta 445 zcmV;u0Yd)G0m}oB7=H)`0000V^Z#K0000DMK}|sb0I`n?{9y$E0004VQb$4o*~u(_ z0000WV@Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006VoOIv z0RI600RN!9r;`8x0XIoRK~y-)#go5F!%z^%Kd)x#4as7Lx_=ZQg9r%@B4o~=(>edv z`w!y!KuVDa($P*C0u~{hAi{I7scp4l>EJE*IPShbj(f&?&oMDLY8nXoM}D1s6^D_3 ze|<3kZdxCvAQ(n|e0EAOjQ-?pusfVyoC7eQ&kwWEM;Jydo)!Q|6jKxhfLB#SgjF_G zRc!-ovOh1EB!A-(bzS=;Nhr&brfC4M*6z0uh7q?bWPmKoD9e)BY=*UV4YC*Dp{_Xz zg0=j~WJ1$4IOhON*LCE14zOOZ=?^K6V}EmX`DvkhTQgTxg@~9{zXwoNoO5Pt2g!J3 z?(QFbFTH2p7zQu^BJ$mWo7S{#YudIostQ1!=cH-sRW^0+O$0v`MFeXts!CB5Ta3Rh naYw2V5#yYrSM+1!zyHP$nva4h^9C`w00000NkvXXu0mjfj*zl< From 14a385d68c1bb4f67b5d9281893574c8b05fe9b3 Mon Sep 17 00:00:00 2001 From: orbea Date: Tue, 7 Apr 2020 17:36:03 +0000 Subject: [PATCH 07/43] trees: Reduce local variables (#2637) --- mods/default/trees.lua | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mods/default/trees.lua b/mods/default/trees.lua index ad3e3f4c..a850644c 100644 --- a/mods/default/trees.lua +++ b/mods/default/trees.lua @@ -16,9 +16,7 @@ function default.can_grow(pos) if not node_under then return false end - local name_under = node_under.name - local is_soil = minetest.get_item_group(name_under, "soil") - if is_soil == 0 then + if minetest.get_item_group(node_under.name, "soil") == 0 then return false end local light_level = minetest.get_node_light(pos) From c1f41720fc3ba7b69e091326f1ce2ac69588fb13 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 6 Apr 2020 20:38:17 +0200 Subject: [PATCH 08/43] Fix crash on TNT explosions if tnt is disabled --- mods/tnt/init.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua index 6565f852..1e2fb801 100644 --- a/mods/tnt/init.lua +++ b/mods/tnt/init.lua @@ -292,10 +292,15 @@ local function tnt_explode(pos, radius, ignore_protection, ignore_on_blast, owne local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) local data = vm1:get_data() local count = 0 - local c_tnt = minetest.get_content_id("tnt:tnt") + local c_tnt local c_tnt_burning = minetest.get_content_id("tnt:tnt_burning") local c_tnt_boom = minetest.get_content_id("tnt:boom") local c_air = minetest.get_content_id("air") + if enable_tnt then + c_tnt = minetest.get_content_id("tnt:tnt") + else + c_tnt = c_tnt_burning -- tnt is not registered if disabled + end -- make sure we still have explosion even when centre node isnt tnt related if explode_center then count = 1 From 545ec0741c97d1bf949bbb1bfa8a379890334772 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 6 Apr 2020 20:22:05 +0200 Subject: [PATCH 09/43] Fix creative category sorting in certain cases --- mods/creative/inventory.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mods/creative/inventory.lua b/mods/creative/inventory.lua index ad82a3ea..455da1a3 100644 --- a/mods/creative/inventory.lua +++ b/mods/creative/inventory.lua @@ -208,11 +208,12 @@ minetest.register_on_mods_loaded(function() for name, def in pairs(minetest.registered_items) do local group = def.groups or {} - if group.node or minetest.registered_nodes[name] then + local nogroup = not (group.node or group.tool or group.craftitem) + if group.node or (nogroup and minetest.registered_nodes[name]) then registered_nodes[name] = def - elseif group.tool or minetest.registered_tools[name] then + elseif group.tool or (nogroup and minetest.registered_tools[name]) then registered_tools[name] = def - elseif group.craftitem or minetest.registered_craftitems[name] then + elseif group.craftitem or (nogroup and minetest.registered_craftitems[name]) then registered_craftitems[name] = def end end From 695f98f2134646f4b065e3d75cdc374f6146080a Mon Sep 17 00:00:00 2001 From: orbea Date: Wed, 8 Apr 2020 18:40:19 +0000 Subject: [PATCH 10/43] player_api: Remove local variable (#2640) --- mods/player_api/api.lua | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/mods/player_api/api.lua b/mods/player_api/api.lua index c1e578c9..5803e954 100644 --- a/mods/player_api/api.lua +++ b/mods/player_api/api.lua @@ -113,14 +113,8 @@ minetest.register_globalstep(function() local model = model_name and models[model_name] if model and not player_attached[name] then local controls = player:get_player_control() - local walking = false local animation_speed_mod = model.animation_speed or 30 - -- Determine if the player is walking - if controls.up or controls.down or controls.left or controls.right then - walking = true - end - -- Determine if the player is sneaking, and reduce animation speed if so if controls.sneak then animation_speed_mod = animation_speed_mod / 2 @@ -129,7 +123,8 @@ minetest.register_globalstep(function() -- Apply animations based on what the player is doing if player:get_hp() == 0 then player_set_animation(player, "lay") - elseif walking then + -- Determine if the player is walking + elseif controls.up or controls.down or controls.left or controls.right then if player_sneak[name] ~= controls.sneak then player_anim[name] = nil player_sneak[name] = controls.sneak From 36b2bcb5f3379cfc28b74974ce74e965821d1493 Mon Sep 17 00:00:00 2001 From: IFRFSX <34205903+IFRFSX@users.noreply.github.com> Date: Sun, 12 Apr 2020 02:50:49 +0800 Subject: [PATCH 11/43] Add Basic Fire Description (#2568) --- mods/fire/init.lua | 3 ++- mods/fire/locale/fire.zh_CN.tr | 3 ++- mods/fire/locale/fire.zh_TW.tr | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mods/fire/init.lua b/mods/fire/init.lua index 298063e5..b69a7311 100644 --- a/mods/fire/init.lua +++ b/mods/fire/init.lua @@ -61,6 +61,7 @@ local fire_node = { -- Basic flame node local flame_fire_node = table.copy(fire_node) +flame_fire_node.description = S("Fire") flame_fire_node.groups.not_in_creative_inventory = 1 flame_fire_node.on_timer = function(pos) if not minetest.find_node_near(pos, 1, {"group:flammable"}) then @@ -78,7 +79,7 @@ minetest.register_node("fire:basic_flame", flame_fire_node) -- Permanent flame node local permanent_fire_node = table.copy(fire_node) -permanent_fire_node.description = S("Permanent Flame") +permanent_fire_node.description = S("Permanent Fire") minetest.register_node("fire:permanent_flame", permanent_fire_node) diff --git a/mods/fire/locale/fire.zh_CN.tr b/mods/fire/locale/fire.zh_CN.tr index 89aff0e9..b28157eb 100644 --- a/mods/fire/locale/fire.zh_CN.tr +++ b/mods/fire/locale/fire.zh_CN.tr @@ -1,3 +1,4 @@ # textdomain: fire -Permanent Flame=永久火焰 +Permanent Fire=永久火焰 Flint and Steel=火石和钢 +Fire=火焰 diff --git a/mods/fire/locale/fire.zh_TW.tr b/mods/fire/locale/fire.zh_TW.tr index 4c7a293e..2e7e9ddd 100644 --- a/mods/fire/locale/fire.zh_TW.tr +++ b/mods/fire/locale/fire.zh_TW.tr @@ -1,3 +1,4 @@ # textdomain: fire -Permanent Flame=永久火焰 +Permanent Fire=永久火焰 Flint and Steel=火石和鋼 +Fire=火焰 From ea4ce80f7c7c213d5e92545b2a6e53272040f186 Mon Sep 17 00:00:00 2001 From: Paul Ouellette Date: Mon, 13 Apr 2020 05:34:10 -0400 Subject: [PATCH 12/43] Make straw stairs usable as fuel (#2627) --- mods/farming/init.lua | 6 ------ mods/farming/nodes.lua | 7 +++++++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/mods/farming/init.lua b/mods/farming/init.lua index 96672fa1..b583b8bd 100644 --- a/mods/farming/init.lua +++ b/mods/farming/init.lua @@ -115,12 +115,6 @@ minetest.register_craft({ -- Fuels -minetest.register_craft({ - type = "fuel", - recipe = "farming:straw", - burntime = 3, -}) - minetest.register_craft({ type = "fuel", recipe = "farming:wheat", diff --git a/mods/farming/nodes.lua b/mods/farming/nodes.lua index 051f4ef9..0e584f03 100644 --- a/mods/farming/nodes.lua +++ b/mods/farming/nodes.lua @@ -153,6 +153,13 @@ minetest.register_node("farming:straw", { sounds = default.node_sound_leaves_defaults(), }) +-- Registered before the stairs so the stairs get fuel recipes. +minetest.register_craft({ + type = "fuel", + recipe = "farming:straw", + burntime = 3, +}) + do local recipe = "farming:straw" local groups = {snappy = 3, flammable = 4} From fb18a5b20d1837a7493e37af950d06266048c901 Mon Sep 17 00:00:00 2001 From: bell07 Date: Mon, 13 Apr 2020 20:26:44 +0200 Subject: [PATCH 13/43] Make default.chest.register_chest() usable for other mods (#2127) --- game_api.txt | 4 ++-- mods/default/chests.lua | 53 ++++++++++++++++++++++------------------- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/game_api.txt b/game_api.txt index 6d8b08f7..561387d2 100644 --- a/game_api.txt +++ b/game_api.txt @@ -136,12 +136,12 @@ The chests API allows the creation of chests, which have their own inventories f * A table indexed by player name to keep track of who opened what chest. * Key: The name of the player. * Value: A table containing information about the chest the player is looking at. - e.g `{ pos = {1, 1, 1}, sound = null, swap = "chest" }` + e.g `{ pos = {1, 1, 1}, sound = null, swap = "default:chest" }` `default.chest.register_chest(name, def)` * Registers new chest - * `name` Name for chest + * `name` Name for chest e.g. "default:chest" * `def` See [#Chest Definition] ### Chest Definition diff --git a/mods/default/chests.lua b/mods/default/chests.lua index 3fe9c1a0..f4462ae7 100644 --- a/mods/default/chests.lua +++ b/mods/default/chests.lua @@ -44,7 +44,7 @@ function default.chest.chest_lid_close(pn) end local node = minetest.get_node(pos) - minetest.after(0.2, minetest.swap_node, pos, { name = "default:" .. swap, + minetest.after(0.2, minetest.swap_node, pos, { name = swap, param2 = node.param2 }) minetest.sound_play(sound, {gain = 0.3, pos = pos, max_hear_distance = 10}, true) @@ -76,7 +76,8 @@ minetest.register_on_leaveplayer(function(player) end end) -function default.chest.register_chest(name, d) +function default.chest.register_chest(prefixed_name, d) + local name = prefixed_name:sub(1,1) == ':' and prefixed_name:sub(2,-1) or prefixed_name local def = table.copy(d) def.drawtype = "mesh" def.visual = "mesh" @@ -132,7 +133,7 @@ function default.chest.register_chest(name, d) pos = pos, max_hear_distance = 10}, true) if not default.chest.chest_lid_obstructed(pos) then minetest.swap_node(pos, - { name = "default:" .. name .. "_open", + { name = name .. "_open", param2 = node.param2 }) end minetest.after(0.2, minetest.show_formspec, @@ -203,7 +204,7 @@ function default.chest.register_chest(name, d) max_hear_distance = 10}, true) if not default.chest.chest_lid_obstructed(pos) then minetest.swap_node(pos, { - name = "default:" .. name .. "_open", + name = name .. "_open", param2 = node.param2 }) end minetest.after(0.2, minetest.show_formspec, @@ -215,7 +216,7 @@ function default.chest.register_chest(name, d) def.on_blast = function(pos) local drops = {} default.get_inventory_drops(pos, "main", drops) - drops[#drops+1] = "default:" .. name + drops[#drops+1] = name minetest.remove_node(pos) return drops end @@ -248,7 +249,7 @@ function default.chest.register_chest(name, d) def_opened.tiles[i].backface_culling = true end end - def_opened.drop = "default:" .. name + def_opened.drop = name def_opened.groups.not_in_creative_inventory = 1 def_opened.selection_box = { type = "fixed", @@ -265,29 +266,31 @@ function default.chest.register_chest(name, d) def_closed.tiles[5] = def.tiles[3] -- drawtype to make them match the mesh def_closed.tiles[3] = def.tiles[3].."^[transformFX" - minetest.register_node("default:" .. name, def_closed) - minetest.register_node("default:" .. name .. "_open", def_opened) + minetest.register_node(prefixed_name, def_closed) + minetest.register_node(prefixed_name .. "_open", def_opened) -- convert old chests to this new variant - minetest.register_lbm({ - label = "update chests to opening chests", - name = "default:upgrade_" .. name .. "_v2", - nodenames = {"default:" .. name}, - action = function(pos, node) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", nil) - local inv = meta:get_inventory() - local list = inv:get_list("default:chest") - if list then - inv:set_size("main", 8*4) - inv:set_list("main", list) - inv:set_list("default:chest", nil) + if name == "default:chest" or name == "default:chest_locked" then + minetest.register_lbm({ + label = "update chests to opening chests", + name = "default:upgrade_" .. name:sub(9,-1) .. "_v2", + nodenames = {name}, + action = function(pos, node) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", nil) + local inv = meta:get_inventory() + local list = inv:get_list("default:chest") + if list then + inv:set_size("main", 8*4) + inv:set_list("main", list) + inv:set_list("default:chest", nil) + end end - end - }) + }) + end end -default.chest.register_chest("chest", { +default.chest.register_chest("default:chest", { description = S("Chest"), tiles = { "default_chest_top.png", @@ -303,7 +306,7 @@ default.chest.register_chest("chest", { groups = {choppy = 2, oddly_breakable_by_hand = 2}, }) -default.chest.register_chest("chest_locked", { +default.chest.register_chest("default:chest_locked", { description = S("Locked Chest"), tiles = { "default_chest_top.png", From bd64188ee566bc31c1cd50d63f0da3328d42ab51 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 14 Apr 2020 13:30:59 +0200 Subject: [PATCH 14/43] Override builtin item entity the portable way --- mods/default/item_entity.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/default/item_entity.lua b/mods/default/item_entity.lua index 85454365..8da3ee68 100644 --- a/mods/default/item_entity.lua +++ b/mods/default/item_entity.lua @@ -39,8 +39,8 @@ local item = { }) end, - on_step = function(self, dtime) - builtin_item.on_step(self, dtime) + on_step = function(self, dtime, ...) + builtin_item.on_step(self, dtime, ...) if self.flammable then -- flammable, check for igniters From 52c6921cb2b45f8733a5245e537a55d06405c60c Mon Sep 17 00:00:00 2001 From: Paramat Date: Tue, 14 Apr 2020 18:09:24 +0100 Subject: [PATCH 15/43] Make default:snow collisionbox half of nodebox height (#2647) --- mods/default/nodes.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 3b8b5115..0a7ba436 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -621,7 +621,7 @@ minetest.register_node("default:snow", { collision_box = { type = "fixed", fixed = { - {-0.5, -0.5, -0.5, 0.5, -7 / 16, 0.5}, + {-0.5, -0.5, -0.5, 0.5, -6 / 16, 0.5}, }, }, groups = {crumbly = 3, falling_node = 1, snowy = 1}, From 81c5b6b39925b6014e8c7d4caf44a94a792d7bc0 Mon Sep 17 00:00:00 2001 From: David Leal Date: Thu, 23 Apr 2020 15:19:58 -0500 Subject: [PATCH 16/43] beds: Use `player_api` functions instead of `default` (#2654) --- mods/beds/functions.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mods/beds/functions.lua b/mods/beds/functions.lua index 6ee0474c..019c123a 100644 --- a/mods/beds/functions.lua +++ b/mods/beds/functions.lua @@ -74,10 +74,10 @@ local function lay_down(player, pos, bed_pos, state, skip) -- physics, eye_offset, etc player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) player:set_look_horizontal(math.random(1, 180) / 100) - default.player_attached[name] = false + player_api.player_attached[name] = false player:set_physics_override(1, 1, 1) hud_flags.wielditem = true - default.player_set_animation(player, "stand" , 30) + player_api.set_animation(player, "stand" , 30) -- lay down else @@ -99,9 +99,9 @@ local function lay_down(player, pos, bed_pos, state, skip) } player:set_physics_override(0, 0, 0) player:set_pos(p) - default.player_attached[name] = true + player_api.player_attached[name] = true hud_flags.wielditem = false - default.player_set_animation(player, "lay" , 0) + player_api.set_animation(player, "lay" , 0) end player:hud_set_flags(hud_flags) From 189d2d9fb1ac6491eb094314fcd6daa753480263 Mon Sep 17 00:00:00 2001 From: An0n3m0us Date: Fri, 24 Apr 2020 21:04:00 +0200 Subject: [PATCH 17/43] Fix door model UV for open and close (#2372) Introduce _c and _d door types to correctly render the texture faces for the open and closed state. --- mods/doors/init.lua | 24 ++++++++----- mods/doors/models/door_a.obj | 2 +- mods/doors/models/door_a2.obj | 50 ++++++++++++++++++++++++++ mods/doors/models/door_b.obj | 66 ++++++++++++++++++++--------------- mods/doors/models/door_b2.obj | 50 ++++++++++++++++++++++++++ 5 files changed, 155 insertions(+), 37 deletions(-) create mode 100644 mods/doors/models/door_a2.obj create mode 100644 mods/doors/models/door_b2.obj diff --git a/mods/doors/init.lua b/mods/doors/init.lua index 5bfa1d42..08b650f3 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -115,10 +115,10 @@ local transform = { {v = "_a", param2 = 2}, }, { - {v = "_b", param2 = 1}, - {v = "_b", param2 = 2}, - {v = "_b", param2 = 3}, - {v = "_b", param2 = 0}, + {v = "_c", param2 = 1}, + {v = "_c", param2 = 2}, + {v = "_c", param2 = 3}, + {v = "_c", param2 = 0}, }, { {v = "_b", param2 = 1}, @@ -127,10 +127,10 @@ local transform = { {v = "_b", param2 = 0}, }, { - {v = "_a", param2 = 3}, - {v = "_a", param2 = 0}, - {v = "_a", param2 = 1}, - {v = "_a", param2 = 2}, + {v = "_d", param2 = 3}, + {v = "_d", param2 = 0}, + {v = "_d", param2 = 1}, + {v = "_d", param2 = 2}, }, } @@ -449,8 +449,16 @@ function doors.register(name, def) def.mesh = "door_b.obj" minetest.register_node(":" .. name .. "_b", def) + def.mesh = "door_a2.obj" + minetest.register_node(":" .. name .. "_c", def) + + def.mesh = "door_b2.obj" + minetest.register_node(":" .. name .. "_d", def) + doors.registered_doors[name .. "_a"] = true doors.registered_doors[name .. "_b"] = true + doors.registered_doors[name .. "_c"] = true + doors.registered_doors[name .. "_d"] = true end doors.register("door_wood", { diff --git a/mods/doors/models/door_a.obj b/mods/doors/models/door_a.obj index bd5127b5..7948f2f3 100644 --- a/mods/doors/models/door_a.obj +++ b/mods/doors/models/door_a.obj @@ -1,7 +1,7 @@ # Blender v2.76 (sub 0) OBJ File: 'door_a.blend' # www.blender.org mtllib door_a.mtl -o Cube_Cube.001 +o door_a v 0.499000 -0.499000 -0.499000 v 0.499000 1.499000 -0.499000 v 0.499000 -0.499000 -0.375000 diff --git a/mods/doors/models/door_a2.obj b/mods/doors/models/door_a2.obj new file mode 100644 index 00000000..3bedc202 --- /dev/null +++ b/mods/doors/models/door_a2.obj @@ -0,0 +1,50 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +mtllib door_a2.mtl +o door_a2 +v -0.499000 1.499000 -0.499000 +v -0.499000 -0.499000 -0.499000 +v -0.499000 -0.499000 -0.375000 +v -0.499000 1.499000 -0.375000 +v 0.499000 -0.499000 -0.375000 +v 0.499000 1.499000 -0.375000 +v 0.499000 -0.499000 -0.499000 +v 0.499000 1.499000 -0.499000 +vt 0.894737 1.000000 +vt 0.894737 0.000000 +vt 0.842105 0.000000 +vt 0.842105 1.000000 +vt 0.421052 1.000000 +vt 0.421052 0.000000 +vt 0.000001 0.000000 +vt 0.000001 1.000000 +vt 0.894737 1.000000 +vt 0.894737 0.000000 +vt 0.947368 0.000000 +vt 0.947368 1.000000 +vt 0.842105 1.000000 +vt 0.842105 0.000000 +vt 0.421052 0.000000 +vt 0.421052 1.000000 +vt 0.947368 0.000000 +vt 0.947368 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 1.000000 0.500000 +vt 0.947368 0.500000 +vt 0.947368 1.000000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +usemtl None.009 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 4/5/2 3/6/2 5/7/2 6/8/2 +f 6/9/3 5/10/3 7/11/3 8/12/3 +f 8/13/4 7/14/4 2/15/4 1/16/4 +f 2/17/5 7/18/5 5/19/5 3/20/5 +f 8/21/6 1/22/6 4/23/6 6/24/6 diff --git a/mods/doors/models/door_b.obj b/mods/doors/models/door_b.obj index c5607b87..87f1729c 100644 --- a/mods/doors/models/door_b.obj +++ b/mods/doors/models/door_b.obj @@ -1,40 +1,50 @@ -# Blender v2.76 (sub 0) OBJ File: 'door_b.blend' +# Blender v2.79 (sub 0) OBJ File: '' # www.blender.org mtllib door_b.mtl -o Cube_Cube.001 -v -0.499000 -0.499000 -0.499000 -v -0.499000 1.499000 -0.499000 -v -0.499000 -0.499000 -0.375000 -v -0.499000 1.499000 -0.375000 -v 0.499000 -0.499000 -0.499000 +o door_b v 0.499000 1.499000 -0.499000 -v 0.499000 -0.499000 -0.375000 v 0.499000 1.499000 -0.375000 +v 0.499000 -0.499000 -0.375000 +v 0.499000 -0.499000 -0.499000 +v -0.499000 1.499000 -0.375000 +v -0.499000 -0.499000 -0.375000 +v -0.499000 1.499000 -0.499000 +v -0.499000 -0.499000 -0.499000 +vt 0.894736 1.000000 +vt 0.947368 1.000000 +vt 0.947368 0.000000 +vt 0.894736 0.000000 vt 0.842105 1.000000 -vt 0.842105 0.000000 -vt 0.894737 0.000000 -vt 0.894737 1.000000 vt 0.421053 1.000000 vt 0.421053 0.000000 -vt 0.947368 0.000000 -vt 0.947368 1.000000 +vt 0.842105 0.000000 +vt 0.842105 1.000000 +vt 0.894736 1.000000 +vt 0.894736 0.000000 +vt 0.842105 0.000000 +vt 0.421053 1.000000 vt 0.000000 1.000000 vt 0.000000 0.000000 -vt 1.000000 0.000000 +vt 0.421053 0.000000 vt 1.000000 0.500000 vt 0.947368 0.500000 +vt 0.947368 1.000000 vt 1.000000 1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 1.000000 0.000000 -usemtl None -s off -f 2/1/1 1/2/1 3/3/1 4/4/1 -f 4/5/2 3/6/2 7/2/2 8/1/2 -f 8/4/3 7/3/3 5/7/3 6/8/3 -f 6/9/4 5/10/4 1/6/4 2/5/4 -f 1/11/5 5/12/5 7/13/5 3/7/5 -f 6/8/6 2/13/6 4/12/6 8/14/6 +vt 1.000000 0.000000 +vt 0.947368 0.000000 +vt 0.947368 0.500000 +vt 1.000000 0.500000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +usemtl None.007 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 2/5/2 5/6/2 6/7/2 3/8/2 +f 5/9/3 7/10/3 8/11/3 6/12/3 +f 7/13/4 1/14/4 4/15/4 8/16/4 +f 4/17/5 3/18/5 6/19/5 8/20/5 +f 7/21/6 5/22/6 2/23/6 1/24/6 diff --git a/mods/doors/models/door_b2.obj b/mods/doors/models/door_b2.obj new file mode 100644 index 00000000..35632a5e --- /dev/null +++ b/mods/doors/models/door_b2.obj @@ -0,0 +1,50 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +mtllib door_b2.mtl +o door_b2 +v 0.499000 1.499000 -0.499000 +v 0.499000 1.499000 -0.375000 +v 0.499000 -0.499000 -0.375000 +v 0.499000 -0.499000 -0.499000 +v -0.499000 1.499000 -0.375000 +v -0.499000 -0.499000 -0.375000 +v -0.499000 1.499000 -0.499000 +v -0.499000 -0.499000 -0.499000 +vt 0.842105 1.000000 +vt 0.894737 1.000000 +vt 0.894737 0.000000 +vt 0.842105 0.000000 +vt 0.421052 1.000000 +vt 0.000001 1.000000 +vt 0.000001 0.000000 +vt 0.421052 0.000000 +vt 0.894737 1.000000 +vt 0.947368 1.000000 +vt 0.947368 0.000000 +vt 0.894737 0.000000 +vt 0.842105 1.000000 +vt 0.421052 1.000000 +vt 0.421052 0.000000 +vt 0.842105 0.000000 +vt 1.000000 0.500000 +vt 0.947368 0.500000 +vt 0.947368 1.000000 +vt 1.000000 1.000000 +vt 1.000000 0.000000 +vt 0.947368 0.000000 +vt 0.947368 0.500000 +vt 1.000000 0.500000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +usemtl None.010 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 2/5/2 5/6/2 6/7/2 3/8/2 +f 5/9/3 7/10/3 8/11/3 6/12/3 +f 7/13/4 1/14/4 4/15/4 8/16/4 +f 4/17/5 3/18/5 6/19/5 8/20/5 +f 7/21/6 5/22/6 2/23/6 1/24/6 From 33eb7cee2a548dba89a6aed6ec7c9d093de4ff2f Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 24 Apr 2020 21:12:40 +0200 Subject: [PATCH 18/43] Fix flammable item entities crashing (#2659) --- mods/default/item_entity.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mods/default/item_entity.lua b/mods/default/item_entity.lua index 8da3ee68..d9bf7b19 100644 --- a/mods/default/item_entity.lua +++ b/mods/default/item_entity.lua @@ -15,8 +15,8 @@ local item = { burn_up = function(self) -- disappear in a smoke puff - self.object:remove() local p = self.object:get_pos() + self.object:remove() minetest.sound_play("default_item_smoke", { pos = p, max_hear_distance = 8, @@ -43,12 +43,16 @@ local item = { builtin_item.on_step(self, dtime, ...) if self.flammable then - -- flammable, check for igniters + -- flammable, check for igniters every 10 s self.ignite_timer = (self.ignite_timer or 0) + dtime if self.ignite_timer > 10 then self.ignite_timer = 0 - local node = minetest.get_node_or_nil(self.object:get_pos()) + local pos = self.object:get_pos() + if pos == nil then + return -- object already deleted + end + local node = minetest.get_node_or_nil(pos) if not node then return end From 190f7fdac9da5e80f45c1b2470ce7827543a6f6d Mon Sep 17 00:00:00 2001 From: HybridDog <3192173+HybridDog@users.noreply.github.com> Date: Wed, 29 Apr 2020 21:11:21 +0200 Subject: [PATCH 19/43] Add a missing article to the sign action message (#2651) --- mods/default/nodes.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index 0a7ba436..aa7d482f 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -2579,12 +2579,10 @@ local function register_sign(material, desc, def) sounds = def.sounds, on_construct = function(pos) - --local n = minetest.get_node(pos) local meta = minetest.get_meta(pos) meta:set_string("formspec", "field[text;;${text}]") end, on_receive_fields = function(pos, formname, fields, sender) - --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) local player_name = sender:get_player_name() if minetest.is_protected(pos, player_name) then minetest.record_protection_violation(pos, player_name) @@ -2598,8 +2596,8 @@ local function register_sign(material, desc, def) minetest.chat_send_player(player_name, S("Text too long")) return end - minetest.log("action", (player_name or "") .. " wrote \"" .. - text .. "\" to sign at " .. minetest.pos_to_string(pos)) + minetest.log("action", player_name .. " wrote \"" .. text .. + "\" to the sign at " .. minetest.pos_to_string(pos)) local meta = minetest.get_meta(pos) meta:set_string("text", text) From d88e551071f6e7f60d7d6d9e2f0f6e4c65069b39 Mon Sep 17 00:00:00 2001 From: Zughy <63455151+Zughy@users.noreply.github.com> Date: Thu, 30 Apr 2020 17:51:39 +0000 Subject: [PATCH 20/43] Fix cart inventory image rendering (#2666) Before it was rendering the side on both the side and the front of the minetest.inventorycube --- mods/carts/cart_entity.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/carts/cart_entity.lua b/mods/carts/cart_entity.lua index 02ff6cde..39c4c5ca 100644 --- a/mods/carts/cart_entity.lua +++ b/mods/carts/cart_entity.lua @@ -389,7 +389,7 @@ minetest.register_entity("carts:cart", cart_entity) minetest.register_craftitem("carts:cart", { description = S("Cart") .. "\n" .. S("(Sneak+Click to pick up)"), - inventory_image = minetest.inventorycube("carts_cart_top.png", "carts_cart_side.png", "carts_cart_side.png"), + inventory_image = minetest.inventorycube("carts_cart_top.png", "carts_cart_front.png", "carts_cart_side.png"), wield_image = "carts_cart_side.png", on_place = function(itemstack, placer, pointed_thing) local under = pointed_thing.under From ef45a8e14855a5631db8eab3712b0ae594a977ad Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 4 May 2020 19:20:01 +0200 Subject: [PATCH 21/43] doors: Remove unnecessary nodebox and empty texture (#2662) --- mods/doors/init.lua | 12 ++---------- mods/doors/textures/doors_blank.png | Bin 95 -> 0 bytes 2 files changed, 2 insertions(+), 10 deletions(-) delete mode 100644 mods/doors/textures/doors_blank.png diff --git a/mods/doors/init.lua b/mods/doors/init.lua index 08b650f3..2048a643 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -78,9 +78,7 @@ end -- nodes from being placed in the top half of the door. minetest.register_node("doors:hidden", { description = S("Hidden Door Segment"), - -- can't use airlike otherwise falling nodes will turn to entities - -- and will be forever stuck until door is removed. - drawtype = "nodebox", + drawtype = "airlike", paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, @@ -93,13 +91,7 @@ minetest.register_node("doors:hidden", { drop = "", groups = {not_in_creative_inventory = 1}, on_blast = function() end, - tiles = {"doors_blank.png"}, - -- 1px transparent block inside door hinge near node top. - node_box = { - type = "fixed", - fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32}, - }, - -- collision_box needed otherise selection box would be full node size + -- 1px block inside door hinge near node top collision_box = { type = "fixed", fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32}, diff --git a/mods/doors/textures/doors_blank.png b/mods/doors/textures/doors_blank.png deleted file mode 100644 index 1914264c08781d1f30ee0b8482bccf44586f2dc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)ga%mF?ju0VQumF+E%TuG2$FoVOh l8)-lem#2$k2*>s01R$Gz9%CSj!PC{xWt~$(697H@6ZHT9 From 3f42c6c24396eb0874d4dd7c66623d0a9277022c Mon Sep 17 00:00:00 2001 From: Yaman Qalieh Date: Sun, 10 May 2020 07:37:37 -0400 Subject: [PATCH 22/43] Add oddly_breakable_by_hand to glass stairs and slabs --- mods/stairs/init.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua index e2984f66..bba6e62b 100644 --- a/mods/stairs/init.lua +++ b/mods/stairs/init.lua @@ -874,7 +874,7 @@ my_register_stair_and_slab( stairs.register_stair( "glass", "default:glass", - {cracky = 3}, + {cracky = 3, oddly_breakable_by_hand = 3}, {"stairs_glass_split.png", "default_glass.png", "stairs_glass_stairside.png^[transformFX", "stairs_glass_stairside.png", "default_glass.png", "stairs_glass_split.png"}, @@ -886,7 +886,7 @@ stairs.register_stair( stairs.register_slab( "glass", "default:glass", - {cracky = 3}, + {cracky = 3, oddly_breakable_by_hand = 3}, {"default_glass.png", "default_glass.png", "stairs_glass_split.png"}, S("Glass Slab"), default.node_sound_glass_defaults(), @@ -896,7 +896,7 @@ stairs.register_slab( stairs.register_stair_inner( "glass", "default:glass", - {cracky = 3}, + {cracky = 3, oddly_breakable_by_hand = 3}, {"stairs_glass_stairside.png^[transformR270", "default_glass.png", "stairs_glass_stairside.png^[transformFX", "default_glass.png", "default_glass.png", "stairs_glass_stairside.png"}, @@ -909,7 +909,7 @@ stairs.register_stair_inner( stairs.register_stair_outer( "glass", "default:glass", - {cracky = 3}, + {cracky = 3, oddly_breakable_by_hand = 3}, {"stairs_glass_stairside.png^[transformR90", "default_glass.png", "stairs_glass_outer_stairside.png", "stairs_glass_stairside.png", "stairs_glass_stairside.png^[transformR90","stairs_glass_outer_stairside.png"}, From e5b54c6ead1f34acf769288367428d81fb28fa38 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 10 May 2020 14:10:29 +0200 Subject: [PATCH 23/43] Switch TNT explosions to use add_player_velocity (#2674) --- mods/tnt/init.lua | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua index 1e2fb801..21970c60 100644 --- a/mods/tnt/init.lua +++ b/mods/tnt/init.lua @@ -22,7 +22,7 @@ local tnt_radius = tonumber(minetest.settings:get("tnt_radius") or 3) -- Fill a list with data for content IDs, after all nodes are registered local cid_data = {} -minetest.after(0, function() +minetest.register_on_mods_loaded(function() for name, def in pairs(minetest.registered_nodes) do cid_data[minetest.get_content_id(name)] = { name = name, @@ -163,13 +163,9 @@ local function entity_physics(pos, radius, drops) local damage = (4 / dist) * radius if obj:is_player() then - -- we knock the player back 1.0 node, and slightly upwards - -- TODO: switch to add_player_velocity() introduced in 5.1 local dir = vector.normalize(vector.subtract(obj_pos, pos)) - local moveoff = vector.multiply(dir, dist + 1.0) - local newpos = vector.add(pos, moveoff) - newpos = vector.add(newpos, {x = 0, y = 0.2, z = 0}) - obj:set_pos(newpos) + local moveoff = vector.multiply(dir, 2 / dist * radius) + obj:add_player_velocity(moveoff) obj:set_hp(obj:get_hp() - damage) else From 16c950f68808e8ebbeda5f71a9897ab8b54a3b21 Mon Sep 17 00:00:00 2001 From: Hamlet <54187342+h4ml3t@users.noreply.github.com> Date: Mon, 11 May 2020 23:13:00 +0200 Subject: [PATCH 24/43] doors: Update Italian translation (#2670) --- mods/doors/locale/doors.it.tr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/doors/locale/doors.it.tr b/mods/doors/locale/doors.it.tr index 4737ee21..4a9599d6 100644 --- a/mods/doors/locale/doors.it.tr +++ b/mods/doors/locale/doors.it.tr @@ -4,7 +4,7 @@ Owned by @1=Di proprietà di @1 You do not own this locked door.=Non sei il proprietario di questa porta chiusa a chiave. a locked door=una porta chiusa a chiave Wooden Door=Porta di legno -Steel Door=Porta d'acciacio +Steel Door=Porta d'acciaio Glass Door=Porta di vetro Obsidian Glass Door=Porta di vetro d'ossidiana Owned by @1=Di proprietà di @1 @@ -16,4 +16,4 @@ Apple Wood Fence Gate=Cancello della recinzione di legno di melo Acacia Wood Fence Gate=Cancello della recinzione di legno d'acacia Jungle Wood Fence Gate=Cancello della recinzione di legno della giungla Pine Wood Fence Gate=Cancello della recinzione di legno di pino -Aspen Wood Fence Gate=Cancello della recinzione di legno di pioppo \ No newline at end of file +Aspen Wood Fence Gate=Cancello della recinzione di legno di pioppo From b3d91a487dc06f1680eddd4023111702d521a53e Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 14 May 2020 23:33:53 +0200 Subject: [PATCH 25/43] Add new dry shrub texture by Extex101 (#2680) --- mods/default/README.txt | 1 + mods/default/textures/default_dry_shrub.png | Bin 148 -> 154 bytes 2 files changed, 1 insertion(+) diff --git a/mods/default/README.txt b/mods/default/README.txt index 5f89f74b..79ce6d24 100644 --- a/mods/default/README.txt +++ b/mods/default/README.txt @@ -253,6 +253,7 @@ Topywo (CC BY-SA 3.0) Extex101 (CC BY-SA 3.0) default_large_cactus_seedling.png + default_dry_shrub.png -- Derived from the original texture by celeron55 Sounds diff --git a/mods/default/textures/default_dry_shrub.png b/mods/default/textures/default_dry_shrub.png index e8a7f2773ba3fc4ce494940179ff857ced3822fe..82c9cc5873b30a2bb7475641e2e34e7e4ff06097 100644 GIT binary patch delta 91 zcmV-h0Hptv0h$4jMpQpZL_t&t9Rz&`*0002ovPDHLkV1o14BP{>` delta 85 zcmbQmIE8V7o1dkpi(?4K_2dJLA_`O3n4OuKCo>CA&^&U4Q6w!e;X%U0f`o)e1wf*p nkj0C`FD2nZhzRSZpkN7x%;PMp437siFaUw4tDnm{r-UW|rjZ-- From e5a7af1c4abaf06ad764bf7c5da058fd136871c0 Mon Sep 17 00:00:00 2001 From: Paramat Date: Thu, 14 May 2020 23:49:17 +0100 Subject: [PATCH 26/43] Add wild cotton plant in savanna as a source of cotton seeds (#2617) Junglegrass is unchanged as a source of cotton seeds for now, but probably should be removed as a source in future, as players get used to the new source. --- mods/farming/README.txt | 3 ++ mods/farming/init.lua | 23 ++++++++++- mods/farming/license.txt | 34 ++++++++++++++++ mods/farming/nodes.lua | 37 +++++++++++++++++- mods/farming/textures/farming_cotton_wild.png | Bin 0 -> 228 bytes 5 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 mods/farming/textures/farming_cotton_wild.png diff --git a/mods/farming/README.txt b/mods/farming/README.txt index d46748d7..a6427d04 100644 --- a/mods/farming/README.txt +++ b/mods/farming/README.txt @@ -38,3 +38,6 @@ Created by Gambit (CC BY 3.0): Created by Napiophelios (CC BY-SA 3.0): farming_cotton.png + +Created by Extex101 (CC BY-SA 3.0): + farming_cotton_wild.png diff --git a/mods/farming/init.lua b/mods/farming/init.lua index b583b8bd..d328cb4a 100644 --- a/mods/farming/init.lua +++ b/mods/farming/init.lua @@ -16,7 +16,7 @@ dofile(farming.path .. "/nodes.lua") dofile(farming.path .. "/hoes.lua") --- WHEAT +-- Wheat farming.register_plant("farming:wheat", { description = S("Wheat Seed"), @@ -71,6 +71,25 @@ farming.register_plant("farming:cotton", { groups = {flammable = 4}, }) +minetest.register_decoration({ + name = "farming:cotton_wild", + deco_type = "simple", + place_on = {"default:dry_dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = -0.1, + scale = 0.1, + spread = {x = 50, y = 50, z = 50}, + seed = 4242, + octaves = 3, + persist = 0.7 + }, + biomes = {"savanna"}, + y_max = 31000, + y_min = 1, + decoration = "farming:cotton_wild", +}) + minetest.register_craftitem("farming:string", { description = S("String"), inventory_image = "farming_string.png", @@ -139,7 +158,9 @@ minetest.register_craft({ burntime = 5, }) + -- Register farming items as dungeon loot + if minetest.global_exists("dungeon_loot") then dungeon_loot.register({ {name = "farming:string", chance = 0.5, count = {1, 8}}, diff --git a/mods/farming/license.txt b/mods/farming/license.txt index 8cbb63a8..b9708de3 100644 --- a/mods/farming/license.txt +++ b/mods/farming/license.txt @@ -59,3 +59,37 @@ rights may limit how you use the material. For more details: http://creativecommons.org/licenses/by/3.0/ + +----------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2017 Napiophelios +Copyright (C) 2020 Extex101 + +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/ diff --git a/mods/farming/nodes.lua b/mods/farming/nodes.lua index 0e584f03..b5f90f96 100644 --- a/mods/farming/nodes.lua +++ b/mods/farming/nodes.lua @@ -230,20 +230,53 @@ minetest.register_abm({ }) +-- Make default:grass_* occasionally drop wheat seed + for i = 1, 5 do minetest.override_item("default:grass_"..i, {drop = { max_items = 1, items = { - {items = {"farming:seed_wheat"},rarity = 5}, + {items = {"farming:seed_wheat"}, rarity = 5}, {items = {"default:grass_1"}}, } }}) end + +-- Make default:junglegrass occasionally drop cotton seed. + +-- This is the old source of cotton seeds that makes no sense. It is a leftover +-- from Mapgen V6 where junglegrass was the only plant available to be a source. +-- This source is kept for now to avoid disruption but should probably be +-- removed in future as players get used to the new source. + minetest.override_item("default:junglegrass", {drop = { max_items = 1, items = { - {items = {"farming:seed_cotton"},rarity = 8}, + {items = {"farming:seed_cotton"}, rarity = 8}, {items = {"default:junglegrass"}}, } }}) + + +-- Wild cotton as a source of cotton seed + +minetest.register_node("farming:cotton_wild", { + description = S("Wild Cotton"), + drawtype = "plantlike", + waving = 1, + tiles = {"farming_cotton_wild.png"}, + inventory_image = "farming_cotton_wild.png", + wield_image = "farming_cotton_wild.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 4}, + drop = "farming:seed_cotton", + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -8 / 16, -6 / 16, 6 / 16, 5 / 16, 6 / 16}, + }, +}) diff --git a/mods/farming/textures/farming_cotton_wild.png b/mods/farming/textures/farming_cotton_wild.png new file mode 100644 index 0000000000000000000000000000000000000000..0107ad4a83c00f28ef9406b0ce198a67a38ec8ca GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=3bp79ln+1tB4kxn>a^ zZefcf*RNlH`SRu0uU|i1mY@k#!B`UH7tG-B>_!@pQ{w637{YPAwr3;nAp;TC^Y^zE zNJe^eyqm4ym?@R$}eg2{VVw2>u6PWR6EB`F)l3ffT^|a zcF|WS1WXobg&nm&8U6gZT6Nr`rT6oL7RnrvTN0^0>&vXPn^z0m&Kx^*rP}LU^J8wq XG~O7$3sXCR_A_|8`njxgN@xNA(STM% literal 0 HcmV?d00001 From b787fcf7e4400b3ce576454e5cc214633c353836 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Fri, 15 May 2020 19:04:34 +0200 Subject: [PATCH 27/43] Carts: Reset player view and attachment table on death Fixes #2681 --- mods/carts/cart_entity.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/carts/cart_entity.lua b/mods/carts/cart_entity.lua index 39c4c5ca..b95fde70 100644 --- a/mods/carts/cart_entity.lua +++ b/mods/carts/cart_entity.lua @@ -66,7 +66,7 @@ end -- 0.5.x and later: When the driver leaves function cart_entity:on_detach_child(child) if child and child:get_player_name() == self.driver then - self.driver = nil + carts:manage_attachment(child, nil) end end From 3452938c7653e171d7d493e1a3c51d3ab2e429cc Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sat, 16 May 2020 19:26:28 +0200 Subject: [PATCH 28/43] Carts: Re-add erroneously removed driver reset carts:manage_attachment does not handle the driver value of the cart, hence carts could not be used by another player until it's replaced. --- mods/carts/cart_entity.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/carts/cart_entity.lua b/mods/carts/cart_entity.lua index b95fde70..734711be 100644 --- a/mods/carts/cart_entity.lua +++ b/mods/carts/cart_entity.lua @@ -66,6 +66,7 @@ end -- 0.5.x and later: When the driver leaves function cart_entity:on_detach_child(child) if child and child:get_player_name() == self.driver then + self.driver = nil carts:manage_attachment(child, nil) end end From 84da00acd45023f7af6f09bd6d404a495b66f860 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 25 May 2020 15:56:23 +0200 Subject: [PATCH 29/43] Add node particles when leafdecay removes a node (#2686) --- mods/default/functions.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/mods/default/functions.lua b/mods/default/functions.lua index f67eadff..f9ff77cc 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -433,6 +433,9 @@ local function leafdecay_after_destruct(pos, oldnode, def) end end +local movement_gravity = tonumber( + minetest.settings:get("movement_gravity")) or 9.81 + local function leafdecay_on_timer(pos, def) if minetest.find_node_near(pos, def.radius, def.trunks) then return false @@ -459,6 +462,21 @@ local function leafdecay_on_timer(pos, def) minetest.remove_node(pos) minetest.check_for_falling(pos) + + -- spawn a few particles for the removed node + minetest.add_particlespawner({ + amount = 8, + time = 0.001, + minpos = vector.subtract(pos, {x=0.5, y=0.5, z=0.5}), + maxpos = vector.add(pos, {x=0.5, y=0.5, z=0.5}), + minvel = vector.new(-0.5, -1, -0.5), + maxvel = vector.new(0.5, 0, 0.5), + minacc = vector.new(0, -movement_gravity, 0), + maxacc = vector.new(0, -movement_gravity, 0), + minsize = 0, + maxsize = 0, + node = node, + }) end function default.register_leafdecay(def) From 0662f962842b071525fa00ce970d8cc645bd68a4 Mon Sep 17 00:00:00 2001 From: An0n3m0us Date: Thu, 28 May 2020 10:12:15 +0100 Subject: [PATCH 30/43] Reduce hud icons size to 12x12 pixels (#2669) --- mods/default/README.txt | 8 ++++---- mods/default/license.txt | 1 + mods/default/textures/bubble.png | Bin 459 -> 331 bytes mods/default/textures/heart.png | Bin 14830 -> 279 bytes 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mods/default/README.txt b/mods/default/README.txt index 79ce6d24..be8cbf14 100644 --- a/mods/default/README.txt +++ b/mods/default/README.txt @@ -151,7 +151,6 @@ BlockMen (CC BY-SA 3.0): default_chest_top.png default_mineral_mese.png default_meselamp.png - bubble.png gui_formbg.png gui_furnace_arrow_bg.png gui_furnace_arrow_fg.png @@ -196,9 +195,6 @@ Gambit (CC BY-SA 3.0): asl97 (CC BY-SA 3.0): default_ice.png -KevDoy (CC BY-SA 3.0): - heart.png - Pithydon (CC BY-SA 3.0) default_coral_brown.png default_coral_orange.png @@ -255,6 +251,10 @@ Extex101 (CC BY-SA 3.0) default_large_cactus_seedling.png default_dry_shrub.png -- Derived from the original texture by celeron55 +An0n3m0us (CC BY-SA 3.0): + heart.png -- Derived from a texture by KevDoy (CC BY-SA 3.0) + bubble.png -- Derived from a texture by BlockMen (CC BY-SA 3.0) + Sounds ------ diff --git a/mods/default/license.txt b/mods/default/license.txt index fecb1eb8..3c95c1b4 100644 --- a/mods/default/license.txt +++ b/mods/default/license.txt @@ -51,6 +51,7 @@ Copyright (C) 2010-2018: Mossmanikin random-geek Extex101 + An0n3m0us You are free to: Share — copy and redistribute the material in any medium or format. diff --git a/mods/default/textures/bubble.png b/mods/default/textures/bubble.png index 100fe15fa91a1d7450cb0f40a2aafca8b2f0f0ce..30170d29984c549b3a6ebc20126711ae394aa6da 100644 GIT binary patch literal 331 zcmV-R0kr;!P)$lkM$>j3Q=kuS+=#04El)dPht-YhO!KTjasnP4M&+M+!?XcDGu-NOk-1ETU^u^xq z#?R8oe2ESWad?o+@002ovPDHLkV1mMywdMc- literal 459 zcmV;+0W|)JP)ert@A;z2>&@r($>a0M)cVHG{Kn1wxxN0hxBjuS{_ghnN^qkcAR&p1 zj>+Wpy4&xv)a&Z>`Q`BUbC$^L_4s(6%D=+@yutmu)9~{5`BrzQm!+?ut+980hx+{f z8y+C(@Aw!P82|tO(CYTq>-4VD?TonJ@cH}h_WQu$^rN%E_xt_e^7_c+^tjyfu+{Lz z-tXk>?z_|NuFveI&g`(*>#5P}v(V|3z39fz(weQk{=f*)0000dbW%=J0Dp%rE*Jdw z@4Bz5mywNPIw2MJ_x0i7&bzFfoQZH)PC_mm77_>C7QAl&005IoL_t&-(~XVA7Q!$T z1(Oi!El}K@SOs_a|Gy$h+rx%MXE*cSIT!pV#27EapVzvS8=_Y)yw73}`F0|v`JHVc zAp{Po&_C5q45dn(!$5_~$;%uDCSR%WK+-kly`jR*&jV^w6_!^!bK>sL8z31UN7{+C zn*crY9T)vOF6MV_O{MGAQlNc|B|(0{ z3=Yq3qyagRo-U3d9I~tjIhh&*7+4QzMmyOrY(G)<-+C4!L&1$rS&h%CZf!rlu~D!8 z`p=@XJDiK_|JoH#;+y^OXRZIq4ac^n%$qbtYE_YUP*%c4^`&epeg!dZh+$y(z`i|% V2aD;VgY)s zPh>?s2op+pzyR?P~#M7Blp@tC6bF`?%lz9I&bWN14N08v-ucc8CW0ED^3Lle&xMrjzq*zHwy^zt>UT50eH57tc zQZrBosMDIMjzm$2sHP>UGK_=*G+L2IQDQ=!%*FY-9^PHUOOo5md%bQc4taNvkFBk( zW8*b4FHb8G(&V%qu&EL;{1UB(f^J_ad0VCI7zn5mYDKc|sQ}G6T{_1*?O-L-+2hN2 z7QGnG{>&p?|Bd8{CshT>=AE~{`jw~Y??eD+`VZ&Gpg3yN~?F+q~EYn1Iw!s+Jv8Zs%&} zs`MowlKby@&%ve^xB4UlHua+Ga%*=NGr3sC-V~=+>u0X>;dg*(yC^y@dkpQ)Xq#tp z`~0LY)YP4POCg~!&unb_qBwa)omH{l7q>JdnGJpk>bP-)x2C!g~ zE}{#|02WNrMRZ{qz=BD-h%PJxSTIQ!(S>CI3nu9zy08pj!6aQo7nT7mn52v7!ZLsb zlXMYXSO&0Qk}jeP%K#Sqe@K@r|M(wN(KCMrdbkh%kop=u7)Z(Cb`gMqDgXwD0Jw4$ zeg6tTng!suZUBT`04&sYJbQ8l00oVaP*XHB_Sw#n$BWjKY&l+9es1tw_cm9-$rE23 zK5(#PRmGa|s*RhXV=wRBa&Sz6TJLLL(%gdJ*~-$F^rBPrvL`lNmP^M+N8yo+-yJpM zs}_9RJzT~uX?=Rv>A_mPvTXFgZllrlZTe`*juX|J3WH6>Bl|1UhmO75ai-|~d9KE) zGwi9^fg|3pibvy%`L6JLiO)w~{pFAG4@7<6MB)Cy7uQDqnpJQfG|ao=3;+En6MuW% z(DnyEnfTMcutH4UQ@qY~wyg6<&`>m&sccREG^hIT;HB2grRIZ$-xqtID{U@IY%|LX zqJ#TREq#4_;{3&d(B8tzrAI%UbF5(2a@Tzm&ny{!s;&G&bEt7a%b7**oPVK>Te0{N zYU@x_Rgl?UvGM{nym|MbH%Go1?cZ3qC^^P2+7lT)eb?`A6<+=5mE%R=v7J9tYZDKj Qw4ca~w5$&8Z|>gw51Z)1CIA2c From e849d5457251d248a723b928b00f75edf2f531ef Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 29 May 2020 22:54:47 +0200 Subject: [PATCH 31/43] carts: Fix item collection (#2689) --- mods/carts/cart_entity.lua | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mods/carts/cart_entity.lua b/mods/carts/cart_entity.lua index 734711be..efa1769f 100644 --- a/mods/carts/cart_entity.lua +++ b/mods/carts/cart_entity.lua @@ -328,11 +328,10 @@ local function rail_on_step(self, dtime) if self.punched then -- Collect dropped items for _, obj_ in pairs(minetest.get_objects_inside_radius(pos, 1)) do - if not obj_:is_player() and - obj_:get_luaentity() and - not obj_:get_luaentity().physical_state and - obj_:get_luaentity().name == "__builtin:item" then - + local ent = obj_:get_luaentity() + -- Careful here: physical_state and disable_physics are item-internal APIs + if ent and ent.name == "__builtin:item" and ent.physical_state then + ent:disable_physics() obj_:set_attach(self.object, "", {x=0, y=0, z=0}, {x=0, y=0, z=0}) self.attached_items[#self.attached_items + 1] = obj_ end From 6e345cf13622fefd1e47e9d69156848032e13158 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 2 Jun 2020 12:48:56 +0200 Subject: [PATCH 32/43] Use node particles for TNT explosions (#2695) --- mods/tnt/init.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua index 21970c60..fbb49c72 100644 --- a/mods/tnt/init.lua +++ b/mods/tnt/init.lua @@ -234,12 +234,16 @@ local function add_effects(pos, radius, drops) -- we just dropped some items. Look at the items entities and pick -- one of them to use as texture local texture = "tnt_blast.png" --fallback texture + local node local most = 0 for name, stack in pairs(drops) do local count = stack:get_count() if count > most then most = count local def = minetest.registered_nodes[name] + if def then + node = { name = name } + end if def and def.tiles and def.tiles[1] then texture = def.tiles[1] end @@ -257,9 +261,11 @@ local function add_effects(pos, radius, drops) maxacc = {x = 0, y = -10, z = 0}, minexptime = 0.8, maxexptime = 2.0, - minsize = radius * 0.66, - maxsize = radius * 2, + minsize = radius * 0.33, + maxsize = radius, texture = texture, + -- ^ only as fallback for clients without support for `node` parameter + node = node, collisiondetection = true, }) end From b1ab8d5123d58dd232806c3c7f089a6ada232e63 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 5 Jun 2020 14:29:34 +0200 Subject: [PATCH 33/43] Implement searching for translated names in creative inventory (#2675) --- mods/creative/inventory.lua | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/mods/creative/inventory.lua b/mods/creative/inventory.lua index 455da1a3..e22cfc17 100644 --- a/mods/creative/inventory.lua +++ b/mods/creative/inventory.lua @@ -61,6 +61,7 @@ function creative.init_creative_inventory(player) return player_inventory[player_name] end +local NO_MATCH = 999 local function match(s, filter) if filter == "" then return 0 @@ -68,7 +69,15 @@ local function match(s, filter) if s:lower():find(filter, 1, true) then return #s - #filter end - return nil + return NO_MATCH +end + +local function description(def, lang_code) + local s = def.description + if lang_code then + s = minetest.get_translated_string(lang_code, s) + end + return s:gsub("\n.*", "") -- First line only end function creative.update_creative_inventory(player_name, tab_content) @@ -84,13 +93,26 @@ function creative.update_creative_inventory(player_name, tab_content) local items = inventory_cache[tab_content] or init_creative_cache(tab_content) + local lang + local player_info = minetest.get_player_information(player_name) + if player_info and player_info.lang_code ~= "" then + lang = player_info.lang_code + end + local creative_list = {} local order = {} for name, def in pairs(items) do - local m = match(def.description, inv.filter) or match(def.name, inv.filter) - if m then + local m = match(description(def), inv.filter) + if m > 0 then + m = math.min(m, match(description(def, lang), inv.filter)) + end + if m > 0 then + m = math.min(m, match(name, inv.filter)) + end + + if m < NO_MATCH then creative_list[#creative_list+1] = name - -- Sort by description length first so closer matches appear earlier + -- Sort by match value first so closer matches appear earlier order[name] = string.format("%02d", m) .. name end end From 6d2a897e1bb9e6af31f3b2b5e8e28cb1cf4892f7 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sun, 7 Jun 2020 00:15:35 +0200 Subject: [PATCH 34/43] creative: Update for compatibility with minetest.creative_is_enabled (#2691) --- game_api.txt | 8 +++----- mods/creative/init.lua | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/game_api.txt b/game_api.txt index 561387d2..3f311336 100644 --- a/game_api.txt +++ b/game_api.txt @@ -93,11 +93,9 @@ For example, is used to show all tools. Name is used in the sfinv page name, title is the human readable title. -`is_enabled_for` is used to check whether a player is in creative mode: - - creative.is_enabled_for(name) - -Override this to allow per-player game modes. +Creative provides `creative.is_enabled_for(name)`, which is identical in +functionality to the engine's `minetest.creative_is_enabled(name)`. +Its use is deprecated and it should also not be overriden. The contents of `creative.formspec_add` is appended to every creative inventory page. Mods can use it to add additional formspec elements onto the default diff --git a/mods/creative/init.lua b/mods/creative/init.lua index a1d57c88..31af37c0 100644 --- a/mods/creative/init.lua +++ b/mods/creative/init.lua @@ -27,16 +27,25 @@ minetest.register_privilege("creative", { on_revoke = update_sfinv, }) -local creative_mode_cache = minetest.settings:get_bool("creative_mode") +-- Override the engine's creative mode function +local old_is_creative_enabled = minetest.is_creative_enabled +function minetest.is_creative_enabled(name) + if name == "" then + return old_is_creative_enabled(name) + end + return minetest.check_player_privs(name, {creative = true}) or + old_is_creative_enabled(name) +end + +-- For backwards compatibility: function creative.is_enabled_for(name) - return creative_mode_cache or - minetest.check_player_privs(name, {creative = true}) + return minetest.is_creative_enabled(name) end dofile(minetest.get_modpath("creative") .. "/inventory.lua") -if creative_mode_cache then +if minetest.is_creative_enabled("") then -- Dig time is modified according to difference (leveldiff) between tool -- 'maxlevel' and node 'level'. Digtime is divided by the larger of -- leveldiff and 1. From af045dcd8b4568df55a290eb59cc443202c13a58 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Wed, 10 Jun 2020 14:50:49 +0200 Subject: [PATCH 35/43] sethome: Do not write empty homes file --- mods/sethome/init.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mods/sethome/init.lua b/mods/sethome/init.lua index bad7806d..71874a99 100644 --- a/mods/sethome/init.lua +++ b/mods/sethome/init.lua @@ -32,6 +32,9 @@ sethome.set = function(name, pos) player:set_attribute("sethome:home", minetest.pos_to_string(pos)) -- remove `name` from the old storage file + if not homepos[name] then + return true + end local data = {} local output = io.open(homes_file, "w") if output then From d03d7e9bdc4ab3325b632ed22338c1ab2c9b0a5c Mon Sep 17 00:00:00 2001 From: Hooded Ice Date: Sat, 13 Jun 2020 01:37:23 +0400 Subject: [PATCH 36/43] Change brake rail to red (#2692) --- mods/carts/textures/carts_rail_crossing_brk.png | Bin 684 -> 456 bytes mods/carts/textures/carts_rail_curved_brk.png | Bin 618 -> 436 bytes mods/carts/textures/carts_rail_straight_brk.png | Bin 660 -> 494 bytes .../textures/carts_rail_t_junction_brk.png | Bin 698 -> 434 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/mods/carts/textures/carts_rail_crossing_brk.png b/mods/carts/textures/carts_rail_crossing_brk.png index 0bf455ef58af85af2a18087cceea84ba08450410..14d4e1a9a9c6477b97b82e047e166b7a69383a81 100644 GIT binary patch delta 441 zcmZ3(dV+a^WIZzj1A~Sxe=v~ZEbxddW?xgh*G1N>_); z)Pzabgv-Go;=B`lm7$gaHf(VKcMf*CZDwc^455|IEF|_vL5VIVhWIGxmf@HR;st+ zXXW2=fzu4X|Gj_O(jlBdA(bJe1h}s z?$=cxe_Q?D8F}J;ui3^jw$pE~UcBt~^)K6wq9V3v{)vnmHvMCoeEWpM?>A94=j_g{ zUv~LZ?c%vnk3ar-kWsQzn_s$f>ciMgKgEnJ9aTM5r-lSw%)Pm7_u4$>uy1+^AEp~I ftYdJv@=$)8w7l(~eq%SF%Naaf{an^LB{Ts5jdirh delta 650 zcmV;50(Je!1FQv*85#xv001BJ|6u?C00v@9M??Vs0RI60puMM)ks%m=2XskIMF-#u z6ax<-yNvQP0006xNklRHRdzHpy|3%sA9i{NTbp z-#r}8`R;cR5k!P+HY=uoX$l}dxB38*N~OfItRP3D2FG#Gbsd1d)2-6k(aPC@=L+ER ziG&>KYy-gaJi<_xWr-iywoNjb1i&y19LEU~{djebN~Kcbc^x7G+91MlzXX>2;d(w_hj?;N6T%q&Dw|&tIq@9Nf19d%D1KsZ6|4W4F=F zOM8}6tgi@vY z+r_qXw70i2|LhJIhF(=QnEvQeU(?|2Odf!aUE6sxl_RP}_+Akb&0CpuzY^P0?ehJn zxvB%lV+97R9L1Fio8t8hj=Mo+UV6+$DJ9A@OD^W^bn6glzqZ+4_@mfXHBKzQK$_ zqgh2pvx|-Alo-z~F`i#)GQZ4tVY%s|a+5_Brb~dR(rkH+`HC9zRjXF5t}|a#XR)Ti zVkZN`$&)908E4)Dx|*pZ$PehXvdL#HfV|nBE{-7*mt)Vm3OP9nFkfK#d!qiqr56w6 zzq3`nt2Yqy2uzt;)y?vUyYAP659|}!uF3~|Rr=JrKq)WpThlR5*E5sSAFzskO>-#z z)Tpr6+OupL3&V=-e=@v`wpTPuoVv>!IY)@0N#a11w%T2ZjPId53|@;DFHPRC>eG$) z9+!C2;~Z9%pS@CA-FVgYtMNq7lzeSYxz@kGnH7}PcRdrH!z7p%EEix4bSQ(TtDnm{ Hr-UW|ZTF%z delta 584 zcmV-O0=NCN1L_2j85#xv001BJ|6u?C00v@9M??Vs0RI60puMM)ks%m=2XskIMF-#u z6ax<_wO4up0005^NklHcbrd#Ng|?M)w5{%d*I}Z2$n$)&{ zQ&38I!n$B4ag=iT&3|8EXhJ|riPDEfyqp>E!~npbePkQ?0v3{geYB;45Q4JVEI8-L zeRp85{lNUKo~BK&Z@4H`s;vp?TYj``voE7k}L3+EeMb+1foE>q5!#~K)K=|`I2C{ zl3@ALVEM8T`SMWtictB=Fd$N>3RkGF4p*qFtE-PzY=~BBh*4^cR%%Pu?o8F`?Ck7L z*PW21KQUW>a<0KtAj&hCmJdXRGYXAn78%U~qGF@j#l~|=jOLUW&n+>YUkXGf3(HIv zm76ZEG+k0*x}?%9$*p?}?*o0xSQ6wH%;50sMjDW_*we)^MB;Mp`Qt%Ofg&y!d!MLCG9Gl^^C4i7 z%1ODC-~az_*F2aRzII*Sfm5sudTxy8vgUj&+9&({)gt2q%RjxVJH32S=c*e54R#Y| zJBTDCF8#mNzUKcw6PJF6NY%%_=@Hx?9d6vB`1!m*#G3Uw&>yY6;VxRW6tQ zCFoA?>8$#vY#x7viRa3ju*uKvANwg%+Azm!lgNLKw#E8xvHaFLF^owEWD0lKs)3@C N!PC{xWt~$(69Bqwz%T#+ delta 626 zcmV-&0*(Fd1C#}j85#xv001BJ|6u?C00v@9M??Vs0RI60puMM)ks%m=2XskIMF-#u z6ax=3KQgoJ0006ZNkl1v7<~rkazzB>M1~;g-X=Z=YLRtsy+O&vh z=|YfN0f{26^ zRP0l@u1imMZq-3^*LRUUja5o<_3_B23^G*)tuZFQbUYVTe5a%XJ>tPy6%K5{fXK7Q*#Yw6dKJcGMZBYM82|YY%PJq7itU4Xl zPx@C{Q+G~Y8`5%BzEa|8Cp!^H;>3lX6!kZY|$dTxT_V{Wh6!t^#(3MU4M%t(JTgdW8+>69xuP LS3j3^P66VY delta 664 zcmV;J0%!fQ1G)u}85#xv001BJ|6u?C00v@9M??Vs0RI60puMM)ks%m=2XskIMF-#u z6ax?dI=}4m0006y3k6BJ38d{r1??lE zRe=y;_6IIBn;IA8qHqxfQMhWcgB|M)YT9%3Sa@2XA7BlluDe1sn z+t8;4}RwVNOaXdE9zZ%)ye za##_luXp&hP^KIUGjofScAUT%Lp0pSslH*A0(karjILIQqKMh)S*GWfY0-5!4lI|2 zcm*5>nso{Q*L4ZGNG_L?6u_P5UsNua6M*Yph=?fGMeRNa0>UtV#P@vwQtK0~wQKgp zVo_EDYLUrg04f|jx^h6;j^8Gq&jYaQcb;v{^(?iYPk=RmwH9LxO{4v!FTbyFFgpI7 zhA;%c7=!P_mUcrB1PSomk)3RE6k2Os*X8AtDbiFlLqzaAPqNvp0P-(M0kPJuk$(7Vo`>)I7-O*3qLdP)l-%ptFa2ltqO}I#eou!aDhz*` zq;6lOtMB_n{sZ2O#B`m!iM1B3HD`Kzt0W!+;KS!BPS*6pKa4=ksJTnGKEP`#$M(I+0w72zM`Y?3b;bmk5G@w$cz$DQ0mw zW@dhg-P<+gSok(uBIPK)wj9M6lUTaygCBHsR#bTVae~GMhlRxzni?ENe$Eq>Vw6%u yrI Date: Tue, 16 Jun 2020 20:42:45 +0100 Subject: [PATCH 37/43] Make dry grass spread on default:dirt again (#2687) --- mods/default/functions.lua | 5 ++++- mods/default/nodes.lua | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mods/default/functions.lua b/mods/default/functions.lua index f9ff77cc..16bdd798 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -501,7 +501,7 @@ end -- --- Convert dirt to something that fits the environment +-- Convert default:dirt to something that fits the environment -- minetest.register_abm({ @@ -510,6 +510,7 @@ minetest.register_abm({ neighbors = { "air", "group:grass", + "group:dry_grass", "default:snow", }, interval = 6, @@ -538,6 +539,8 @@ minetest.register_abm({ minetest.set_node(pos, {name = "default:dirt_with_snow"}) 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 }) diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index aa7d482f..d2a29151 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -463,7 +463,7 @@ minetest.register_node("default:dirt_with_dry_grass", { "default_dirt.png", {name = "default_dirt.png^default_dry_grass_side.png", tileable_vertical = false}}, - groups = {crumbly = 3, soil = 1}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, drop = "default:dirt", sounds = default.node_sound_dirt_defaults({ footstep = {name = "default_grass_footstep", gain = 0.4}, From b2d0f0ac8d9cfaa2cd8343cc35aa2905bf9c711a Mon Sep 17 00:00:00 2001 From: Paramat Date: Sun, 21 Jun 2020 23:24:56 +0100 Subject: [PATCH 38/43] Update nodes papyrus can grow on, include default:dry_dirt (#2705) Fixes papyrus not growing on savanna dirt. Also updates the nodes papyrus can grow on, which were incorrect for a long time. --- mods/default/functions.lua | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/mods/default/functions.lua b/mods/default/functions.lua index 16bdd798..3dd7a008 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -210,7 +210,12 @@ 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 + if name ~= "default:dirt" and + name ~= "default:dirt_with_grass" and + name ~= "default:dirt_with_dry_grass" and + name ~= "default:dirt_with_rainforest_litter" and + name ~= "default:dry_dirt" and + name ~= "default:dry_dirt_with_dry_grass" then return end if not minetest.find_node_near(pos, 3, {"group:water"}) then @@ -247,7 +252,17 @@ minetest.register_abm({ minetest.register_abm({ label = "Grow papyrus", nodenames = {"default:papyrus"}, - neighbors = {"default:dirt", "default:dirt_with_grass"}, + -- Grows on the dirt and surface dirt nodes of the biomes papyrus appears in, + -- including the old savanna nodes. + -- 'default:dirt_with_grass' is here only because it was allowed before. + neighbors = { + "default:dirt", + "default:dirt_with_grass", + "default:dirt_with_dry_grass", + "default:dirt_with_rainforest_litter", + "default:dry_dirt", + "default:dry_dirt_with_dry_grass", + }, interval = 14, chance = 71, action = function(...) From 3257780b32a631539c4badb59d9b54a5e62c9c98 Mon Sep 17 00:00:00 2001 From: JDiaz Date: Thu, 25 Jun 2020 13:35:36 +0300 Subject: [PATCH 39/43] farming: Update Spanish translation (#2701) --- mods/farming/locale/farming.es.tr | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/farming/locale/farming.es.tr b/mods/farming/locale/farming.es.tr index f935a7b4..8f958870 100644 --- a/mods/farming/locale/farming.es.tr +++ b/mods/farming/locale/farming.es.tr @@ -23,3 +23,4 @@ Inner Straw Stair=Escalera de paja interior Outer Straw Stair=Escalera de paja exterior Wheat=Trigo Cotton=Algodón +Wild Cotton=Algodón silvestre From 8855490b7f57b4f4f5997a85473474ac8d708cb9 Mon Sep 17 00:00:00 2001 From: "updatepo.sh" Date: Fri, 26 Jun 2020 14:35:57 +0200 Subject: [PATCH 40/43] Update translation templates --- mods/beds/locale/template.txt | 4 +- mods/carts/locale/template.txt | 4 +- mods/creative/locale/template.txt | 2 +- mods/default/locale/template.txt | 90 +++++++++++++++---------------- mods/farming/locale/template.txt | 29 +++++----- mods/fire/locale/template.txt | 3 +- mods/sfinv/locale/template.txt | 2 +- mods/vessels/locale/template.txt | 4 +- 8 files changed, 71 insertions(+), 67 deletions(-) diff --git a/mods/beds/locale/template.txt b/mods/beds/locale/template.txt index 518fdbff..9dd9c5cd 100644 --- a/mods/beds/locale/template.txt +++ b/mods/beds/locale/template.txt @@ -1,8 +1,8 @@ # textdomain: beds -Fancy Bed= -Simple Bed= Leave Bed= Good morning.= @1 of @2 players are in bed= Force night skip= You can only sleep at night.= +Fancy Bed= +Simple Bed= diff --git a/mods/carts/locale/template.txt b/mods/carts/locale/template.txt index a67d95fd..d7fd9f45 100644 --- a/mods/carts/locale/template.txt +++ b/mods/carts/locale/template.txt @@ -1,6 +1,6 @@ # textdomain: carts -Cart= -(Sneak+Click to pick up)= Rail= Powered Rail= Brake Rail= +Cart= +(Sneak+Click to pick up)= diff --git a/mods/creative/locale/template.txt b/mods/creative/locale/template.txt index 3e79730c..356102da 100644 --- a/mods/creative/locale/template.txt +++ b/mods/creative/locale/template.txt @@ -1,5 +1,4 @@ # textdomain: creative -Allow player to use creative inventory= Search= Reset= Previous page= @@ -8,3 +7,4 @@ All= Nodes= Tools= Items= +Allow player to use creative inventory= diff --git a/mods/default/locale/template.txt b/mods/default/locale/template.txt index c8e616cd..dd554d45 100644 --- a/mods/default/locale/template.txt +++ b/mods/default/locale/template.txt @@ -1,43 +1,4 @@ # textdomain: default -Locked Chest= -Locked Chest (owned by @1)= -You do not own this chest.= -a locked chest= -Chest= -Stick= -Paper= -"@1" by @2= -Book= -Book with Text= -Skeleton Key= -Key to @1's @2= -Coal Lump= -Iron Lump= -Copper Lump= -Tin Lump= -Mese Crystal= -Gold Lump= -Diamond= -Clay Lump= -Steel Ingot= -Copper Ingot= -Tin Ingot= -Bronze Ingot= -Gold Ingot= -Mese Crystal Fragment= -Clay Brick= -Obsidian Shard= -Flint= -Blueberries= -Furnace is empty= -100% (output full)= -@1%= -Empty= -Not cookable= -Furnace active= -Furnace inactive= -(Item: @1; Fuel: @2)= -Furnace= Stone= Cobblestone= Stone Brick= @@ -62,12 +23,12 @@ Obsidian Block= Dirt= Dirt with Grass= Dirt with Grass and Footsteps= -Dirt with Dry Grass= +Dirt with Savanna Grass= Dirt with Snow= Dirt with Rainforest Litter= Dirt with Coniferous Litter= -Dry Dirt= -Dry Dirt with Dry Grass= +Savanna Dirt= +Savanna Dirt with Savanna Grass= Permafrost= Permafrost with Stones= Permafrost with Moss= @@ -124,7 +85,7 @@ Papyrus= Dry Shrub= Jungle Grass= Grass= -Dry Grass= +Savanna Grass= Fern= Marram Grass= Bush Stem= @@ -176,6 +137,8 @@ Brick Block= Mese Lamp= Mese Post Light= Cloud= +@1 will intersect protection on growth.= +Torch= Wooden Pickaxe= Stone Pickaxe= Bronze Pickaxe= @@ -201,11 +164,48 @@ Steel Sword= Mese Sword= Diamond Sword= Key= -Torch= -@1 will intersect protection on growth.= +Furnace is empty= +100% (output full)= +@1%= +Not cookable= +Empty= +Furnace active= +Furnace inactive= +(Item: @1; Fuel: @2)= +Furnace= Title:= Contents:= Save= by @1= Page @1 of @2= "@1"= +"@1" by @2= +Skeleton Key= +Key to @1's @2= +Blueberries= +Book= +Book with Text= +Bronze Ingot= +Clay Brick= +Clay Lump= +Coal Lump= +Copper Ingot= +Copper Lump= +Diamond= +Flint= +Gold Ingot= +Gold Lump= +Iron Lump= +Mese Crystal= +Mese Crystal Fragment= +Obsidian Shard= +Paper= +Steel Ingot= +Stick= +Tin Ingot= +Tin Lump= +Locked Chest= +Locked Chest (owned by @1)= +You do not own this chest.= +a locked chest= +Chest= diff --git a/mods/farming/locale/template.txt b/mods/farming/locale/template.txt index 92d113e9..2f4248bd 100644 --- a/mods/farming/locale/template.txt +++ b/mods/farming/locale/template.txt @@ -1,19 +1,8 @@ # textdomain: farming -Wooden Hoe= -Stone Hoe= -Steel Hoe= -Bronze Hoe= -Mese Hoe= -Diamond Hoe= -Wheat Seed= -Flour= -Bread= -Cotton Seed= -String= Soil= Wet Soil= -Dry Soil= -Wet Dry Soil= +Savanna Soil= +Wet Savanna Soil= Desert Sand Soil= Wet Desert Sand Soil= Straw= @@ -21,5 +10,19 @@ Straw Stair= Inner Straw Stair= Outer Straw Stair= Straw Slab= +Wild Cotton= +Wheat Seed= Wheat= +Flour= +Bread= +Cotton Seed= Cotton= +String= +Wooden Hoe= +Stone Hoe= +Steel Hoe= +Bronze Hoe= +Mese Hoe= +Diamond Hoe= +Hoe= +Seed= diff --git a/mods/fire/locale/template.txt b/mods/fire/locale/template.txt index 79ea7a29..e4e44e79 100644 --- a/mods/fire/locale/template.txt +++ b/mods/fire/locale/template.txt @@ -1,3 +1,4 @@ # textdomain: fire -Permanent Flame= +Fire= +Permanent Fire= Flint and Steel= diff --git a/mods/sfinv/locale/template.txt b/mods/sfinv/locale/template.txt index 913ba9fc..ace55196 100644 --- a/mods/sfinv/locale/template.txt +++ b/mods/sfinv/locale/template.txt @@ -1,2 +1,2 @@ -# textdomain:sfinv +# textdomain: sfinv Crafting= diff --git a/mods/vessels/locale/template.txt b/mods/vessels/locale/template.txt index f4aae91b..e6e5f69a 100644 --- a/mods/vessels/locale/template.txt +++ b/mods/vessels/locale/template.txt @@ -1,8 +1,8 @@ # textdomain: vessels +Empty Vessels Shelf= +Vessels Shelf (@1 items)= Vessels Shelf= Empty Glass Bottle= Empty Drinking Glass= Empty Heavy Steel Bottle= Glass Fragments= -Empty Vessels Shelf= -Vessels Shelf (@1 items)= From 0648252056784f9c753b4be57a541ab209f13b15 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Sun, 28 Jun 2020 15:50:00 +0200 Subject: [PATCH 41/43] Update German translation --- mods/default/locale/default.de.tr | 8 ++++---- mods/farming/locale/farming.de.tr | 9 ++++++--- mods/fire/locale/fire.de.tr | 3 ++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/mods/default/locale/default.de.tr b/mods/default/locale/default.de.tr index c842b85c..9a3b8bdb 100644 --- a/mods/default/locale/default.de.tr +++ b/mods/default/locale/default.de.tr @@ -62,12 +62,12 @@ Obsidian Block=Obsidianblock Dirt=Erde Dirt with Grass=Erde mit Gras Dirt with Grass and Footsteps=Erde mit Gras und Fußstapfen -Dirt with Dry Grass=Erde mit trockenem Gras +Dirt with Savanna Grass=Erde mit Savannengras Dirt with Snow=Erde mit Schnee Dirt with Rainforest Litter=Erde mit Regenwaldboden Dirt with Coniferous Litter=Erde mit Nadelwaldboden -Dry Dirt=Trockene Erde -Dry Dirt with Dry Grass=Trockene Erde mit trockenem Gras +Savanna Dirt=Savannenerde +Savanna Dirt with Savanna Grass=Savannenerde mit Savannengras Permafrost=Permafrost Permafrost with Stones=Permafrost mit Steinen Permafrost with Moss=Permafrost mit Moos @@ -124,7 +124,7 @@ Papyrus=Papyrus Dry Shrub=Trockener Busch Jungle Grass=Dschungelgras Grass=Gras -Dry Grass=Trockenes Gras +Savanna Grass=Savannengras Fern=Farn Marram Grass=Dünengras Bush Stem=Buschstamm diff --git a/mods/farming/locale/farming.de.tr b/mods/farming/locale/farming.de.tr index 13a363b4..6c63a92c 100644 --- a/mods/farming/locale/farming.de.tr +++ b/mods/farming/locale/farming.de.tr @@ -12,9 +12,9 @@ Cotton Seed=Baumwollsamen String=Faden Soil=Ackerboden Wet Soil=Nasser Ackerboden -Dry Soil=Trockener Ackerboden -Wet Dry Soil=Nasser trockener Ackerboden -Desert Sand Soil=Wüsensandackerboden +Savanna Soil=Savannenackerboden +Wet Savanna Soil=Nasser Savannenackerboden +Desert Sand Soil=Wüstensandackerboden Wet Desert Sand Soil=Nasser Wüstensandackerboden Straw=Stroh Straw Stair=Strohtreppe @@ -23,3 +23,6 @@ Inner Straw Stair=Innere Strohtreppe Outer Straw Stair=Äußere Strohtreppe Wheat=Weizen Cotton=Baumwolle +Hoe=Hacke +Seed=Samen +Wild Cotton=Wilde Baumwolle diff --git a/mods/fire/locale/fire.de.tr b/mods/fire/locale/fire.de.tr index d6f8dde8..dad7c34a 100644 --- a/mods/fire/locale/fire.de.tr +++ b/mods/fire/locale/fire.de.tr @@ -1,3 +1,4 @@ # textdomain: fire -Permanent Flame=Permanente Flamme +Fire=Feuer +Permanent Fire=Permanentes Feuer Flint and Steel=Feuerstein und Stahl From 7cac67f097a02de265666ac55b71e14216719e50 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sun, 28 Jun 2020 14:50:46 +0100 Subject: [PATCH 42/43] TNT centre node adheres to protection Make sure tnt.boom() doesnt replace centre node when explode_centre is true and ignore_protection is false. Fixes: https://github.com/minetest/minetest_game/issues/2663 --- mods/tnt/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua index fbb49c72..ae28191a 100644 --- a/mods/tnt/init.lua +++ b/mods/tnt/init.lua @@ -408,7 +408,7 @@ function tnt.boom(pos, def) def.damage_radius = def.damage_radius or def.radius * 2 local meta = minetest.get_meta(pos) local owner = meta:get_string("owner") - if not def.explode_center then + if not def.explode_center and def.ignore_protection ~= true then minetest.set_node(pos, {name = "tnt:boom"}) end local sound = def.sound or "tnt_explode" From 8c01a5b288ce50e2f9e4ba9df26296d814842f06 Mon Sep 17 00:00:00 2001 From: Muhammad Rifqi Priyo Susanto Date: Mon, 29 Jun 2020 23:41:50 +0700 Subject: [PATCH 43/43] Add Indonesian translations (#2693) --- mods/beds/locale/beds.id.tr | 8 + mods/binoculars/locale/binoculars.id.tr | 3 + mods/boats/locale/boats.id.tr | 4 + mods/bones/locale/bones.id.tr | 8 + mods/bucket/locale/bucket.id.tr | 5 + mods/butterflies/locale/butterflies.id.tr | 4 + mods/carts/locale/carts.id.tr | 6 + mods/creative/locale/creative.id.tr | 10 + mods/default/locale/default.id.tr | 211 ++++++++++++++++++ mods/doors/locale/doors.id.tr | 18 ++ mods/dye/locale/dye.id.tr | 16 ++ mods/farming/locale/farming.id.tr | 28 +++ mods/fire/locale/fire.id.tr | 4 + mods/fireflies/locale/fireflies.id.tr | 5 + mods/flowers/locale/flowers.id.tr | 12 + mods/game_commands/locale/game_commands.id.tr | 4 + mods/map/locale/map.id.tr | 3 + mods/screwdriver/locale/screwdriver.id.tr | 3 + mods/sethome/locale/sethome.id.tr | 8 + mods/sfinv/locale/sfinv.id.tr | 2 + mods/stairs/locale/stairs.id.tr | 145 ++++++++++++ mods/tnt/locale/tnt.id.tr | 4 + mods/vessels/locale/vessels.id.tr | 8 + mods/walls/locale/walls.id.tr | 4 + mods/wool/locale/wool.id.tr | 16 ++ mods/xpanes/locale/xpanes.id.tr | 6 + 26 files changed, 545 insertions(+) create mode 100644 mods/beds/locale/beds.id.tr create mode 100644 mods/binoculars/locale/binoculars.id.tr create mode 100644 mods/boats/locale/boats.id.tr create mode 100644 mods/bones/locale/bones.id.tr create mode 100644 mods/bucket/locale/bucket.id.tr create mode 100644 mods/butterflies/locale/butterflies.id.tr create mode 100644 mods/carts/locale/carts.id.tr create mode 100644 mods/creative/locale/creative.id.tr create mode 100644 mods/default/locale/default.id.tr create mode 100644 mods/doors/locale/doors.id.tr create mode 100644 mods/dye/locale/dye.id.tr create mode 100644 mods/farming/locale/farming.id.tr create mode 100644 mods/fire/locale/fire.id.tr create mode 100644 mods/fireflies/locale/fireflies.id.tr create mode 100644 mods/flowers/locale/flowers.id.tr create mode 100644 mods/game_commands/locale/game_commands.id.tr create mode 100644 mods/map/locale/map.id.tr create mode 100644 mods/screwdriver/locale/screwdriver.id.tr create mode 100644 mods/sethome/locale/sethome.id.tr create mode 100644 mods/sfinv/locale/sfinv.id.tr create mode 100644 mods/stairs/locale/stairs.id.tr create mode 100644 mods/tnt/locale/tnt.id.tr create mode 100644 mods/vessels/locale/vessels.id.tr create mode 100644 mods/walls/locale/walls.id.tr create mode 100644 mods/wool/locale/wool.id.tr create mode 100644 mods/xpanes/locale/xpanes.id.tr diff --git a/mods/beds/locale/beds.id.tr b/mods/beds/locale/beds.id.tr new file mode 100644 index 00000000..401a1622 --- /dev/null +++ b/mods/beds/locale/beds.id.tr @@ -0,0 +1,8 @@ +# textdomain: beds +Leave Bed=Tinggalkan Dipan +Good morning.=Selamat pagi. +@1 of @2 players are in bed=@1 dari @2 pemain sedang tidur +Force night skip=Paksa lewati malam +You can only sleep at night.=Anda hanya boleh tidur pada waktu malam. +Fancy Bed=Dipan Mewah +Simple Bed=Dipan Sederhana diff --git a/mods/binoculars/locale/binoculars.id.tr b/mods/binoculars/locale/binoculars.id.tr new file mode 100644 index 00000000..b1eb6d51 --- /dev/null +++ b/mods/binoculars/locale/binoculars.id.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Binokular +Use with 'Zoom' key=Pakai dengan tombol 'Zum' diff --git a/mods/boats/locale/boats.id.tr b/mods/boats/locale/boats.id.tr new file mode 100644 index 00000000..cf37f476 --- /dev/null +++ b/mods/boats/locale/boats.id.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Mode perahu jelajah nyala +Boat cruise mode off=Mode perahu jelajah mati +Boat=Perahu diff --git a/mods/bones/locale/bones.id.tr b/mods/bones/locale/bones.id.tr new file mode 100644 index 00000000..3c81accf --- /dev/null +++ b/mods/bones/locale/bones.id.tr @@ -0,0 +1,8 @@ +# textdomain: bones +Bones=Tulang +@1's old bones=Tulang lama @1 +@1 died at @2.=@1 mati di @2. +@1 died at @2, and dropped their inventory.=@1 mati di @2 dan meninggalkan barangnya. +@1 died at @2, and bones were placed.=@1 mati di @2 dan tulangnya diletakkan. +@1's fresh bones=Tulang segar @1 +@1's bones=Tulang @1 diff --git a/mods/bucket/locale/bucket.id.tr b/mods/bucket/locale/bucket.id.tr new file mode 100644 index 00000000..56625638 --- /dev/null +++ b/mods/bucket/locale/bucket.id.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Ember Kosong +Water Bucket=Ember Air +River Water Bucket=Ember Air Sungai +Lava Bucket=Ember Lava diff --git a/mods/butterflies/locale/butterflies.id.tr b/mods/butterflies/locale/butterflies.id.tr new file mode 100644 index 00000000..d4429a6c --- /dev/null +++ b/mods/butterflies/locale/butterflies.id.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Kupu-Kupu Putih +Red Butterfly=Kupu-Kupu Merah +Violet Butterfly=Kupu-Kupu Ungu diff --git a/mods/carts/locale/carts.id.tr b/mods/carts/locale/carts.id.tr new file mode 100644 index 00000000..17edc807 --- /dev/null +++ b/mods/carts/locale/carts.id.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Rail=Rel +Powered Rail=Rel Bertenaga +Brake Rail=Rel Rem +Cart=Kereta +(Sneak+Click to pick up)=(selinap + klik untuk ambil) diff --git a/mods/creative/locale/creative.id.tr b/mods/creative/locale/creative.id.tr new file mode 100644 index 00000000..eaf34051 --- /dev/null +++ b/mods/creative/locale/creative.id.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Search=Cari +Reset=Atur ulang +Previous page=Halaman sebelumnya +Next page=Halaman selanjutnya +All=Semua +Nodes=Nodus +Tools=Perkakas +Items=Barang +Allow player to use creative inventory=Bolehkan pemain memakai inventaris kreatif diff --git a/mods/default/locale/default.id.tr b/mods/default/locale/default.id.tr new file mode 100644 index 00000000..7a0406c1 --- /dev/null +++ b/mods/default/locale/default.id.tr @@ -0,0 +1,211 @@ +# textdomain: default +Stone=Batu +Cobblestone=Bongkahan Batu +Stone Brick=Tembok Batu +Stone Block=Balok Batu +Mossy Cobblestone=Bongkahan Batu Berlumut +Desert Stone=Batu Gurun +Desert Cobblestone=Bongkahan Batu Gurun +Desert Stone Brick=Tembok Batu Gurun +Desert Stone Block=Balok Batu Gurun +Sandstone=Batu Pasir +Sandstone Brick=Tembok Batu Pasir +Sandstone Block=Balok Batu Pasir +Desert Sandstone=Batu Pasir Gurun +Desert Sandstone Brick=Tembok Batu Pasir Gurun +Desert Sandstone Block=Balok Batu Pasir Gurun +Silver Sandstone=Batu Pasir Perak +Silver Sandstone Brick=Tembok Batu Pasir Perak +Silver Sandstone Block=Balok Batu Pasir Perak +Obsidian=Obsidian +Obsidian Brick=Tembok Obsidian +Obsidian Block=Balok Obsidian +Dirt=Tanah +Dirt with Grass=Tanah Berumput +Dirt with Grass and Footsteps=Tanah Berumput dan Tapak Kaki +Dirt with Savanna Grass=Tanah Berumput Sabana +Dirt with Snow=Tanah Bersalju +Dirt with Rainforest Litter=Tanah Berserasah Hutan Hujan +Dirt with Coniferous Litter=Tanah Berserasah Hutan Konifer +Savanna Dirt=Tanah Sabana +Savanna Dirt with Savanna Grass=Tanah Sabana Berumput Sabana +Permafrost=Ibun Abadi +Permafrost with Stones=Ibun Abadi Berbatu +Permafrost with Moss=Ibun Abadi Berlumut +Sand=Pasir +Desert Sand=Pasir Gurun +Silver Sand=Pasir Perak +Gravel=Kerikil +Clay=Semen +Snow=Salju +Snow Block=Balok Salju +Ice=Es +Cave Ice=Es Gua +Apple Tree=Pohon Apel +Apple Wood Planks=Papan Kayu Pohon Apel +Apple Tree Sapling=Bibit Apel +Apple Tree Leaves=Daun Pohon Apel +Apple=Apel +Apple Marker=Penanda Apel +Jungle Tree=Pohon Hutan Rimba +Jungle Wood Planks=Papan Kayu Pohon Rimba +Jungle Tree Leaves=Daun Pohon Rimba +Jungle Tree Sapling=Bibit Pohon Rimba +Emergent Jungle Tree Sapling=Bibit Bertumbuh Pohon Rimba +Pine Tree=Pohon Pinus +Pine Wood Planks=Papan Kayu Pinus +Pine Needles=Daun Pinus +Pine Tree Sapling=Bibit Pinus +Acacia Tree=Pohon Akasia +Acacia Wood Planks=Papan Kayu Akasia +Acacia Tree Leaves=Daun Akasia +Acacia Tree Sapling=Bibit Akasia +Aspen Tree=Pohon Aspen +Aspen Wood Planks=Papan Kayu Aspen +Aspen Tree Leaves=Daun Aspen +Aspen Tree Sapling=Bibit Aspen +Coal Ore=Bijih Batu Bara +Coal Block=Balok Batu Bara +Iron Ore=Biji Besi +Steel Block=Balok Baja +Copper Ore=Bijih Tembaga +Copper Block=Balok Tembaga +Tin Ore=Bijih Timah +Tin Block=Balok Timah +Bronze Block=Balok Perunggu +Mese Ore=Bijih Mese +Mese Block=Balok Mese +Gold Ore=Bijih Emas +Gold Block=Balok Emas +Diamond Ore=Bijih Berlian +Diamond Block=Balok Berlian +Cactus=Kaktus +Large Cactus Seedling=Bibit Kaktus Besar +Papyrus=Papirus +Dry Shrub=Semak Kering +Jungle Grass=Rumput Rimba +Grass=Rumput +Savanna Grass=Rumput Sabana +Fern=Pakis +Marram Grass=Rumput Pantai +Bush Stem=Batang Semak +Bush Leaves=Daun Semak +Bush Sapling=Bibit Semak +Blueberry Bush Leaves with Berries=Daun Bluberi Berbuah +Blueberry Bush Leaves=Daun Bluberi +Blueberry Bush Sapling=Bibit Bluberi +Acacia Bush Stem=Batang Semak Akasia +Acacia Bush Leaves=Daun Semak Akasia +Acacia Bush Sapling=Bibit Semak Akasia +Pine Bush Stem=Batang Semak Pinus +Pine Bush Needles=Daun Semak Pinus +Pine Bush Sapling=Bibit Semak Pinus +Kelp=Kelp +Green Coral=Koral Hijau +Pink Coral=Koral Jambon +Cyan Coral=Koral Sian +Brown Coral=Koral Cokelat +Orange Coral=Koral Oranye +Coral Skeleton=Kerangka Koral +Water Source=Mata Air +Flowing Water=Aliran Air +River Water Source=Mata Air Sungai +Flowing River Water=Aliran Air Sungai +Lava Source=Sumber Lava +Flowing Lava=Aliran Lava +Empty Bookshelf=Rak Buku Kosong +Bookshelf (@1 written, @2 empty books)=Rak Buku (@1 buku tertulis, @2 buku kosong) +Bookshelf=Rak Buku +Text too long=Teks terlalu panjang +Wooden Sign=Penanda Kayu +Steel Sign=Penanda Baja +Wooden Ladder=Tangga Kayu +Steel Ladder=Tangga Baja +Apple Wood Fence=Pagar Kayu Apel +Acacia Wood Fence=Pagar Akasia +Jungle Wood Fence=Pagar Kayu Rimba +Pine Wood Fence=Pagar Pinus +Aspen Wood Fence=Pagar Aspen +Apple Wood Fence Rail=Rel Pagar Kayu Apel +Acacia Wood Fence Rail=Rel Pagar Akasia +Jungle Wood Fence Rail=Rel Pagar Kayu Rimba +Pine Wood Fence Rail=Rel Pagar Pinus +Aspen Wood Fence Rail=Rel Pagar Aspen +Glass=Kaca +Obsidian Glass=Kaca Obsidian +Brick Block=Balok Bata +Mese Lamp=Lampu Mese +Mese Post Light=Lampu Taman Mese +Cloud=Awan +@1 will intersect protection on growth.=@1 akan memotong perlindungan ketika tumbuh. +Torch=Obor +Wooden Pickaxe=Beliung Kayu +Stone Pickaxe=Beliung Batu +Bronze Pickaxe=Beliung Perunggu +Steel Pickaxe=Beliung Baja +Mese Pickaxe=Beliung Mese +Diamond Pickaxe=Beliung Berlian +Wooden Shovel=Sekop Kayu +Stone Shovel=Sekop Batu +Bronze Shovel=Sekop Perunggu +Steel Shovel=Sekop Baja +Mese Shovel=Sekop Mese +Diamond Shovel=Sekop Berlian +Wooden Axe=Kapak Kayu +Stone Axe=Kapak Batu +Bronze Axe=Kapak Perunggu +Steel Axe=Kapak Baja +Mese Axe=Kapak Mese +Diamond Axe=Kapak Berlian +Wooden Sword=Pedang Kayu +Stone Sword=Pedang Batu +Bronze Sword=Pedang Perunggu +Steel Sword=Pedang Baja +Mese Sword=Pedang Mese +Diamond Sword=Pedang Berlian +Key=Kunci +Furnace is empty=Tungku kosong +100% (output full)=100% (keluaran penuh) +@1%=@1% +Not cookable=Tidak bisa dimasak +Empty=Kosong +Furnace active=Tungku nyala +Furnace inactive=Tungku mati +(Item: @1; Fuel: @2)=(Barang: @1; Bahan Bakar: @2) +Furnace=Tungku +Title:=Judul: +Contents:=Isi: +Save=Simpan +by @1=oleh @1 +Page @1 of @2=Halaman @1 dari @2 +"@1"="@1" +"@1" by @2="@1" oleh @2 +Skeleton Key=Kunci Induk +Key to @1's @2=Kunci @2 milik @1 +Blueberries=Bluberi +Book=Buku +Book with Text=Buku Tertulis +Bronze Ingot=Perunggu Batangan +Clay Brick=Bata +Clay Lump=Bongkahan Semen +Coal Lump=Bongkahan Batu Bara +Copper Ingot=Tembaga Batangan +Copper Lump=Bongkahan Tembaga +Diamond=Berlian +Flint=Batu Api +Gold Ingot=Emas Batangan +Gold Lump=Bongkahan Emas +Iron Lump=Bongkahan Besi +Mese Crystal=Kristal Mese +Mese Crystal Fragment=Pecahan Kristal Mese +Obsidian Shard=Pecahan Obsidian +Paper=Kertas +Steel Ingot=Baja Batangan +Stick=Tongkat +Tin Ingot=Timah Batangan +Tin Lump=Bongkahan Timah +Locked Chest=Peti Terkunci +Locked Chest (owned by @1)=Peti Terkunci (milik @1) +You do not own this chest.=Anda bukan pemilik peti ini. +a locked chest=suatu peti terkunci +Chest=Peti diff --git a/mods/doors/locale/doors.id.tr b/mods/doors/locale/doors.id.tr new file mode 100644 index 00000000..3b749049 --- /dev/null +++ b/mods/doors/locale/doors.id.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Bagian Pintu Tersembunyi +Owned by @1=Milik @1 +You do not own this locked door.=Anda bukan pemilik pintu terkunci ini. +a locked door=pintu terkunci +Wooden Door=Pintu Kayu +Steel Door=Pintu Baja +Glass Door=Pintu Kaca +Obsidian Glass Door=Pintu Kaca Obsidian +You do not own this trapdoor.=Anda bukan pemilik pintu kolong ini. +a locked trapdoor=pintu kolong terkunci +Wooden Trapdoor=Pintu Kolong Kayu +Steel Trapdoor=Pintu Kolong Baja +Apple Wood Fence Gate=Gerbang Kayu Pohon Apel +Acacia Wood Fence Gate=Gerbang Kayu Akasia +Jungle Wood Fence Gate=Gerbang Kayu Pohon Rimba +Pine Wood Fence Gate=Gerbang Kayu Pinus +Aspen Wood Fence Gate=Gerbang Kayu Aspen diff --git a/mods/dye/locale/dye.id.tr b/mods/dye/locale/dye.id.tr new file mode 100644 index 00000000..1614345a --- /dev/null +++ b/mods/dye/locale/dye.id.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Pewarna Putih +Grey Dye=Pewarna Abu +Dark Grey Dye=Pewarna Abu Tua +Black Dye=Pewarna Hitam +Violet Dye=Pewarna Ungu +Blue Dye=Pewarna Biru +Cyan Dye=Pewarna Sian +Dark Green Dye=Pewarna Hijau Tua +Green Dye=Pewarna Hijau +Yellow Dye=Pewarna Kuning +Brown Dye=Pewarna Cokelat +Orange Dye=Pewarna Oranye +Red Dye=Pewarna Merah +Magenta Dye=Pewarna Magenta +Pink Dye=Pewarna Jambon diff --git a/mods/farming/locale/farming.id.tr b/mods/farming/locale/farming.id.tr new file mode 100644 index 00000000..9904b6f6 --- /dev/null +++ b/mods/farming/locale/farming.id.tr @@ -0,0 +1,28 @@ +# textdomain: farming +Soil=Tanah Tanam +Wet Soil=Tanah Tanam Basah +Savanna Soil=Tanah Tanam Sabana +Wet Savanna Soil=Tanah Tanam Sabana Basah +Desert Sand Soil=Pasir Tanam Gurun +Wet Desert Sand Soil=Pasir Tanam Gurun Basah +Straw=Jerami +Straw Stair=Tangga Jerami +Inner Straw Stair=Tangga Jerami Dalam +Outer Straw Stair=Tangga Jerami Luar +Straw Slab=Lempengan Jerami +Wild Cotton=Kapas Liar +Wheat Seed=Benih Gandum +Wheat=Gandum +Flour=Tepung +Bread=Roti +Cotton Seed=Benih Kapas +Cotton=Kapas +String=Benang +Wooden Hoe=Cangkul Kayu +Stone Hoe=Cangkul Batu +Steel Hoe=Cangkul Baja +Bronze Hoe=Cangkul Perunggu +Mese Hoe=Cangkul Mese +Diamond Hoe=Cangkul Berlian +Hoe=Cangkul +Seed=Benih diff --git a/mods/fire/locale/fire.id.tr b/mods/fire/locale/fire.id.tr new file mode 100644 index 00000000..60c1c01b --- /dev/null +++ b/mods/fire/locale/fire.id.tr @@ -0,0 +1,4 @@ +# textdomain: fire +Fire=Api +Permanent Fire=Api Abadi +Flint and Steel=Pemantik diff --git a/mods/fireflies/locale/fireflies.id.tr b/mods/fireflies/locale/fireflies.id.tr new file mode 100644 index 00000000..bc6434ee --- /dev/null +++ b/mods/fireflies/locale/fireflies.id.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Kunang-Kunang +Hidden Firefly=Kunang-Kunang Tersembunyi +Bug Net=Jaring Serangga +Firefly in a Bottle=Kunang-Kunang dalam Botol diff --git a/mods/flowers/locale/flowers.id.tr b/mods/flowers/locale/flowers.id.tr new file mode 100644 index 00000000..730529b3 --- /dev/null +++ b/mods/flowers/locale/flowers.id.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Mawar Merah +Orange Tulip=Tulip Oranye +Yellow Dandelion=Dandelion Kuning +Green Chrysanthemum=Krisan Hijau +Blue Geranium=Geranium Biru +Viola=Viola +White Dandelion=Dandelion Putih +Black Tulip=Tulip Hitam +Red Mushroom=Jamur Merah +Brown Mushroom=Jamur Cokelat +Waterlily=Teratai diff --git a/mods/game_commands/locale/game_commands.id.tr b/mods/game_commands/locale/game_commands.id.tr new file mode 100644 index 00000000..1ab364b2 --- /dev/null +++ b/mods/game_commands/locale/game_commands.id.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Bunuh diri untuk bangkit kembali +No static_spawnpoint defined=Tiada static_spawnpoint (titik bangkit statis) yang diatur +You need to be online to be killed!=Anda harus daring untuk dibunuh! diff --git a/mods/map/locale/map.id.tr b/mods/map/locale/map.id.tr new file mode 100644 index 00000000..cb31d0f7 --- /dev/null +++ b/mods/map/locale/map.id.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Alat Pemetaan +Use with 'Minimap' key=Pakai dengan tombol 'Peta Mini' diff --git a/mods/screwdriver/locale/screwdriver.id.tr b/mods/screwdriver/locale/screwdriver.id.tr new file mode 100644 index 00000000..ec83c794 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.id.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Obeng +(left-click rotates face, right-click rotates axis)=(klik kiri putar sisi, klik kanan putar sumbu) diff --git a/mods/sethome/locale/sethome.id.tr b/mods/sethome/locale/sethome.id.tr new file mode 100644 index 00000000..1966978c --- /dev/null +++ b/mods/sethome/locale/sethome.id.tr @@ -0,0 +1,8 @@ +# textdomain: sethome +Can use /sethome and /home=Boleh pakai /sethome dan /home +Teleport you to your home point=Teleportasi ke rumah Anda +Teleported to home!=Teleportasi ke rumah! +Set a home using /sethome=Atur letak rumah dengan /sethome +Set your home point=Atur letak rumah +Home set!=Letak rumah diatur! +Player not found!=Pemain tidak ditemukan! diff --git a/mods/sfinv/locale/sfinv.id.tr b/mods/sfinv/locale/sfinv.id.tr new file mode 100644 index 00000000..643196e1 --- /dev/null +++ b/mods/sfinv/locale/sfinv.id.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=Kerajinan diff --git a/mods/stairs/locale/stairs.id.tr b/mods/stairs/locale/stairs.id.tr new file mode 100644 index 00000000..dbdfaa0f --- /dev/null +++ b/mods/stairs/locale/stairs.id.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Tangga Kaca +Glass Slab=Lempengan Kaca +Inner Glass Stair=Tangga Kaca Dalam +Outer Glass Stair=Tangga Kaca Luar +Obsidian Glass Stair=Tangga Kaca Obsidian +Obsidian Glass Slab=Lempengan Kaca Obsidian +Inner Obsidian Glass Stair=Tangga Kaca Obsidian Dalam +Outer Obsidian Glass Stair=Tangga Kaca Obsidian Luar +Wooden Stair=Tangga Kayu +Inner Wooden Stair=Tangga Kayu Dalam +Outer Wooden Stair=Tangga Kayu Luar +Wooden Slab=Lempengan Kayu +Jungle Wood Stair=Tangga Kayu Rimba +Inner Jungle Wood Stair=Tangga Kayu Rimba Dalam +Outer Jungle Wood Stair=Tangga Kayu Rimba Luar +Jungle Wood Slab=Lempengan Kayu Rimba +Pine Wood Stair=Tangga Kayu Pinus +Inner Pine Wood Stair=Tangga Kayu Pinus Dalam +Outer Pine Wood Stair=Tangga Kayu Pinus Luar +Pine Wood Slab=Lempengan Kayu Pinus +Acacia Wood Stair=Tangga Kayu Akasia +Inner Acacia Wood Stair=Tangga Kayu Akasia Dalam +Outer Acacia Wood Stair=Tangga Kayu Akasia Luar +Acacia Wood Slab=Lempengan Kayu Akasia +Aspen Wood Stair=Tangga Kayu Aspen +Inner Aspen Wood Stair=Tangga Kayu Aspen Dalam +Outer Aspen Wood Stair=Tangga Kayu Aspen Luar +Aspen Wood Slab=Lempengan Kayu Aspen +Stone Stair=Tangga Batu +Inner Stone Stair=Tangga Batu Dalam +Outer Stone Stair=Tangga Batu Luar +Stone Slab=Lempengan Batu +Cobblestone Stair=Tangga Bongkahan Batu +Inner Cobblestone Stair=Tangga Bongkahan Batu Dalam +Outer Cobblestone Stair=Tangga Bongkahan Batu Luar +Cobblestone Slab=Lempengan Bongkahan Batu +Mossy Cobblestone Stair=Tangga Bongkahan Batu Berlumut +Inner Mossy Cobblestone Stair=Tangga Bongkahan Batu Berlumut Dalam +Outer Mossy Cobblestone Stair=Tangga Bongkahan Batu Berlumut Luar +Mossy Cobblestone Slab=Lempengan Bongkahan Batu Berlumut +Stone Brick Stair=Tangga Tembok Batu +Inner Stone Brick Stair=Tangga Tembok Batu Dalam +Outer Stone Brick Stair=Tangga Tembok Batu Luar +Stone Brick Slab=Lempengan Tembok Batu +Stone Block Stair=Tangga Balok Batu +Inner Stone Block Stair=Tangga Balok Batu Dalam +Outer Stone Block Stair=Tangga Balok Batu Luar +Stone Block Slab=Lempengan Balok Batu +Desert Stone Stair=Tangga Batu Gurun +Inner Desert Stone Stair=Tangga Batu Gurun Dalam +Outer Desert Stone Stair=Tangga Batu Gurun Luar +Desert Stone Slab=Lempengan Batu Gurun +Desert Cobblestone Stair=Tangga Bongkahan Batu Gurun +Inner Desert Cobblestone Stair=Tangga Bongkahan Batu Gurun Dalam +Outer Desert Cobblestone Stair=Tangga Bongkahan Batu Gurun Luar +Desert Cobblestone Slab=Lempengan Bongkahan Batu Gurun +Desert Stone Brick Stair=Tangga Tembok Batu Gurun +Inner Desert Stone Brick Stair=Tangga Tembok Batu Gurun Dalam +Outer Desert Stone Brick Stair=Tangga Tembok Batu Gurun Luar +Desert Stone Brick Slab=Lempengan Tembok Batu Gurun +Desert Stone Block Stair=Tangga Balok Batu Gurun +Inner Desert Stone Block Stair=Tangga Balok Batu Gurun Dalam +Outer Desert Stone Block Stair=Tangga Balok Batu Gurun Luar +Desert Stone Block Slab=Lempengan Balok Batu Gurun +Sandstone Stair=Tangga Batu Pasir +Inner Sandstone Stair=Tangga Batu Pasir Dalam +Outer Sandstone Stair=Tangga Batu Pasir Luar +Sandstone Slab=Lempengan Batu Pasir +Sandstone Brick Stair=Tangga Tembok Batu Pasir +Inner Sandstone Brick Stair=Tangga Tembok Batu Pasir Dalam +Outer Sandstone Brick Stair=Tangga Tembok Batu Pasir Luar +Sandstone Brick Slab=Lempengan Tembok Batu Pasir +Sandstone Block Stair=Tangga Balok Batu Pasir +Inner Sandstone Block Stair=Tangga Balok Batu Pasir Dalam +Outer Sandstone Block Stair=Tangga Balok Batu Pasir Luar +Sandstone Block Slab=Lempengan Balok Batu Pasir +Desert Sandstone Stair=Tangga Batu Pasir Gurun +Inner Desert Sandstone Stair=Tangga Batu Pasir Gurun Dalam +Outer Desert Sandstone Stair=Tangga Batu Pasir Gurun Luar +Desert Sandstone Slab=Lempengan Batu Pasir Gurun +Desert Sandstone Brick Stair=Tangga Tembok Batu Pasir Gurun +Inner Desert Sandstone Brick Stair=Tangga Tembok Batu Pasir Gurun Dalam +Outer Desert Sandstone Brick Stair=Tangga Tembok Batu Pasir Gurun Luar +Desert Sandstone Brick Slab=Lempengan Tembok Batu Pasir Gurun +Desert Sandstone Block Stair=Tangga Balok Batu Pasir Gurun +Inner Desert Sandstone Block Stair=Tangga Balok Batu Pasir Gurun Dalam +Outer Desert Sandstone Block Stair=Tangga Balok Batu Pasir Gurun Luar +Desert Sandstone Block Slab=Lempengan Balok Batu Pasir Gurun +Silver Sandstone Stair=Tangga Batu Pasir Perak +Inner Silver Sandstone Stair=Tangga Batu Pasir Perak Dalam +Outer Silver Sandstone Stair=Tangga Batu Pasir Perak Luar +Silver Sandstone Slab=Lempengan Batu Pasir Perak +Silver Sandstone Brick Stair=Tangga Tembok Batu Pasir Perak +Inner Silver Sandstone Brick Stair=Tangga Tembok Batu Pasir Perak Dalam +Outer Silver Sandstone Brick Stair=Tangga Tembok Batu Pasir Perak Luar +Silver Sandstone Brick Slab=Lempengan Tembok Batu Pasir Perak +Silver Sandstone Block Stair=Tangga Balok Batu Pasir Perak +Inner Silver Sandstone Block Stair=Tangga Balok Batu Pasir Perak Dalam +Outer Silver Sandstone Block Stair=Tangga Balok Batu Pasir Perak Luar +Silver Sandstone Block Slab=Lempengan Balok Batu Pasir Perak +Obsidian Stair=Tangga Obsidian +Inner Obsidian Stair=Tangga Obsidian Dalam +Outer Obsidian Stair=Tangga Obsidian Luar +Obsidian Slab=Lempengan Obsidian +Obsidian Brick Stair=Tangga Tembok Obsidian +Inner Obsidian Brick Stair=Tangga Tembok Obsidian Dalam +Outer Obsidian Brick Stair=Tangga Tembok Obsidian Luar +Obsidian Brick Slab=Lempengan Tembok Obsidian +Obsidian Block Stair=Tangga Balok Obsidian +Inner Obsidian Block Stair=Tangga Balok Obsidian Dalam +Outer Obsidian Block Stair=Tangga Balok Obsidian Luar +Obsidian Block Slab=Lempengan Balok Obsidian +Brick Stair=Tangga Bata +Inner Brick Stair=Tangga Bata Dalam +Outer Brick Stair=Tangga Bata Luar +Brick Slab=Lempengan Bata +Steel Block Stair=Tangga Balok Baja +Inner Steel Block Stair=Tangga Balok Baja Dalam +Outer Steel Block Stair=Tangga Balok Baja Luar +Steel Block Slab=Lempengan Balok Baja +Tin Block Stair=Tangga Balok Timah +Inner Tin Block Stair=Tangga Balok Timah Dalam +Outer Tin Block Stair=Tangga Balok Timah Luar +Tin Block Slab=Lempengan Balok Timah +Copper Block Stair=Tangga Balok Tembaga +Inner Copper Block Stair=Tangga Balok Tembaga Dalam +Outer Copper Block Stair=Tangga Balok Tembaga Luar +Copper Block Slab=Lempengan Balok Tembaga +Bronze Block Stair=Tangga Balok Perunggu +Inner Bronze Block Stair=Tangga Balok Perunggu Dalam +Outer Bronze Block Stair=Tangga Balok Perunggu Luar +Bronze Block Slab=Lempengan Balok Perunggu +Gold Block Stair=Tangga Balok Emas +Inner Gold Block Stair=Tangga Balok Emas Dalam +Outer Gold Block Stair=Tangga Balok Emas Luar +Gold Block Slab=Lempengan Balok Emas +Ice Stair=Tangga Es +Inner Ice Stair=Tangga Es Dalam +Outer Ice Stair=Tangga Es Luar +Ice Slab=Lempengan Es +Snow Block Stair=Tangga Balok Salju +Inner Snow Block Stair=Tangga Balok Salju Dalam +Outer Snow Block Stair=Tangga Balok Salju Luar +Snow Block Slab=Lempengan Balok Salju diff --git a/mods/tnt/locale/tnt.id.tr b/mods/tnt/locale/tnt.id.tr new file mode 100644 index 00000000..2652ae0c --- /dev/null +++ b/mods/tnt/locale/tnt.id.tr @@ -0,0 +1,4 @@ +# textdomain: tnt +Gun Powder=Bubuk Mesiu +TNT Stick=Tongkat TNT +TNT=TNT diff --git a/mods/vessels/locale/vessels.id.tr b/mods/vessels/locale/vessels.id.tr new file mode 100644 index 00000000..f80fbc3d --- /dev/null +++ b/mods/vessels/locale/vessels.id.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=Rak Bejana Kosong +Vessels Shelf (@1 items)=Rak Bejana (@1 barang) +Vessels Shelf=Rak Bejana +Empty Glass Bottle=Botol Kaca Kosong +Empty Drinking Glass=Gelas Minum Kosong +Empty Heavy Steel Bottle=Botol Baja Berat Kosong +Glass Fragments=Pecahan Kaca diff --git a/mods/walls/locale/walls.id.tr b/mods/walls/locale/walls.id.tr new file mode 100644 index 00000000..8bfd9c77 --- /dev/null +++ b/mods/walls/locale/walls.id.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Tembok Bongkahan Batu +Mossy Cobblestone Wall=Tembok Bongkahan Batu Berlumut +Desert Cobblestone Wall=Tembok Bongkahan Batu Gurun diff --git a/mods/wool/locale/wool.id.tr b/mods/wool/locale/wool.id.tr new file mode 100644 index 00000000..60e917c7 --- /dev/null +++ b/mods/wool/locale/wool.id.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Wol Putih +Grey Wool=Wol Abu +Dark Grey Wool=Wol Abu Tua +Black Wool=Wol Hitam +Violet Wool=Wol Ungu +Blue Wool=Wol Biru +Cyan Wool=Wol Sian +Dark Green Wool=Wol Hijau Tua +Green Wool=Wol Hijau +Yellow Wool=Wol Kuning +Brown Wool=Wol Cokelat +Orange Wool=Wol Oranye +Red Wool=Wol Merah +Magenta Wool=Wol Magenta +Pink Wool=Wol Jambon diff --git a/mods/xpanes/locale/xpanes.id.tr b/mods/xpanes/locale/xpanes.id.tr new file mode 100644 index 00000000..906cc0f8 --- /dev/null +++ b/mods/xpanes/locale/xpanes.id.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Panel Kaca +Obsidian Glass Pane=Panel Kaca Obsidian +Steel Bars=Batang Baja +Steel Bar Door=Pintu Batang Baja +Steel Bar Trapdoor=Pintu Kolong Batang Baja