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
|
name = Notre Ami Le Cube 1.2
|
||||||
author = Minetest
|
author = Minetest and Sys4
|
||||||
description = Bundled by default with Minetest, and aims to be lightweight, moddable, and fairly playable without mods.
|
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
|
is used to show all tools. Name is used in the sfinv page name, title is the
|
||||||
human readable title.
|
human readable title.
|
||||||
|
|
||||||
`is_enabled_for` is used to check whether a player is in creative mode:
|
Creative provides `creative.is_enabled_for(name)`, which is identical in
|
||||||
|
functionality to the engine's `minetest.creative_is_enabled(name)`.
|
||||||
creative.is_enabled_for(name)
|
Its use is deprecated and it should also not be overriden.
|
||||||
|
|
||||||
Override this to allow per-player game modes.
|
|
||||||
|
|
||||||
The contents of `creative.formspec_add` is appended to every creative inventory
|
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
|
page. Mods can use it to add additional formspec elements onto the default
|
||||||
creative inventory formspec to be drawn after each update.
|
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
|
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.
|
* A table indexed by player name to keep track of who opened what chest.
|
||||||
* Key: The name of the player.
|
* Key: The name of the player.
|
||||||
* Value: A table containing information about the chest the player is looking at.
|
* 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)`
|
`default.chest.register_chest(name, def)`
|
||||||
|
|
||||||
* Registers new chest
|
* Registers new chest
|
||||||
* `name` Name for chest
|
* `name` Name for chest e.g. "default:chest"
|
||||||
* `def` See [#Chest Definition]
|
* `def` See [#Chest Definition]
|
||||||
|
|
||||||
### Chest Definition
|
### Chest Definition
|
||||||
|
@ -74,10 +74,10 @@ local function lay_down(player, pos, bed_pos, state, skip)
|
|||||||
-- physics, eye_offset, etc
|
-- physics, eye_offset, etc
|
||||||
player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0})
|
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)
|
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)
|
player:set_physics_override(1, 1, 1)
|
||||||
hud_flags.wielditem = true
|
hud_flags.wielditem = true
|
||||||
default.player_set_animation(player, "stand" , 30)
|
player_api.set_animation(player, "stand" , 30)
|
||||||
|
|
||||||
-- lay down
|
-- lay down
|
||||||
else
|
else
|
||||||
@ -99,9 +99,9 @@ local function lay_down(player, pos, bed_pos, state, skip)
|
|||||||
}
|
}
|
||||||
player:set_physics_override(0, 0, 0)
|
player:set_physics_override(0, 0, 0)
|
||||||
player:set_pos(p)
|
player:set_pos(p)
|
||||||
default.player_attached[name] = true
|
player_api.player_attached[name] = true
|
||||||
hud_flags.wielditem = false
|
hud_flags.wielditem = false
|
||||||
default.player_set_animation(player, "lay" , 0)
|
player_api.set_animation(player, "lay" , 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
player:hud_set_flags(hud_flags)
|
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
|
# textdomain: beds
|
||||||
Fancy Bed=
|
|
||||||
Simple Bed=
|
|
||||||
Leave Bed=
|
Leave Bed=
|
||||||
Good morning.=
|
Good morning.=
|
||||||
@1 of @2 players are in bed=
|
@1 of @2 players are in bed=
|
||||||
Force night skip=
|
Force night skip=
|
||||||
You can only sleep at night.=
|
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)
|
function cart_entity:on_detach_child(child)
|
||||||
if child and child:get_player_name() == self.driver then
|
if child and child:get_player_name() == self.driver then
|
||||||
self.driver = nil
|
self.driver = nil
|
||||||
|
carts:manage_attachment(child, nil)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -327,11 +328,10 @@ local function rail_on_step(self, dtime)
|
|||||||
if self.punched then
|
if self.punched then
|
||||||
-- Collect dropped items
|
-- Collect dropped items
|
||||||
for _, obj_ in pairs(minetest.get_objects_inside_radius(pos, 1)) do
|
for _, obj_ in pairs(minetest.get_objects_inside_radius(pos, 1)) do
|
||||||
if not obj_:is_player() and
|
local ent = obj_:get_luaentity()
|
||||||
obj_:get_luaentity() and
|
-- Careful here: physical_state and disable_physics are item-internal APIs
|
||||||
not obj_:get_luaentity().physical_state and
|
if ent and ent.name == "__builtin:item" and ent.physical_state then
|
||||||
obj_:get_luaentity().name == "__builtin:item" then
|
ent:disable_physics()
|
||||||
|
|
||||||
obj_:set_attach(self.object, "", {x=0, y=0, z=0}, {x=0, y=0, z=0})
|
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_
|
self.attached_items[#self.attached_items + 1] = obj_
|
||||||
end
|
end
|
||||||
@ -389,7 +389,7 @@ minetest.register_entity("carts:cart", cart_entity)
|
|||||||
|
|
||||||
minetest.register_craftitem("carts:cart", {
|
minetest.register_craftitem("carts:cart", {
|
||||||
description = S("Cart") .. "\n" .. S("(Sneak+Click to pick up)"),
|
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",
|
wield_image = "carts_cart_side.png",
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
local under = pointed_thing.under
|
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
|
# textdomain: carts
|
||||||
Cart=
|
|
||||||
(Sneak+Click to pick up)=
|
|
||||||
Rail=
|
Rail=
|
||||||
Powered Rail=
|
Powered Rail=
|
||||||
Brake 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,
|
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)
|
function creative.is_enabled_for(name)
|
||||||
return creative_mode_cache or
|
return minetest.is_creative_enabled(name)
|
||||||
minetest.check_player_privs(name, {creative = true})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
dofile(minetest.get_modpath("creative") .. "/inventory.lua")
|
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
|
-- Dig time is modified according to difference (leveldiff) between tool
|
||||||
-- 'maxlevel' and node 'level'. Digtime is divided by the larger of
|
-- 'maxlevel' and node 'level'. Digtime is divided by the larger of
|
||||||
-- leveldiff and 1.
|
-- leveldiff and 1.
|
||||||
|
@ -61,6 +61,7 @@ function creative.init_creative_inventory(player)
|
|||||||
return player_inventory[player_name]
|
return player_inventory[player_name]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local NO_MATCH = 999
|
||||||
local function match(s, filter)
|
local function match(s, filter)
|
||||||
if filter == "" then
|
if filter == "" then
|
||||||
return 0
|
return 0
|
||||||
@ -68,7 +69,15 @@ local function match(s, filter)
|
|||||||
if s:lower():find(filter, 1, true) then
|
if s:lower():find(filter, 1, true) then
|
||||||
return #s - #filter
|
return #s - #filter
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
function creative.update_creative_inventory(player_name, tab_content)
|
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 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 creative_list = {}
|
||||||
local order = {}
|
local order = {}
|
||||||
for name, def in pairs(items) do
|
for name, def in pairs(items) do
|
||||||
local m = match(def.description, inv.filter) or match(def.name, inv.filter)
|
local m = match(description(def), inv.filter)
|
||||||
if m then
|
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
|
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
|
order[name] = string.format("%02d", m) .. name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -199,10 +221,30 @@ function creative.register_tab(name, title, items)
|
|||||||
})
|
})
|
||||||
end
|
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("all", S("All"), minetest.registered_items)
|
||||||
creative.register_tab("nodes", S("Nodes"), minetest.registered_nodes)
|
creative.register_tab("nodes", S("Nodes"), registered_nodes)
|
||||||
creative.register_tab("tools", S("Tools"), minetest.registered_tools)
|
creative.register_tab("tools", S("Tools"), registered_tools)
|
||||||
creative.register_tab("craftitems", S("Items"), minetest.registered_craftitems)
|
creative.register_tab("craftitems", S("Items"), registered_craftitems)
|
||||||
|
|
||||||
local old_homepage_name = sfinv.get_homepage_name
|
local old_homepage_name = sfinv.get_homepage_name
|
||||||
function sfinv.get_homepage_name(player)
|
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
|
# textdomain: creative
|
||||||
Allow player to use creative inventory=
|
|
||||||
Search=
|
Search=
|
||||||
Reset=
|
Reset=
|
||||||
Previous page=
|
Previous page=
|
||||||
@ -8,3 +7,4 @@ All=
|
|||||||
Nodes=
|
Nodes=
|
||||||
Tools=
|
Tools=
|
||||||
Items=
|
Items=
|
||||||
|
Allow player to use creative inventory=
|
||||||
|
@ -151,7 +151,6 @@ BlockMen (CC BY-SA 3.0):
|
|||||||
default_chest_top.png
|
default_chest_top.png
|
||||||
default_mineral_mese.png
|
default_mineral_mese.png
|
||||||
default_meselamp.png
|
default_meselamp.png
|
||||||
bubble.png
|
|
||||||
gui_formbg.png
|
gui_formbg.png
|
||||||
gui_furnace_arrow_bg.png
|
gui_furnace_arrow_bg.png
|
||||||
gui_furnace_arrow_fg.png
|
gui_furnace_arrow_fg.png
|
||||||
@ -196,9 +195,6 @@ Gambit (CC BY-SA 3.0):
|
|||||||
asl97 (CC BY-SA 3.0):
|
asl97 (CC BY-SA 3.0):
|
||||||
default_ice.png
|
default_ice.png
|
||||||
|
|
||||||
KevDoy (CC BY-SA 3.0):
|
|
||||||
heart.png
|
|
||||||
|
|
||||||
Pithydon (CC BY-SA 3.0)
|
Pithydon (CC BY-SA 3.0)
|
||||||
default_coral_brown.png
|
default_coral_brown.png
|
||||||
default_coral_orange.png
|
default_coral_orange.png
|
||||||
@ -253,6 +249,11 @@ Topywo (CC BY-SA 3.0)
|
|||||||
|
|
||||||
Extex101 (CC BY-SA 3.0)
|
Extex101 (CC BY-SA 3.0)
|
||||||
default_large_cactus_seedling.png
|
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
|
Sounds
|
||||||
|
@ -44,7 +44,7 @@ function default.chest.chest_lid_close(pn)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local node = minetest.get_node(pos)
|
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 })
|
param2 = node.param2 })
|
||||||
minetest.sound_play(sound, {gain = 0.3, pos = pos,
|
minetest.sound_play(sound, {gain = 0.3, pos = pos,
|
||||||
max_hear_distance = 10}, true)
|
max_hear_distance = 10}, true)
|
||||||
@ -76,7 +76,8 @@ minetest.register_on_leaveplayer(function(player)
|
|||||||
end
|
end
|
||||||
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)
|
local def = table.copy(d)
|
||||||
def.drawtype = "mesh"
|
def.drawtype = "mesh"
|
||||||
def.visual = "mesh"
|
def.visual = "mesh"
|
||||||
@ -132,7 +133,7 @@ function default.chest.register_chest(name, d)
|
|||||||
pos = pos, max_hear_distance = 10}, true)
|
pos = pos, max_hear_distance = 10}, true)
|
||||||
if not default.chest.chest_lid_obstructed(pos) then
|
if not default.chest.chest_lid_obstructed(pos) then
|
||||||
minetest.swap_node(pos,
|
minetest.swap_node(pos,
|
||||||
{ name = "default:" .. name .. "_open",
|
{ name = name .. "_open",
|
||||||
param2 = node.param2 })
|
param2 = node.param2 })
|
||||||
end
|
end
|
||||||
minetest.after(0.2, minetest.show_formspec,
|
minetest.after(0.2, minetest.show_formspec,
|
||||||
@ -203,7 +204,7 @@ function default.chest.register_chest(name, d)
|
|||||||
max_hear_distance = 10}, true)
|
max_hear_distance = 10}, true)
|
||||||
if not default.chest.chest_lid_obstructed(pos) then
|
if not default.chest.chest_lid_obstructed(pos) then
|
||||||
minetest.swap_node(pos, {
|
minetest.swap_node(pos, {
|
||||||
name = "default:" .. name .. "_open",
|
name = name .. "_open",
|
||||||
param2 = node.param2 })
|
param2 = node.param2 })
|
||||||
end
|
end
|
||||||
minetest.after(0.2, minetest.show_formspec,
|
minetest.after(0.2, minetest.show_formspec,
|
||||||
@ -215,7 +216,7 @@ function default.chest.register_chest(name, d)
|
|||||||
def.on_blast = function(pos)
|
def.on_blast = function(pos)
|
||||||
local drops = {}
|
local drops = {}
|
||||||
default.get_inventory_drops(pos, "main", drops)
|
default.get_inventory_drops(pos, "main", drops)
|
||||||
drops[#drops+1] = "default:" .. name
|
drops[#drops+1] = name
|
||||||
minetest.remove_node(pos)
|
minetest.remove_node(pos)
|
||||||
return drops
|
return drops
|
||||||
end
|
end
|
||||||
@ -248,7 +249,7 @@ function default.chest.register_chest(name, d)
|
|||||||
def_opened.tiles[i].backface_culling = true
|
def_opened.tiles[i].backface_culling = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
def_opened.drop = "default:" .. name
|
def_opened.drop = name
|
||||||
def_opened.groups.not_in_creative_inventory = 1
|
def_opened.groups.not_in_creative_inventory = 1
|
||||||
def_opened.selection_box = {
|
def_opened.selection_box = {
|
||||||
type = "fixed",
|
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[5] = def.tiles[3] -- drawtype to make them match the mesh
|
||||||
def_closed.tiles[3] = def.tiles[3].."^[transformFX"
|
def_closed.tiles[3] = def.tiles[3].."^[transformFX"
|
||||||
|
|
||||||
minetest.register_node("default:" .. name, def_closed)
|
minetest.register_node(prefixed_name, def_closed)
|
||||||
minetest.register_node("default:" .. name .. "_open", def_opened)
|
minetest.register_node(prefixed_name .. "_open", def_opened)
|
||||||
|
|
||||||
-- convert old chests to this new variant
|
-- convert old chests to this new variant
|
||||||
minetest.register_lbm({
|
if name == "default:chest" or name == "default:chest_locked" then
|
||||||
label = "update chests to opening chests",
|
minetest.register_lbm({
|
||||||
name = "default:upgrade_" .. name .. "_v2",
|
label = "update chests to opening chests",
|
||||||
nodenames = {"default:" .. name},
|
name = "default:upgrade_" .. name:sub(9,-1) .. "_v2",
|
||||||
action = function(pos, node)
|
nodenames = {name},
|
||||||
local meta = minetest.get_meta(pos)
|
action = function(pos, node)
|
||||||
meta:set_string("formspec", nil)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
meta:set_string("formspec", nil)
|
||||||
local list = inv:get_list("default:chest")
|
local inv = meta:get_inventory()
|
||||||
if list then
|
local list = inv:get_list("default:chest")
|
||||||
inv:set_size("main", 8*4)
|
if list then
|
||||||
inv:set_list("main", list)
|
inv:set_size("main", 8*4)
|
||||||
inv:set_list("default:chest", nil)
|
inv:set_list("main", list)
|
||||||
|
inv:set_list("default:chest", nil)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
})
|
||||||
})
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
default.chest.register_chest("chest", {
|
default.chest.register_chest("default:chest", {
|
||||||
description = S("Chest"),
|
description = S("Chest"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"default_chest_top.png",
|
"default_chest_top.png",
|
||||||
@ -303,7 +306,7 @@ default.chest.register_chest("chest", {
|
|||||||
groups = {choppy = 2, oddly_breakable_by_hand = 2},
|
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"),
|
description = S("Locked Chest"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"default_chest_top.png",
|
"default_chest_top.png",
|
||||||
|
@ -210,7 +210,12 @@ end
|
|||||||
function default.grow_papyrus(pos, node)
|
function default.grow_papyrus(pos, node)
|
||||||
pos.y = pos.y - 1
|
pos.y = pos.y - 1
|
||||||
local name = minetest.get_node(pos).name
|
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
|
return
|
||||||
end
|
end
|
||||||
if not minetest.find_node_near(pos, 3, {"group:water"}) then
|
if not minetest.find_node_near(pos, 3, {"group:water"}) then
|
||||||
@ -247,7 +252,17 @@ minetest.register_abm({
|
|||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Grow papyrus",
|
label = "Grow papyrus",
|
||||||
nodenames = {"default: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,
|
interval = 14,
|
||||||
chance = 71,
|
chance = 71,
|
||||||
action = function(...)
|
action = function(...)
|
||||||
@ -433,6 +448,9 @@ local function leafdecay_after_destruct(pos, oldnode, def)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local movement_gravity = tonumber(
|
||||||
|
minetest.settings:get("movement_gravity")) or 9.81
|
||||||
|
|
||||||
local function leafdecay_on_timer(pos, def)
|
local function leafdecay_on_timer(pos, def)
|
||||||
if minetest.find_node_near(pos, def.radius, def.trunks) then
|
if minetest.find_node_near(pos, def.radius, def.trunks) then
|
||||||
return false
|
return false
|
||||||
@ -459,6 +477,21 @@ local function leafdecay_on_timer(pos, def)
|
|||||||
|
|
||||||
minetest.remove_node(pos)
|
minetest.remove_node(pos)
|
||||||
minetest.check_for_falling(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
|
end
|
||||||
|
|
||||||
function default.register_leafdecay(def)
|
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({
|
minetest.register_abm({
|
||||||
@ -492,6 +525,7 @@ minetest.register_abm({
|
|||||||
neighbors = {
|
neighbors = {
|
||||||
"air",
|
"air",
|
||||||
"group:grass",
|
"group:grass",
|
||||||
|
"group:dry_grass",
|
||||||
"default:snow",
|
"default:snow",
|
||||||
},
|
},
|
||||||
interval = 6,
|
interval = 6,
|
||||||
@ -520,6 +554,8 @@ minetest.register_abm({
|
|||||||
minetest.set_node(pos, {name = "default:dirt_with_snow"})
|
minetest.set_node(pos, {name = "default:dirt_with_snow"})
|
||||||
elseif minetest.get_item_group(name, "grass") ~= 0 then
|
elseif minetest.get_item_group(name, "grass") ~= 0 then
|
||||||
minetest.set_node(pos, {name = "default:dirt_with_grass"})
|
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
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
@ -15,8 +15,8 @@ local item = {
|
|||||||
|
|
||||||
burn_up = function(self)
|
burn_up = function(self)
|
||||||
-- disappear in a smoke puff
|
-- disappear in a smoke puff
|
||||||
self.object:remove()
|
|
||||||
local p = self.object:get_pos()
|
local p = self.object:get_pos()
|
||||||
|
self.object:remove()
|
||||||
minetest.sound_play("default_item_smoke", {
|
minetest.sound_play("default_item_smoke", {
|
||||||
pos = p,
|
pos = p,
|
||||||
max_hear_distance = 8,
|
max_hear_distance = 8,
|
||||||
@ -39,16 +39,20 @@ local item = {
|
|||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
|
|
||||||
on_step = function(self, dtime)
|
on_step = function(self, dtime, ...)
|
||||||
builtin_item.on_step(self, dtime)
|
builtin_item.on_step(self, dtime, ...)
|
||||||
|
|
||||||
if self.flammable then
|
if self.flammable then
|
||||||
-- flammable, check for igniters
|
-- flammable, check for igniters every 10 s
|
||||||
self.ignite_timer = (self.ignite_timer or 0) + dtime
|
self.ignite_timer = (self.ignite_timer or 0) + dtime
|
||||||
if self.ignite_timer > 10 then
|
if self.ignite_timer > 10 then
|
||||||
self.ignite_timer = 0
|
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
|
if not node then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -51,6 +51,7 @@ Copyright (C) 2010-2018:
|
|||||||
Mossmanikin
|
Mossmanikin
|
||||||
random-geek
|
random-geek
|
||||||
Extex101
|
Extex101
|
||||||
|
An0n3m0us
|
||||||
|
|
||||||
You are free to:
|
You are free to:
|
||||||
Share — copy and redistribute the material in any medium or format.
|
Share — copy and redistribute the material in any medium or format.
|
||||||
|
@ -62,12 +62,12 @@ Obsidian Block=Obsidianblock
|
|||||||
Dirt=Erde
|
Dirt=Erde
|
||||||
Dirt with Grass=Erde mit Gras
|
Dirt with Grass=Erde mit Gras
|
||||||
Dirt with Grass and Footsteps=Erde mit Gras und Fußstapfen
|
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 Snow=Erde mit Schnee
|
||||||
Dirt with Rainforest Litter=Erde mit Regenwaldboden
|
Dirt with Rainforest Litter=Erde mit Regenwaldboden
|
||||||
Dirt with Coniferous Litter=Erde mit Nadelwaldboden
|
Dirt with Coniferous Litter=Erde mit Nadelwaldboden
|
||||||
Dry Dirt=Trockene Erde
|
Savanna Dirt=Savannenerde
|
||||||
Dry Dirt with Dry Grass=Trockene Erde mit trockenem Gras
|
Savanna Dirt with Savanna Grass=Savannenerde mit Savannengras
|
||||||
Permafrost=Permafrost
|
Permafrost=Permafrost
|
||||||
Permafrost with Stones=Permafrost mit Steinen
|
Permafrost with Stones=Permafrost mit Steinen
|
||||||
Permafrost with Moss=Permafrost mit Moos
|
Permafrost with Moss=Permafrost mit Moos
|
||||||
@ -124,7 +124,7 @@ Papyrus=Papyrus
|
|||||||
Dry Shrub=Trockener Busch
|
Dry Shrub=Trockener Busch
|
||||||
Jungle Grass=Dschungelgras
|
Jungle Grass=Dschungelgras
|
||||||
Grass=Gras
|
Grass=Gras
|
||||||
Dry Grass=Trockenes Gras
|
Savanna Grass=Savannengras
|
||||||
Fern=Farn
|
Fern=Farn
|
||||||
Marram Grass=Dünengras
|
Marram Grass=Dünengras
|
||||||
Bush Stem=Buschstamm
|
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
|
# 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=
|
Stone=
|
||||||
Cobblestone=
|
Cobblestone=
|
||||||
Stone Brick=
|
Stone Brick=
|
||||||
@ -62,12 +23,12 @@ Obsidian Block=
|
|||||||
Dirt=
|
Dirt=
|
||||||
Dirt with Grass=
|
Dirt with Grass=
|
||||||
Dirt with Grass and Footsteps=
|
Dirt with Grass and Footsteps=
|
||||||
Dirt with Dry Grass=
|
Dirt with Savanna Grass=
|
||||||
Dirt with Snow=
|
Dirt with Snow=
|
||||||
Dirt with Rainforest Litter=
|
Dirt with Rainforest Litter=
|
||||||
Dirt with Coniferous Litter=
|
Dirt with Coniferous Litter=
|
||||||
Dry Dirt=
|
Savanna Dirt=
|
||||||
Dry Dirt with Dry Grass=
|
Savanna Dirt with Savanna Grass=
|
||||||
Permafrost=
|
Permafrost=
|
||||||
Permafrost with Stones=
|
Permafrost with Stones=
|
||||||
Permafrost with Moss=
|
Permafrost with Moss=
|
||||||
@ -124,7 +85,7 @@ Papyrus=
|
|||||||
Dry Shrub=
|
Dry Shrub=
|
||||||
Jungle Grass=
|
Jungle Grass=
|
||||||
Grass=
|
Grass=
|
||||||
Dry Grass=
|
Savanna Grass=
|
||||||
Fern=
|
Fern=
|
||||||
Marram Grass=
|
Marram Grass=
|
||||||
Bush Stem=
|
Bush Stem=
|
||||||
@ -176,6 +137,8 @@ Brick Block=
|
|||||||
Mese Lamp=
|
Mese Lamp=
|
||||||
Mese Post Light=
|
Mese Post Light=
|
||||||
Cloud=
|
Cloud=
|
||||||
|
@1 will intersect protection on growth.=
|
||||||
|
Torch=
|
||||||
Wooden Pickaxe=
|
Wooden Pickaxe=
|
||||||
Stone Pickaxe=
|
Stone Pickaxe=
|
||||||
Bronze Pickaxe=
|
Bronze Pickaxe=
|
||||||
@ -201,11 +164,48 @@ Steel Sword=
|
|||||||
Mese Sword=
|
Mese Sword=
|
||||||
Diamond Sword=
|
Diamond Sword=
|
||||||
Key=
|
Key=
|
||||||
Torch=
|
Furnace is empty=
|
||||||
@1 will intersect protection on growth.=
|
100% (output full)=
|
||||||
|
@1%=
|
||||||
|
Not cookable=
|
||||||
|
Empty=
|
||||||
|
Furnace active=
|
||||||
|
Furnace inactive=
|
||||||
|
(Item: @1; Fuel: @2)=
|
||||||
|
Furnace=
|
||||||
Title:=
|
Title:=
|
||||||
Contents:=
|
Contents:=
|
||||||
Save=
|
Save=
|
||||||
by @1=
|
by @1=
|
||||||
Page @1 of @2=
|
Page @1 of @2=
|
||||||
"@1"=
|
"@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", {
|
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",
|
tiles = {"default_dry_grass.png",
|
||||||
"default_dirt.png",
|
"default_dirt.png",
|
||||||
{name = "default_dirt.png^default_dry_grass_side.png",
|
{name = "default_dirt.png^default_dry_grass_side.png",
|
||||||
tileable_vertical = false}},
|
tileable_vertical = false}},
|
||||||
groups = {crumbly = 3, soil = 1},
|
groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
|
||||||
drop = "default:dirt",
|
drop = "default:dirt",
|
||||||
sounds = default.node_sound_dirt_defaults({
|
sounds = default.node_sound_dirt_defaults({
|
||||||
footstep = {name = "default_grass_footstep", gain = 0.4},
|
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", {
|
minetest.register_node("default:dry_dirt", {
|
||||||
description = S("Dry Dirt"),
|
description = S("Savanna Dirt"),
|
||||||
tiles = {"default_dry_dirt.png"},
|
tiles = {"default_dry_dirt.png"},
|
||||||
groups = {crumbly = 3, soil = 1},
|
groups = {crumbly = 3, soil = 1},
|
||||||
sounds = default.node_sound_dirt_defaults(),
|
sounds = default.node_sound_dirt_defaults(),
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_node("default:dry_dirt_with_dry_grass", {
|
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",
|
tiles = {"default_dry_grass.png", "default_dry_dirt.png",
|
||||||
{name = "default_dry_dirt.png^default_dry_grass_side.png",
|
{name = "default_dry_dirt.png^default_dry_grass_side.png",
|
||||||
tileable_vertical = false}},
|
tileable_vertical = false}},
|
||||||
@ -621,7 +621,7 @@ minetest.register_node("default:snow", {
|
|||||||
collision_box = {
|
collision_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
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},
|
groups = {crumbly = 3, falling_node = 1, snowy = 1},
|
||||||
@ -1497,7 +1497,7 @@ end
|
|||||||
|
|
||||||
|
|
||||||
minetest.register_node("default:dry_grass_1", {
|
minetest.register_node("default:dry_grass_1", {
|
||||||
description = S("Dry Grass"),
|
description = S("Savanna Grass"),
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
waving = 1,
|
waving = 1,
|
||||||
tiles = {"default_dry_grass_1.png"},
|
tiles = {"default_dry_grass_1.png"},
|
||||||
@ -1526,7 +1526,7 @@ minetest.register_node("default:dry_grass_1", {
|
|||||||
|
|
||||||
for i = 2, 5 do
|
for i = 2, 5 do
|
||||||
minetest.register_node("default:dry_grass_" .. i, {
|
minetest.register_node("default:dry_grass_" .. i, {
|
||||||
description = S("Dry Grass"),
|
description = S("Savanna Grass"),
|
||||||
drawtype = "plantlike",
|
drawtype = "plantlike",
|
||||||
waving = 1,
|
waving = 1,
|
||||||
tiles = {"default_dry_grass_" .. i .. ".png"},
|
tiles = {"default_dry_grass_" .. i .. ".png"},
|
||||||
@ -2579,12 +2579,10 @@ local function register_sign(material, desc, def)
|
|||||||
sounds = def.sounds,
|
sounds = def.sounds,
|
||||||
|
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
--local n = minetest.get_node(pos)
|
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("formspec", "field[text;;${text}]")
|
meta:set_string("formspec", "field[text;;${text}]")
|
||||||
end,
|
end,
|
||||||
on_receive_fields = function(pos, formname, fields, sender)
|
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()
|
local player_name = sender:get_player_name()
|
||||||
if minetest.is_protected(pos, player_name) then
|
if minetest.is_protected(pos, player_name) then
|
||||||
minetest.record_protection_violation(pos, player_name)
|
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"))
|
minetest.chat_send_player(player_name, S("Text too long"))
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
minetest.log("action", (player_name or "") .. " wrote \"" ..
|
minetest.log("action", player_name .. " wrote \"" .. text ..
|
||||||
text .. "\" to sign at " .. minetest.pos_to_string(pos))
|
"\" to the sign at " .. minetest.pos_to_string(pos))
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("text", text)
|
meta:set_string("text", text)
|
||||||
|
|
||||||
@ -2816,7 +2814,10 @@ minetest.register_node("default:brick", {
|
|||||||
description = S("Brick Block"),
|
description = S("Brick Block"),
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
place_param2 = 0,
|
place_param2 = 0,
|
||||||
tiles = {"default_brick.png"},
|
tiles = {
|
||||||
|
"default_brick.png^[transformFX",
|
||||||
|
"default_brick.png",
|
||||||
|
},
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
groups = {cracky = 3},
|
groups = {cracky = 3},
|
||||||
sounds = default.node_sound_stone_defaults(),
|
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
|
if not node_under then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
local name_under = node_under.name
|
if minetest.get_item_group(node_under.name, "soil") == 0 then
|
||||||
local is_soil = minetest.get_item_group(name_under, "soil")
|
|
||||||
if is_soil == 0 then
|
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
local light_level = minetest.get_node_light(pos)
|
local light_level = minetest.get_node_light(pos)
|
||||||
|
@ -78,9 +78,7 @@ end
|
|||||||
-- nodes from being placed in the top half of the door.
|
-- nodes from being placed in the top half of the door.
|
||||||
minetest.register_node("doors:hidden", {
|
minetest.register_node("doors:hidden", {
|
||||||
description = S("Hidden Door Segment"),
|
description = S("Hidden Door Segment"),
|
||||||
-- can't use airlike otherwise falling nodes will turn to entities
|
drawtype = "airlike",
|
||||||
-- and will be forever stuck until door is removed.
|
|
||||||
drawtype = "nodebox",
|
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
@ -93,13 +91,7 @@ minetest.register_node("doors:hidden", {
|
|||||||
drop = "",
|
drop = "",
|
||||||
groups = {not_in_creative_inventory = 1},
|
groups = {not_in_creative_inventory = 1},
|
||||||
on_blast = function() end,
|
on_blast = function() end,
|
||||||
tiles = {"doors_blank.png"},
|
-- 1px block inside door hinge near node top
|
||||||
-- 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
|
|
||||||
collision_box = {
|
collision_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32},
|
fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32},
|
||||||
@ -115,10 +107,10 @@ local transform = {
|
|||||||
{v = "_a", param2 = 2},
|
{v = "_a", param2 = 2},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
{v = "_b", param2 = 1},
|
{v = "_c", param2 = 1},
|
||||||
{v = "_b", param2 = 2},
|
{v = "_c", param2 = 2},
|
||||||
{v = "_b", param2 = 3},
|
{v = "_c", param2 = 3},
|
||||||
{v = "_b", param2 = 0},
|
{v = "_c", param2 = 0},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
{v = "_b", param2 = 1},
|
{v = "_b", param2 = 1},
|
||||||
@ -127,10 +119,10 @@ local transform = {
|
|||||||
{v = "_b", param2 = 0},
|
{v = "_b", param2 = 0},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
{v = "_a", param2 = 3},
|
{v = "_d", param2 = 3},
|
||||||
{v = "_a", param2 = 0},
|
{v = "_d", param2 = 0},
|
||||||
{v = "_a", param2 = 1},
|
{v = "_d", param2 = 1},
|
||||||
{v = "_a", param2 = 2},
|
{v = "_d", param2 = 2},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -449,15 +441,23 @@ function doors.register(name, def)
|
|||||||
def.mesh = "door_b.obj"
|
def.mesh = "door_b.obj"
|
||||||
minetest.register_node(":" .. name .. "_b", def)
|
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 .. "_a"] = true
|
||||||
doors.registered_doors[name .. "_b"] = true
|
doors.registered_doors[name .. "_b"] = true
|
||||||
|
doors.registered_doors[name .. "_c"] = true
|
||||||
|
doors.registered_doors[name .. "_d"] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
doors.register("door_wood", {
|
doors.register("door_wood", {
|
||||||
tiles = {{ name = "doors_door_wood.png", backface_culling = true }},
|
tiles = {{ name = "doors_door_wood.png", backface_culling = true }},
|
||||||
description = S("Wooden Door"),
|
description = S("Wooden Door"),
|
||||||
inventory_image = "doors_item_wood.png",
|
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 = {
|
recipe = {
|
||||||
{"group:wood", "group:wood"},
|
{"group:wood", "group:wood"},
|
||||||
{"group:wood", "group:wood"},
|
{"group:wood", "group:wood"},
|
||||||
@ -470,7 +470,7 @@ doors.register("door_steel", {
|
|||||||
description = S("Steel Door"),
|
description = S("Steel Door"),
|
||||||
inventory_image = "doors_item_steel.png",
|
inventory_image = "doors_item_steel.png",
|
||||||
protected = true,
|
protected = true,
|
||||||
groups = {cracky = 1, level = 2},
|
groups = {node = 1, cracky = 1, level = 2},
|
||||||
sounds = default.node_sound_metal_defaults(),
|
sounds = default.node_sound_metal_defaults(),
|
||||||
sound_open = "doors_steel_door_open",
|
sound_open = "doors_steel_door_open",
|
||||||
sound_close = "doors_steel_door_close",
|
sound_close = "doors_steel_door_close",
|
||||||
@ -485,7 +485,7 @@ doors.register("door_glass", {
|
|||||||
tiles = {"doors_door_glass.png"},
|
tiles = {"doors_door_glass.png"},
|
||||||
description = S("Glass Door"),
|
description = S("Glass Door"),
|
||||||
inventory_image = "doors_item_glass.png",
|
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(),
|
sounds = default.node_sound_glass_defaults(),
|
||||||
sound_open = "doors_glass_door_open",
|
sound_open = "doors_glass_door_open",
|
||||||
sound_close = "doors_glass_door_close",
|
sound_close = "doors_glass_door_close",
|
||||||
@ -500,7 +500,7 @@ doors.register("door_obsidian_glass", {
|
|||||||
tiles = {"doors_door_obsidian_glass.png"},
|
tiles = {"doors_door_obsidian_glass.png"},
|
||||||
description = S("Obsidian Glass Door"),
|
description = S("Obsidian Glass Door"),
|
||||||
inventory_image = "doors_item_obsidian_glass.png",
|
inventory_image = "doors_item_obsidian_glass.png",
|
||||||
groups = {cracky=3},
|
groups = {node = 1, cracky=3},
|
||||||
sounds = default.node_sound_glass_defaults(),
|
sounds = default.node_sound_glass_defaults(),
|
||||||
sound_open = "doors_glass_door_open",
|
sound_open = "doors_glass_door_open",
|
||||||
sound_close = "doors_glass_door_close",
|
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.
|
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
|
a locked door=una porta chiusa a chiave
|
||||||
Wooden Door=Porta di legno
|
Wooden Door=Porta di legno
|
||||||
Steel Door=Porta d'acciacio
|
Steel Door=Porta d'acciaio
|
||||||
Glass Door=Porta di vetro
|
Glass Door=Porta di vetro
|
||||||
Obsidian Glass Door=Porta di vetro d'ossidiana
|
Obsidian Glass Door=Porta di vetro d'ossidiana
|
||||||
Owned by @1=Di proprietà di @1
|
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
|
Acacia Wood Fence Gate=Cancello della recinzione di legno d'acacia
|
||||||
Jungle Wood Fence Gate=Cancello della recinzione di legno della giungla
|
Jungle Wood Fence Gate=Cancello della recinzione di legno della giungla
|
||||||
Pine Wood Fence Gate=Cancello della recinzione di legno di pino
|
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'
|
# Blender v2.76 (sub 0) OBJ File: 'door_a.blend'
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
mtllib door_a.mtl
|
mtllib door_a.mtl
|
||||||
o Cube_Cube.001
|
o door_a
|
||||||
v 0.499000 -0.499000 -0.499000
|
v 0.499000 -0.499000 -0.499000
|
||||||
v 0.499000 1.499000 -0.499000
|
v 0.499000 1.499000 -0.499000
|
||||||
v 0.499000 -0.499000 -0.375000
|
v 0.499000 -0.499000 -0.375000
|
||||||
|