bugfixes for pump, fuelcell, oil drillbox, Lua server, ICTA controller, Lua controller, Door controller. lamp holder added

This commit is contained in:
Joachim Stolberg 2020-04-02 20:38:14 +02:00
parent 0815c6b485
commit 5191d74f5f
9 changed files with 134 additions and 12 deletions

View File

@ -48,19 +48,19 @@ local function formspec(self, pos, nvm)
"image[2,1.5;1,1;techage_form_arrow_fg.png^[transformR270]"..
"image_button[2,2.5;1,1;".. self:get_state_button_image(nvm) ..";state_button;]"..
"tooltip[2,2.5;1,1;"..self:get_state_tooltip(nvm).."]"..
techage.power.formspec_label_bar(3.5, 0.8, S("Electricity"), PWR_CAPA, nvm.provided)
techage.power.formspec_label_bar(3.5, 0.8, S("Electricity"), PWR_CAPA, nvm.given)
end
local function start_node(pos, nvm, state)
nvm.running = true
nvm.provided = 0
nvm.given = 0
local outdir = M(pos):get_int("outdir")
power.generator_start(pos, Cable, CYCLE_TIME, outdir)
end
local function stop_node(pos, nvm, state)
nvm.running = false
nvm.provided = 0
nvm.given = 0
local outdir = M(pos):get_int("outdir")
power.generator_stop(pos, Cable, outdir)
end

View File

