Commit Graph

908 Commits (master)

Author SHA1 Message Date
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
sfan5 b0ae488277 Use travis' container-based infrastructure (#1314)
Use travis' container-based infrastructure (no sudo)
2016-11-23 22:00:35 -08: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
LNJ 138eb71db6 game_api.txt: Add new metal sounds func. 2016-10-25 14:15:53 -07: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