oweals/minetest_game.git
7 years agoDefault: Several improvements of character model
Rogier [Thu, 17 Nov 2016 08:09:48 +0000 (09:09 +0100)]
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.

7 years agoKeys: Allow easy sharing of access without commands
Auke Kok [Sat, 26 Dec 2015 19:16:49 +0000 (11:16 -0800)]
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.

7 years agoUse travis' container-based infrastructure (#1314)
sfan5 [Thu, 24 Nov 2016 06:00:35 +0000 (07:00 +0100)]
Use travis' container-based infrastructure (#1314)

Use travis' container-based infrastructure (no sudo)

7 years agoMerge 'torches' mod as default:torch.
Auke Kok [Wed, 12 Oct 2016 04:05:10 +0000 (21:05 -0700)]
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.

7 years agoUpdate 'nodeupdate()' to 'check_for_falling()' API
paramat [Tue, 22 Nov 2016 04:45:31 +0000 (04:45 +0000)]
Update 'nodeupdate()' to 'check_for_falling()' API

7 years agoMake smoke puff sound mono
Auke Kok [Tue, 22 Nov 2016 02:25:41 +0000 (18:25 -0800)]
Make smoke puff sound mono

Stereo sounds are not played positionally, which should never
happen. Convert this track to mono to fix.

7 years agoFarming: Add forgotten colon
Thomas--S [Sun, 20 Nov 2016 18:21:57 +0000 (19:21 +0100)]
Farming: Add forgotten colon

This makes the itemstrings consistent over the whole file.

7 years agoDefault: Add water footstep sounds
paramat [Thu, 17 Nov 2016 02:41:38 +0000 (02:41 +0000)]
Default: Add water footstep sounds

Plus one silent sound to break repetition 'default_water_footstep.4.ogg'.

7 years agoCarts: Merge boost_cart as "carts" mod
Auke Kok [Sat, 8 Oct 2016 21:14:10 +0000 (14:14 -0700)]
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.

7 years agoFix whitespace errors to silence luacheck.
Auke Kok [Sun, 20 Nov 2016 03:24:37 +0000 (19:24 -0800)]
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.

7 years agoTextures: Revert many back to RGBA to fix visual bug
paramat [Sat, 19 Nov 2016 23:21:40 +0000 (23:21 +0000)]
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.

7 years agoBoats: Use player yaw on place, align player yaw with boat on enter
pilino1234 [Tue, 15 Nov 2016 21:08:12 +0000 (22:08 +0100)]
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.

7 years agoDefault: Add 'group:cools_lava' for lavacooling by snowblock and ice
paramat [Thu, 10 Nov 2016 04:04:20 +0000 (04:04 +0000)]
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.

7 years agoDefault: Add tool breaking sounds
Auke Kok [Sat, 23 Jan 2016 06:04:38 +0000 (22:04 -0800)]
Default: Add tool breaking sounds

These will automatically play when a tool breaks.

7 years agoCreative: Fix missing item bug caused by 'start_i' value
tenplus1 [Fri, 11 Nov 2016 12:09:11 +0000 (12:09 +0000)]
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'.

7 years agoConvert many textures to indexed color
Auke Kok [Mon, 7 Nov 2016 19:26:28 +0000 (11:26 -0800)]
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).

7 years agoDo not show item overlay if slot is occupied by item (bookshelf, vessels shelf)
sfan5 [Sun, 6 Nov 2016 20:36:36 +0000 (21:36 +0100)]
Do not show item overlay if slot is occupied by item (bookshelf, vessels shelf)

8 years agoNyancat: Make nyancat and rainbow light sources
paramat [Thu, 10 Nov 2016 03:52:03 +0000 (03:52 +0000)]
Nyancat: Make nyancat and rainbow light sources

8 years agoDefault: Make snowblock change 'dirt with grass' below
paramat [Tue, 8 Nov 2016 17:30:58 +0000 (17:30 +0000)]
Default: Make snowblock change 'dirt with grass' below

To be consistent with the snow slab.

8 years agoDefault: Make snow walkable again
paramat [Tue, 8 Nov 2016 16:38:26 +0000 (16:38 +0000)]
Default: Make snow walkable again

