Use minetest.raillike_group for rails
[MineClone/MineClone2/MineClone2.git] / MISSING_ENGINE_FEATURES.md
blob313c535f479282b57a1fc1345f77a01690ac4291
1 # Missing features in Minetest to recreate Minecraft features
3 A side goal of the MineClone 2 project is to find any shortcomings of Minetest which make it impossible to recreate a Minecraft feature exactly.
4 This file lists some of the missing features in Minetest which MineClone 2 would require.MineClone 2 would require.MineClone 2 would require.MineClone 2 would require.
6 ## No workaround possible
7 For these features, no easy Lua workaround could be found.
9 ### Lua API
10 #### Tools/wielded item
11 - “Lock” hotbar for a brief time after using an item, making it impossible to switch item or to attach/mine/build until the delay is over (For eating with delay)
12 - Tool charging: Holding down the mouse and releasing it, applying a “power level” (For bow and arrows, more charge = higher arrow range) ([issue 5212](https://github.com/minetest/minetest/issues/5212))
13 - [Dual Wielding](http://minecraft.gamepedia.com/Dual_wield)
14 - Eating/drinking animation ([issue 2811](https://github.com/minetest/minetest/issues/2811))
16 #### Nodes
17 - Light level 15 for nodes (not sunlight)
18 - Nodes makes light level drop by 2 or or more per node ([issue 5209](https://github.com/minetest/minetest/issues/5209))
20 ## Interface
21 - Inventory: Hold down right mouse button while holding an item stack to drop items into the slots as you move the mouse. Makes crafting MUCH faster
22 - Sneak+Leftclick on crafting output crafts as many items as possible and immediately puts it into the player inventory ([issue 5211](https://github.com/minetest/minetest/issues/5211))
23 - Sneak+click on inventory slot should be able to put items into additional “fallback inventories” if the first inventory is full. Required for large chests
24 - Sneak+click puts items in different inventories depending on the item type (maybe group-based)? Required for sneak-clicking to armor slots
26 ## Workaround theoretically possible
27 For these features, a workaround (or hack ;-)) by using Lua is theoretically possible. But engine support would be clearly better, more performant, more reliable, etc.
29 ### Lua API
30 #### Nodes
31 - Change walking speed on block (soul sand)
32 - Change jumping height on block (soul sand), 
33 - Change object movement speed *through* a block, but for non-liquids (for cobweb)
34 - Add `on_walk_over` event
35 - Set frequency in which players lose breath. 2 seconds are hardcoded in Minetest, in Minecraft it's 1 second
36 - Set damage frequency of `damage_per_second`. In Minecraft many things damage players every half-second rather than every second
37 - Possible to damage players directly when they are with the head inside. This allows to add Minecraft-like suffocation
39 #### Nice-to-haye
40 - Utility function to rotate pillar-like nodes, requiring only 3 possible orientations (X, Y, Z). Basically this is `minetest.rotate_node` but with less orientations; the purpur pillar would mess up if a mirrored rotation would be possible. This is already implemented in MCL2, See `mcl_util` for more infos