Commit Graph

463 Commits

Author SHA1 Message Date
Auke Kok
4f32fd253c Fix ItemStack method call for keys.
Fixes (I hope) #1420 (bad method call).
2016-11-27 18:26:31 -08: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
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
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
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
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
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
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
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
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
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
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
DS-Minetest
36a78c87d7 Default/player.lua: Remove outdated comment 2016-09-30 02:43:11 +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
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
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
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
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