8 years agoDefault, vessels: Darken shelf empty slot icons
Wuzzy [Sun, 6 Nov 2016 14:54:55 +0000 (15:54 +0100)]
Default, vessels: Darken shelf empty slot icons

Rename slot icons.

8 years agoSethome: Don't auto-grant home priv to singleplayer
Wuzzy [Sat, 5 Nov 2016 23:49:25 +0000 (00:49 +0100)]
Sethome: Don't auto-grant home priv to singleplayer

8 years agoCreative: Fix crash when turning on creative in-game
Rui [Sat, 5 Nov 2016 02:58:13 +0000 (11:58 +0900)]
Creative: Fix crash when turning on creative in-game

8 years agoFire / tnt: Make flint-and-steel use node on_ignite functions
Fernando Carmona Varo [Mon, 24 Oct 2016 20:24:49 +0000 (22:24 +0200)]
Fire / tnt: Make flint-and-steel use node on_ignite functions

Add on_ignite functions to tnt, gunpowder, coalblock.

8 years agoDefault: Add 'acacia leaves simple' texture
paramat [Wed, 2 Nov 2016 17:58:06 +0000 (17:58 +0000)]
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.

8 years agosethome.get: Copy a return value
Rui [Sat, 5 Nov 2016 02:17:05 +0000 (11:17 +0900)]
sethome.get: Copy a return value

8 years agoDefault, flowers: Improve plant selection boxes
paramat [Sat, 5 Nov 2016 05:58:12 +0000 (05:58 +0000)]
Default, flowers: Improve plant selection boxes

Selection box width is limited to 14 / 16 node to visually
distinguish box from any neighbouring cubic nodes.

8 years agoAdd and edit fuel registrations
cx384 [Sun, 30 Oct 2016 10:29:58 +0000 (11:29 +0100)]
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.

8 years agoTnt: Flammable TNT and gunpowder that activates when burnt
Fernando Carmona Varo [Thu, 27 Oct 2016 18:16:15 +0000 (20:16 +0200)]
Tnt: Flammable TNT and gunpowder that activates when burnt

Some code simplifications.

8 years agoBucket: Allow buckets to trigger the on_punch of entities and nodes
Fernando Carmona Varo [Sun, 11 Sep 2016 07:55:33 +0000 (09:55 +0200)]
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).

