Compare commits
105 Commits
Author | SHA1 | Date | |
---|---|---|---|
3f064d5ed4 | |||
b3e660e897 | |||
cb2c416b51 | |||
8c01a5b288 | |||
7cac67f097 | |||
0648252056 | |||
8855490b7f | |||
3257780b32 | |||
b2d0f0ac8d | |||
e8a7e75319 | |||
d03d7e9bdc | |||
af045dcd8b | |||
6d2a897e1b | |||
b1ab8d5123 | |||
6e345cf136 | |||
e849d54572 | |||
0662f96284 | |||
84da00acd4 | |||
3452938c76 | |||
b787fcf7e4 | |||
e5a7af1c4a | |||
b3d91a487d | |||
16c950f688 | |||
e5b54c6ead | |||
3f42c6c243 | |||
2fc9a68aa6 | |||
ef45a8e148 | |||
d88e551071 | |||
190f7fdac9 | |||
33eb7cee2a | |||
189d2d9fb1 | |||
81c5b6b399 | |||
52c6921cb2 | |||
bd64188ee5 | |||
fb18a5b20d | |||
ea4ce80f7c | |||
36b2bcb5f3 | |||
695f98f213 | |||
545ec0741c | |||
c1f41720fc | |||
14a385d68c | |||
03c9aed221 | |||
720b24ed2d | |||
4243d28846 | |||
7d230fdbf8 | |||
7fc7fa4843 | |||
05fad37b3c | |||
dcb3df0a38 | |||
19d903e8b3 | |||
721c598fbd | |||
0a9e24622f | |||
a0c658f4d1 | |||
9585eef042 | |||
8678265125 | |||
df387e2394 | |||
2db0287652 | |||
806b29c2a1 | |||
3aa1117f4a | |||
630f24e747 | |||
d6a66860af | |||
6d850f23a5 | |||
2c1af0861f | |||
d2ae721235 | |||
01db55cee5 | |||
4ba2b5179e | |||
a5092c0df6 | |||
575c098bae | |||
cddd59b578 | |||
7a4b1e0ce1 | |||
0216fa08ec | |||
ca3e807d35 | |||
ca38bb2390 | |||
7d07c52d09 | |||
532013a032 | |||
a52622669f | |||
ce5e668681 | |||
6530fa914b | |||
86eb0e1617 | |||
93fb9b36ce | |||
09e3505ea1 | |||
cecbfc1676 | |||
fba6f6a4cf | |||
6053456af1 | |||
cc2f75b2f9 | |||
b6ef71c92e | |||
876da2fbc6 | |||
ea45ca57a5 | |||
6fa3ebfa75 | |||
efe6fb6dfb | |||
1aeb2baa91 | |||
e4d6425846 | |||
81f885795d | |||
f3e29bc2cc | |||
3a72f7b84b | |||
20bd4560f8 | |||
8991b9fe54 | |||
aea6c5dd1d | |||
da41caca66 | |||
103af98864 | |||
26606b0520 | |||
706844e8bf | |||
a56274c230 | |||
3512226867 | |||
d5b9fee6fe | |||
437860feff |
@ -1,3 +1,3 @@
|
||||
name = Minetest Game
|
||||
author = Minetest
|
||||
description = Bundled by default with Minetest, and aims to be lightweight, moddable, and fairly playable without mods.
|
||||
name = Notre Ami Le Cube 1.2
|
||||
author = Minetest and Sys4
|
||||
description = Minetest game slightly modified by Sys4
|
||||
|
19
game_api.txt
@ -93,16 +93,21 @@ 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
|
||||
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
|
||||
----------
|
||||
@ -129,12 +134,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
|
||||
|
@ -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)
|
||||
|
8
mods/beds/locale/beds.id.tr
Normal file
@ -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
|
@ -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=
|
||||
|
3
mods/binoculars/locale/binoculars.id.tr
Normal file
@ -0,0 +1,3 @@
|
||||
# textdomain: binoculars
|
||||
Binoculars=Binokular
|
||||
Use with 'Zoom' key=Pakai dengan tombol 'Zum'
|
4
mods/boats/locale/boats.id.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: boats
|
||||
Boat cruise mode on=Mode perahu jelajah nyala
|
||||
Boat cruise mode off=Mode perahu jelajah mati
|
||||
Boat=Perahu
|
8
mods/bones/locale/bones.id.tr
Normal file
@ -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
|
5
mods/bucket/locale/bucket.id.tr
Normal file
@ -0,0 +1,5 @@
|
||||
# textdomain: bucket
|
||||
Empty Bucket=Ember Kosong
|
||||
Water Bucket=Ember Air
|
||||
River Water Bucket=Ember Air Sungai
|
||||
Lava Bucket=Ember Lava
|
4
mods/butterflies/locale/butterflies.id.tr
Normal file
@ -0,0 +1,4 @@
|
||||
# textdomain: butterflies
|
||||
White Butterfly=Kupu-Kupu Putih
|
||||
Red Butterfly=Kupu-Kupu Merah
|
||||
Violet Butterfly=Kupu-Kupu Ungu
|
@ -67,6 +67,7 @@ end
|
||||
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
|
||||
|
||||
@ -327,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
|
||||
@ -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
|
||||
|
6
mods/carts/locale/carts.id.tr
Normal file
@ -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)
|
@ -1,6 +1,6 @@
|
||||
# textdomain: carts
|
||||
Cart=
|
||||
(Sneak+Click to pick up)=
|
||||
Rail=
|
||||
Powered Rail=
|
||||
Brake Rail=
|
||||
Cart=
|
||||
(Sneak+Click to pick up)=
|
||||
|
Before Width: | Height: | Size: 684 B After Width: | Height: | Size: 456 B |
Before Width: | Height: | Size: 618 B After Width: | Height: | Size: 436 B |
Before Width: | Height: | Size: 660 B After Width: | Height: | Size: 494 B |
Before Width: | Height: | Size: 698 B After Width: | Height: | Size: 434 B |
@ -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.
|
||||
|
@ -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
|
||||
@ -199,10 +221,30 @@ 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 {}
|
||||
|
||||
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 (nogroup and minetest.registered_tools[name]) then
|
||||
registered_tools[name] = def
|
||||
elseif group.craftitem or (nogroup and 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)
|
||||
|
10
mods/creative/locale/creative.id.tr
Normal file
@ -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
|
@ -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=
|
||||
|
@ -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
|
||||
@ -253,6 +249,11 @@ 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
|
||||
|
||||
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
|
||||
|
@ -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",
|
||||
|
@ -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(...)
|
||||
@ -433,6 +448,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 +477,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)
|
||||
@ -483,7 +516,7 @@ end
|
||||
|
||||
|
||||
--
|
||||
-- Convert dirt to something that fits the environment
|
||||
-- Convert default:dirt to something that fits the environment
|
||||
--
|
||||
|
||||
minetest.register_abm({
|
||||
@ -492,6 +525,7 @@ minetest.register_abm({
|
||||
neighbors = {
|
||||
"air",
|
||||
"group:grass",
|
||||
"group:dry_grass",
|
||||
"default:snow",
|
||||
},
|
||||
interval = 6,
|
||||
@ -520,6 +554,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
|
||||
})
|
||||
|
@ -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,
|
||||
@ -39,16 +39,20 @@ 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
|
||||
-- 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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
211
mods/default/locale/default.id.tr
Normal file
@ -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
|
@ -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=
|
||||
|
@ -458,12 +458,12 @@ 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",
|
||||
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},
|
||||
@ -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}},
|
||||
@ -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},
|
||||
@ -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"},
|
||||
@ -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)
|
||||
|
||||
@ -2816,7 +2814,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(),
|
||||
|
BIN
mods/default/sounds/default_break_glass.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_break_glass.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_break_glass.3.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_breathless.ogg
Executable file
BIN
mods/default/sounds/default_cool_lava.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_cool_lava.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_cool_lava.3.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_dig_choppy.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_dig_cracky.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_dig_crumbly.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_dig_dig_immediate.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_dirt_footstep.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_dirt_footstep.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_dirt_footstep.3.ogg
Executable file
BIN
mods/default/sounds/default_dirt_footstep.4.ogg
Executable file
BIN
mods/default/sounds/default_dug_node.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_dug_node.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_glass_footstep.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_grass_footstep.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_grass_footstep.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_grass_footstep.3.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_grass_footstep.4.ogg
Executable file
BIN
mods/default/sounds/default_gravel_footstep.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_gravel_footstep.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_gravel_footstep.3.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_gravel_footstep.4.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_hard_footstep.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_hard_footstep.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_hard_footstep.3.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_hard_footstep.4.ogg
Executable file
BIN
mods/default/sounds/default_metal_footstep.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_metal_footstep.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_metal_footstep.3.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_metal_footstep.4.ogg
Executable file
BIN
mods/default/sounds/default_place_node.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_place_node.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_place_node.3.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_place_node_hard.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_place_node_hard.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_sand_footstep.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_sand_footstep.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_sand_footstep.3.ogg
Executable file
BIN
mods/default/sounds/default_sand_footstep.4.ogg
Executable file
0
mods/default/sounds/default_snow_footstep.1.ogg
Normal file → Executable file
0
mods/default/sounds/default_snow_footstep.2.ogg
Normal file → Executable file
0
mods/default/sounds/default_snow_footstep.3.ogg
Normal file → Executable file
0
mods/default/sounds/default_snow_footstep.4.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_wood_footstep.1.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_wood_footstep.2.ogg
Normal file → Executable file
BIN
mods/default/sounds/default_wood_footstep.3.ogg
Executable file
BIN
mods/default/sounds/default_wood_footstep.4.ogg
Executable file
BIN
mods/default/sounds/health_gain.ogg
Executable file
BIN
mods/default/sounds/lava.ogg
Executable file
BIN
mods/default/sounds/player_damage.1.ogg
Executable file
BIN
mods/default/sounds/player_damage.2.ogg
Executable file
BIN
mods/default/sounds/player_falling_damage.ogg
Executable file
BIN
mods/default/sounds/waterfall.ogg
Executable file
Before Width: | Height: | Size: 459 B After Width: | Height: | Size: 331 B |
Before Width: | Height: | Size: 148 B After Width: | Height: | Size: 154 B |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 279 B |
@ -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)
|
||||
|
@ -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},
|
||||
@ -115,10 +107,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 +119,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,15 +441,23 @@ 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", {
|
||||
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",
|
||||
|
18
mods/doors/locale/doors.id.tr
Normal file
@ -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
|
@ -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
|
||||
Aspen Wood Fence Gate=Cancello della recinzione di legno di pioppo
|
||||
|
@ -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
|
||||
|