Commit Graph

1249 Commits

Author SHA1 Message Date
sfan5 b25317fc64 Remove set_inventory_formspec in default, remove delay in sfinv 2017-05-18 09:54:18 +01:00
Vanessa Ezekowitz d104b9b10f Chest: Redo new chests to use single-tile textures where possible
This keeps the filenames the same, but adds a new "inside" double texture
for the open chest.
Use regular drawtype for closed chest and delete the "cube.obj" model.
X-flip the right-side texture for the closed chest.
2017-05-18 09:45:56 +01:00
ezhh 758d5010b8 Fire: Disable fire by default in multiplayer 2017-05-15 17:39:59 +01:00
tenplus1 63b3542d00 Chests: Revert inventory name
Revert the new 'default:game' inventory back to the old 'main' and use the
lbm to restore the contents of the chest.
Change the name of the conversion LBM to ensure it is run again on already
converted chests.
2017-05-15 13:47:03 +01:00
cx384 5bd44c21ef Change the selection_box of bush stems (#1733)
This is needed because you can't place a node above a bush stem when you are pointing at the bush stem.
2017-05-13 12:49:04 +02:00
Auke Kok c7d558c09e Chest open model: UV map fix.
The back side had a UV mapping issue which caused the bottom
rear part to "shrink" when opened.
2017-05-07 20:47:17 -07:00
Auke Kok 55f81d0802 Fix nil deref issue with people hitting chests too often. 2017-05-07 20:47:17 -07:00
SmallJoker a533434b58 Chests: Keep old textures for mod compability
Prevents generating ugly looking dummy images for mods that weren't updated yet.
2017-05-07 20:46:49 -07:00
Ezhh 08706313f4 Add option to disable lavacooling (#1726) 2017-05-07 18:25:53 +02:00
sfan5 6737952fbf Fix merging mistake (crash in "stairs") 2017-05-01 21:26:10 +02:00
Tim 519d166ce3 Stairs: Add snowblock and ice stairs and slabs 2017-05-01 19:48:54 +01:00
Fernando Carmona Varo be9121214c TNT: Gunpowder (and tnt.burn) will trigger the on_ignite of nodes
The previous behaviour is kept as fallback for compatibility, for when the on_ignite
is not defined in the node.
2017-05-01 19:38:38 +01:00
Auke Kok 011ad78b42 Improve Chest appearance - opening chests.
Adds a mesh model that appears when a chest is opened. The chest
stays visibly open as long as the player keeps it open. When the
player closes the formspec, the chest returns back to the closed
shape. While opening and closing, a sound plays.

A second person inspecting the chest will trigger a second sound
open. However, only after the last player closes the chest, does the
chest actually visually close and is the sound close played. This
keeps mesh updates to a minimum.

While it's possible that a server shutting down may cause chests
to remain open, this does not affect the chests' working matter,
and opening or closing them should fix them.

Old chests are converted to the new style by LBM. I previously
had them converted on open but this was unreliable, and LBMs
don't have that problem.

Open chests cannot be dug up. This prevents people from keeping
a chest open and digging it out as well, since closing a chest
would place a chest back (swap) at the spot. We could protect
against this, but it still messes up the client and causes a lot
of "missing node inventory" error messages otherwise. It's
unlikely but possible that a player lagging out causes a chest
to stay "open" and thus unremovable by digging, but there are
other ways of dealing with that - a server restart fixes that
issue.

If the lid of the chest is obstructed, the sounds continue to play,
but the lid isn't opened. Obstructed means that a node is present
above the chest lid, however, we ignore several node types like signs,
torches (not 3d) and wallmounted nodeboxes (typically signs) since
they don't pose any major obstruction in almost any case, and are
typically found above chests. Additionally, the selection box of the
opened chest does not include the lid, and so one can still interact
with e.g. a sign behind an open lid.

Due to the fact that chests now have 7+ textures, we can no longer
use materials (limit: 6) to texture the chest, and so there is now
a single UV mapped image that applies both to open and closed chests.
While this does mean texture pack makers need to create it, this
is extremely simple and consists of a simple cut'n'paste over the
template and should be really easy to do. Only one texture file is
now then used for both open and closed chests.
2017-05-01 19:36:35 +01:00
Auke Kok 4ec0fd974b Doors: place sound when placing a door.
Due to door items being the thing that's placed, we need to
explicitly play a sound when placing a door.

Fixes #1363
2017-04-28 21:52:59 -07:00
Auke Kok 67b13a5942 Fix books getting erased on page button use.
Changing the book page caused the entire itemstack meta to
get wiped due to improper calling of meta:from_table().

Fixes #1711
2017-04-28 21:52:39 -07:00
Auke Kok ae7206c006 Remove dye craft recipe conflict.
We have enough gray recipes, but brown is more difficult.

Fixes #1710
2017-04-26 20:19:59 -07:00
rubenwardy 2917562728 Fix owner not being checked on write to book 2017-04-27 02:28:23 +01:00
paramat c2d1a5ed4b Tin: Tune mapgen, bugfix, fix texture credits
Previously i had matched ore density to moreores, but this density was
too high and out of balance with MTGame, reduce density to be similar
to copper ore.
The 2 levels of underground ore were overlapping, fix.
Textures are actually by kilbith, update credits.

Also credit kilbith for bronze, copper, gold and steel blocks, credits
had not been updated at the time.
2017-04-23 23:05:31 +01:00
paramat 4d9fd7ad61 Textures: Reduce contrast of snow ripples 2017-04-23 23:05:31 +01:00
Dániel Juhász 24559d012e Creative: Automatic item colorization for creative mode 2017-04-23 23:05:06 +01:00
paramat 2668619638 Ores: Add tin ore, lump, ingot and block
Use Calinou's textures from moreores mod.
Craft bronze from tin and copper instead of steel and copper.
Match ore density to the moreores mod but start ore at a depth of
y = -32 to be part of the depth progression of other ores.
2017-04-20 19:55:05 +01:00
upsilon 6335525757 Doors: Ignore permission check if player parameter is omitted
As written in game_api.txt.
2017-04-20 19:54:27 +01:00
octacian c54a7e882f Keys: Move skeleton key to craftitems.lua
Commit 73d61cbb103415c9a3970eaf2c48aeadabfff828 makes skeleton keys
craftitems rather than tools, warranting the move from tools.lua
to craftitems.lua.
2017-04-20 19:51:51 +01:00
octacian 701abc2d2f Keys: Allow skeleton keys to be stacked
Allow skeleton keys to be stacked by converting them to craftitems and
adding a few lines of code to add a new itemstack to the inventory with
the new key or drop it at the player position if the inventory is full.
2017-04-20 19:50:34 +01:00
Thomas--S 98216810ef nodebox -> node_box
Seems like this was a typo
2017-04-12 18:39:42 -07:00
paramat a57d2db54a Bushes: Add saplings
Bush saplings grow in half the time of tree saplings.
Bushes do not need 'from sapling' schematic variants because only the
stem node is force-placed in the mapgen schematic, so only the sapling
is force-replaced.
Bush leaves drop saplings with a rarity that ensures at least 1 sapling
per bush on average.
2017-04-12 17:18:50 +01:00
paramat d68d2c08ef PB&J Pup: Remove mod
Also delete nyancat API documentation from game_api.txt.
2017-04-12 17:18:35 +01:00
MarkuBu e6d0d775e3 Stairs: Improve stair and slab rotation on placement
Slabs are placed horizontal instead of vertical, even if they are
placed on a wall.
Slabs are rotated automatically if they are placed to another slab,
no matter which material.
Slabs are placed at the lower position if the placer points into
the lower half of the pointed node and to the upper position if
pointed to the upper half.
Stairs are placed normal if the placer points to the lower half of
the pointed node and rotated upside down if pointed to the upper half.
2017-04-11 08:33:30 +01:00
Alex Ford 8d43b984fc Screwdriver: Allow non-native rotations if supported by targeted node
This also allows custom actions (such as using the screwdriver as a wrench).
2017-04-11 03:58:13 +01:00
LNJ fe021281e6 Textures: Replace aspen leaves texture with BlockMen's 2017-04-11 03:57:44 +01:00
paramat 9e4f0d3689 Leafdecay: Do not restart aready running timers 2017-04-11 03:57:07 +01:00
paramat acfd58cdeb Carts: Make rail recipes more generous
As part of making vertical travel easier to reduce reliance on
sneak ladders.
Calculate using cubic pixels of steel.

A steelblock is 16^3 = 4096 cubic pixels steel.
6 ingots is 6/9 steelblocks.
A rail is a 2*2*16 pixel length of steel, 64 cubic pixels steel.
6 ingots produces 2*21 rails = 21 rail nodes.
Choose 18 for an even number that is a multiple of ingot number.

Replace the stick with 2 wood in the recipe to be closer to the amount
of wood that would be needed for 20*4 sleepers.

Replace 2 mese crystal fragments with 1 mese crystal to
compensate for the larger number of nodes returned. The result
is the recipe is much more generous with steel usage but slightly
less generous with mese usage, keeping power rail cost reasonably high.

Replace 2 coal lumps with 1 for a similar recipe to power rails.
2017-04-11 03:57:01 +01:00
SmallJoker b377aaa50d doors: Fix craftitem not listed in inventory (#1683)
Fixes bug caused by b847888
2017-04-02 10:01:01 +02:00
paramat 5fe831ed13 Carts: Remove '+' added in commit 077316b 2017-03-30 04:24:29 +01:00
paramat 2f46103ff8 Glasslike_framed nodes: Add 'glasslikeliquidlevel' paramtype2 2017-03-30 04:24:23 +01:00
zaoqi 077316b4cd Use creative.is_enabled_for for creative mode if possible (#1558) 2017-03-29 21:02:26 +02:00
cx384 b847888cb7 doors: add groups to the door craftitem 2017-03-29 20:40:56 +02:00
upsilon 7c42c41170 doors: record protection violation if it cannot be dug 2017-03-26 03:06:44 +01:00
paramat 08eec2beb7 Flora spread: Re-enable dry shrub replacing flora in desert sand
Flora is converted to dry shrub in desert sand and silver sand.
No conversion in sand to preserve sand dune grasses.
Dry shrubs do not spread so this conversion, used by players, is the
only way to generate them.
2017-03-26 03:06:37 +01:00
Auke Kok 9b45e7b3e9 PB&J Pup.
Replace possibly trademarked artwork with royalty free and
OK for commercial use artwork.

The Pup appears by default but does not alias the Nyan Cat nodes
away. For that you will have to enable the setting. A settingtypes.txt
is provided to make that really easy. This allows people to get
an out-of-tree mod and not have their Nyan nodes disappear.

The mod can also be disabled entirely this way for those who don't
want it.

There's some eatser eggs in here as well. Instead of making the
nodes burnable, they are edible, and make you bark and howl. And
perhaps something else too.
2017-03-26 03:05:57 +01:00
paramat 91182d6a9e Flora spread: Do not replace flora with dry shrub, only 'return'
If there is no group:soil node found below, do not replace flora with
dry shrub, this was breaking flower pots and other mods.
Originally, flora would only turn to dry shrub if in desert sand.
2017-03-22 22:30:35 +00:00
paramat 86fd616f3c Flora spread: Allow spread on rainforest litter. Other improvements
Use the soil group more instead of checking for multiple node names.
Remove 'neighbors' from ABM.
Turn any flora to dry shrub if on a non-soil, except when on default:sand
to avoid dune grasses being replaced.
Search for "group:soil" when searching for a position for the new flora
node, instead of searching for multiple node names, however do not spread
flora onto desert sand, which is in the soil group.

Remove default:dirt_with_snow from the soil group as it would be frozen
soil. It can be dug and placed to turn it into dirt (consider this some
extra work needed to make it cultivatable).
2017-03-20 00:14:56 +00:00
octacian 2a74032745 Books: Fix backwards compatibility issues
Commit c68b8274fe prevented books from
being copied in the crafting grid, and made it so that old books, though
seemingly successfully transferred to the new format, could not be written
to as the old data still persisted.
2017-03-20 00:13:31 +00:00
Auke Kok ecf160d93d Screwdriver: simplify logic, allow wallmounted rotation.
- Allow rotation of wallmounted nodeboxes (signs) since they are
  now rotating properly.
- Instead of testing `ndef` several times, do it once, correctly.
- Simplify exception logic for nodes that have `on_rotate` set.
- For simplicity, return itemstack, always.
- Remove a useless nil check.
2017-03-20 00:12:16 +00:00
Thomas--S 6a55e150af Doors: Fix wood/glass doors not opening or closing
Some code was lost during a rebase of a recently merged commit (73e4666).
2017-03-19 00:43:12 +00:00
paramat d2aae95c39 Leafdecay: Change Aspen radius back to 3
Although the new aspen tree schematic only requires a radius of 2 the
many existing aspen trees in a world require radius 3.
2017-03-17 05:52:06 +00:00
paramat 02921baa7a Junglegrass: Prevent seeding of dirt_with_grass
Previously you could place junglegrass on dirt to convert that dirt to
dirt_with_grass, but this is unsuitable now that rainforest has a
surface of dirt_with_rainforest_litter.
Remove junglegrass from the 'grass' group.
2017-03-17 05:52:06 +00:00
octacian 07e11427cf Keys: Fix crash when using unconfigured default:key
Since meta secret field is blank on any keys (default:key) obtained using
/give, the game will crash if you attempt to use one of these. This follows
along the principle that the game should never have any reason to crash.
2017-03-17 05:50:50 +00:00
paramat 68212967c0 Biomes: Add and auto-select mgv7 floatland biomes
A simple set of biomes for now: Ocean, coniferous forest, grassland,
sandstone desert.
Update biome lists for blob ores and decorations.

Make sandstone desert filler 1 node deeper to match other deserts.
2017-03-17 05:49:57 +00:00
Thomas--S 73e4666f28 Change doors to default.can_interact_with_node() 2017-03-16 09:11:20 -07:00
paramat bd4d2dff1c Farming: Add override for default:dirt_with_rainforest_litter 2017-03-15 22:22:21 +00:00
Auke Kok 61d7c43c83 Skeleton key: Change to use left-click (tool on_use)
Instead of right click, the skeleton key is now a true `tool`
in the sense that it's default left-click action is to create
a key for the locked object.

This is far better than the outcome of the patches we've done
where the only way to create a key for a locked item was to
use sneak+rightclick. Now keys are perhaps a bit more sensible,
left for making keys, right for opening stuff with keys.

Fixes #1625
2017-03-15 22:22:21 +00:00
SmallJoker 780f991a87 Sapling_on_place: Restore after_place_node() calls 2017-03-15 22:18:50 +00:00
Auke Kok 1c78fd346d Sethome: Migrate sethome mod to player attributes.
Migrates settings safely and evacuates the `homes` file
entirely over time.
2017-03-15 22:18:36 +00:00
Fixer da69fcdf91 TNT: Clarify new TNT receipe
Update readme.txt with new TNT crafting recipe.
2017-03-14 19:05:49 +00:00
paramat 37c81f70b0 Textures: New textures for silver sandstone nodes 2017-03-14 19:05:14 +00:00
Auke Kok 7b90044574 TNT: start fire nodetimers for created fire nodes.
Without this patch, any fire created(placed) by tnt explosions
will remain forever on the map.
2017-03-14 19:03:34 +00:00
SmallJoker b87ef5ccde Keys: Update default.can_interact_with_node to new item meta
Completes a forgotten update in 9d3a526
2017-03-12 12:20:31 -07:00
paramat 07a5fca432 Leafdecay: Register leafdecay for bush leaves 2017-03-12 10:20:26 +00:00
Auke Kok d5e19d70c2 Screwdriver: drop nodes if no longer attached.
This should be fairly cheap and pops off items if needed.
2017-03-12 10:20:19 +00:00
Dániel Juhász efb81d188e Correct rotation of attached nodes, and rotate colored nodes 2017-03-12 10:20:19 +00:00
Auke Kok 297192dd39 Screwdriver: use table lookup for facedir rotations.
The table was generated using the old code. A table lookup
should be faster than lots of math and branches.

Allows us to drop `nextrange()` as well.
2017-03-12 10:20:19 +00:00
Auke Kok f14b0a6ff5 Screwdriver: allow simple wallmounted rotation.
Allows rotating things like signs and torches. Axis rotation
rotates over all 6 faces, face rotation flips upside down to
flat on floor only, and of course in the 4 horizontal directions.

Made the code a bit more modular to account for different rotation
schemes. Should be easier to extend from here on to other needs,
and the functions can be reused by other mods for convenience.
2017-03-12 10:20:19 +00:00
paramat ad118ea98d Flint & steel sounds: Fix bugs caused by nil position
Usage and tool break sounds were played at 'pointed_thing.above' which
can be nil if not pointing at anything or at an entity. This caused
sounds to be played to all players on a server non-positionally.

Fallback to player pos for sounds if 'pointed_thing.above' is nil.

Replace 'pt' variable with 'pointed_thing' in 'register_tool'.
2017-03-10 19:30:18 +00:00
paramat c52ad140ae Mapgen: Use decoration sidelen 16 for jungletrees and junglegrass
Currently jungletrees and junglegrass use sidelen 80 for simplicity,
but this results in a more uneven distribution of decorations. A more
even distribution helps keep rainforest darker with a more unbroken
canopy.
This is also more consistent. 80 is based on the default mapchunk
size, all other decorations use sidelen 16 or smaller to divide into
any mapchunk size.
2017-03-10 19:28:43 +00:00
paramat 0f0dd0f6e8 Tree schematics: Alter jungletree, aspen, pine, appletree
Denser jungletree for darker rainforest:
Highest 'jungletree' nodes now prob 255.
Add a 5th lower branch layer.
Increase lower branch layer y-slice prob to 191.

Aspen:
Extend trunk upwards by 1 node to reduce leafdecay radius to 2.

Pine:
Make lower trunk 1 node longer so that lowest branches are more often
higher off the ground, also to make pines taller.

Appletree:
Make 2 opposite branches prob 255, the other 2 prob 127, to avoid
trees with 1 or 0 branches. Therefore also add random rotation.
2017-03-10 19:28:38 +00:00
paramat 1f6d633037 Ladder recipe: Make wooden ladder recipe more generous
Increase to 5 ladders from 7 sticks.
More generous to help with vertical travel.

Divide the log core volume of 14 * 14 * 16 cubic pixels by the volume of
a ladder node with two 2 * 2 * 16 side pieces and four 2 * 1 * 16 rungs
(cut down to length 14), to get 12.25 ladders per log.
The recipe of 7 stick items is 7 / 16 = 0.4375 logs.
Ladders per 7 stick items = 0.4375 * 12.25 = 5.36.
2017-03-07 06:43:44 +00:00
rubenwardy a16413f96c sfinv: Fix wrong tab being highlighted
Thank you to @ForbiddenJ for finding cause of the issue.
2017-03-07 06:43:18 +00:00
tenplus1 6d67badcac Screwdriver: Fix crash
If 'node_box' is nil 'node_box.type' causes a crash.
2017-03-07 06:37:33 +00:00
Diego Martínez 1d45b27c12 Add desert/silver sandstone-related blocks. (#1596)
Add desert and silver sand-related blocks, and stairs.
2017-03-06 19:03:30 -08:00
Diego Martínez 496521f4a1 Fix some warnings.
Also fixes the failing travis checks.
2017-03-05 09:27:53 +00:00
paramat 28ecb3b261 Dungeons: Use 'block' instead of 'brick' for nodebox stairs 2017-03-05 09:27:44 +00:00
octacian c68b8274fe Show title and author of book in description
Utilizes the new key-meta (as with nodes) and the ability to set the description of an itemstack with the `description` meta key. Includes code to convert old metadata to new key-meta.
2017-02-28 18:16:55 -08:00
Auke Kok 78c632ebd4 Allow interaction with nodes while wielding these items.
- beds
- boats
- carts
- key/skeleton key
- seeds

All these had on_place handlers that did not allow nodes with
an on_rightclick() handler to be used first (if not using
sneak). This code is taken from the torches mod and applied
everywhere.

This allows all these items to e.g. be inserted into the `frame`
mod's item frames.
2017-02-28 18:16:12 -08:00
paramat d1b132555b Biomes: New surface node for rainforest
Moist rainforest plant litter.
Textures by npx.
2017-02-28 05:32:19 +00:00
octacian 9d3a526324 Keys: Show owner in description
Utilizes several new features allowing the description of an item to be changed using the `description` meta key. This also moves keys from using the old single-value itemstack metadata system to the new node-like metadata system.
2017-02-27 19:00:14 -08:00
paramat bb18eeccaf Corals: Smaller, less dense reefs 2017-02-25 03:52:31 +00:00
paramat d5f1f964e3 Lavacooling: Return to chance = 2
Return to previous parameters interval = 1, chance = 2.
Compensates for the increase in default active block radius.
Large amounts of lava cooling at once is known to overload sound
creation, producing error messages.
2017-02-25 03:52:26 +00:00
paramat 1ec31d8472 Torches: Reduce light source level from 13 to 12
As part of the original plan for a new lightcurve.

With the old lightcurve lights were so dim all light sources had light
source level 13 or 14 to compensate, resulting in almost no difference
between torchlight and a maximum brightness light.

The new lightcurve makes all light sources effectively much brighter by
spreading visually-bright light further, torches are now slightly too
bright. So now we can reduce the light source level of torches while
actually making them effectively brighter than with the old lightcurve.
This also creates a desirable difference between torchlight and a
maximum-brightness light source.
2017-02-25 03:52:19 +00:00
MarkuBu 60e5b299af Leafdecay: Node timer based implementation, API
This implements a node-timer based leafdecay mechanism, and exposes
an API to use it in mods.

The API is documented in game_api.txt.

`default.register_leafdecay(leafdecaydef)`

`leafdecaydef` is a table, with following members:
{
	trunks = { "default:tree"}, -- nodes considered trunks
	leaves = { "default:leaves", "default:apple"}, -- nodes considered leaves
	radius = 3, -- activates leafdecay this far from the trunk
}

The algorithm will drop `leaves` items in the area if no `trunks` are found
in the `trunk_radius` sized area around the position of the leaf. If a node
listed in `leaves` has a group `leafdecay_drop > 0`, then the item is dropped,
otherwise the item is removed but not dropped.

The algorithm also implements a value `default.leafdecay_speed` (default
15) which can be modified to increase or decrease of the leaf decay. The
algorithm will vary the actual speed a bit to introduce randomness.

Leaf decay is randomized by 0.1 seconds to reduce the chance that
decay happens many times on the same second interval. This requires
nodetimer_interval to be set to values lower than 1.0 to have an
effect.

The leaves will decay between 2 and 10 seconds after digging the trunk,
and happen at non-integer second intervals.

-- The API was added by sofar.
2017-02-25 03:50:15 +00:00
Thomas--S 37dd910747 Globalize, rename and change the behaviour of has_locked_chest_privilege
* rename to default.can_interact_with_node()
* pass pos instead of meta
* change order of arguments
2017-02-21 10:17:12 -08:00
SmallJoker 89c45993ac Carts: Fix the rail table overwrite behaviour 2017-02-12 11:39:52 -08:00
paramat 0819d4bade Visual scale: Update plantlike nodes to post-bugfix values
Plantlike drawtype no longer applies 'visual scale' twice, so now we
use the actual scale factor desired.
Remove unnecessary 'visual_scale = 1.0' lines.
2017-02-12 01:27:34 +00:00
octacian f6dfa4a1cb Waterlily: Avoid z-fighting of base texture with water surface
Avoid z-fighting visible from below.
Raise the nodebox base 1/64th of a node.
2017-02-12 01:23:53 +00:00
rubenwardy e3dd3d19cd Add sfinv.set_page, plus other helper functions 2017-02-10 23:54:57 +00:00
Paramat 86849d9eec Default: Add nodebox mese post light usable as a growlamp (#1480)
Light level 14 to be able to grow plants.
3 returned from crafting with 1 glass node, 3 mese crystals and 1
wood plank.
Seamlessly placable on appletree wood fence posts.
2017-02-08 16:01:30 -08:00
Thomas--S c88c0a98fd Make drop logic work better for non-8-step-plants. (#1544)
Using @paramat's formula.
2017-02-08 15:59:25 -08:00
paramat 2e950ac61c Mapgen: Dedicated registrations for mgv6 blob ores
Now that biomes are being specified for blob ores we need a separate
set of blob ore registrations for mgv6 which has no Biome API biomes
defined.
Various minor improvements to mapgen.lua.
2017-02-02 17:20:53 +00:00
paramat 2b215848d8 Trees: Add 'snowy' group for pine sapling snow detection
Use the 'snowy' group in the 'is snow nearby' function instead of
default nodes. Often snow nodes are not from the default mod.
2017-02-01 17:51:44 +00:00
paramat e86955afae Creative: Cache creative mode setting 2017-02-01 17:51:35 +00:00
paramat d560f59a74 Ores: Add silver sand blob ore, relocate other blob ores 2017-02-01 17:51:22 +00:00
rubenwardy b06368adf2 Fix node drops not being added to inventory when not in creative mode 2017-01-27 19:48:59 +00:00
paramat 1dd9fdb530 Dungeons: Add mapgen alias for desert stone stairs 2017-01-26 17:56:16 +00:00
number Zero 38500da655 Stairs: Fix smooth lighting of stair mesh 2017-01-26 17:55:16 +00:00
rubenwardy bee5b316a8 Creative: Add creative.is_enabled_for 2017-01-26 17:54:45 +00:00
paramat ae426878d4 Sounds: Remove 'default_dig_crumbly' from leaves defaults table
Now that the missing 'default_dig_snappy' sound has been added we can
remove the dirt dig sound from the table. All nodes that use the
leaves defaults table have group 'snappy' so 'default_dig_snappy' now
becomes their default dig sound.
2017-01-22 07:47:04 +00:00
Martin Doege eb1805ea0a Textures: Strip color profiles from some textures
Removes the "iCCP: known incorrect sRGB profile" error messages on the
console when starting minetest_game by stripping offending color profiles.
2017-01-22 07:43:12 +00:00
Auke Kok 1104d571b0 TNT: Log explosions and player igniting tnt or gunpowder 2017-01-19 21:57:34 -08:00
Auke Kok 6dcf541f6e Revert "Doors: Remove ..." and "Doors: Allow the screwdriver to ..."
This reverts commit 5e4a6e8ac6, and
             commit 60cf3f85b6.

The original door API rewrite I posted had all rotation disabled using
the correct on_rotate() handler returning `false`. Two subsequent
changes attempting first to enable simple rotation and second disabling
that again changed the callback handler to a boolean `false`, which
is incorrect use in the screwdriver API, and actually allows rotation.

The proper way to disable rotation for facedir nodes it to use a full
callback handler that does `return false`.
2017-01-15 17:43:17 -08:00
paramat 1470b9df79 Tree log decorations: Replace lua tables with .mts files 2017-01-15 04:29:56 +00:00
Lars Hofhansl 8715b83ff0 Fire: Make explosions remove flames
TNT removes flammable nodes from the destruction radius and should
remove flames within it too because they lose their fuel and would
be removed by ABM later anyway.
2017-01-15 04:24:01 +00:00
Baptiste Pouget 57eb906047 Add support for custom bed sounds 2017-01-12 12:42:38 -08:00
Auke Kok df19b4eab0 Dye: Simplify recipes.
Create a simple triplet table (src1, src2, dst) for all the dye
recipes and group them logically, with a bit of explanation where
they actually come from.

This prunes a lot of recipes from the list, but the old list had a
ton of combinations that did not make any sense, as well as recipes
that were just gross approximations and duplicates, mixing the same
color with itself just to get the same color back, which just wastes
packets at logon.

The list has been checked to allow all colors created from the basic
dyes (flowers+coal) so that all colors can be crafted.
2017-01-11 23:53:44 -08:00
paramat c8b1671ef0 Default: Alter sand to sandstone recipe
Craft 4 default:sand to default:sandstone.

Previously, 4 group:sand was craftable to sandstone and sandstone was
craftable back into default:sand, allowing silver and desert sands to
be converted into incorrect colour sandstone and yellow sand.
2017-01-07 22:01:36 +00:00
paramat 96aac5ff5b Fire: Reduce flame light level to 13 2017-01-07 22:01:30 +00:00
rubenwardy cadc8b34d7 Add /killme chat command
Added as a new mod as it doesn't fit anywhere else.

This is a game play change, so it better suited to
Minetest Game rather than builtin

Fixes #857
2017-01-07 22:01:19 +00:00
rubenwardy 48ab62db88 Make doors place when shift is held instead of calling on_rightclick
Fixes #1364
2017-01-03 16:54:01 +00:00
paramat 42700a4b4b Default: More generous meselamp recipe
Require only 1 mese crystal instead of 3.
To make farming in dark locations easier.
To reduce and balance recipe ore cost.
2017-01-02 18:31:01 +00:00
SmallJoker 8bc93598c6 Papyrus, cactus: Require light level 13 for growth 2017-01-02 18:30:05 +00:00
DS-Minetest f07c4dcd83 Decrease the cost of gunpowder for trails
The cost of TNT remains the same
2017-01-01 23:41:04 +00:00
paramat 3c9d0893ee Boats: Avoid crash if boat pos over limit
If the boat pos is over limit, 'add entity' will not add an entity,
causing 'boat' to be nil.
2016-12-21 13:42:23 +00:00
paramat 12b1541971 Sounds: Edit some sound gains, mostly footsteps
I recently made glass footstep and dig gains too low, raise slightly.
Change dirt dug gain from above-maximum 1.5 to maximum 1.0.
Reduce gain of footsteps: stone, dirt, gravel, wood, metal
Raise gain of leaves footstep.
2016-12-17 20:02:40 +00:00
Auke Kok e5c5c2637e Furnace: Attempt to fix exploits
The fuel would remain active even if source went empty, giving
free cook time to newly inserted items. This patch is supposed
to stop this.
2016-12-17 20:01:46 +00:00
paramat 55a16cd2c6 Default: Add missing 'default_dig_snappy' sound
Some nodes with the snappy group (wool, glass pane, seeds) were missing
sound when dug with a sword.
Adding the sound causes it to be used for glass pane, so define a 'dig'
sound in the 'node sound glass defaults' table, use the footstep sound.
Adding the sound also causes it to be used for seeds which deliberately
have no dig sound, so add an empty sound override for seed dig.

Reduce the gain of the glass footstep sound which was excessively loud.

Add some freesound members to license.txt.
2016-12-13 03:15:30 +00:00
paramat 3e5852993d Carts: Stronger handbrake
Handbrake was barely noticeable and fairly useless.
Equalisng with brake rail deceleration makes it more intuitive to use
and easier to judge stopping distance.
2016-12-07 08:29:41 +00:00
HybridDog 4a5206e3a7 Furnace: Make furnaces work when unloaded
This is slightly modified after #1279 - the setting for furnace
timer was removed and hardcoded to 1.0s, which is the old furnace
timer interval.
2016-12-07 08:28:53 +00:00
paramat fed2151d70 Fire: Rewrite fire sound code
Previous code:
Used looped sounds without attaching them to objects or playing direct
to players.
The looped sounds are not 'stopped' when players leave the area.
These may be causing the bug where sounds are heard at extreme
distances.
Entering a world with already present flames results in silent flames.
Sounds are often played at a large number of points in a 6 node lattice.
A large fire is reported to cause a high load, disabling the sound code
is reported to help this.

New code:
Optional flame sound to not interfere with ambience mods.
Permanent flame now has sound.
For multiple flames, sound is positioned at the centre of all flames, and
has volume determined by flame number.
The original freesound 'large fire' recording was used to create 3 sounds
that play at random for a non-repetitive effect. At low volume it is
suitable for small fires.

Original sound files and sound function (as an empty function) kept
temporarily to reduce disruption.

Reduce gain of flame extinguish sound.
2016-12-07 08:28:08 +00:00
paramat 58038a7941 Snappy group: Remove beds and cactus from group 2016-12-05 01:41:41 +00:00
rubenwardy 0ff09e018d Add sfinv.get_homepage_name(player)
Also sets creative:all as default inventory page
Fixes #1423
2016-12-05 01:39:50 +00:00
paramat 7998de671f Default: Convert remaining indexed leaves to RGBA
Some GPUs cause visual bugs when mip-mapping is used with indexed textures
that use alpha. Because leaves are sometimes rendered opaque it is even
more important to keep these as RGBA to preserve the correct background
colour.
2016-12-04 06:36:05 +00:00
paramat fc791d80f0 Default/flowers: Improve papyrus and waterlily schematics
Papyrus:
Make base node dirt instead of dirt_with_grass. Formerly the exposed
dirt would change to grass but the new grass spread ABM now prevents that.

Waterlily:
Don't specify a water_source node in the schematic, as it may be used in
river water. It was not force-placed but should really be "air" prob = 0.
2016-12-04 06:36:05 +00:00
Napiophelios e67a60376f Xpanes: Improve bars texture 2016-12-04 06:35:39 +00:00
Auke Kok ea9c4012d5 Farming: Change wheat into # shaped plant
This changes the farming API such that any nodedef with paramtype2
and place_param2 are passed through to all the plant stages of the
farming plant.

This allows plants to use an alternative mesh for the plantlike
drawtype, and provide a bit of graphical variation in plants.

We enable this for wheat, using place_param2 = 3, which is the '#'
shaped plant mesh. If you would actually be able to give yourself
this plant in creative or through /give, you would also get the
same '#' shape.
2016-12-04 06:34:51 +00:00
Auke Kok d7f176dfd8 Torches: Make selection boxes consistent
This makes all the 3d torch selection boxes 1px oversized. Before,
they were inconsistently sized and too small for the upright torch.
2016-12-04 06:34:16 +00:00
Wuzzy c5f11d74d4 Default: Make Book with Text a furnace fuel 2016-12-03 02:18:15 +00:00
paramat 42afe679a7 Default / flowers: New biomes. Limit dirt blobs. Add corals, bushes
Biomes:
Add 'sandstone desert', 'cold desert', 'snowy grassland'.
Rename 'glacier' biome to 'icesheet' biome.
Rename non-swamp 'swamp' biomes to 'shore' biomes.
Remove 'sandstone grassland' biome.
Rename 'stone grassland' biome to 'grassland' biome.
Edit biome points for improved similarity to Whittaker classification.
Change 'tundra' to bare stone with snowblocks.
Make dirt 'swamp' / 'shore' less deep.

Ores:
Make dirt blob ore biome-specific, limit to dirt biomes.

Decorations:
Make mushroom noise spread match that of appletrees as originally intended,
to have mushrooms spawn in darker thicker forest areas.
Add coral reefs in warm oceans.
Add bushes and acacia bushes.
Jungletrees in deeper water for larger swamps.

Register flower mod decorations in singlenode mapgen for use by
minetest.generate_registered_decorations, as in default/mapgen.lua.
2016-12-03 02:18:06 +00:00
Napiophelios 0413cb67b8 Add Cobble Walls to Moss Growth ABM 2016-12-01 12:59:25 +01:00
paramat f06f66ccc2 Boats / carts: Fix and improve on_punch functions
Boats:
Previously, boats were not added to inventory in creative mode, fix.
In creative mode multiple boats will not be added to inventory.
Add comment.

Carts:
Set speed to 2 if punched by a non-player, to match the effect of a
player punch.
Add comments.
2016-11-30 02:44:44 +00:00
sfan5 04f045158f Avoid "leaking" creative inventories to other players 2016-11-28 13:43:02 +01:00
Auke Kok 4f32fd253c Fix ItemStack method call for keys.
Fixes (I hope) #1420 (bad method call).
2016-11-27 18:26:31 -08:00
paramat 0196c4793a Carts: Make rails 'is ground content = false' 2016-11-28 01:28:24 +00:00
paramat fa17fe31d6 Creative: Re-implement constant hand dig times, add comment 2016-11-28 01:28:24 +00:00
Diego Martínez 788ae97ba1 Carts: Take creative mode into account
This commit makes the carts mod not add the cart
item to the player's inventory if running with
creative mode and the player already has it.
2016-11-28 01:27:54 +00:00
SmallJoker 1a6ad498d7 Carts: Increase performance overall 2016-11-27 03:27:53 +00:00
SmallJoker 2effe40dc5 Carts: Improve readme file 2016-11-27 03:27:53 +00:00
SmallJoker 81f8c8aef8 Carts: Move entity definition to seperate file 2016-11-27 03:27:53 +00:00
paramat 9bbe7f99da Carts: Increase power rail acceleration to help climbs
This is partly a workaround for a bug.
Climbs with continuous power rails were failing often due to
unexplained losses of speed leading to a reversal of direction.
The lack of acceleration on climbs meant that lost speed was not
regained.
Keeping cart speed at maximum on climbs helps reduce the chance of
reversals.

This also allows players to slowly accelerate up to full speed on a
climb without needing a horizontal run-up to reach full speed first.
It may not be possible to build the horizontal sections needed, or,
if players are replacing a previous carts mod their track
constructions, bridges, tunnels etc. will often not have the
horizontal sections needed.
Players will also sometimes need to place and enter a cart on a slope
and be able to climb.
2016-11-27 03:27:53 +00:00
rubenwardy d42ae715b8 Sfinv: Add sfinv to allow tabs to be added to the inventory 2016-11-27 03:27:12 +00:00
paramat e837621537 Farming/fire: Add tool break sounds
Add tool break sounds to hoes and flint and steel.
Flint and steel: Reduce gain of use sound and only add tool wear
if not in creative mode.
2016-11-26 03:14:56 +00:00
Rogier fd87b04f3c Default: Several improvements of character model
- Improve arms attachment

  The arm bones were at an angle, so that the bones were difficult
  to orient correctly, as unintuitive combinations of angles
  would be needed to get the default orientation, or any other
  acceptable orientation. Moreover, a simple rotation of the arm,
  e.g. forward, would require all angles to be adapted, instead
  of just one.

  The ends of the arms bones were moved from touching the body, to
  the center of the arm, at an equal distance from the sides of the
  arm and the shoulder; the arm bone is now in the center of the arm.

- Fix body rotation

  The body was rotated 180° while the rest wasn't, leading to
  strange results when setting bone positions manually.

- Fix default rotation of limbs (manually positioning them in
  their default position would require an 180° rotation).
  Is is not know how this was fixed. Maybe just because the
  model was re-exported.

- The bone of the cape was moved to the center of the cape (it was
  at the edge). For some reason this fixed the 180° rotation of the
  cape when it was manually positioned (similar to previous issue).

The changes above fix most of the issues mentioned in #1376

- Add a player-model-specific workaround for the problem described in:
  https://github.com/minetest/minetest/issues/2813#issuecomment-198796927
  https://github.com/minetest/minetest_game/pull/1392#issuecomment-261669915

  During walking, attached tools would randomly switch hands. Walking also
  happens to be the only animation where the body does not move. Making the
  body move an imperceptible amount makes the issue disappear for the player
  model.

- Fix body vertex group: it no longer includes parts of arms and legs

Thanks to @stujones11 for these last two changes.
2016-11-25 03:03:48 +00:00
Auke Kok e4b1c93512 Keys: Allow easy sharing of access without commands
This code adds the key concept to minetest_game, and integrates it
with lockable nodes. Currently supported lockable items are the Steel
Door, the Steel Trapdoor, and the Locked Chest.

The goal of this modification is to introduce a fine-grained multi-
player permission system that is intuitive and usable without any
console or chat commands, and doesn't require extra privileges to
be granted or setup. Keys can also physically be conveyed to other
players, adding to gameplay and adding some personality that is
preferable to console commands or editing formspecs.

A skeleton key can be crafted with 1 gold ingot. Skeleton keys can
then be matched to a lockable node by right-clicking the skeleton
key on a lockable node, which changes the skeleton key to a "key".

Gold was chosen as it's currently a not-so very useful item, and
therefore it's likely that players have some, but aren't really
using it for any purpose.

This key can subsequently used by any player to open or access that
lockable node, including retrieving items from Locked Chests, or
putting items in them.

They key is programmed to fit only the particular locked node it is
programmed to. This is achieved by storing a secret value in both
key and locked node. If this secret value doesn't match, the key
will not open the locked node. This allows many keys to be created
for one chest or door, but a key will only fit one node ever. The
secrets are stored in node, and item meta for the key.

If a locked node is removed, all keys that opened it are no longer
valid. Even if a new door/chest is placed in exactly the same spot,
the old keys will no longer fit that node.

Keys can be smelted back in gold ingots if they are no longer useful.

The method of storing a secret in nodemeta and itemstackmeta is secure
as there is no way for the client to create new items on the server
with a particular secret metadata value. Even if you could possible
create such an itemstack on the client, the server does not ever read
itemstackmeta from a client package.

The patch adds an API that allows other nodes and nodes added by
mods to use the same keys as well. The method how to implement this
is described in game_api.txt. The mod should add 2 callbacks to it's
node definition. Example code is given.

Textures are from PixelBOX, thanks to Gambit.
2016-11-25 03:01:14 +00:00
Auke Kok 0bd2efcfc1 Merge 'torches' mod as default:torch.
This merges the current state of the well-maintained and tested
`torches` mod as I've maintained it for the last 6 months.

This started out as a thorough cleanup of 3D torches by blockmen,
where some of the initial code still remains.

The models were redone entirely from scratch and have been extensively
tested with dozens of animated textures converted with mcimport,
and look a lot better than the original 3D Torches mod.

The ceiling torch is retained and functional. The `wieldlight`
addition that the torches mod has was removed, since it relies
on wieldview to look decent. This can stay external mod code.

I've opted to move the torch nodes to a separate file. It's not
a lot of code but nodes.lua is already huge, and I wanted to
retain the copyright header and some of the readme.txt notes,
and this was the easiest way of doing it.

This code passes "default:torch" to nodes with on_rightclick,
fixing problems with itemframes. Essentially it has a more
elaborate item_place() routine to make sure we're not passing
the wall torch to nodes that may display it.

The ceiling torch is a separate model and not the same as the
floor model. That does mean that there are 3 models in this
mod.
2016-11-23 15:29:53 -08:00
paramat 09a229b412 Update 'nodeupdate()' to 'check_for_falling()' API 2016-11-22 05:55:36 +00:00
Auke Kok 208c9f4901 Make smoke puff sound mono
Stereo sounds are not played positionally, which should never
happen. Convert this track to mono to fix.
2016-11-21 21:23:50 -08:00
Thomas--S 55ab3a117d Farming: Add forgotten colon
This makes the itemstrings consistent over the whole file.
2016-11-21 03:19:47 +00:00
paramat ec95f47021 Default: Add water footstep sounds
Plus one silent sound to break repetition 'default_water_footstep.4.ogg'.
2016-11-21 03:19:37 +00:00
Auke Kok 1e691c4429 Carts: Merge boost_cart as "carts" mod
This is all the working code from SmallJoker's boost_cart, poored into
a more suitable form for minetest_game.

- Mesecons and moreores stuff was removed entirely.
- Textures were all renamed and moved out of default/
- Updated license, readme.txt, attribution
- Changed code license to MIT, left artwork at CC0
- removed default:rail and made aliases for it
- :carts:rail is now carts:rail.
- localized entity def
- removed copper rail entirely
- startstop rail was removed, as well as detector rail
- remodeled to b3d using stujones11 excellent blend model, but sizes
  of cart adjusted to make pixel sizes consistent (0.625) everywhere.
- slightly more complex texture map for the cart (front/side visibly
  different)
- rail parameters are passed as a separate def table, and stored in
  a private list. This avoids having to call `get_meta` on every
  node. In return, we need the node name, though.
- adds metal sounds (based on default metal sound function) and
  cart moving sound.
- reduced cart speeds to max 7, 5 by pushing.
- Added on_step() rail event handler, gets called when a cart is on
  a rail.
- Added various rebased updates from upstream (thanks Krock)
- Included a fix that removes the 'reverse jiggle' when stopping.
- Included reworked textures by sofar.

The mod namespace is still public, but I'm NOT declaring it an API. I'd
rather see it localized instead, for now. Any public interface in this
code is *experimental* at best, and should be considered non-stable and
unsupported for now.
2016-11-21 03:15:04 +00:00
Auke Kok 75caa9167c Fix whitespace errors to silence luacheck.
Currently all minetest_game PR's are failing travis since the
upstream luacheck now also warns about whitespace issues, and
there are a few of those in the code. This fixes all of them
so we can yet again rely on luacheck.
2016-11-19 19:39:51 -08:00
paramat 47efa2f558 Textures: Revert many back to RGBA to fix visual bug
With mip-mapping enabled, some GPUs cause a visual bug with indexed
textures that use alpha. This bug has been present for a while but
not noticed before. All indexed alpha textures must now be converted
to RGBA, to start this process we revert some textures converted to
indexed in the recent commit af3c918.
2016-11-19 23:45:08 +00:00
pilino1234 2c122052d4 Boats: Use player yaw on place, align player yaw with boat on enter
When placing boats, align the boat with the player's yaw.

Align drivers yaw with boat yaw when entering a boat, would previously turn
boat yaw by player's yaw + 90° to the right.
2016-11-19 23:44:27 +00:00
paramat c3f3406e8e Default: Add 'group:cools_lava' for lavacooling by snowblock and ice
Make lava cooling ABM use a new group 'group:cools_lava'.
Nodes other than water can cool lava. We assume snowblock and ice melt,
turn to water and cool lava.
Leave 'group:water' present temporarily to not break mod liquids.
2016-11-18 08:09:45 +00:00
Auke Kok 68192a17e9 Default: Add tool breaking sounds
These will automatically play when a tool breaks.
2016-11-18 08:08:59 +00:00
tenplus1 022d22ceca Creative: Fix missing item bug caused by 'start_i' value
This fixes the missing item issue in creative inventory caused by using
1 instead of 0 for 'start_i'.
2016-11-18 05:38:25 +00:00
Auke Kok af3c91862c Convert many textures to indexed color
This fixes all cases where the color profile was broken, and
libpng warns about. It also makes almost all textures indexed
instead of RGB where possible (textures that don't have
semi-transparent pixels).
2016-11-18 05:37:02 +00:00
sfan5 7fbf25d6ca Do not show item overlay if slot is occupied by item (bookshelf, vessels shelf) 2016-11-14 20:03:49 +01:00
paramat f8bc1e1714 Nyancat: Make nyancat and rainbow light sources 2016-11-10 08:10:41 +00:00
paramat ddea6c431e Default: Make snowblock change 'dirt with grass' below
To be consistent with the snow slab.
2016-11-10 08:10:34 +00:00
paramat 614e9cfe8d Default: Make snow walkable again 2016-11-10 08:10:29 +00:00
Wuzzy 6e00ddee2a Default, vessels: Darken shelf empty slot icons
Rename slot icons.
2016-11-07 14:32:35 +00:00
Wuzzy 3109f38b3c Sethome: Don't auto-grant home priv to singleplayer 2016-11-07 14:13:45 +00:00
Rui 5868274b00 Creative: Fix crash when turning on creative in-game 2016-11-07 14:13:10 +00:00
Fernando Carmona Varo c824d69182 Fire / tnt: Make flint-and-steel use node on_ignite functions
Add on_ignite functions to tnt, gunpowder, coalblock.
2016-11-07 14:10:00 +00:00
paramat c7e2d59461 Default: Add 'acacia leaves simple' texture
A deeper, darker level of leaves is created by tiling the texture
2 by 2, reducing brightness and offsetting this.
For a denser leaf appearence with the 'simple leaves' setting.
Also used for acacia bush leaves.
2016-11-06 08:25:53 +00:00
Rui 631f7f46c7 sethome.get: Copy a return value 2016-11-05 19:59:15 -07:00
paramat 178db04526 Default, flowers: Improve plant selection boxes
Selection box width is limited to 14 / 16 node to visually
distinguish box from any neighbouring cubic nodes.
2016-11-05 09:14:10 +00:00
cx384 23ba2d3a0c Add and edit fuel registrations
Edited fuels: fences, wooden ladder.
New fuels:
boat, paper, book, dry shrub, stick, vessels shelf, wooden tools,
wooden door, trapdoor, fence gates, farming crops, stairs, slabs, beds.
2016-11-02 13:04:25 +00:00
Fernando Carmona Varo 7fee589e03 Tnt: Flammable TNT and gunpowder that activates when burnt
Some code simplifications.
2016-11-02 12:41:14 +00:00
Fernando Carmona Varo 5b2a896180 Bucket: Allow buckets to trigger the on_punch of entities and nodes
The purpose of this is to allow mods to be able to interact (e.g. fill up)
an empty bucket when it is used to punch a node that's not a liquid source
or when punching a custom entity (e.g. milking a cow).
2016-11-02 12:39:56 +00:00
Wuzzy 56d6eaed85 Xpanes: Use opaque texture for top+bottom of iron bar (#1357)
- Use opaque texture for top+bottom of iron bar
- Add color variation for iron bar top/bottom
- Add paramat's texture to credits
- Update license info for paramat's textures
2016-10-31 14:20:26 -07:00
Wuzzy d92034e3f7 Add fuel slot to furnace listring 2016-10-31 14:17:38 -07:00
Wuzzy 0acd9a2ccb Add icon overlay to shelf inventory slots 2016-10-30 15:32:43 -07:00
paramat 02a82c9d7a Default: Remove unnecessary leaf 'visual scale' 2016-10-29 14:44:00 +01:00
paramat 89b9c3e69e Default: Remove 'player falling damage' sound
This plays when damage is disabled, an engine bug.
We can remove it because both sounds are identical, now it is removed
the 'player damage' sound still plays when falling damage is taken.
2016-10-29 14:42:47 +01:00
paramat 048aaa2616 Default: Add bush stem and leaves nodes
To allow mapgen bushes in green-grass and savanna grasslands.
Nodes for a generic bush and an acacia bush.
Stem nodes are craftable to a single wood node to provide a small
amount of wood resource in grasslands.
Fuel times are that of corresponding 'wood' nodes, 1/4 that of
corresponding tree nodes.
No leafdecay to enable use as hedges or without a nearby tree trunk.
Uses 'default leaves simple' texture for extra visual thickness.
2016-10-27 02:54:04 +01:00
paramat 581c390591 Default: Remove alpha channel from acacia tree textures 2016-10-26 07:14:12 +01:00
paramat bca0142e7f Fire: Reduce volume of flint and steel sound 2016-10-25 04:22:17 +01:00
paramat 41a3345718 Default: Update and set volume of damage sounds
Use 'player damage' sound for both damage and falling damage.
Gains for damage sounds are set in the engine, however we cannot change
those gains as other subgames already use damage sounds based on those
gains.
Sound has been re-edited from source and normalised to 0 dB for
maximum volume, which is only just enough because gain is fixed at 0.5
in the engine.
2016-10-25 04:22:12 +01:00
Fernando Carmona Varo 3c9d71e6f7 Make flammable: Flowers, grasses and several crafitems 2016-10-25 02:37:36 +01:00
Auke Kok fbac9be51c Change many metal nodes to use default metal sounds 2016-10-25 02:37:36 +01:00
Auke Kok fa9a34554b Default: Add metal sound table function and metal sounds 2016-10-25 02:34:39 +01:00
paramat f7325d26b6 Fire: Add flint and steel sound 2016-10-24 04:55:08 +01:00
paramat 9b62d8a504 Default: Add damage and falling damage sounds 2016-10-24 04:55:03 +01:00
Fernando Carmona Varo bcb4426ec7 Default: Destroy flammable items when in fire or lava
The check for igniters (fire/lava) will be performed every 10 secs
if the item is flammable.

if the item is found to be in lava it will then burn up and
disappear in a smoke puff.

If a non-lava igniter node is found, a combination of `flammable`
value of the item and `igniter` group value of the node will be used
to determine the chance for the item to be removed.
2016-10-23 03:48:37 +01:00
paramat 4ea74466e4 Default: Fix 'leaves simple', 'jungleleaves simple' textures
'jungleleaves simple' had completely different leaf colours to
'jungleleaves', now matched.
'leaves simple' had dark green instead of black colour for transparent
pixels (the 'leaves' texture uses black), normally these pixels would
not be rendered as opaque colours but bush nodes now use this texture
and will be rendering it as opaque. The dark green pixels resulted in
a texture lacking in contrast.
2016-10-18 05:53:45 +01:00
paramat 3d26b33e5b Default: Add coral nodes and death ABM
Original code by Sofar.
Textures by Pithydon.
Exposure to air converts live coral to coral skeleton.
Live corals drop coral skeleton.
2016-10-12 23:55:46 +01:00
paramat 7b30c26a45 Bucket: Add optional 'force-renew' bool to registration
River water needs to be 'liquid_renewable = false' to avoid a mess caused by
spreading of sources, however picking it up with a bucket then creates
a hole in the river. Allow a 'force-renew' of the source node if it has a
source neighbour.
2016-10-12 04:11:36 +01:00
bas080 78311a27a1 Store registered plant on namespace
Handy for when modders want to use these definitions to extend or add to the mod
2016-10-12 00:14:11 +01:00
tenplus1 6fdfd2554c Tnt: Various optimisations
Pass nodename to tnt.burn function where possible to reduce
use of 'get_node'.
Change 'ipairs' to 'pairs'.
Use 'nodeupdate_single(pos)' instead of 'nodeupdate(pos)' to
avoid every node triggering recursion, the loop itself takes
the place of recursion and works upwards through horizontal
planes as required.
2016-10-10 03:16:41 +01:00
rubenwardy 53179b8d10 Creative: Use element instead of parameter to disable close on enter 2016-10-08 18:02:14 +01:00
paramat 1906ab84f5 Default/functions: Tune speed of grass spread ABM
Through testing the chance is changed to 50 such that grass spread
speed matches that of the previous (0.4.13) ABM version.
2016-10-05 22:24:02 +01:00
Tim 1799754a8f Default: Prevent possible nil-crash on invalid book metadata 2016-10-05 22:23:49 +01:00
Tim 32f7051eb8 Fix sapling placement handling of on_rightclick and CONTENT_IGNORE 2016-10-05 22:22:15 +01:00
paramat 67fc2247fc Default: Add 'silver sand' for cold desert biome 2016-10-05 22:22:08 +01:00
paramat c0de5646d2 Default: Generalise, optimise and simplify grass spread function
Credit to tenplus1 for the suggestion to generalise for mod use.
Mods can add mod nodes to 'group:spreading_dirt_type' enabling the
function to work with mod nodes.

Add some nodes to this group.

Removing 'dirt_with_grass' etc. from 'neighbors' stops the ABM action
running everywhere and constantly, on the dirt nodes immediately below
the surface nodes. Now the action only runs in the rare case of a dirt
node with neighbouring air, grass decorations or snow.

Remove check for air above to allow grass to spread under light-
transmitting nodes such as fences, walls, plants. This causes spread
under slabs, stairs and glass, when near air, but seems worth it.

Remove unnecessary check for nil node.
2016-10-01 23:15:05 +01:00
paramat 5e4a6e8ac6 Doors: Remove ability to rotate doors with screwdrivers
Rotating doors with screwdrivers causes too many issues to be worth it.
2016-09-30 02:44:24 +01:00
DS-Minetest 36a78c87d7 Default/player.lua: Remove outdated comment 2016-09-30 02:43:11 +01:00
tenplus1 0ad3306c79 Farming: Remove unnecessary overriding of groups
This removes the group overrides for dirt, dirt_with_grass and dirt_with_dry_grass which aren't needed and interfere with new grass spreading changes: https://github.com/minetest/minetest_game/pull/1286
2016-09-27 17:03:50 +01:00
paramat 3e05870706 Doors: Trim open fencegate collison box again
The collision box still extended into a neighbouring empty node, causing
falling node objects to collide but not transform back into normal nodes.
Completes the fix started in a previous similar commit.
2016-09-23 18:24:47 +01:00
paramat 34c768d394 Default: New snow textures by Gambit
From PixelBOX2 texture pack.
Brightness increased for 'snow' and 'snow side'.
2016-09-14 06:02:16 +01:00
Auke Kok b848e35ca5 Stairs: Big simplification of slabs combination
Combine slabs if identical based on orientations using a simple lookup
table if the nodes are identical.

Otherwise relies on place_node() to place the node, which properly
handles rotation compared to adjacent nodes already, and can orient
based on look_dir as well.

Initial slabs placed are oriented based on (1) the orientation of
the pointed "face" (assumes nodes are cubic, of course), and uses
the player look direction to orient the node n/e/w/s if the slab
is horizontal or upside-down. If placed against a vertical face,
the slab is placed against the face without rotation around the axis
perpendicular to that vertical face. This allows upside down placement
and vertical placement without screwdriver.

If a slab is placed on top of an upside down slab, or below a normally
placed slab, the rotation is inverted so that no "floating" slab
is created.

Largely based on kilbith's #807 PR. Slab combining and place_node()
usage by sofar.

Since this relies entirely on `on_place` mechanics, this fails to
combine slabs into a plain node if the space *above* is occupied.
This is unavoidable due to the fact that on_place() happens after
the checks required to see if pointed_thing.above is empty or not.
2016-09-14 06:01:04 +01:00
tenplus1 0cbb516ae2 Bones: Search for nearby 'air' for fallback bones placement
When a player dies on ladders or rope then a space can not be found at or
above player, so this change looks around player for a space to place bones.
2016-09-10 05:19:15 +01:00
Auke Kok 54235f3276 Xpanes: Convert to connected nodeboxes
I've rewritten this to use connected nodeboxes, but with a caveat. In
order to make flat nodes look better, I'm keeping one non-connected
pane that is flat around to convert flat sections to the flat nodes
instead of connected, as these look better and are easier to work
with. Once more sides are needed we convert the panes on the fly to
connected nodes and recalculate the shape.

We don't paint any of the half-panes that the previous generation of
xpanes did. There's no need and it's harder to work with. Updating the
nodes also seems more natural and placement and removal works straight
forward.

The conversion of old panes relies on an LBM, and does a reasonable
conversion job, but it's not exact, since the panes behave slightly
different now.

The game API documentation was wrong to begin with. We discard param
nr. 2 of the API entirely, and correct the tile usage text.
2016-09-10 05:18:02 +01:00
paramat 992f295880 Licenses: (Part 4) Remove overlooked WTFPL text. Cleanup 2016-09-08 06:17:05 +01:00
paramat 6171fb43f0 Change WTFPL to MIT (part 3)
Relicense WTFPL media to CC BY-SA 3.0.
Various corrections and edits.
2016-09-07 04:44:53 +01:00
paramat 7d70d25eeb Licenses: Change WTFPL to MIT (part 2)
Add license.txt files.
Update and improve README.txt files.
Corrections to part 1.
2016-09-06 04:45:23 +01:00
paramat e9d26e2ee3 Licenses: Change WTFPL to MIT (part 1)
Part 1: All mods except default and xpanes.
Add license.txt files.
Add missing README.txt files.
Check and update copyright years for all contributors.
Improve text format and make more consistent.
2016-09-05 05:54:33 +01:00
paramat f844a4f379 Default: Vary wood burn times according to wood density
Retain definitions for node groups to support mods.
Burn time is unchanged for applewood, and increases in the order:
aspen, pine, apple, acacia, jungle which is also the order of wood
colour darkness.
2016-09-04 05:39:24 +01:00
Auke Kok 1d6fbe04cd Default/furnace: Indicate dst full
Indicate in the infotext when a furnace has filled up `dst` but still
has fuel. The info text shows the item as 100% with added "(output
full)" text, indicating that while it can cook the item, there is no
place for it in the `dst`. Emptying the `dst` should make the item
cook immediately and furnace resume normal operation.
2016-09-03 01:08:29 +01:00
paramat 0664570d22 Creative: Make dig times near-identical for nodes of all levels
Dig time is modified according to difference (leveldiff) between tool
'maxlevel' and node 'level'. Digtime is divided by the larger of leveldiff
and 1. In creative mode, where the hand is redefined to have maxlevel 3,
this results in higher level nodes taking significantly longer to break.

Now, to speed up digging, hand 'maxlevel' and 'digtime' have been
increased such that nodes of differing levels have an insignificant
effect on digtime. Dig time for all nodes is now identical to that of, for
example, dirt nodes.
2016-09-03 01:07:49 +01:00
Pinky Snow 5e9e3f7e84 Default: Eliminate redundant 'get modpath' calls 2016-08-29 00:31:18 +01:00
paramat 995256744a Default, stairs, doors: Vary wood flammable and choppy group values
Make the softer woods, pine and aspen, 'flammable = 3'.
Correct inconsistent flammability of wood and stairs in relation
to all other solid wood nodes in MTGame.
Make the the softer woods, pine and aspen, 'choppy = 3'.
2016-08-29 00:24:30 +01:00
rubenwardy 471d1cf159 Add search on enter press to creative inventory 2016-08-27 21:24:07 +01:00
Megaf 3be2f12beb Flowers: Add missing aliases for mushrooms from the mushroom mod 2016-08-22 00:43:04 +01:00
paramat cabf80b743 Fire: Use 'enable fire' setting instead of 'disable fire' 2016-08-20 04:29:32 +01:00
pithydon 088385493a Default: Improve fences inventory/wield images 2016-08-20 04:27:48 +01:00
tenplus1 1b745d401d Default/trees: Faster 'is snow nearby' function
Use 'find node near' instead of 'find nodes in area'
2016-08-15 20:43:19 +01:00
paramat 2ecbc43a7a Default: Optimise and simplify leafdecay ABM, remove cache
With thanks to contributor tenplus1
Remove leaf cache and globalstep accumulator limiter
Use 'pos' instead of 'p0'
Remove non-essential 'group:liquid' from 'neighbors'
Increase chance value to 10 to compensate for disabled cache
Disable 'catch-up' to avoid the ABM often becoming 10 times more
intensive
Remove use of 'do preserve' bool, instead simply 'return'
Remove unnecessary checks for 'd' and 'd == 0'
Don't 'get' n0, use already present 'node' instead
Swap order two conditionals so that the one most likely is first
2016-08-15 20:42:50 +01:00
tenplus1 619ac52693 Add labels to ABMs
Useful for searches and the mod profiler.
2016-08-09 03:56:37 +01:00
DonBatman 61a197ffd8 Changed snow nodebox to 'walkable = false'
Allows walking in, and prevents being trapped in, 2 node high spaces.
Simulates player's feet sinking into snow.
Easier jumping up onto nodes with snow.
2016-08-09 03:51:22 +01:00
tenplus1 14b99a72a9 Tnt: Limit blown up dropped stacks to stack_max
This replaces the hardcoded 99 item limit and instead uses the
get_stack_max() limit for each item.
2016-08-09 03:48:01 +01:00
Tim 76211624ac Use minetest instead of core namespace, discourage via luacheck 2016-08-09 03:47:27 +01:00
Tim 20fa037313 Screwdriver: disallow rotation with `on_rotate = false`
Other screwdriver mods, or mods that cause rotation, might operate without the screwdriver mod loaded and have `screwdriver.disallow` unavailable.
This allows nodes to default to full-disallow rather than full-rotation in such a situation.
2016-08-05 20:41:24 +01:00
Tim 60cf3f85b6 Doors: Allow the screwdriver to rotate doors around y-axis.
Keep other axis' disabled to prevent the hidden placeholder node to become irremovable to players.
2016-08-05 12:34:46 +02:00
tenplus1 6c83ea0b48 TNT: Fix bug with huge stacks
This fixes the TNT bug that can crash game when blowing up a container
which holds huge stacks above the norm... e.g. give yourself 65535 snow,
place in chest, blow up, stalled!
2016-08-04 03:21:55 +01:00
paramat 265c40b558 Doors: Trim open fence gate collision box
Previously, the collision box extended into an empty node, causing
falling node objects to land on the open gate but not transform
back into normal nodes. Now fallng node objects will fall through and
either side of the end of the open gate and transform back.
2016-08-04 03:21:09 +01:00
Tim 00c2dde4ea Doors: Fix potential crashes, code improvements
Fix crash when doors are placed under unknown nodes.
Share a can_dig among doors, that does not crash on nil-player.
Only set can_dig if we actually protect the door.
2016-08-01 01:21:57 +01:00
paramat 4fba897a96 Bones: Improve bones textures
Add mouth, remove jaw shadow, shade eyesockets.
Darker shading for spine and rotate texture using ^[transform2
instead of inverting texture.
Use 'node sound gravel defaults' for sounds.
2016-08-01 01:20:27 +01:00
SmallJoker ea49eb3f3d Beds, boats: Replace deprecated get_look_yaw/set_look_yaw 2016-07-27 21:39:22 +01:00
paramat 0ac096991c Default: Prevent placing sapling if grown tree intersects protection
Add a global 'intersects protection' function to functions.lua for
checking if a specified volume intersects with a protected volume.
A 3D lattice of points are checked with an adjustable interval.
Add a global 'sapling on place' function to avoid duplicated code in
nodes.lua.
2016-07-27 21:39:22 +01:00
tenplus1 2df7ce20dd Bones: Ability to change bones mode. Tidy up code
Add 'bones_mode' setting to minetest.conf -> Modes: bones, drop, keep
Remove table 'bones'
Add minetest.conf.example description
Remove protection check from may_replace
2016-07-27 21:37:49 +01:00
paramat db129f4ca0 Flowers: Fix waterlily on-place itemstack code
Add 'record_protection_violation()'
2016-07-23 04:56:49 +01:00
Thomas--S 72f4c6be48 Doors: Fix orientations of trapdoor textures 2016-07-23 04:56:09 +01:00
paramat 79dbafc13b Nyancat: Fix texture names 2016-07-18 23:47:14 +01:00
paramat 1a2eb89f17 Default/trees: Update to 'get_mapgen_setting()' 2016-07-18 23:47:14 +01:00
Thomas--S f018e06d9b Doors: Fix trapdoor on_blast
Removing the node above was an error and is unnecessary
2016-07-18 23:45:48 +01:00
Thomas--S 9862bbc8e5 Doors: Same naming for trapdoors as for doors
This makes register_trapdoor act the same as the register_door.
If `name` isn't prefixed, it will be prefixed with "doors:".
2016-07-18 23:43:51 +01:00
rubenwardy 3661cb61e3 Move nyancats into a separate mod
Nyancats are independent in the default mod. Nothing else uses them or
their code. Separating it into a separate mod makes it easier for
subgames to remove them. It also makes it easier for a mod to depend
on nyancats, as lots of subgames don't have them.

Default/mapgen.lua: Register biomes, ores and decorations in
singlenode mapgen. These were never disabled anyway because
singlenode was removed from the world creation menu.
2016-07-18 04:15:44 +01:00
tenplus1 0bd13d11cf Doors: Make door groups consistent with corresponding materials 2016-07-15 22:01:20 +01:00
adrido d89bb69a22 Beds: Only register respawn callbacks if respawn is enabled 2016-07-15 22:00:57 +01:00
Tim 9524ff67a3 Clean up fire ABM parameters. 2016-07-15 21:58:49 +01:00
Tim 30b0a155fb Stop shadowing upvalues and definitions. 2016-07-15 21:58:49 +01:00
Tim 4473627de0 Remove unused and clean up missused variable-value assignments.
* Unused variables
* Unused values (assigned to variables, but overwritten before use)
* Defining already defined variables instead of reassigning to them.
2016-07-15 21:58:49 +01:00
tenplus1 d7a7456007 Beds: Save respawn position when entering bed, only read bed spawns once
No longer require night to be skipped for resawn position to be saved
Remove constant beds.read_spawns() calls when a player joins as this
is only required once
2016-07-13 14:45:30 +01:00
Tim b74954969c Doors: Fix missing node parameter passing 2016-07-13 14:45:18 +01:00
paramat 07141b4a2e Bones: New textures 2016-07-10 21:08:01 +01:00
Tim fcceec0e8c Doors: Fix trapdoor crash on can_dig with nil-player (e.g. minetest.dig_node) 2016-07-10 21:07:17 +01:00
tenplus1 f1f96dbe6b Default/trees: Faster way to detect snow around pine saplings
Instead of using voxelmanip use 'find nodes in area' instead
2016-07-10 20:50:40 +01:00
Tim 594365310d Doors: Remove unnecessary node lookups 2016-07-09 16:34:28 +01:00
Tim 71c7e21669 Always return the leftover ItemStack for on_place and on_rightclick 2016-07-09 16:32:41 +01:00
paramat e38099225c TNT: Add missing 'then' 2016-07-07 19:22:26 +01:00
Tim 5644ab4bd3 Bucket: Allow liquid placed against unknown nodes instead of aborting abnormally 2016-07-07 19:22:13 +01:00
Tim fe450b4144 Bucket: Prevent crashing when placing liquid against a buildable node into an unknown node 2016-07-07 19:21:46 +01:00
paramat 3d44804074 Doors: Code cleanup
Remove spaces inside curly brackets
Split lines over 90 columns
2016-07-07 18:14:36 +01:00
paramat 60f6564c75 Doors / default: Remove 'hot', 'bendy' and 'melty' groups from nodes 2016-07-07 18:14:36 +01:00
paramat f17d791173 Default, flowers: Use 'get_mapgen_setting()' 2016-07-07 18:14:36 +01:00
tenplus1 497e6f6257 TNT: When disabled leave some useful functionality enabled
- Only remove the TNT craft recipe, tnt:tnt node and the ABM
- Leave tnt:tnt_burning available for explosions in 3rd party mods
2016-07-07 18:10:57 +01:00
paramat d42f77cc5f Default/mapgen: Simplify iron ore registrations
Preserve overlapping registrations of large and small clusters
below y = -64 but now extend the small clusters up to y = 0 (the
previous highest iron ore level) in a similar to way to coal
2016-07-05 18:16:52 +01:00
paramat d476d017a4 Default/mapgen: Add ores above y = 1024
Each ore's rarity is equal to that occuring below y= -1024
2016-07-05 18:16:52 +01:00
paramat 1886d293d7 Default/mapgen: Clean up ore registrations
Re-order registrations
Add and improve comments
Change sand blob ymax to 0 as sand does not always rise above 0
Remove dirt blobs from sandstone as it is unsuitable for
many sandstone biomes and ugly in stony sandstone desert
Change ymax of first iron region to 0
2016-07-05 18:16:52 +01:00
tenplus1 21b457c9e1 Bucket: Correct liquid placing in protected areas
- Placing liquid inside a protected area no longer returns an empty bucket
- Remove on_place function, tidy up code, return proper itemstack
- Shorten code (changes from HybridDog/patch-35)
2016-07-05 18:15:35 +01:00
tenplus1 80d49095f5 Tidy sethome code, add global functions, round coords to 1 decimal
- Global functions sethome.set(name, pos) , sethome.get(name) and sethome.go(name)
- Tidy: trim coords to one decimal place and write to table and output table in one go.
- Add error checking
- Add t4im's homepos loader
2016-07-03 18:40:43 +02:00
paramat f4f9e58ef2 Flowers: Make waterlily floodable
When waterlilies are placed near river water source make flowing river
water remove waterlilies instead of flowing around them in an ugly way
2016-07-01 07:05:53 +01:00
Thomas--S 55fd286083 Doors: Remove use_texture_alpha from door definition 2016-07-01 07:05:19 +01:00
HybridDog 1231f72628 Wool: Use adv- and optipng to optimise texture files 2016-07-01 07:03:17 +01:00
HybridDog 15b82f5b03 Wool: Clean up code 2016-07-01 07:02:38 +01:00
paramat f796194c69 Doors: Add dedicated sounds for glass doors
Changed node sounds for steel door/trapdoor to stone
defaults instead of wood defaults
2016-06-27 05:32:36 +01:00
paramat 84e4ae1881 Default: New aspen tree schematics 2016-06-27 05:32:36 +01:00
tenplus1 f15f35c604 Default: Enable crafting of mese crystal fragments into mese crystal 2016-06-27 05:31:04 +01:00
tenplus1 be918d2d98 Default: Craft locked chest from chest plus steel ingot 2016-06-27 05:30:20 +01:00
paramat 983af7b1c0 Stairs: Code cleanup, fix various errors
Improve registration format
Fix groups not matching corresponding full node
Improve some descriptions
2016-06-26 06:11:16 +01:00
paramat 22dc7b2d9e Stairs: Register stone / desert stone / sandstone / obsidian blocks 2016-06-26 06:11:16 +01:00
paramat 9d6df824d6 Default: Add stone / desert stone / sandstone / obsidian blocks 2016-06-25 06:58:18 +01:00
paramat 5809c28ae3 Stairs: Stair recipe returns 8 stairs not 6
Make it consistent with the slab recipe which conserves volume
2016-06-22 02:12:57 +01:00
Xunto e77ef553ff Default: Fix character model uv-mapping
Arm and leg textures are now edge-consistent
2016-06-22 02:12:11 +01:00
paramat 1fafed3387 Default: Remove mortar from stone brick, desert stone brick 2016-06-22 02:10:52 +01:00
Yutao Yuan e0bec501f2 Flowers: Fix misaligned waterlily texture
Previously waterlily has misaligned top and bottom textures and looks
different when viewed from below.

This also hides the flower in bottom texture.
2016-06-21 02:21:00 +01:00
Auke Kok 3e9afe097c Doors: Clean up nodedef usage
Allows for more properties to be passed through. Somewhat simplifies
the code as well.
2016-06-21 02:20:47 +01:00
cd2 5775c9147c Farming: Add negative fall_damage_add_percent to straw
This doubles the fall height without damage to 11 nodes.
2016-06-17 23:43:41 +01:00
Auke Kok ba1ae07b4a Default: Make brick and plank nodes rotatable
Allow many crafted nodes to be rotated in any way possible.

These blocks all have slab and stair versions, which can create awkward
patterns if placed together. By allowing these to be rotated players
can create new patterns and appearances that were not before possible.

Since this wasn't possible before, there won't be any effect
to existing builds, as param2 should always be '0'. The current
screwdriver mod also refuses to rotate and alter param2, so this is
safe to enable from now on.

Personally, since these are all *crafted* nodes to begin with, it
should be apparent that they can be rotated to begin with, but I can
see people may disagree from a simplicity perspective. It also may
affect param2 usage that other mods rely on, although I'm not aware
of any mods that do this.
2016-06-17 23:41:42 +01:00
paramat 50eb079813 Creative: Add missing 'formspec_escape' to fix bug
Symbols used in search caused the game to hang with a grey screen,
for example searching for 'diamond;ingot'
2016-06-14 23:29:21 +01:00
paramat da0fe31443 Boats: Raise collisionbox top surface to fix boat behaviour
Lowering the top surface to be level with the boat top somehow
causes the boat to fall through world if underwater. Revert to
previous position that is needed for correct behaviour
2016-06-14 23:29:21 +01:00
Auke Kok 2199be5108 Stairs: Add mossy cobble slab and stair
Allow water to turn cobble slab and stairs to turn into mossy versions.

There is no crafting recipe for mossy stairs and mossy slabs, the
stair/slab API has been modified to allow for a recipeitem that
is `nil`, which will omit adding a crafting recipe for these two
items. The API documentation is updated.

The slabs and stairs will turn mossy when water is adjacent, just like
cobblestone. You can either farm mossy versions by placing them in
water for a while, then collecting them, or run water over your craft.
2016-06-14 23:28:17 +01:00
paramat b5ea7d17b2 Mapgen: Add biome fields for riverbed node and depth 2016-06-05 19:15:50 +01:00
Auke Kok dcf2465441 Farming: allow LBM's for other mods as well.
Fixes #1114
2016-06-04 13:39:58 +01:00
paramat 6386684f3e Fire: Ignite tnt, gunpowder, permanent flame above coalblock
Enable ignition of tnt, gunpowder and permanent
flame above coalblock using flint and steel
Override coalblock to remove flame above when dug
Add depends.txt for default mod
2016-06-04 13:39:00 +01:00
Auke Kok ba33639887 Doors: Pass pointed_thing to on_rightclick() callback
This is an omission technicality. The callee should be able
to trust this isn't `nil`
2016-05-30 11:55:12 +01:00
paramat 541b2d79c7 Default: New mese texture. Add missing texture credits
Mese texture is a classic-mese-yellow version
of celeron55's texture used in MTv0.4.0
Add missing texture credits for mese crystal
and mese crystal fragment
2016-05-30 11:54:24 +01:00
paramat 37347d40f4 Default: Bookshelf has 2 openings instead of 4
Make rotatable with 'paramtype2 = facedir'
2016-05-28 15:11:43 +01:00
Auke Kok d61803b65f Fire: move fire node removal out of ABM.
Because the fire nodes are not removed 100% when there are
no more burnable nodes nearby, they can potentially stay around
for very, very long times, leading to ABM trains every 5 seconds
for no good reason (only 1 in 16 will be removed every interval).

A much better method to remove fire nodes is to remove them by
timer, and give removal a 100% chance if no flammable nodes are
adjacent. This makes fire cleanup a lot faster and more natural,
and will reduce the amount of ABM hits making fire overall more
responsive.

We also remove the 1 in 4 chance and fold the removal of flammable
nodes into the ABM chance.

There's some low hanging fruit cleanups in here as well.
2016-05-28 15:11:31 +01:00
Auke Kok e0cb3fce02 Default: Convert saplings to use node timers
Each sapling is given a single node timer that is between
2 and 4 days of game play time (40-80 minutes). If you walk out
of the zone, and come back later, the tree will always grow
to full if the timer has elapsed.

Because trees.lua is all functions, it needs to be parsed before
nodes.lua, since that references some of its functions. Hence,
change the order of parsing here. Otherwise saplings would not
grow to full.
2016-05-25 03:27:08 +01:00
Auke Kok 70ef7864c1 Farming: Convert plants to use node timers
This PR requires @minetest/minetest#3677

Farming and plant growth has traditionally in minetest been
implemented using ABM's. These ABM's periodically tick and cause
plants to grow. The way these ABM's work has several side effects
that can be considered harmful.

Not to mention a comprehensive list of downsides here, but ABM's
are chance-dependent. That results in the chance that some nodes
potentially never get processed by the ABM action, and others get
processed always. One can easily find this effect by planting a large
field of crops, and seeing that some nodes are fully grown really
fast, and some just won't make it to fully grown status even after
hours or play time.

One could solve the problem by making the ABM's slower, and giving them
a 100% of action, but this would cause the entire field to grow a step
instantly at ABM intervals, and is both ugly, and a large number of
node updates that needs to be sent out to each client. Very un-ideal.

With NodeTimers though, each node will see a separate node timer event,
and they will likely not coalesce. This means that we can stop relying
on chance to distribute plant growth, and assign a single timer event
to grow the plant to the next phase.  Due to the timer implementation,
we won't ever miss a growth event, and we can re-scehdule them until
the plant has reached full size.

Previously, plants would attempt to grow every 9 seconds, with a
chance of 1/20. This means typically, a plant would need 9*20 seconds
to grow 1 phase, and since there are 8 steps, a typical plant growth
would require 9*20*8 ABM node events. (spread out over 9*8 ABM actual
underlying events per block, roughly).

because plants are likely not growing to full for a very long time
due to statistics working against it (5% of the crops take 20x longer
than the median to grow to full, we'd be seeing ABMs fire possibly
up to 9*20*8*20 with a 95% confidence interval (the actual math
is likely off, but the scale should be correct). That's incredibly
wasteful. We'd reach those conditions easily with 20 plant nodes.

Now, after we convert to NodeTimers, each plant node will see exactly
8 NodeTimer events, and no more. This scales lineairly per plant.

I've tuned the growth rate of crops to be mature in just under 3
whole days. That's about 1hr of game time. Previously, about half
the crops would grow to full in under 2 days, but many plants would
still not be mature by the end of day 3. This is more consistent.

An additional problem in the farming mod was that the final fully-grown
plant was also included in the ABM, causing infinite more ABM's even
after the entire field had grown to completion.

Now, we're left with the problem that none of the pre-existing plants
have actual node timers started on them, and we do not want a new ABM
to fix this issue, since that would be wasteful.  Fortunately, there
is now an LBM concept, and we can use it to assure that NodeTimers
on crop nodes are properly started, and only have to do the actual
conversion once per block, ever.

We want to provide a fairly similar growth rate after this conversion
and as such I've resorted to modelling some statistical data. For this
I created a virtual 32x32 crop field with 9 steps (8 transitions)
as is the default wheat crop. We then apply a step where 1 in 20
plants in the field grows a step (randomly chosen) and count the
number of steps needed to get to 25%, 50, 75% and 95% grown.

The resulting data looks as follows:

25% - ~120 steps * 9 sec / abm = 1080s
50% - ~152 steps               = 1368s
75% - ~194 steps               = 1746s
95% - ~255 steps               = 2295s

Next, we want to create a model where the chance that a crop grows
is 100% every node timer. Since there will only be 8 steps ever,
we want the slowest crops to grow in intervals of ~ 2300 / 8 seconds
and the fastest 1/4 of crops to grow 1080 / 8 seconds intervals.
We can roughly compare this to a normal distribution with a median
of 1400 with a stddev of ~350 (thick fingering this one here).

The rest is a bit of thick-fingering to get similar growth rates,
taking into account that ABM's fire regularly so if they're missed
it's fairly painless, but our timers are going to be 1-2 minutes
apart at minimum. I calculate the timer should be around 150s
median, and experimented with several jitter ranges.

Eventually I settled for now on [80,200] with a redo of [40,80],
meaning that each growth step at minimum takes (80 to 200) seconds,
and if a negative growth condition was found (darkness, soil not
wet, etc), then the growth step is retried every (40 to 80) seconds.

The end result is a growth period from seed to full in ~ 2.25
minetest days. This is a little bit shorter than the current
growth rate but the chances you'll miss timer ticks is a bit
larger, so in normal gameplay it should be fairly comparable.

A side effect is that fields grow to full yield fairly quickly
after crops make it to mature growth, and no crops are mature
a very long time before the majority grows to full. The spread
and view over a growing field is also fairly even, there's no
large updates with plenty of nodes. Just a node here or there
every second or so in large fields.

Ultimately, we get rid of ABM rollercoasters that cause tens of
node updates every 9 seconds. This will help multiplayer servers
likely a lot.
2016-05-25 03:26:53 +01:00
Auke Kok fc902a77de Boats: Lower boat collision box top
Standing on a boat makes you appear to "hover" over it since this
collision box is way too high. Lower it so that it's low enough
to look normal when walking on top of a boat
2016-05-23 08:37:58 +01:00
paramat 3e5f3f28d2 Vessels: Improve code style 2016-05-23 08:37:58 +01:00
paramat d8daee7e47 Vessels: Make shelf open on 2 sides not impossible 4 sides
Make shelf facedir rotatable as is now required
2016-05-23 08:37:58 +01:00
Duane Robertson 7681682d28 Doors: Fix uninitialized state variable 2016-05-23 08:37:11 +01:00
Thomas--S b9422ed44e Vessels: Smaller/improved textures, remove duplicated 'inv' textures
Removed unnecessary inventory textures
The drinking glass inventory texture now differs from
the node texture to be more clearly a drinking glass
Smaller textures to reduce size as nodes
2016-05-21 03:03:03 +01:00
red-001 b1e0864cf1 Creative: Reset 'start_i' to 1 when the inventory filter is changed 2016-05-21 03:02:10 +01:00
paramat 90f24e312d Default: Remove unnecessary infotexts for chests and signs 2016-05-21 03:01:10 +01:00
paramat e7a55734d3 Tnt: Avoid divide-by-zero errors in calc_velocity() 2016-05-08 22:53:16 +01:00
tenplus1 b36b154257 Creative: Fix inventory crash after toggling creative mode in-game 2016-05-08 00:40:52 +01:00