8 years agoXpanes: Use opaque texture for top+bottom of iron bar (#1357)
Wuzzy [Mon, 31 Oct 2016 21:20:26 +0000 (22:20 +0100)]
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

8 years agoAdd fuel slot to furnace listring
Wuzzy [Thu, 27 Oct 2016 16:40:13 +0000 (18:40 +0200)]
Add fuel slot to furnace listring

8 years agoAdd icon overlay to shelf inventory slots
Wuzzy [Thu, 27 Oct 2016 17:42:47 +0000 (19:42 +0200)]
Add icon overlay to shelf inventory slots

8 years agoDefault: Remove unnecessary leaf 'visual scale'
paramat [Sat, 29 Oct 2016 12:29:53 +0000 (13:29 +0100)]
Default: Remove unnecessary leaf 'visual scale'

8 years agoDefault: Remove 'player falling damage' sound
paramat [Sat, 29 Oct 2016 12:12:48 +0000 (13:12 +0100)]
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.

8 years agoDefault: Add bush stem and leaves nodes
paramat [Wed, 12 Oct 2016 23:48:56 +0000 (00:48 +0100)]
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.

8 years agoDefault: Remove alpha channel from acacia tree textures
paramat [Wed, 26 Oct 2016 06:06:32 +0000 (07:06 +0100)]
Default: Remove alpha channel from acacia tree textures

8 years agogame_api.txt: Add new metal sounds func.
LNJ [Tue, 25 Oct 2016 15:42:28 +0000 (17:42 +0200)]
game_api.txt: Add new metal sounds func.

8 years agoFire: Reduce volume of flint and steel sound
paramat [Tue, 25 Oct 2016 02:54:09 +0000 (03:54 +0100)]
Fire: Reduce volume of flint and steel sound

8 years agoDefault: Update and set volume of damage sounds
paramat [Tue, 25 Oct 2016 02:42:08 +0000 (03:42 +0100)]
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.

8 years agoMake flammable: Flowers, grasses and several crafitems
Fernando Carmona Varo [Mon, 24 Oct 2016 18:34:00 +0000 (20:34 +0200)]
Make flammable: Flowers, grasses and several crafitems

8 years agoChange many metal nodes to use default metal sounds
Auke Kok [Wed, 19 Oct 2016 23:34:22 +0000 (16:34 -0700)]
Change many metal nodes to use default metal sounds

8 years agoDefault: Add metal sound table function and metal sounds
Auke Kok [Wed, 19 Oct 2016 23:23:05 +0000 (16:23 -0700)]
Default: Add metal sound table function and metal sounds

8 years agoFire: Add flint and steel sound
paramat [Sun, 23 Oct 2016 05:16:19 +0000 (06:16 +0100)]
Fire: Add flint and steel sound

8 years agoDefault: Add damage and falling damage sounds
paramat [Fri, 21 Oct 2016 03:22:00 +0000 (04:22 +0100)]
Default: Add damage and falling damage sounds

8 years agoDefault: Destroy flammable items when in fire or lava
Fernando Carmona Varo [Sun, 11 Sep 2016 15:24:02 +0000 (17:24 +0200)]
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.

8 years agoDefault: Fix 'leaves simple', 'jungleleaves simple' textures
paramat [Sun, 16 Oct 2016 00:42:24 +0000 (01:42 +0100)]
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.

8 years agoDefault: Add coral nodes and death ABM
paramat [Wed, 12 Oct 2016 00:49:31 +0000 (01:49 +0100)]
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.

8 years agoBucket: Add optional 'force-renew' bool to registration
paramat [Sun, 9 Oct 2016 22:33:07 +0000 (23:33 +0100)]
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.

8 years agoStore registered plant on namespace
bas080 [Sat, 7 May 2016 09:50:59 +0000 (11:50 +0200)]
Store registered plant on namespace

Handy for when modders want to use these definitions to extend or add to the mod

8 years agoTnt: Various optimisations
tenplus1 [Wed, 5 Oct 2016 15:15:49 +0000 (16:15 +0100)]
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.

8 years agoCreative: Use element instead of parameter to disable close on enter 1317/head
rubenwardy [Sat, 8 Oct 2016 17:02:14 +0000 (18:02 +0100)]
Creative: Use element instead of parameter to disable close on enter

8 years agoDefault/functions: Tune speed of grass spread ABM
paramat [Wed, 5 Oct 2016 20:07:05 +0000 (21:07 +0100)]
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.

8 years agoDefault: Prevent possible nil-crash on invalid book metadata
Tim [Tue, 4 Oct 2016 17:49:06 +0000 (19:49 +0200)]
Default: Prevent possible nil-crash on invalid book metadata

8 years agoFix sapling placement handling of on_rightclick and CONTENT_IGNORE
Tim [Tue, 4 Oct 2016 17:18:45 +0000 (19:18 +0200)]
Fix sapling placement handling of on_rightclick and CONTENT_IGNORE

8 years agoDefault: Add 'silver sand' for cold desert biome
paramat [Tue, 4 Oct 2016 02:45:49 +0000 (03:45 +0100)]
Default: Add 'silver sand' for cold desert biome

8 years agoDefault: Generalise, optimise and simplify grass spread function
paramat [Thu, 22 Sep 2016 10:56:15 +0000 (11:56 +0100)]
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.

8 years agoDoors: Remove ability to rotate doors with screwdrivers
paramat [Wed, 28 Sep 2016 21:09:50 +0000 (22:09 +0100)]
Doors: Remove ability to rotate doors with screwdrivers

Rotating doors with screwdrivers causes too many issues to be worth it.

8 years agoDefault/player.lua: Remove outdated comment
DS-Minetest [Wed, 28 Sep 2016 18:57:17 +0000 (20:57 +0200)]
Default/player.lua: Remove outdated comment

8 years agoFarming: Remove unnecessary overriding of groups
tenplus1 [Tue, 27 Sep 2016 10:12:04 +0000 (11:12 +0100)]
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

8 years agoAdd settingtypes.txt for Minetest Game
paramat [Fri, 23 Sep 2016 16:55:16 +0000 (17:55 +0100)]
Add settingtypes.txt for Minetest Game

Commit originally by PilzAdam.
Settings appear in advanced settings menu.

8 years agoDoors: Trim open fencegate collison box again
paramat [Thu, 22 Sep 2016 12:46:12 +0000 (13:46 +0100)]
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.

8 years agoDefault: New snow textures by Gambit
paramat [Tue, 13 Sep 2016 02:14:22 +0000 (03:14 +0100)]
Default: New snow textures by Gambit

From PixelBOX2 texture pack.
Brightness increased for 'snow' and 'snow side'.

8 years agoStairs: Big simplification of slabs combination
Auke Kok [Mon, 25 Jan 2016 12:45:25 +0000 (13:45 +0100)]
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.

8 years agoBones: Search for nearby 'air' for fallback bones placement
tenplus1 [Wed, 7 Sep 2016 09:22:57 +0000 (10:22 +0100)]
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.

8 years agoXpanes: Convert to connected nodeboxes
Auke Kok [Thu, 17 Mar 2016 07:40:30 +0000 (00:40 -0700)]
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.

8 years agoLicenses: (Part 4) Remove overlooked WTFPL text. Cleanup
paramat [Wed, 7 Sep 2016 23:16:16 +0000 (00:16 +0100)]
Licenses: (Part 4) Remove overlooked WTFPL text. Cleanup

8 years agoChange WTFPL to MIT (part 3)
paramat [Wed, 7 Sep 2016 01:52:57 +0000 (02:52 +0100)]
Change WTFPL to MIT (part 3)

Relicense WTFPL media to CC BY-SA 3.0.
Various corrections and edits.

8 years agoLicenses: Change WTFPL to MIT (part 2)
paramat [Mon, 5 Sep 2016 06:24:18 +0000 (07:24 +0100)]
Licenses: Change WTFPL to MIT (part 2)

Add license.txt files.
Update and improve README.txt files.
Corrections to part 1.

8 years agoLicenses: Change WTFPL to MIT (part 1)
paramat [Sun, 4 Sep 2016 05:31:01 +0000 (06:31 +0100)]
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.

8 years agoDefault: Vary wood burn times according to wood density
paramat [Thu, 1 Sep 2016 04:56:21 +0000 (05:56 +0100)]
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.

8 years agoDefault/furnace: Indicate dst full
Auke Kok [Fri, 26 Aug 2016 18:00:49 +0000 (11:00 -0700)]
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.

8 years agoCreative: Make dig times near-identical for nodes of all levels
paramat [Tue, 23 Aug 2016 19:33:37 +0000 (20:33 +0100)]
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.

8 years agoDefault: Eliminate redundant 'get modpath' calls
Pinky Snow [Sat, 27 Aug 2016 22:28:02 +0000 (18:28 -0400)]
Default: Eliminate redundant 'get modpath' calls

8 years agoDefault, stairs, doors: Vary wood flammable and choppy group values
paramat [Sat, 27 Aug 2016 01:41:31 +0000 (02:41 +0100)]
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'.

8 years agoAdd search on enter press to creative inventory
rubenwardy [Sat, 27 Aug 2016 17:07:57 +0000 (18:07 +0100)]
Add search on enter press to creative inventory

8 years agoFlowers: Add missing aliases for mushrooms from the mushroom mod
Megaf [Sun, 21 Aug 2016 20:18:32 +0000 (21:18 +0100)]
Flowers: Add missing aliases for mushrooms from the mushroom mod

8 years agoFire: Use 'enable fire' setting instead of 'disable fire'
paramat [Mon, 15 Aug 2016 20:29:52 +0000 (21:29 +0100)]
Fire: Use 'enable fire' setting instead of 'disable fire'

8 years agoDefault: Improve fences inventory/wield images
pithydon [Sat, 30 Jul 2016 23:15:42 +0000 (17:15 -0600)]
Default: Improve fences inventory/wield images

8 years agoDefault/trees: Faster 'is snow nearby' function
tenplus1 [Wed, 10 Aug 2016 13:03:18 +0000 (14:03 +0100)]
Default/trees: Faster 'is snow nearby' function

Use 'find node near' instead of 'find nodes in area'

8 years agoDefault: Optimise and simplify leafdecay ABM, remove cache
paramat [Sun, 7 Aug 2016 02:54:08 +0000 (03:54 +0100)]
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

8 years agoAdd labels to ABMs
tenplus1 [Mon, 8 Aug 2016 09:56:13 +0000 (10:56 +0100)]
Add labels to ABMs

Useful for searches and the mod profiler.

8 years agoChanged snow nodebox to 'walkable = false'
DonBatman [Mon, 8 Aug 2016 00:23:44 +0000 (17:23 -0700)]
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.

8 years agoTnt: Limit blown up dropped stacks to stack_max
tenplus1 [Thu, 4 Aug 2016 09:22:41 +0000 (10:22 +0100)]
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.

8 years agoUse minetest instead of core namespace, discourage via luacheck
Tim [Fri, 5 Aug 2016 12:55:43 +0000 (14:55 +0200)]
Use minetest instead of core namespace, discourage via luacheck

8 years agoLet Travis-CI automatically run luacheck on the game
Tim [Sun, 26 Jun 2016 15:12:40 +0000 (17:12 +0200)]
Let Travis-CI automatically run luacheck on the game

8 years agoScrewdriver: disallow rotation with `on_rotate = false`
Tim [Fri, 5 Aug 2016 10:14:33 +0000 (12:14 +0200)]
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.

8 years agoDoors: Allow the screwdriver to rotate doors around y-axis.
Tim [Tue, 2 Aug 2016 18:10:57 +0000 (20:10 +0200)]
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.

8 years agoTNT: Fix bug with huge stacks
tenplus1 [Wed, 3 Aug 2016 08:10:09 +0000 (09:10 +0100)]
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!

8 years agoDoors: Trim open fence gate collision box
paramat [Wed, 3 Aug 2016 00:35:20 +0000 (01:35 +0100)]
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.

8 years agoDoors: Fix potential crashes, code improvements
Tim [Sat, 30 Jul 2016 12:21:30 +0000 (14:21 +0200)]
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.

8 years agoBones: Improve bones textures
paramat [Sat, 30 Jul 2016 00:49:49 +0000 (01:49 +0100)]
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.

8 years agoBeds, boats: Replace deprecated get_look_yaw/set_look_yaw
SmallJoker [Mon, 25 Jul 2016 15:42:42 +0000 (17:42 +0200)]
Beds, boats: Replace deprecated get_look_yaw/set_look_yaw

8 years agoDefault: Prevent placing sapling if grown tree intersects protection
paramat [Tue, 19 Jul 2016 00:01:59 +0000 (01:01 +0100)]
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.

8 years agoBones: Ability to change bones mode. Tidy up code
tenplus1 [Mon, 21 Mar 2016 21:22:26 +0000 (21:22 +0000)]
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

8 years agoFlowers: Fix waterlily on-place itemstack code
paramat [Tue, 19 Jul 2016 21:26:02 +0000 (22:26 +0100)]
Flowers: Fix waterlily on-place itemstack code

Add 'record_protection_violation()'

8 years agoDoors: Fix orientations of trapdoor textures
Thomas--S [Mon, 18 Jul 2016 05:14:01 +0000 (07:14 +0200)]
Doors: Fix orientations of trapdoor textures

8 years agoNyancat: Fix texture names
paramat [Mon, 18 Jul 2016 22:07:11 +0000 (23:07 +0100)]
Nyancat: Fix texture names

8 years agoDefault/trees: Update to 'get_mapgen_setting()'
paramat [Mon, 18 Jul 2016 21:50:00 +0000 (22:50 +0100)]
Default/trees: Update to 'get_mapgen_setting()'

8 years agoDoors: Fix trapdoor on_blast
Thomas--S [Sun, 17 Jul 2016 18:37:29 +0000 (20:37 +0200)]
Doors: Fix trapdoor on_blast

Removing the node above was an error and is unnecessary