1
0
mirror of https://github.com/minetest/minetest_game.git synced 2025-06-28 20:56:02 +02:00

Compare commits

..

105 Commits

Author SHA1 Message Date
3f064d5ed4 Merge remote-tracking branch 'upstream/stable-5' into nalc-dev 2020-07-18 11:48:46 +02:00
b3e660e897 Merge tag '5.3.0' into nalc-dev
5.3.0
2020-07-12 13:11:07 +02:00
cb2c416b51 Merge remote-tracking branch 'origin/stable-5' into HEAD 2020-07-09 22:15:23 +02:00
8c01a5b288 Add Indonesian translations (#2693) 2020-06-29 18:41:50 +02:00
7cac67f097 TNT centre node adheres to protection
Make sure tnt.boom() doesnt replace centre node when explode_centre is true and ignore_protection is false.

Fixes: https://github.com/minetest/minetest_game/issues/2663
2020-06-28 15:50:46 +02:00
0648252056 Update German translation 2020-06-28 15:50:00 +02:00
8855490b7f Update translation templates 2020-06-26 14:41:30 +02:00
3257780b32 farming: Update Spanish translation (#2701) 2020-06-25 12:35:36 +02:00
b2d0f0ac8d Update nodes papyrus can grow on, include default:dry_dirt (#2705)
Fixes papyrus not growing on savanna dirt.
Also updates the nodes papyrus can grow on, which were incorrect for a long time.
2020-06-21 23:24:56 +01:00
e8a7e75319 Make dry grass spread on default:dirt again (#2687) 2020-06-16 20:42:45 +01:00
d03d7e9bdc Change brake rail to red (#2692) 2020-06-12 23:37:23 +02:00
af045dcd8b sethome: Do not write empty homes file 2020-06-10 20:29:50 +02:00
6d2a897e1b creative: Update for compatibility with minetest.creative_is_enabled (#2691) 2020-06-07 00:15:35 +02:00
b1ab8d5123 Implement searching for translated names in creative inventory (#2675) 2020-06-05 14:29:34 +02:00
6e345cf136 Use node particles for TNT explosions (#2695) 2020-06-02 12:48:56 +02:00
e849d54572 carts: Fix item collection (#2689) 2020-05-29 22:54:47 +02:00
0662f96284 Reduce hud icons size to 12x12 pixels (#2669) 2020-05-28 11:12:15 +02:00
84da00acd4 Add node particles when leafdecay removes a node (#2686) 2020-05-25 15:56:23 +02:00
3452938c76 Carts: Re-add erroneously removed driver reset
carts:manage_attachment does not handle the driver value of the cart,
hence carts could not be used by another player until it's replaced.
2020-05-16 19:26:28 +02:00
b787fcf7e4 Carts: Reset player view and attachment table on death
Fixes #2681
2020-05-15 19:04:38 +02:00
e5a7af1c4a Add wild cotton plant in savanna as a source of cotton seeds (#2617)
Junglegrass is unchanged as a source of cotton seeds for now, but
probably should be removed as a source in future, as players get
used to the new source.
2020-05-14 23:49:17 +01:00
b3d91a487d Add new dry shrub texture by Extex101 (#2680) 2020-05-14 22:33:53 +01:00
16c950f688 doors: Update Italian translation (#2670) 2020-05-11 23:13:00 +02:00
e5b54c6ead Switch TNT explosions to use add_player_velocity (#2674) 2020-05-10 14:10:29 +02:00
3f42c6c243 Add oddly_breakable_by_hand to glass stairs and slabs 2020-05-10 13:37:37 +02:00
2fc9a68aa6 Merge remote-tracking branch 'upstream/stable-5' into nalc-dev 2020-05-09 01:07:25 +02:00
ef45a8e148 doors: Remove unnecessary nodebox and empty texture (#2662) 2020-05-04 19:20:01 +02:00
d88e551071 Fix cart inventory image rendering (#2666)
Before it was rendering the side on both the side and the front of the minetest.inventorycube
2020-04-30 19:51:39 +02:00
190f7fdac9 Add a missing article to the sign action message (#2651) 2020-04-29 21:11:21 +02:00
33eb7cee2a Fix flammable item entities crashing (#2659) 2020-04-24 21:12:40 +02:00
189d2d9fb1 Fix door model UV for open and close (#2372)
Introduce _c and _d door types to correctly render the texture faces for the open and closed state.
2020-04-24 21:04:00 +02:00
81c5b6b399 beds: Use player_api functions instead of default (#2654) 2020-04-23 22:19:58 +02:00
52c6921cb2 Make default:snow collisionbox half of nodebox height (#2647) 2020-04-14 19:09:24 +02:00
bd64188ee5 Override builtin item entity the portable way 2020-04-14 13:31:25 +02:00
fb18a5b20d Make default.chest.register_chest() usable for other mods (#2127) 2020-04-13 20:26:44 +02:00
ea4ce80f7c Make straw stairs usable as fuel (#2627) 2020-04-13 11:34:10 +02:00
36b2bcb5f3 Add Basic Fire Description (#2568) 2020-04-11 20:50:49 +02:00
695f98f213 player_api: Remove local variable (#2640) 2020-04-08 20:40:19 +02:00
545ec0741c Fix creative category sorting in certain cases 2020-04-08 17:25:09 +02:00
c1f41720fc Fix crash on TNT explosions if tnt is disabled 2020-04-08 17:24:10 +02:00
14a385d68c trees: Reduce local variables (#2637) 2020-04-07 19:36:03 +02:00
03c9aed221 Fire mod: Code cleanup, compress textures 2020-04-06 21:09:39 +01:00
720b24ed2d Weather mod: Tune cloud density variation
Previously, cloud density was too low at medium humidity.
Tune cloud density variation to match the default/classic value at
humidity midvalue 50.
Tune the lower limit of cloud density that occurs at extreme low
humidity.
Increase minimum cloud thickness to 2 nodes.
Add comments.
2020-04-06 21:05:07 +01:00
4243d28846 Clarify descriptions of dry grass, dry dirt 2020-04-06 21:03:57 +01:00
7d230fdbf8 Enable player animation when Right Click (#2622) 2020-04-06 15:22:08 +02:00
7fc7fa4843 Transform brick top texture to align bricks correctly (#2607) 2020-04-06 15:19:52 +02:00
05fad37b3c Sort items into correct categories (#2612) 2020-04-06 15:15:50 +02:00
dcb3df0a38 Merge remote-tracking branch 'origin/stable-5' into HEAD 2020-04-05 18:48:33 +02:00
19d903e8b3 Met à jour les sons des pas dans la neige 2019-12-23 19:32:05 +01:00
721c598fbd Merge branch 'stable-5' of yunohost.local:minetest/minetest_game into nalc-dev 2019-12-23 19:08:11 +01:00
0a9e24622f Merge branch 'master' of https://github.com/minetest/minetest_game into stable-5 2019-10-12 15:53:20 +02:00
a0c658f4d1 Merge branch 'stable-5' into nalc-dev 2019-04-07 17:57:18 +02:00
9585eef042 Merge branch 'stable-5' of https://github.com/minetest/minetest_game into stable-5 2019-04-07 17:38:55 +02:00
8678265125 Dungeon loot: Avoid empty 'if' branch to satisfy lua check 2019-03-31 22:26:33 +02:00
df387e2394 Dungeon loot: Don't crash on unknown items
fixes #2228
2019-03-31 22:26:32 +02:00
2db0287652 Merge remote-tracking branch 'github/stable-5' into nalc-1.1-dev 2019-03-24 15:53:23 +01:00
806b29c2a1 Add food groups to blueberries (#2335) 2019-03-22 19:20:36 +00:00
3aa1117f4a Changements des bruitages du mod default par ceux de MFF. 2018-09-21 22:17:19 +02:00
630f24e747 Remplacement du nom du jeux. 2018-09-21 20:27:20 +02:00
d6a66860af Prevent divide by zero (#2106)
This forces all explosions to damage entities within the 1 node
range. If that needs to be disabled, the damage_radius needs to
be set to 0.
2018-05-18 12:50:47 +02:00
6d850f23a5 Flower spread ABM: Optimise
Match maximum spread density to maximum mapgen density for flowers.
Place 3 flora nodes at once instead of 1.
Change ABM chance value to 300 to match previous spread rate.
ABM becomes 3 times less intensive.
2018-05-18 12:50:47 +02:00
2c1af0861f Doors: Avoid crash on nil player in 'can dig door' 2018-05-18 12:50:47 +02:00
d2ae721235 Stairs: unbind table groups (#2036)
Unbind table groups for base block, stairs, slabs.
2018-05-18 12:50:18 +02:00
01db55cee5 default:dirt_with_snow: Re-add to soil group
Previously, saplings were not growing if the dirt they are on turned to
'dirt with snow' before growth.
Also for consistency with other dirt nodes.
2018-05-06 20:44:30 +02:00
4ba2b5179e Furnace: Fix being able to cook items without enough fuel
This was triggered when too much time had elapsed when timer was called.
Also, fix timer resolution giving free fuel time.
2018-05-06 20:44:30 +02:00
a5092c0df6 creative: Add missing tooltips. 2018-05-06 20:44:30 +02:00
575c098bae Book textures: Reset colour profiles to remove warnings 2018-05-06 20:44:22 +02:00
cddd59b578 Book textures: Replace with more original textures 2018-05-06 20:40:45 +02:00
7a4b1e0ce1 Default: Make burntimes more rational and consistent 2017-12-05 21:24:02 +01:00
0216fa08ec Add nil checks for placer 2017-11-19 23:03:38 +01:00
ca3e807d35 Creative: Make the placenode registration check for non-player placers 2017-11-19 23:03:38 +01:00
ca38bb2390 Creative: Make handle_node_drops override work for non-player diggers 2017-11-19 23:03:38 +01:00
7d07c52d09 Books: Convert \r to \n
Some files or editors may use \r instand of \n like notepad++. If you copy
text written in notepad++ and pasted into the book. The book will only have
one page.
2017-11-19 23:03:38 +01:00
532013a032 Creative: Cache inventory items on load 2017-11-19 23:03:38 +01:00
a52622669f TNT: Add tnt.boom defaults
This adds def, def.radius and def.damage_radius defaults to the
tnt.boom() function if they aren't specified on call.
2017-11-19 23:03:38 +01:00
ce5e668681 Bones: Return bones when taking the last ItemStack 2017-11-19 23:03:38 +01:00
6530fa914b Flowers: Add waterlily right-click checks
Check for on_rightclick functions of nodes when holding a waterlily.
2017-11-19 23:03:38 +01:00
86eb0e1617 Sfinv: Remove possibility of infinite loop when homepage doesn't exist 2017-11-19 23:03:38 +01:00
93fb9b36ce Sfinv: Rename navigation tabs to reduce chance of a conflict 2017-11-19 23:03:38 +01:00
09e3505ea1 Chests: Fix locked chest protection against explosions (#1886)
Fixes #1885
2017-11-19 23:03:38 +01:00
cecbfc1676 Chests: Fix open chest after player leave (#1884)
This should fix the chest staying open when a player disconnects while inside.
2017-11-19 23:03:38 +01:00
fba6f6a4cf TNT: Add explode_center flag
Add 'explode_centre' flag which when false explodes as normal and when true runs on_blast on centre node as well as dropping items.
2017-11-19 23:03:38 +01:00
6053456af1 Mushroom spread: Optimise and make overridable
Move mushroom spread ABM action into a global and overridable function.
Optimise spread code.
Reduce spread range to reduce spread through walls.
2017-11-19 23:03:38 +01:00
cc2f75b2f9 Register fence: Allow setting nodedefs to 'false' 2017-11-19 23:03:38 +01:00
b6ef71c92e TNT's tnt:boom cleanup (#1868)
The tnt:boom node doesn't actually need the on_construct and on_timer functions to remove the node after 0.4 seconds as the tnt_explode function already does this beforehand.
2017-11-19 23:03:38 +01:00
876da2fbc6 Beds: Do not crash when placing in an unknown node 2017-11-19 23:03:38 +01:00
ea45ca57a5 Lava cooling: Increase interval to 2
An excessive load has been reported caused by the node searching, so even
when no lava is present.
2017-11-19 23:03:34 +01:00
6fa3ebfa75 Carts: Check for last pathfinder predition too Minor fix to reduce cart jitter slightly 2017-11-19 22:57:28 +01:00
efe6fb6dfb TNT: Only burn visually connected powder (#1857) 2017-11-19 22:57:28 +01:00
1aeb2baa91 Creative: Prevent unauthorized item access (#1840) 2017-11-19 22:57:28 +01:00
e4d6425846 Correct farming/stairs dependency (#1838) 2017-11-19 22:57:28 +01:00
81f885795d Crafting: Remove duplicate reversed recipes (#1777)
For axes and hoes only use one recipe that matches the appearance of the texture and in inventory.
2017-11-19 22:53:53 +01:00
f3e29bc2cc Saplings: Reduce grow time to ABM equivalent
Previous times were chosen using statistical maths, but reports suggested
this was too long.
I tested by timing an ABM acting on 100 nodes, with interval and chance equal
to the old sapling ABM.
50 at 4m59s.
99 at 24m58s.
100 at 26m58s.
So choose a grow time between 5 and 25 min for tree and bush saplings.
If 'can grow' is false at grow time the timer is reset to 5 min.
2017-11-19 22:53:53 +01:00
3a72f7b84b Add backface_culling to open chests and fencegates 2017-11-19 22:53:53 +01:00
Foz
20bd4560f8 TNT: Track TNT owner in metadata for protection mods
It is useful for protection mods to know who owns an exploding
TNT block. This allows the blocks destroyed by the TNT to be
limited to the same ones the owner could destroy without using
TNT.

TNT placed within a protected area by the area owner, and later
ignited by another player will destroy within the protected area
nodes the igniter may not otherwise be able to interact with. Any
player could significantly increase the size of an explosion by
placing more TNT in an adjacent unprotected area if the original
TNT block was placed withing 1 node of such a boundary. This
feature sounds dangerous, but we are talking about TNT. Players
should use it carefully.
2017-11-19 22:53:53 +01:00
8991b9fe54 Carts: Do not connect rails with gunpowder (#1812) 2017-11-19 22:53:53 +01:00
aea6c5dd1d Stairs: Add backface culling to stair meshes
If backface culling is not specified for a tile in 'images' it is set to true.
Slabs already have backface culling due to being defined as nodeboxes (which
are then converted to meshnodes).
2017-11-19 22:53:53 +01:00
da41caca66 Chests: Check 'def' of node above chest to avoid crash
In 'chest_lid_obstructed(pos)' check for nil 'def' to avoid a crash caused by
an unknown node above the chest.
2017-11-19 22:53:14 +01:00
103af98864 Books: Also limit the max size of the title
This limits the max size of the full title of the book to `80` letters and
the size of the part thats displayed in the tooltip to `35` letters.
2017-11-19 22:53:14 +01:00
26606b0520 Books: Limit the size of books
Really large books just waste hard drive space and the engine is not designed to
handle that much data in item metadata, this can cause strange things to happen.
2017-11-19 22:52:00 +01:00
706844e8bf Books: Add nil value checks to the book formspec handler 2017-11-19 22:52:00 +01:00
a56274c230 Stairs: Use one recipe matching inventory appearence
No longer have 2 recipes for stairs, choose the one that matches the appearence
in inventory (stair rising toward the right).
Helps to reduce recipe count now that an increasing number of stairs are
being registered.
2017-11-19 22:52:00 +01:00
3512226867 Default: Revert "Default: Shorter and better ABMs"
This reverts commit e523c3a296 to re-enable
the overriding and redefinition of these global functions.
2017-11-19 17:16:32 +01:00
d5b9fee6fe Merge 0.4.16 into stable-0.4 2017-06-03 17:22:59 -04:00
437860feff Merge tag '0.4.15' into stable-0.4
0.4.15
2016-12-22 23:00:57 +01:00
144 changed files with 1184 additions and 369 deletions

View File

@ -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

View File

@ -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

View File

@ -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)

View 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

View File

@ -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=

View File

@ -0,0 +1,3 @@
# textdomain: binoculars
Binoculars=Binokular
Use with 'Zoom' key=Pakai dengan tombol 'Zum'

View 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

View 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

View 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

View File

@ -0,0 +1,4 @@
# textdomain: butterflies
White Butterfly=Kupu-Kupu Putih
Red Butterfly=Kupu-Kupu Merah
Violet Butterfly=Kupu-Kupu Ungu

View File

@ -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

View 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)

View File

@ -1,6 +1,6 @@
# textdomain: carts
Cart=
(Sneak+Click to pick up)=
Rail=
Powered Rail=
Brake Rail=
Cart=
(Sneak+Click to pick up)=

Binary file not shown.

Before

Width:  |  Height:  |  Size: 684 B

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 618 B

After

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 660 B

After

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 698 B

After

Width:  |  Height:  |  Size: 434 B

View File

@ -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.

View File

@ -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)

View 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

View File

@ -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=

View File

@ -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

View File

@ -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",

View File

@ -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
})

View File

@ -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

View File

@ -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.

View File

@ -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

View 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

View File

@ -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=

View File

@ -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

Binary file not shown.

BIN
mods/default/sounds/default_break_glass.2.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_break_glass.3.ogg Normal file → Executable file

Binary file not shown.

Binary file not shown.

BIN
mods/default/sounds/default_cool_lava.1.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_cool_lava.2.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_cool_lava.3.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_dig_choppy.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_dig_cracky.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_dig_crumbly.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_dig_dig_immediate.ogg Normal file → Executable file

Binary file not shown.

Binary file not shown.

BIN
mods/default/sounds/default_dirt_footstep.1.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_dirt_footstep.2.ogg Normal file → Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mods/default/sounds/default_dug_node.1.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_dug_node.2.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_glass_footstep.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_grass_footstep.1.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_grass_footstep.2.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_grass_footstep.3.ogg Normal file → Executable file

Binary file not shown.

Binary file not shown.

BIN
mods/default/sounds/default_gravel_footstep.1.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_gravel_footstep.2.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_gravel_footstep.3.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_gravel_footstep.4.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_hard_footstep.1.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_hard_footstep.2.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_hard_footstep.3.ogg Normal file → Executable file

Binary file not shown.

Binary file not shown.

BIN
mods/default/sounds/default_metal_footstep.1.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_metal_footstep.2.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_metal_footstep.3.ogg Normal file → Executable file

Binary file not shown.

Binary file not shown.

BIN
mods/default/sounds/default_place_node.1.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_place_node.2.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_place_node.3.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_place_node_hard.1.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_place_node_hard.2.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_sand_footstep.1.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_sand_footstep.2.ogg Normal file → Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

0
mods/default/sounds/default_snow_footstep.1.ogg Normal file → Executable file
View File

0
mods/default/sounds/default_snow_footstep.2.ogg Normal file → Executable file
View File

0
mods/default/sounds/default_snow_footstep.3.ogg Normal file → Executable file
View File

0
mods/default/sounds/default_snow_footstep.4.ogg Normal file → Executable file
View File

BIN
mods/default/sounds/default_wood_footstep.1.ogg Normal file → Executable file

Binary file not shown.

BIN
mods/default/sounds/default_wood_footstep.2.ogg Normal file → Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mods/default/sounds/lava.ogg Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
mods/default/sounds/waterfall.ogg Executable file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 B

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 279 B

View File

@ -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)

View File

@ -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",

View 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

View File

@ -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

View File

@ -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

Some files were not shown because too many files have changed in this diff Show More