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>wood_api
commit
d78ba13dea
|
@ -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)
|
|
@ -0,0 +1,3 @@
|
||||||
|
# textdomain: mcl_spyglass
|
||||||
|
Spyglass=Подзорная труба
|
||||||
|
A spyglass is an item that can be used for zooming in on specific locations.=Подзорная труба это предмет который позволяет смотреть вдаль.
|
|
@ -0,0 +1,3 @@
|
||||||
|
# textdomain: mcl_spyglass
|
||||||
|
Spyglass=
|
||||||
|
A spyglass is an item that can be used for zooming in on specific locations.=
|
|
@ -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.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
Loading…
Reference in New Issue