Skip to content

Commit

Permalink
Merge branch 'master' into mapserverSupport
Browse files Browse the repository at this point in the history
  • Loading branch information
SwissalpS authored Dec 31, 2024
2 parents 604d105 + c02568e commit 6cc3f19
Show file tree
Hide file tree
Showing 8 changed files with 221 additions and 3 deletions.
8 changes: 7 additions & 1 deletion .luacheckrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
unused_args = false
--std = "luanti+max"

globals = {
"wrench",
Expand All @@ -10,15 +11,20 @@ read_globals = {
"table.indexof",
"minetest",
"ItemStack",
"barter",
"beacon",
"bones",
"christmas",
"digilines",
"drawers",
"fancy_vend",
"jumpdrive",
"locator",
"mesecon",
"pipeworks",
"signs_lib",
"smartshop",
"spacecannon",
"xdecor",
"bones",
}

7 changes: 6 additions & 1 deletion init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,19 @@ local mods = {
"bones",
"christmas",
"connected_chests",
"currency",
"default",
"digibuilder",
"digilines",
"digiscreen",
"digistuff",
"digtron",
"drawers",
"mapserver",
"fancy_vend",
"easyvend",
"jumpdrive",
"locator",
"mapserver",
"mesecons_commandblock",
"mesecons_detector",
"mesecons_luacontroller",
Expand All @@ -51,6 +55,7 @@ local mods = {
"powerbanks",
"protector",
"signs_lib",
"smartshop",
"spacecannon",
"soundblock",
"technic",
Expand Down
7 changes: 6 additions & 1 deletion mod.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ optional_depends = """
biofuel,
bones,
connected_chests,
currency,
christmas,
default,
digtron,
Expand All @@ -16,8 +17,11 @@ optional_depends = """
digiscreen,
digistuff,
drawers,
mapserver,
fancy_vend,
easyvend,
jumpdrive,
locator,
mapserver,
mesecons_commandblock,
mesecons_detector,
mesecons_luacontroller,
Expand All @@ -30,6 +34,7 @@ optional_depends = """
powerbanks,
protector,
signs_lib,
smartshop,
spacecannon,
soundblock,
technic,
Expand Down
42 changes: 42 additions & 0 deletions nodes/currency.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

-- Register wrench support for the currency mod

wrench.register_node("currency:barter", {
lists = { "pl1", "pl2" },
metas = {
clean = wrench.META_TYPE_INT,
formspec = wrench.META_TYPE_IGNORE,
infotext = wrench.META_TYPE_IGNORE,
pl1 = wrench.META_TYPE_STRING,
pl2 = wrench.META_TYPE_STRING,
pl1step = wrench.META_TYPE_INT,
pl2step = wrench.META_TYPE_INT,
timer = wrench.META_TYPE_INT,
},
timer = true,
after_place = function(pos, player, stack, pointed)
barter.chest.update_formspec(core.get_meta(pos))
end,
})

wrench.register_node("currency:safe", {
lists = { "main" },
metas = {
infotext = wrench.META_TYPE_STRING,
owner = wrench.META_TYPE_STRING,
},
owned = true,
})

-- Unkown what happens if a shop is wrenched while a user is using it.
for _, name in ipairs({ "currency:shop", "currency:shop_empty" }) do
wrench.register_node(name, {
lists = { "customers_gave", "owner_gives", "owner_wants", "stock" },
metas = {
infotext = wrench.META_TYPE_STRING,
owner = wrench.META_TYPE_STRING,
},
owned = true,
})
end

42 changes: 42 additions & 0 deletions nodes/fancy_vend.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

-- Register wrench support for the fancy_vend mod

for _, vendor in ipairs({
"fancy_vend:player_vendor",
"fancy_vend:player_depo",
"fancy_vend:admin_vendor",
"fancy_vend:admin_depo",
}) do
wrench.register_node(vendor, {
lists = { "given_item", "main", "wanted_item" },
metas = {
alerted = wrench.META_TYPE_STRING,
configured = wrench.META_TYPE_STRING,
infotext = wrench.META_TYPE_IGNORE,
item = wrench.META_TYPE_STRING,
log = wrench.META_TYPE_STRING,
message = wrench.META_TYPE_STRING,
owner = wrench.META_TYPE_STRING,
settings = wrench.META_TYPE_STRING,
},
after_pickup = function(pos, node, meta_table, player)
local above_node_pos = table.copy(pos)
above_node_pos.y = above_node_pos.y + 1
core.remove_node(above_node_pos)
fancy_vend.remove_item(above_node_pos)
end,
after_place = function(pos)
-- This happens during vendor's on_place function is being run!
-- So we need to hack around that race condition.
-- At this time wrench has already set the meta, so we can stash
-- it from the node with fancy_vend function
local settings = fancy_vend.get_vendor_settings(pos)
core.after(0, function(p, s)
-- Use fancy_vend's own function to apply the stashed settings
fancy_vend.set_vendor_settings(p, s)
fancy_vend.refresh_vendor(p)
end, pos, settings)
end,
})
end

40 changes: 40 additions & 0 deletions nodes/jumpdrive.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@

-- Register wrench support for the jumpdrive mod

wrench.register_node("jumpdrive:engine", {
lists = {"main", "upgrade"},
metas = {
x = wrench.META_TYPE_INT,
y = wrench.META_TYPE_INT,
z = wrench.META_TYPE_INT,
radius = wrench.META_TYPE_INT,
powerstorage = wrench.META_TYPE_INT,
max_powerstorage = wrench.META_TYPE_INT,
power_requirement = wrench.META_TYPE_IGNORE,
owner = wrench.META_TYPE_STRING,
channel = wrench.META_TYPE_STRING,
infotext = wrench.META_TYPE_STRING,
formspec = wrench.META_TYPE_IGNORE, -- legacy field
HV_EU_input = wrench.META_TYPE_IGNORE,
HV_EU_demand = wrench.META_TYPE_IGNORE
},
after_place = function(pos)
jumpdrive.update_formspec(core.get_meta(pos), pos)
end,
})

wrench.register_node("jumpdrive:fleet_controller", {
lists = {"main"},
metas = {
x = wrench.META_TYPE_INT,
y = wrench.META_TYPE_INT,
z = wrench.META_TYPE_INT,
owner = wrench.META_TYPE_STRING,
channel = wrench.META_TYPE_STRING,
infotext = wrench.META_TYPE_STRING,
formspec = wrench.META_TYPE_STRING,
active = wrench.META_TYPE_INT,
jump_index = wrench.META_TYPE_INT,
jump_list = wrench.META_TYPE_STRING
}
})
36 changes: 36 additions & 0 deletions nodes/locator.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@

-- Register wrench support for locator mod

wrench.register_node("locator:radar", {
lists = {},
metas = {
formspec = wrench.META_TYPE_IGNORE,
range = wrench.META_TYPE_INT,
},
after_place = function(pos, player)
local node_def = core.registered_nodes["locator:radar"]
node_def.on_receive_fields(pos, nil, {}, player)
end,
})

for i = 1, 3 do
local node_name = "locator:beacon_" .. i
wrench.register_node(node_name, {
lists = {},
metas = {
active = wrench.META_TYPE_INT,
formspec = wrench.META_TYPE_IGNORE,
infotext = wrench.META_TYPE_IGNORE,
name = wrench.META_TYPE_STRING,
owner = wrench.META_TYPE_STRING,
range = wrench.META_TYPE_IGNORE,
},
after_pickup = function(pos)
locator.remove_beacon(pos)
end,
after_place = function(pos, player)
local node_def = core.registered_nodes[node_name]
node_def.on_receive_fields(pos, nil, {}, player)
end,
})
end
42 changes: 42 additions & 0 deletions nodes/smartshop.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

-- Register wrench support for the smartshop mod

wrench.register_node("smartshop:shop", {
lists = {
"give1", "give2", "give3", "give4",
"main",
"pay1", "pay2", "pay3", "pay4",
},
metas = {
alerted = wrench.META_TYPE_INT,
creative = wrench.META_TYPE_INT,
ghost = wrench.META_TYPE_INT,
infotext = wrench.META_TYPE_IGNORE,
owner = wrench.META_TYPE_STRING,
state = wrench.META_TYPE_IGNORE,
type = wrench.META_TYPE_INT,
},
after_pickup = function(pos)
-- Remove entities
if smartshop.update_entities then
smartshop.update_entities(pos, "clear")
else
-- Older version
smartshop.update(pos, "clear")
end
-- Give smartshop a chance to keep track of statistics
smartshop.update_info(pos)
end,
after_place = function(pos)
-- Update infotext
smartshop.update_info(pos)
-- Create entities
if smartshop.update_entities then
smartshop.update_entities(pos, "update")
else
-- Older version
smartshop.update(pos, "update")
end
end,
})

0 comments on commit 6cc3f19

Please sign in to comment.