From 6e9849f7d0564f5b8a94b77a9b6f67e98bd44ccc Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Sat, 11 May 2019 16:52:59 +0200 Subject: [PATCH] rinser added, bugfixes --- basic_machines/electronic_fab.lua | 44 ++++-- basic_machines/gravelrinser.lua | 66 ++++++-- basic_machines/source.lua | 248 ++++++++++++++++++++++++++++++ basis/junction.lua | 32 ++-- basis/power.lua | 1 - coal_power_station/cooler.lua | 21 ++- coal_power_station/firebox.lua | 2 +- coal_power_station/generator.lua | 4 +- coal_power_station/help.lua | 11 +- init.lua | 6 +- iron_age/coalburner.lua | 2 - power/biogas_pipe.lua | 52 +++---- steam_engine/firebox.lua | 12 ++ textures/techage_appl_source.png | Bin 0 -> 299 bytes 14 files changed, 412 insertions(+), 89 deletions(-) create mode 100644 basic_machines/source.lua create mode 100644 textures/techage_appl_source.png diff --git a/basic_machines/electronic_fab.lua b/basic_machines/electronic_fab.lua index 6e4d8fb..7e2197c 100644 --- a/basic_machines/electronic_fab.lua +++ b/basic_machines/electronic_fab.lua @@ -36,38 +36,49 @@ local ValidInput = { ["basic_materials:plastic_sheet"] = true, ["techage:usmium_nuggets"] = true, }, - {}, -- 3 + { -- 3 + ["default:mese_crystal"] = true, + ["default:copper_ingot"] = true, + ["default:gold_ingot"] = true, + ["basic_materials:silicon"] = true, + }, {}, -- 4 } local Input = { {}, -- 1 {"default:glass", "basic_materials:copper_wire", "basic_materials:plastic_sheet", "techage:usmium_nuggets"}, --2 - {}, -- 3 + {"default:mese_crystal", "default:copper_ingot", "default:gold_ingot", "basic_materials:silicon"}, -- 3 {}, -- 4 } local Output = { "", -- 1 - "techage:vacuum_tube", -- 2 - "", -- 3 + "techage:vacuum_tube 2", -- 2 + "techage:wlanchip 8", -- 3 "", -- 4 } local function formspec(self, pos, mem) + local icon + local trd = TRD(pos) + if trd.stage == 2 then + icon = "techage:vacuum_tube" + elseif trd.stage == 3 then + icon = "techage:wlanchip" + else + icon = "" + end return "size[8,8]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. "list[context;src;0,0;3,3;]".. - "item_image[0,0;1,1;default:glass]".. - "item_image[0,1;1,1;basic_materials:copper_wire]".. - "item_image[0,2;1,1;basic_materials:plastic_sheet]".. "image[3.5,0;1,1;"..techage.get_power_image(pos, mem).."]".. "image[3.5,1;1,1;techage_form_arrow.png]".. "image_button[3.5,2;1,1;".. self:get_state_button_image(mem) ..";state_button;]".. "list[context;dst;5,0;3,3;]".. - "item_image[5,0;1,1;techage:vacuum_tube]".. + "item_image[5,0;1,1;"..icon.."]".. "list[current_player;main;0,4;8,4;]".. "listring[context;dst]".. "listring[current_player;main]".. @@ -269,6 +280,15 @@ minetest.register_craft({ }, }) +minetest.register_craft({ + output = node_name_ta3, + recipe = { + {"", "default:diamond", ""}, + {"", node_name_ta2, ""}, + {"", "techage:vacuum_tube", ""}, + }, +}) + minetest.register_craftitem("techage:vacuum_tube", { description = I("TA3 Vacuum Tubes"), inventory_image = "techage_vacuum_tube.png", @@ -288,12 +308,18 @@ if minetest.global_exists("unified_inventory") then height = 2, }) unified_inventory.register_craft({ - output = "techage:vacuum_tube", + output = "techage:vacuum_tube 2", items = {"default:glass", "basic_materials:copper_wire", "basic_materials:plastic_sheet", "techage:usmium_nuggets"}, type = "electronic_fab", }) + unified_inventory.register_craft({ + output = "techage:wlanchip 8", + items = {"default:mese_crystal", "default:copper_ingot", "default:gold_ingot", "basic_materials:silicon"}, + type = "electronic_fab", + }) end techage.register_help_page(I("TA2 Electronic Fab"), I([[Used to produce Vacuum Pipes, needed for TA3 machines.]]), "techage:ta2_electronic_fab_pas") + diff --git a/basic_machines/gravelrinser.lua b/basic_machines/gravelrinser.lua index 1e8fdb8..d1e838d 100644 --- a/basic_machines/gravelrinser.lua +++ b/basic_machines/gravelrinser.lua @@ -27,6 +27,8 @@ local STANDBY_TICKS = 10 local COUNTDOWN_TICKS = 10 local CYCLE_TIME = 4 +local Probability = {} + local function formspec(self, pos, mem) return "size[8,8]".. default.gui_bg.. @@ -79,6 +81,7 @@ local function determine_water_dir(pos) local pos2 = {x=pos.x-1, y=pos.y, z=pos.z} local pos3 = {x=pos.x, y=pos.y, z=pos.z+1} local pos4 = {x=pos.x, y=pos.y, z=pos.z-1} + local node = minetest.get_node(pos) local node1 = minetest.get_node(pos1) local node2 = minetest.get_node(pos2) local node3 = minetest.get_node(pos3) @@ -88,18 +91,21 @@ local function determine_water_dir(pos) local ndef3 = minetest.registered_nodes[node3.name] local ndef4 = minetest.registered_nodes[node4.name] - if ndef1 and ndef1.liquidtype == "flowing" and ndef2 and ndef2.liquidtype == "flowing" then - if node1.param2 > node2.param2 then - return 4 - elseif node1.param2 < node2.param2 then - return 2 - end - elseif ndef3 and ndef3.liquidtype == "flowing" and ndef4 and ndef4.liquidtype == "flowing" then - if node3.param2 > node4.param2 then - return 3 - elseif node3.param2 < node4.param2 then - return 1 + if minetest.get_item_group(node.name, "water") > 0 then + if ndef1 and ndef1.liquidtype == "flowing" and ndef2 and ndef2.liquidtype == "flowing" then + if node1.param2 > node2.param2 then + return 4 + elseif node1.param2 < node2.param2 then + return 2 + end + elseif ndef3 and ndef3.liquidtype == "flowing" and ndef4 and ndef4.liquidtype == "flowing" then + if node3.param2 > node4.param2 then + return 3 + elseif node3.param2 < node4.param2 then + return 1 + end end + return 0 end end @@ -110,7 +116,7 @@ local function remove_obj(obj) end local function set_velocity(obj, pos, vel) - if obj then + if obj and vel then obj:set_velocity(vel) end end @@ -125,12 +131,21 @@ local function add_object(pos, name) end end +local function get_random_gravel_ore() + for ore, probability in pairs(Probability) do + if math.random(probability) == 1 then + return ore + end + end +end + local function washing(pos, trd, mem, inv) local src = ItemStack("techage:sieved_gravel") local dst = ItemStack("default:sand") if inv:contains_item("src", src) then - if math.random(40) == 1 then - add_object({x=pos.x, y=pos.y+1, z=pos.z}, "techage:usmium_nuggets") + local ore = get_random_gravel_ore() + if ore then + add_object({x=pos.x, y=pos.y+1, z=pos.z}, ore) end else trd.State:idle(pos, mem) @@ -310,6 +325,7 @@ if minetest.global_exists("unified_inventory") then end function techage.add_rinser_recipe(recipe) + Probability[recipe.output] = recipe.probability if minetest.global_exists("unified_inventory") then recipe.items = {recipe.input} recipe.type = "rinsing" @@ -317,8 +333,28 @@ function techage.add_rinser_recipe(recipe) end end +local function remove_objects(pos) + for _, object in pairs(minetest.get_objects_inside_radius(pos, 1)) do + local lua_entity = object:get_luaentity() + if not object:is_player() and lua_entity and lua_entity.name == "__builtin:item" then + object:remove() + end + end +end -techage.add_rinser_recipe({input="techage:sieved_gravel", output="techage:usmium_nuggets"}) +minetest.register_lbm({ + label = "[techage] Rinser update", + name = "techage:update", + nodenames = {"techage:ta2_rinser_act"}, + run_at_every_load = true, + action = function(pos, node) + remove_objects({x=pos.x, y=pos.y+1, z=pos.z}) + end +}) + + +techage.add_rinser_recipe({input="techage:sieved_gravel", output="techage:usmium_nuggets", probability=40}) +techage.add_rinser_recipe({input="techage:sieved_gravel", output="default:copper_lump", probability=20}) techage.register_help_page(I("TA2 Gravel Rinser"), I([[Used to wash Sieved Gravel to get Usmium Nuggets. diff --git a/basic_machines/source.lua b/basic_machines/source.lua new file mode 100644 index 0000000..0859213 --- /dev/null +++ b/basic_machines/source.lua @@ -0,0 +1,248 @@ +--[[ + + TechAge + ======= + + Copyright (C) 2019 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + TA2/TA3/TA4 Power Source + +]]-- + +-- for lazy programmers +local S = function(pos) if pos then return minetest.pos_to_string(pos) end end +local P = minetest.string_to_pos +local M = minetest.get_meta + +-- Load support for intllib. +local MP = minetest.get_modpath("techage") +local I,_ = dofile(MP.."/intllib.lua") + +local TA2_Power = techage.Axle +local TA3_Power = techage.SteamPipe +local TA4_Power = techage.ElectricCable +local generator = techage.generator + +local STANDBY_TICKS = 4 +local COUNTDOWN_TICKS = 4 +local CYCLE_TIME = 16 +local POWER_CAPACITY = 50 + +local function formspec(self, pos, mem) + return "size[8,7]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "image[6,0.5;1,2;"..generator.formspec_level(mem, mem.power_result).. + "image_button[5,1;1,1;".. self:get_state_button_image(mem) ..";state_button;]".. + "button[2.5,1;1.8,1;update;"..I("Update").."]".. + "list[current_player;main;0,3;8,4;]".. + default.get_hotbar_bg(0, 3) +end + +local function start_node(pos, mem, state) + generator.turn_power_on(pos, POWER_CAPACITY) +end + +local function stop_node(pos, mem, state) + generator.turn_power_on(pos, 0) +end + +local State2 = techage.NodeStates:new({ + node_name_passive = "techage:t2_source", + cycle_time = CYCLE_TIME, + standby_ticks = STANDBY_TICKS, + formspec_func = formspec, + start_node = start_node, + stop_node = stop_node, +}) + +local State3 = techage.NodeStates:new({ + node_name_passive = "techage:t3_source", + cycle_time = CYCLE_TIME, + standby_ticks = STANDBY_TICKS, + formspec_func = formspec, + start_node = start_node, + stop_node = stop_node, +}) + +local State4 = techage.NodeStates:new({ + node_name_passive = "techage:t4_source", + cycle_time = CYCLE_TIME, + standby_ticks = STANDBY_TICKS, + formspec_func = formspec, + start_node = start_node, + stop_node = stop_node, +}) + +local tStates = {0, State2, State3, State4} + +local function node_timer(pos, elapsed) + local mem = tubelib2.get_mem(pos) + local state = tStates[mem.state_num or 2] + return state:is_active(mem) +end + +local function turn_power_on(pos, in_dir, sum) + local mem = tubelib2.get_mem(pos) + local state = tStates[mem.state_num or 2] + -- store result for formspec + mem.power_result = sum + if state:is_active(mem) and sum <= 0 then + state:fault(pos, mem) + -- No automatic turn on + mem.power_capacity = 0 + end + M(pos):set_string("formspec", formspec(state, pos, mem)) +end + +local function on_receive_fields(pos, formname, fields, player) + if minetest.is_protected(pos, player:get_player_name()) then + return + end + local mem = tubelib2.get_mem(pos) + local state = tStates[mem.state_num or 2] + state:state_button_event(pos, mem, fields) + + if fields.update then + local state = tStates[mem.state_num or 2] + M(pos):set_string("formspec", formspec(state, pos, mem)) + end +end + +local function on_rightclick(pos) + local mem = tubelib2.get_mem(pos) + local state = tStates[mem.state_num or 2] + M(pos):set_string("formspec", formspec(state, pos, mem)) +end + +minetest.register_node("techage:t2_source", { + description = "Axle Power Source", + tiles = { + -- up, down, right, left, back, front + "techage_filling_ta2.png^techage_frame_ta2_top.png", + "techage_filling_ta2.png^techage_frame_ta2.png", + "techage_filling_ta2.png^techage_frame_ta2.png^techage_appl_source.png^techage_axle_clutch.png", + "techage_filling_ta2.png^techage_frame_ta2.png^techage_appl_source.png", + "techage_filling_ta2.png^techage_frame_ta2.png^techage_appl_source.png", + "techage_filling_ta2.png^techage_frame_ta2.png^techage_appl_source.png", + }, + paramtype2 = "facedir", + groups = {cracky=2, crumbly=2, choppy=2}, + on_rotate = screwdriver.disallow, + is_ground_content = false, + + techage = { + turn_on = turn_power_on, + read_power_consumption = generator.read_power_consumption, + power_network = TA2_Power, + power_side = "R", + animated_power_network = true, + }, + + after_place_node = function(pos, placer) + local mem = generator.after_place_node(pos) + State2:node_init(pos, mem, "") + mem.state_num = 2 + on_rightclick(pos) + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + State2:after_dig_node(pos, oldnode, oldmetadata, digger) + generator.after_dig_node(pos, oldnode) + end, + + after_tube_update = generator.after_tube_update, + on_receive_fields = on_receive_fields, + on_rightclick = on_rightclick, + on_timer = node_timer, +}) + +minetest.register_node("techage:t3_source", { + description = "Steam Power Source", + tiles = { + -- up, down, right, left, back, front + "techage_filling_ta3.png^techage_frame_ta3_top.png", + "techage_filling_ta3.png^techage_frame_ta3.png", + "techage_filling_ta3.png^techage_frame_ta3.png^techage_appl_source.png^techage_steam_hole.png", + "techage_filling_ta3.png^techage_frame_ta3.png^techage_appl_source.png", + "techage_filling_ta3.png^techage_frame_ta3.png^techage_appl_source.png", + "techage_filling_ta3.png^techage_frame_ta3.png^techage_appl_source.png", + }, + paramtype2 = "facedir", + groups = {cracky=2, crumbly=2, choppy=2}, + on_rotate = screwdriver.disallow, + is_ground_content = false, + + techage = { + turn_on = turn_power_on, + read_power_consumption = generator.read_power_consumption, + power_network = TA3_Power, + power_side = "R", + }, + + after_place_node = function(pos, placer) + local mem = generator.after_place_node(pos) + State3:node_init(pos, mem, "") + mem.state_num = 3 + on_rightclick(pos) + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + State3:after_dig_node(pos, oldnode, oldmetadata, digger) + generator.after_dig_node(pos, oldnode) + end, + + after_tube_update = generator.after_tube_update, + on_receive_fields = on_receive_fields, + on_rightclick = on_rightclick, + on_timer = node_timer, +}) + +minetest.register_node("techage:t4_source", { + description = "Ele Power Source", + tiles = { + -- up, down, right, left, back, front + "techage_filling_ta4.png^techage_frame_ta4_top.png", + "techage_filling_ta4.png^techage_frame_ta4.png", + "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_source.png^techage_appl_hole_electric.png", + "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_source.png", + "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_source.png", + "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_source.png", + }, + paramtype2 = "facedir", + groups = {cracky=2, crumbly=2, choppy=2}, + on_rotate = screwdriver.disallow, + is_ground_content = false, + + techage = { + turn_on = turn_power_on, + read_power_consumption = generator.read_power_consumption, + power_network = TA4_Power, + power_side = "R", + }, + + after_place_node = function(pos, placer) + local mem = generator.after_place_node(pos) + State4:node_init(pos, mem, "") + mem.state_num = 4 + on_rightclick(pos) + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + State4:after_dig_node(pos, oldnode, oldmetadata, digger) + generator.after_dig_node(pos, oldnode) + end, + + after_tube_update = generator.after_tube_update, + on_receive_fields = on_receive_fields, + on_rightclick = on_rightclick, + on_timer = node_timer, +}) + +TA2_Power:add_secondary_node_names({"techage:t2_source"}) +TA3_Power:add_secondary_node_names({"techage:t3_source"}) +TA4_Power:add_secondary_node_names({"techage:t4_source"}) diff --git a/basis/junction.lua b/basis/junction.lua index 8b1390f..d7a3db4 100644 --- a/basis/junction.lua +++ b/basis/junction.lua @@ -50,32 +50,30 @@ end -- 'boxes' is a table with 6 table elements for the 6 possible connection arms -- 'network' is the tubelib2 instance -- 'node' is the node definition with tiles, callback functions, and so on --- 'techage' is the power network definition function techage.register_junction(name, size, boxes, network, node) for idx = 0,63 do - local node1 = table.copy(node) - node1.groups.techage_trowel = 1 + local ndef = table.copy(node) if idx == 0 then - node1.groups.not_in_creative_inventory = 0 + ndef.groups.not_in_creative_inventory = 0 else - node1.groups.not_in_creative_inventory = 1 + ndef.groups.not_in_creative_inventory = 1 end - node1.drawtype = "nodebox" - node1.node_box = get_node_box(idx, size, boxes) - node1.paramtype2 = "facedir" - node1.on_rotate = screwdriver.disallow - node1.paramtype = "light" - node1.sunlight_propagates = true - node1.is_ground_content = false - node1.drop = name.."0" - --node.techage = techage - minetest.register_node(name..idx, node1) + ndef.groups.techage_trowel = 1 + ndef.drawtype = "nodebox" + ndef.node_box = get_node_box(idx, size, boxes) + ndef.paramtype2 = "facedir" + ndef.on_rotate = screwdriver.disallow + ndef.paramtype = "light" + ndef.sunlight_propagates = true + ndef.is_ground_content = false + ndef.drop = name.."0" + -- use the original techage table!!! + ndef.techage = node.techage + minetest.register_node(name..idx, ndef) network:add_secondary_node_names({name..idx}) end end - - function techage.junction_type(conn) local val = 0 for idx = 1,6 do diff --git a/basis/power.lua b/basis/power.lua index 5aebce4..8e1fe4b 100644 --- a/basis/power.lua +++ b/basis/power.lua @@ -54,7 +54,6 @@ end local function matching_nodes(pos, peer_pos) local tube_type1 = pos and TRD(pos) and TRD(pos).power_network.tube_type local tube_type2 = peer_pos and TRD(peer_pos) and TRD(peer_pos).power_network.tube_type - print(tube_type1, tube_type2) return not tube_type1 or not tube_type2 or tube_type1 == tube_type2 end diff --git a/coal_power_station/cooler.lua b/coal_power_station/cooler.lua index 93ff3e5..9c72aa3 100644 --- a/coal_power_station/cooler.lua +++ b/coal_power_station/cooler.lua @@ -137,16 +137,21 @@ minetest.register_node("techage:cooler_on", { sounds = default.node_sound_wood_defaults(), }) +minetest.register_craft({ + output = "techage:cooler", + recipe = { + {"basic_materials:steel_bar", "default:wood", "basic_materials:steel_bar"}, + {"techage:steam_pipeS", "basic_materials:gear_steel", "techage:steam_pipeS"}, + {"basic_materials:steel_bar", "default:wood", "basic_materials:steel_bar"}, + }, +}) + Power:add_secondary_node_names({"techage:cooler", "techage:cooler_on"}) techage.register_help_page(I("TA3 Cooler"), -I([[Part of the steam engine. -Has to be placed on top of the Firebox -and filled with water. -(see TA2 Steam Engine)]]), "techage:boiler1") +I([[Part of the Coal Power Station. +Has to be placed in the steam circulation +after the Turbine. +(see TA3 Coal Power Station)]]), "techage:cooler") -techage.register_help_page(I("TA2 Boiler Top"), -I([[Part of the steam engine. -Has to be placed on top of TA2 Boiler Base. -(see TA2 Steam Engine)]]), "techage:boiler2") \ No newline at end of file diff --git a/coal_power_station/firebox.lua b/coal_power_station/firebox.lua index 06c5ee6..e162fa8 100644 --- a/coal_power_station/firebox.lua +++ b/coal_power_station/firebox.lua @@ -199,7 +199,7 @@ techage.register_node("techage:coalfirebox", {}, { }) minetest.register_lbm({ - label = "[techage] Steam engine firebox", + label = "[techage] Power Station firebox", name = "techage:steam_engine", nodenames = {"techage:coalfirebox"}, run_at_every_load = true, diff --git a/coal_power_station/generator.lua b/coal_power_station/generator.lua index 5613ef6..dbfe2aa 100644 --- a/coal_power_station/generator.lua +++ b/coal_power_station/generator.lua @@ -222,8 +222,8 @@ minetest.register_node("techage:generator_on", { minetest.register_craft({ output = "techage:generator", recipe = { - {"basic_materials:steel_bar", "dye:red", "default:wood"}, - {"", "basic_materials:gear_steel", "techage:axle"}, + {"basic_materials:steel_bar", "dye:green", "default:wood"}, + {"", "basic_materials:gear_steel", "techage:electric_cableS"}, {"default:wood", "techage:iron_ingot", "basic_materials:steel_bar"}, }, }) diff --git a/coal_power_station/help.lua b/coal_power_station/help.lua index 64d363e..897762f 100644 --- a/coal_power_station/help.lua +++ b/coal_power_station/help.lua @@ -17,18 +17,18 @@ local MP = minetest.get_modpath("techage") local S, NS = dofile(MP.."/intllib.lua") techage.register_chap_page(S("Electrical Age (TA3)"), S([[The Electrical Age is the third level of the available technic stages. -The goal of TA3 is build a Coal Power Station and machines -to produce ores and chips for smart devices and machines in TA4.]]), "techage:wlanchip") +The goal of TA3 is to build a Coal Power Station and machines +to produce ores and chips for smart TA4 devices and machines.]]), "techage:wlanchip") local HelpText = S([[1. Build a Coal Power Station according to the plan with TA3 Firebox, TA3 Boiler, -Steam Pipes, TA3 Cooler, Turbine and Generator. +Steam Pipes, Cooler, Turbine and Generator. 2. Heat the Firebox with coal/charcoal 3. Fill the boiler with water (more than one bucket is needed) 4. Wait until the water is heated 5. Open the steam ventil -6. Start the Generator -7. Connect the Generator with your machines by means of cables and junction boxes]]) +6. Connect the Generator with your machines by means of cables and junction boxes +7. Start the Generator]]) local Images = { @@ -52,3 +52,4 @@ techage.register_help_page("Coal Power Station", HelpText, nil, Images) techage.register_help_page(S("TA3 Electronic Fab"), S([[Used to produce WLAN Chips, needed for TA4 machines.]]), "techage:ta3_electronic_fab_pas") + diff --git a/init.lua b/init.lua index f17317d..e1a03cb 100644 --- a/init.lua +++ b/init.lua @@ -45,7 +45,7 @@ else -- Power networks dofile(MP.."/power/drive_axle.lua") dofile(MP.."/power/steam_pipe.lua") - --dofile(MP.."/power/biogas_pipe.lua") + dofile(MP.."/power/biogas_pipe.lua") dofile(MP.."/power/electric_cable.lua") -- Iron Age @@ -74,6 +74,7 @@ else dofile(MP.."/steam_engine/gearbox.lua") -- Basic Machines + dofile(MP.."/basic_machines/source.lua") dofile(MP.."/basic_machines/pusher.lua") dofile(MP.."/basic_machines/blackhole.lua") dofile(MP.."/basic_machines/legacy_nodes.lua") @@ -100,12 +101,11 @@ else dofile(MP.."/coal_power_station/cooler.lua") + --dofile(MP.."/test/generator.lua") dofile(MP.."/test/lamp.lua") - dofile(MP.."/test/generator.lua") -- dofile(MP.."/test/consumer.lua") --dofile(MP.."/test/consumer2.lua") --dofile(MP.."/test/test.lua") - --dofile(MP.."/test/battery.lua") --dofile(MP.."/fermenter/gasflare.lua") diff --git a/iron_age/coalburner.lua b/iron_age/coalburner.lua index 83235e1..c45f49b 100644 --- a/iron_age/coalburner.lua +++ b/iron_age/coalburner.lua @@ -196,14 +196,12 @@ function techage.keep_running_burner(pos) meta:set_int("handle", 0) end local burn_time = meta:get_int("burn_time") - print("keep_running_burner", burn_time) -- burner hole is open if num_air(pos) == 1 then meta:set_int("burn_time", burn_time - CYCLE_TIME) -- tower intact if num_cobble(pos, height) == height * 8 then local num_coal = calc_num_coal(height, burn_time) - print("num_coal", num_coal) if num_coal > 0 then if meta:get_int("paused") == 1 then flame(pos, height, num_coal, true) diff --git a/power/biogas_pipe.lua b/power/biogas_pipe.lua index 01f0f45..d7b6dc3 100644 --- a/power/biogas_pipe.lua +++ b/power/biogas_pipe.lua @@ -173,34 +173,34 @@ local Boxes = { } } -techage.register_junction("techage:biogas_junction", 1/8, Boxes, Pipe, { - description = "TA3 Biogas Junction", - tiles = {"techage_gaspipe_junction.png"}, - groups = {crumbly = 3, cracky = 3, snappy = 3, techage_trowel = 1}, - sounds = default.node_sound_metal_defaults(), +--techage.register_junction("techage:biogas_junction", 1/8, Boxes, Pipe, { +-- description = "TA3 Biogas Junction", +-- tiles = {"techage_gaspipe_junction.png"}, +-- groups = {crumbly = 3, cracky = 3, snappy = 3, techage_trowel = 1}, +-- sounds = default.node_sound_metal_defaults(), - after_place_node = function(pos, placer, itemstack, pointed_thing) - local meta = minetest.get_meta(pos) - meta:set_string("infotext", "Position "..S(pos)) - Pipe:after_place_node(pos) - techage.sink_power_consumption(pos, 0) - end, +-- after_place_node = function(pos, placer, itemstack, pointed_thing) +-- local meta = minetest.get_meta(pos) +-- meta:set_string("infotext", "Position "..S(pos)) +-- Pipe:after_place_node(pos) +-- techage.sink_power_consumption(pos, 0) +-- end, - after_tube_update = function(node, pos, out_dir, peer_pos, peer_in_dir) - local conn = minetest.deserialize(M(pos):get_string("connections")) or {} - conn[out_dir] = peer_pos - M(pos):set_string("connections", minetest.serialize(conn)) - local name = "techage:biogas_junction"..techage.junction_type(conn) - minetest.swap_node(pos, {name = name, param2 = 0}) - techage.sink_power_consumption(pos, 0) - end, +-- after_tube_update = function(node, pos, out_dir, peer_pos, peer_in_dir) +-- local conn = minetest.deserialize(M(pos):get_string("connections")) or {} +-- conn[out_dir] = peer_pos +-- M(pos):set_string("connections", minetest.serialize(conn)) +-- local name = "techage:biogas_junction"..techage.junction_type(conn) +-- minetest.swap_node(pos, {name = name, param2 = 0}) +-- techage.sink_power_consumption(pos, 0) +-- end, - on_destruct = function(pos) - techage.sink_power_consumption(pos, 0) - end, +-- on_destruct = function(pos) +-- techage.sink_power_consumption(pos, 0) +-- end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - Pipe:after_dig_node(pos) - end, -}) +-- after_dig_node = function(pos, oldnode, oldmetadata, digger) +-- Pipe:after_dig_node(pos) +-- end, +--}) diff --git a/steam_engine/firebox.lua b/steam_engine/firebox.lua index dabf9d2..c09f601 100644 --- a/steam_engine/firebox.lua +++ b/steam_engine/firebox.lua @@ -156,3 +156,15 @@ techage.register_node("techage:firebox", {"techage:firebox_on"}, { return false end, }) + +minetest.register_lbm({ + label = "[techage] Steam engine firebox", + name = "techage:steam_engine", + nodenames = {"techage:firebox_on"}, + run_at_every_load = true, + action = function(pos, node) + minetest.get_node_timer(pos):start(CYCLE_TIME) + end +}) + + diff --git a/textures/techage_appl_source.png b/textures/techage_appl_source.png new file mode 100644 index 0000000000000000000000000000000000000000..c69b62525d5d8189ccc1f932ce69c505e88bbd31 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vs{;droV=`|ro67MwzaL5 zyN6q#hh3(dY-~i}vT*jCyzDCl{O4PAA2jiQm?m|5M*Pn!Q))^gw*j>?mIV0)GdMiE zkp|)VUnfx)>bHL)Z$MWH;iBtya7(>EYRFO?lA?&0a;7$R|b?s-F@1_J@6 z0|GlLqFVdQ&MBb@0NjgN%>V!Z literal 0 HcmV?d00001