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`.
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.
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.
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.
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.
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.
Handbrake was barely noticeable and fairly useless.
Equalisng with brake rail deceleration makes it more intuitive to use
and easier to judge stopping distance.
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.
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.
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.
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.
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.
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.
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.
- 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-198796927https://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.
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.
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.
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.