This commit is contained in:
flux
2022-06-19 15:26:05 -07:00
parent 31f7d56a33
commit 5990d7c6a4
20 changed files with 617 additions and 144 deletions

View File

@ -1,57 +1,75 @@
stairsplus.api.circular_saw = {}
local circular_saw = stairsplus.api.circular_saw
local api = stairsplus.api
local station = api.station
local get_location_string = stairsplus.util.get_location_string
local S = stairsplus.S
local F = minetest.formspec_escape
local formspec_style = stairsplus.resources.formspec_style
local function update_infotext(pos)
local meta = minetest.get_meta(pos)
function circular_saw.build_formspec(meta, inv)
local inv_location = get_location_string(inv)
return ([[
size[12,10]
%s
label[0,0;%s]
list[%s;stairsplus:input;1.7,0;1,1;]
label[0,1;%s]
list[%s;stairsplus:micro;1.7,1;1,1;]
label[0,2;%s]
list[%s;stairsplus:recycle;1.7,2;1,1;]
field[0.3,3.5;1,1;max_offered;%s:;%i]
button[1,3.2;1.7,1;Set;%s]
list[%s;stairsplus:output;2.8,0;9,6;]
list[current_player;main;1.5,6.25;8,4;]
listring[%s;stairsplus:output]
listring[current_player;main]
listring[%s;stairsplus:recycle]
listring[%s;stairsplus:micro]
listring[current_player;main]
listring[%s;stairsplus:input]
listring[current_player;main]
]]):format(
formspec_style,
F(S("Nodes")),
inv_location,
F(S("Microblocks")),
inv_location,
F(S("Input")),
inv_location,
F(S("Max")),
meta:get_int("stairsplus:max_offered"),
F(S("Set")),
inv_location,
inv_location,
inv_location,
inv_location,
inv_location
)
end
function circular_saw.update_infotext(meta, inv)
local parts = {}
if station.can_dig(pos) then
if station.can_dig(meta, inv) then
table.insert(parts, S("Circular Saw is empty"))
end
local owner = meta:get_string("owner")
if owner ~= "" then
table.insert(parts, S("(owned by @1)", meta:get_string("owner")))
table.insert(parts, S("(owned by @1)", owner))
end
meta:set_string("infotext", table.concat(parts, " "))
end
local function build_formspec()
return ([[
size[12,10]
%s
label[0,0;%s]
list[current_name;input;1.7,0;1,1;]
label[0,1;%s]
list[current_name;micro;1.7,1;1,1;]
label[0,2;%s]
list[current_name;recycle;1.7,2;1,1;]
field[0.3,3.5;1,1;max_offered;%s:;${max_offered}]
button[1,3.2;1.7,1;Set;%s]
list[current_name;output;2.8,0;9,6;]
list[current_player;main;1.5,6.25;8,4;]
listring[current_name;output]
listring[current_player;main]
listring[current_name;recycle]
listring[current_name;micro]
listring[current_player;main]
listring[current_name;input]
listring[current_player;main]
]]):format(
formspec_style, S("Nodes"), F(S("Microblocks")), F(S("Input")), F(S("Max")), F(S("Set"))
)
end
api.register_station("stairsplus:circular_saw", {"legacy"}, {
description = S("Circular Saw"),
drawtype = "nodebox",
@ -79,8 +97,8 @@ api.register_station("stairsplus:circular_saw", {"legacy"}, {
groups = {choppy = 2, oddly_breakable_by_hand = 2},
sounds = stairsplus.resources.sounds.wood,
build_formspec = build_formspec,
update_infotext = update_infotext,
build_formspec = circular_saw.build_formspec,
update_infotext = circular_saw.update_infotext,
})
local cm = stairsplus.resources.craft_materials