• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

blockexchange / blockexchange / 13549447711

26 Feb 2025 05:08PM UTC coverage: 51.158% (-1.1%) from 52.251%
13549447711

push

github

web-flow
simple `/bx` command

* bx menu

* profile stub

* ui util / styling

* ui

* wip

* ui nav

* `/bx` info

* bump timeout

---------

Co-authored-by: BuckarooBanzay <BuckarooBanzay@users.noreply.github.com>

15 of 75 new or added lines in 3 files covered. (20.0%)

16 existing lines in 3 files now uncovered.

994 of 1943 relevant lines covered (51.16%)

1271.47 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

5.41
/util/placer_tool.lua
1
if not minetest.get_modpath("wield_events") then
1✔
2
    -- wield-events not available
3
    return
1✔
4
end
5

6
minetest.register_tool("blockexchange:place", {
×
7
    description = "Placement tool",
8
    inventory_image = "blockexchange_plus.png^[colorize:#0000ff",
9
    stack_max = 1,
10
    range = 0,
11
    groups = {
×
12
        not_in_creative_inventory = 1
×
13
    },
14
    on_use = function(itemstack, player)
15
        local playername = player:get_player_name()
×
16
        local controls = player:get_player_control()
×
17

18
        if blockexchange.get_job_context(playername) then
×
19
            minetest.chat_send_player(playername, "There is a job already running")
×
20
            return
×
21
        end
22

23
        local meta = itemstack:get_meta()
×
24
        local username = meta:get_string("username")
×
25
        local schemaname = meta:get_string("schemaname")
×
26
        local size = minetest.string_to_pos(meta:get_string("size"))
×
27
        local distance = vector.distance(vector.new(), size)
×
28

29
        local pos1 = blockexchange.get_pointed_position(player, math.max(10, distance) + 5)
×
30
        local pos2 = vector.add(pos1, vector.subtract(size, 1))
×
31

32
        if controls.aux1 then
×
33
            -- removal
34
            blockexchange.remove_nodes(pos1, pos2)
×
35
        else
36
            -- placement
37
            -- force-enable player-hud
38
            blockexchange.set_player_hud(playername, true)
×
39

40
            blockexchange.load(playername, pos1, username, schemaname):next(function(result)
×
41
                minetest.chat_send_player(
×
42
                    playername,
43
                    "Download complete with " .. result.schema.total_parts .. " parts"
×
44
                )
UNCOV
45
            end):catch(function(err_msg)
×
46
                minetest.chat_send_player(playername, minetest.colorize("#ff0000", err_msg))
×
47
            end)
48
        end
49
    end,
50
    on_step = function(itemstack, player)
51
        local playername = player:get_player_name()
×
UNCOV
52
        local controls = player:get_player_control()
×
53

UNCOV
54
        local meta = itemstack:get_meta()
×
UNCOV
55
        local size = minetest.string_to_pos(meta:get_string("size"))
×
56
        local distance = vector.distance(vector.new(), size)
×
57

UNCOV
58
        local pos1 = blockexchange.get_pointed_position(player, math.max(10, distance) + 5)
×
59
        local pos2 = vector.add(pos1, vector.subtract(size, 1))
×
60

61
        if controls.aux1 then
×
62
            -- removal preview
63
            blockexchange.show_preview(playername, "blockexchange_minus.png", "#ff0000", pos1, pos2)
×
64
        else
65
            -- build preview
66
            blockexchange.show_preview(playername, "blockexchange_plus.png", "#0000ff", pos1, pos2)
×
67
        end
68
    end,
69
    on_deselect = function(_, player)
UNCOV
70
        local playername = player:get_player_name()
×
71
        blockexchange.clear_preview(playername)
×
72
    end
73
})
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc