minetest_game/mods/default/textures
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
..
bubble.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
crack_anylength.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_acacia_bush_stem.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_acacia_leaves.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_acacia_leaves_simple.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_acacia_sapling.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_acacia_tree.png Default: Remove alpha channel from acacia tree textures 2016-10-26 07:14:12 +01:00
default_acacia_tree_top.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_acacia_wood.png Default: Add savanna nodes, textures, crafting and fuels 2015-07-12 22:41:59 +01:00
default_apple.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_aspen_leaves.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_aspen_sapling.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_aspen_tree.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_aspen_tree_top.png Aspen trees. 2016-01-15 04:56:15 +00:00
default_aspen_wood.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_book.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_book_written.png Add a separate image for a written book. 2015-12-12 19:56:56 +01:00
default_bookshelf.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_bookshelf_slot.png Default, vessels: Darken shelf empty slot icons 2016-11-07 14:32:35 +00:00
default_brick.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_bronze_block.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_bronze_ingot.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_bush_stem.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_cactus_side.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_cactus_top.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_chest_front.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_chest_lock.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_chest_side.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_chest_top.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_clay.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_clay_brick.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_clay_lump.png Textures Update 2015-01-25 10:48:42 +01:00
default_cloud.png Compress all textures losslessly using optipng and advpng 2014-07-05 16:06:00 +02:00
default_coal_block.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_coal_lump.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_cobble.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_copper_block.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_copper_ingot.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_copper_lump.png Textures Update 2015-01-25 10:48:42 +01:00
default_coral_brown.png Default: Add coral nodes and death ABM 2016-10-12 23:55:46 +01:00
default_coral_orange.png Default: Add coral nodes and death ABM 2016-10-12 23:55:46 +01:00
default_coral_skeleton.png Default: Add coral nodes and death ABM 2016-10-12 23:55:46 +01:00
default_desert_cobble.png Default: Colourise desert cobble to be consistent with desert stone 2016-03-15 16:23:13 +00:00
default_desert_sand.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_desert_stone.png Compress all textures losslessly using optipng and advpng 2014-07-05 16:06:00 +02:00
default_desert_stone_block.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_desert_stone_brick.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_diamond.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_diamond_block.png Improved diamond block texture (from #548) 2015-07-12 12:06:38 +02:00
default_dirt.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_dry_grass.png Default: Add savanna nodes, textures, crafting and fuels 2015-07-12 22:41:59 +01:00
default_dry_grass_1.png Default: Add savanna nodes, textures, crafting and fuels 2015-07-12 22:41:59 +01:00
default_dry_grass_2.png Default: Add savanna nodes, textures, crafting and fuels 2015-07-12 22:41:59 +01:00
default_dry_grass_3.png Default: Add savanna nodes, textures, crafting and fuels 2015-07-12 22:41:59 +01:00
default_dry_grass_4.png Default: Add savanna nodes, textures, crafting and fuels 2015-07-12 22:41:59 +01:00
default_dry_grass_5.png Default: Add savanna nodes, textures, crafting and fuels 2015-07-12 22:41:59 +01:00
default_dry_grass_side.png Default: Lower grass_side and snow_side textures 2016-05-05 23:42:10 +01:00
default_dry_shrub.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_fence_acacia_wood.png Convert fences to NDT_CONNECTED. 2016-03-13 04:10:51 +00:00
default_fence_aspen_wood.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_fence_junglewood.png Convert fences to NDT_CONNECTED. 2016-03-13 04:10:51 +00:00
default_fence_overlay.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_fence_pine_wood.png Convert fences to NDT_CONNECTED. 2016-03-13 04:10:51 +00:00
default_fence_wood.png Convert fences to NDT_CONNECTED. 2016-03-13 04:10:51 +00:00
default_flint.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_footprint.png Default: New grass textures, new footprint overlay texture 2015-08-15 21:19:39 +01:00
default_furnace_bottom.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_furnace_fire_bg.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_furnace_fire_fg.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_furnace_front.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_furnace_front_active.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_furnace_side.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_furnace_top.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_glass.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_glass_detail.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_gold_block.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_gold_ingot.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_gold_lump.png Textures Update 2015-01-25 10:48:42 +01:00
default_grass.png Default: New grass and grass_side textures 2016-04-29 23:19:30 +01:00
default_grass_1.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_grass_2.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_grass_3.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_grass_4.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_grass_5.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_grass_side.png Default: Lower grass_side and snow_side textures 2016-05-05 23:42:10 +01:00
default_gravel.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_ice.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_iron_lump.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_item_smoke.png Default: Destroy flammable items when in fire or lava 2016-10-23 03:48:37 +01:00
default_junglegrass.png Compress all textures losslessly using optipng and advpng 2014-07-05 16:06:00 +02:00
default_jungleleaves.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_jungleleaves_simple.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_junglesapling.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_jungletree.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_jungletree_top.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_junglewood.png Default: New darker jungletree_top and junglewood textures 2015-08-14 19:15:33 +01:00
default_key.png Keys: Allow easy sharing of access without commands 2016-11-25 03:01:14 +00:00
default_key_skeleton.png Keys: Allow easy sharing of access without commands 2016-11-25 03:01:14 +00:00
default_ladder_steel.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_ladder_wood.png Add steel ladder 2016-03-06 01:31:36 +00:00
default_lava.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_lava_flowing_animated.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_lava_source_animated.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_leaves.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_leaves_simple.png Default: Fix 'leaves simple', 'jungleleaves simple' textures 2016-10-18 05:53:45 +01:00
default_mese_block.png Default: New mese texture. Add missing texture credits 2016-05-30 11:54:24 +01:00
default_mese_crystal.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_mese_crystal_fragment.png Compress all textures losslessly using optipng and advpng 2014-07-05 16:06:00 +02:00
default_meselamp.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_mineral_coal.png Compress all textures losslessly using optipng and advpng 2014-07-05 16:06:00 +02:00
default_mineral_copper.png Compress all textures losslessly using optipng and advpng 2014-07-05 16:06:00 +02:00
default_mineral_diamond.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_mineral_gold.png Compress all textures losslessly using optipng and advpng 2014-07-05 16:06:00 +02:00
default_mineral_iron.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_mineral_mese.png Default: Remove light source from mese ore 2015-10-03 01:11:10 +01:00
default_mossycobble.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_obsidian.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_obsidian_block.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_obsidian_brick.png Default: New obsidian brick texture. Add river water textures 2015-06-02 01:13:34 +01:00
default_obsidian_glass.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_obsidian_glass_detail.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_obsidian_shard.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_paper.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_papyrus.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_pine_needles.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_pine_sapling.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_pine_tree.png Default: Rename pine tree nodes, textures and mapgen aliases 2015-08-10 09:19:02 +01:00
default_pine_tree_top.png Default: Rename pine tree nodes, textures and mapgen aliases 2015-08-10 09:19:02 +01:00
default_pine_wood.png Default: Rename pine tree nodes, textures and mapgen aliases 2015-08-10 09:19:02 +01:00
default_river_water.png Default: New obsidian brick texture. Add river water textures 2015-06-02 01:13:34 +01:00
default_river_water_flowing_animated.png Default: New obsidian brick texture. Add river water textures 2015-06-02 01:13:34 +01:00
default_river_water_source_animated.png Default: New obsidian brick texture. Add river water textures 2015-06-02 01:13:34 +01:00
default_sand.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_sandstone.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_sandstone_block.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_sandstone_brick.png Default: New sandstone brick texture 2015-05-31 05:55:12 +01:00
default_sapling.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_sign_steel.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_sign_wall_steel.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_sign_wall_wood.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_sign_wood.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_silver_sand.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_snow.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_snow_side.png Default: New snow textures by Gambit 2016-09-14 06:02:16 +01:00
default_snowball.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
default_steel_block.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_steel_ingot.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_stick.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_stone.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_stone_block.png Default: Add stone / desert stone / sandstone / obsidian blocks 2016-06-25 06:58:18 +01:00
default_stone_brick.png Convert many textures to indexed color 2016-11-18 05:37:02 +00:00
default_tool_bronzeaxe.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_bronzepick.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_bronzeshovel.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_bronzesword.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_diamondaxe.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_diamondpick.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_diamondshovel.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_diamondsword.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_meseaxe.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_mesepick.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_meseshovel.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_mesesword.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_steelaxe.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_steelpick.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_steelshovel.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_steelsword.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_stoneaxe.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_stonepick.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_stoneshovel.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_stonesword.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_woodaxe.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_woodpick.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_woodshovel.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tool_woodsword.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_torch_animated.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_torch_on_ceiling_animated.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_torch_on_floor.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_torch_on_floor_animated.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tree.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_tree_top.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_water.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_water_flowing_animated.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_water_source_animated.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
default_wood.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
gui_formbg.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
gui_furnace_arrow_bg.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
gui_furnace_arrow_fg.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
gui_hb_bg.png Compress all textures losslessly using optipng and advpng 2014-07-05 16:06:00 +02:00
gui_hotbar.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
gui_hotbar_selected.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
heart.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
player.png Textures: Revert many back to RGBA to fix visual bug 2016-11-19 23:45:08 +00:00
player_back.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00
wieldhand.png Optimize textures and model (use *.b3d instead *.x) 2015-02-28 22:33:19 +01:00