@ -502,8 +502,8 @@ techage.register_node({"techage:ta4_icta_controller"}, {
elseif state == techage.RUNNING and topic == "off" then
set_input(pos, number, src, topic)
elseif topic == "state" then
local state = meta:get_int("state")
return techage.StateStrings(state)
local state = meta:get_int("state") or 0
return techage.StateStrings[state] or "stopped"
else
return "unsupported"
end

View File

@ -150,6 +150,7 @@ else
dofile(MP.."/lamps/industriallamp3.lua")
dofile(MP.."/lamps/industriallamp4.lua")
dofile(MP.."/lamps/growlight.lua")
dofile(MP.."/lamps/lampholder.lua")
-- Oil
dofile(MP.."/oil/explore.lua")

115
lamps/lampholder.lua Normal file
View File

@ -0,0 +1,115 @@
--[[
TechAge
=======
Copyright (C) 2020 Joachim Stolberg
GPL v3
See LICENSE.txt for more information
TA3/4 Lamp Holder
]]--
local S = techage.S
local function register_holder(name, description, png)
minetest.register_node(name, {
description = description,
tiles = {png},
paramtype2 = "facedir", -- important!
drawtype = "nodebox",
node_box = {
type = "connected",
fixed = {{ -4/32, -4/32, -4/32, 4/32, 4/32, 4/32}},
connect_top = {{ -3/32, -3/32, -3/32, 3/32, 16/32, 3/32}},
connect_bottom = {{ -3/32, -16/32, -3/32, 3/32, 3/32, 3/32}},
connect_left = {{-16/32, -3/32, -3/32, 3/32, 3/32, 3/32}},
connect_right = {{ -3/32, -3/32, -3/32, 16/32, 3/32, 3/32}},
connect_back = {{ -3/32, -3/32, -3/32, 3/32, 3/32, 16/32}},
connect_front = {{ -3/32, -3/32, -16/32, 3/32, 3/32, 3/32}},
},
connects_to = {
"techage:ceilinglamp_off", "techage:ceilinglamp_on",
"techage:growlight_off", "techage:growlight_on",
"techage:industriallamp1_off", "techage:industriallamp1_on",
"techage:industriallamp2_off", "techage:industriallamp2_on",
"techage:industriallamp3_off", "techage:industriallamp3_on",
"techage:industriallamp4_off", "techage:industriallamp4_on",
"techage:simplelamp_off", "techage:simplelamp_on",
"techage:streetlamp_off", "techage:streetlamp_on",
"techage:streetlamp2_off", "techage:streetlamp2_on",
"techage:streetlamp_arm", "techage:streetlamp_pole",
"techage:streetlamp2_off", "techage:streetlamp2_on",
"techage:power_line", "techage:power_lineS", "techage:power_lineA"
},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky=2, crumbly=2, choppy=2},
sounds = default.node_sound_defaults(),
})
end
register_holder("techage:lampholder1", S("TA Lamp Holder White"), "techage_streetlamp2_housing.png")
register_holder("techage:lampholder2", S("TA Lamp Holder Aspen"), "default_aspen_wood.png")
register_holder("techage:lampholder3", S("TA Lamp Holder Acacia"), "default_acacia_wood.png")
register_holder("techage:lampholder4", S("TA Lamp Holder Apple"), "default_wood.png")
register_holder("techage:lampholder5", S("TA Lamp Holder Copper"), "default_copper_block.png")
register_holder("techage:lampholder6", S("TA Lamp Holder Gold"), "default_gold_block.png")
minetest.register_craft({
output = "techage:lampholder1 2",
recipe = {
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
{"", "dye:white", ""},
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
},
})
minetest.register_craft({
output = "techage:lampholder2 2",
recipe = {
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
{"", "default:fence_aspen_wood", ""},
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
},
})
minetest.register_craft({
output = "techage:lampholder3 2",
recipe = {
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
{"", "default:fence_acacia_wood", ""},
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
},
})
minetest.register_craft({
output = "techage:lampholder4 2",
recipe = {
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
{"", "default:fence_wood", ""},
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
},
})
minetest.register_craft({
output = "techage:lampholder5 2",
recipe = {
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
{"", "default:copper_ingot", ""},
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
},
})
minetest.register_craft({
output = "techage:lampholder6 2",
recipe = {
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
{"", "default:gold_ingot", ""},
{"basic_materials:steel_bar", "", "basic_materials:steel_bar"},
},
})

View File

@ -109,6 +109,10 @@ local function node_timer4(pos, elapsed)
end
local function on_rightclick(pos, node, clicker)
if minetest.is_protected(pos, clicker:get_player_name()) then
return
end
local nvm = techage.get_nvm(pos)
if node.name == "techage:t3_pump" then
set_starter_name(pos, clicker)

View File

@ -42,14 +42,14 @@ local function swap_door_nodes(pos, open)
local nvm = techage.get_nvm(pos)
for _,item in ipairs(nvm.door_blocks or {}) do
if item.pos and item.name and item.param2 then
if open then
local node = techage.get_node_lvm(item.pos)
if open then
if node.name == item.name then
minetest.remove_node(item.pos)
else
item.name = nil
end
else
elseif node.name == "air" then
minetest.add_node(item.pos, {name = item.name, param2 = item.param2})
end
end
@ -98,6 +98,7 @@ minetest.register_node("techage:ta3_doorcontroller", {
end,
after_dig_node = function(pos)
swap_door_nodes(pos, false)
techage.remove_node(pos)
techage.del_mem(pos)
end,

View File

@ -621,7 +621,7 @@ techage.register_node({"techage:ta4_lua_controller"}, {
set_input(pos, number, "msg", payload)
elseif topic == "state" then
local running = meta:get_int("running") or STATE_STOPPED
return techage.StateStrings(running)
return techage.StateStrings[running] or "stopped"
else
return "unsupported"
end

View File

@ -86,6 +86,7 @@ minetest.register_node("techage:ta4_server", {
return
end
techage.del_mem(pos)
minetest.node_dig(pos, node, puncher, pointed_thing)
techage.remove_node(pos)
end,

View File

@ -56,7 +56,7 @@ local function formspec(self, pos, nvm)
if not nvm.assemble_build then
return formspec0
end
local depth = M(pos):get_int("depth") - 7 -- oil bubble
local depth = M(pos):get_int("depth")
local curr_depth = pos.y - (nvm.drill_pos or pos).y
return "size[8,8]"..
default.gui_bg..
@ -134,8 +134,8 @@ local function drilling(pos, crd, nvm, inv)
if not inv:contains_item("src", ItemStack("techage:oil_drillbit")) then
crd.State:idle(pos, nvm, S("Drill bits missing"))
elseif curr_depth >= depth then
M(pos):set_string("oil_found", "false")
crd.State:blocked(pos, nvm, S("No oil found"))
M(pos):set_string("oil_found", "true")
crd.State:stop(pos, nvm)
elseif node.name == "techage:oilstorage" then -- old oil bubble node?
nvm.drill_pos.y = nvm.drill_pos.y-1
crd.State:keep_running(pos, nvm, COUNTDOWN_TICKS)
@ -278,7 +278,7 @@ local _, node_name_ta3, _ =
inv:set_size("src", 1)
inv:set_size("dst", 1)
local info = techage.explore.get_oil_info(pos)
M(pos):set_int("depth", info.depth)
M(pos):set_int("depth", info.depth - 5) -- oil bubble
M(pos):set_int("amount", info.amount)
M(pos):set_string("oil_found", "false")
M(pos):set_string("owner", placer:get_player_name())