Merge pull request 'mcl_spyglass by NO11' (#2309) from mcl_spyglass into master

Reviewed-on: https://git.minetest.land/MineClone2/MineClone2/pulls/2309
Reviewed-by: cora <cora@noreply.git.minetest.land>
This commit is contained in:
cora 2022-06-14 19:49:22 +00:00
commit d78ba13dea
6 changed files with 83 additions and 0 deletions

View file

@ -0,0 +1,73 @@
local S = minetest.get_translator(minetest.get_current_modname())
minetest.register_tool("mcl_spyglass:spyglass",{
description = S("Spyglass"),
_doc_items_longdesc = S("A spyglass is an item that can be used for zooming in on specific locations."),
inventory_image = "mcl_spyglass.png",
stack_max = 1,
_mcl_toollike_wield = true,
})
minetest.register_craft({
output = "mcl_spyglass:spyglass",
recipe = {
{"mcl_amethyst:amethyst_shard"},
{"mcl_copper:copper_ingot"},
{"mcl_copper:copper_ingot"},
}
})
local spyglass_scope = {}
local function add_scope(player)
local wielditem = player:get_wielded_item()
if wielditem:get_name() == "mcl_spyglass:spyglass" then
spyglass_scope[player] = player:hud_add({
hud_elem_type = "image",
position = {x = 0.5, y = 0.5},
scale = {x = -100, y = -100},
text = "mcl_spyglass_scope.png",
})
player:hud_set_flags({wielditem = false})
end
end
local function remove_scope(player)
if spyglass_scope[player] then
player:hud_remove(spyglass_scope[player])
spyglass_scope[player] = nil
player:hud_set_flags({wielditem = true})
player:set_fov(86.1)
end
end
controls.register_on_press(function(player, key)
if key ~= "RMB" then return end
add_scope(player)
end)
controls.register_on_release(function(player, key, time)
if key ~= "RMB" then return end
remove_scope(player)
end)
controls.register_on_hold(function(player, key, time)
if key ~= "RMB" then return end
local wielditem = player:get_wielded_item()
if wielditem:get_name() == "mcl_spyglass:spyglass" then
player:set_fov(8, false, 0.1)
if spyglass_scope[player] == nil then
add_scope(player)
end
else
remove_scope(player)
end
end)
minetest.register_on_dieplayer(function(player)
remove_scope(player)
end)
minetest.register_on_leaveplayer(function(player)
spyglass_scope[player] = nil
end)

View file

@ -0,0 +1,3 @@
# textdomain: mcl_spyglass
Spyglass=Подзорная труба
A spyglass is an item that can be used for zooming in on specific locations.=Подзорная труба это предмет который позволяет смотреть вдаль.

View file

@ -0,0 +1,3 @@
# textdomain: mcl_spyglass
Spyglass=
A spyglass is an item that can be used for zooming in on specific locations.=

View file

@ -0,0 +1,4 @@
name = mcl_spyglass
author = NO11
description = This mod adds a spyglass, which is an item that can be used for zooming in on specific locations.
depends = mcl_core, controls

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB