From 340b5a7a0473e281ec0cba926b09949d0cb89610 Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Tue, 28 Mar 2017 19:07:27 -0400 Subject: update pipeworks, technic, boost_cart --- boost_cart/cart_entity.lua | 8 +++-- pipeworks/autocrafter.lua | 5 ++- technic/depends.txt | 2 ++ technic/machines/switching_station.lua | 59 +++++++++++++++++++++++++++++++--- technic_worldgen/oregen.lua | 6 ++-- 5 files changed, 67 insertions(+), 13 deletions(-) diff --git a/boost_cart/cart_entity.lua b/boost_cart/cart_entity.lua index 07a7d69..1633758 100644 --- a/boost_cart/cart_entity.lua +++ b/boost_cart/cart_entity.lua @@ -264,8 +264,12 @@ function cart_entity:on_step(dtime) end end - -- Slow down or speed up, depending on Y direction - acc = acc + dir.y * -2 + if acc then + -- Slow down or speed up, depending on Y direction + acc = acc + dir.y * -2 + else + acc = 0 + end if self.old_dir.y ~= 1 and not self.punched then -- Stop the cart swing between two rail parts (handbrake) diff --git a/pipeworks/autocrafter.lua b/pipeworks/autocrafter.lua index 738f3f2..f120953 100644 --- a/pipeworks/autocrafter.lua +++ b/pipeworks/autocrafter.lua @@ -186,10 +186,9 @@ local function update_meta(meta, enabled) "list[current_player;main;0,8;8,4;]" .. "listring[current_player;main]".. "listring[context;src]" .. - "listring[context;dst]" .. "listring[current_player;main]".. - "listring[context;recipe]" .. - "listring[context;output]" + "listring[context;dst]" .. + "listring[current_player;main]" if minetest.get_modpath("digilines") then fs = fs.."field[1,3.5;4,1;channel;Channel;${channel}]" fs = fs.."button_exit[5,3.2;2,1;save;Save]" diff --git a/technic/depends.txt b/technic/depends.txt index 746fe34..777e94f 100644 --- a/technic/depends.txt +++ b/technic/depends.txt @@ -2,7 +2,9 @@ default pipeworks technic_worldgen bucket? +mesecons? mesecons_mvps? +digilines? intllib? unified_inventory? vector_extras? diff --git a/technic/machines/switching_station.lua b/technic/machines/switching_station.lua index 8ace874..dcf6849 100644 --- a/technic/machines/switching_station.lua +++ b/technic/machines/switching_station.lua @@ -34,6 +34,9 @@ technic.networks = {} technic.cables = {} +local mesecons_path = minetest.get_modpath("mesecons") +local digilines_path = minetest.get_modpath("digilines") + local S = technic.getter minetest.register_craft({ @@ -57,12 +60,47 @@ minetest.register_node("technic:switching_station",{ local meta = minetest.get_meta(pos) meta:set_string("infotext", S("Switching Station")) meta:set_string("active", 1) + meta:set_string("channel", "switching_station"..minetest.pos_to_string(pos)) + meta:set_string("formspec", "field[channel;Channel;${channel}]") end, after_dig_node = function(pos) minetest.forceload_free_block(pos) pos.y = pos.y - 1 minetest.forceload_free_block(pos) end, + on_receive_fields = function(pos, formname, fields, sender) + if not fields.channel then + return + end + local plname = sender:get_player_name() + if minetest.is_protected(pos, plname) then + minetest.record_protection_violation(pos, plname) + return + end + local meta = minetest.get_meta(pos) + meta:set_string("channel", fields.channel) + end, + mesecons = {effector = { + rules = mesecon.rules.default, + }}, + digiline = { + receptor = {action = function() end}, + effector = { + action = function(pos, node, channel, msg) + if msg ~= "GET" and msg ~= "get" then + return + end + local meta = minetest.get_meta(pos) + if channel ~= meta:get_string("channel") then + return + end + digilines.receptor_send(pos, digilines.rules.default, channel, { + supply = meta:get_int("supply"), + demand = meta:get_int("demand") + }) + end + }, + }, }) -------------------------------------------------- @@ -190,7 +228,7 @@ minetest.register_abm({ local BA_nodes local RE_nodes local machine_name = S("Switching Station") - + -- Which kind of network are we on: pos1 = {x=pos.x, y=pos.y-1, z=pos.z} @@ -216,7 +254,7 @@ minetest.register_abm({ minetest.forceload_free_block(pos1) return end - + -- Run all the nodes local function run_nodes(list, run_stage) for _, pos2 in ipairs(list) do @@ -231,7 +269,7 @@ minetest.register_abm({ end end end - + run_nodes(PR_nodes, technic.producer) run_nodes(RE_nodes, technic.receiver) run_nodes(BA_nodes, technic.battery) @@ -301,6 +339,19 @@ minetest.register_abm({ S("@1. Supply: @2 Demand: @3", machine_name, technic.pretty_num(PR_eu_supply), technic.pretty_num(RE_eu_demand))) + -- If mesecon signal and power supply or demand changed then + -- send them via digilines. + if mesecons_path and digilines_path and mesecon.is_powered(pos) then + if PR_eu_supply ~= meta:get_int("supply") or + RE_eu_demand ~= meta:get_int("demand") then + local channel = meta:get_string("channel") + digilines.receptor_send(pos, digilines.rules.default, channel, { + supply = PR_eu_supply, + demand = RE_eu_demand + }) + end + end + -- Data that will be used by the power monitor meta:set_int("supply",PR_eu_supply) meta:set_int("demand",RE_eu_demand) @@ -366,7 +417,7 @@ minetest.register_abm({ meta1 = minetest.get_meta(pos1) meta1:set_int(eu_input_str, 0) end - + end, }) diff --git a/technic_worldgen/oregen.lua b/technic_worldgen/oregen.lua index c6782e6..fd2393b 100644 --- a/technic_worldgen/oregen.lua +++ b/technic_worldgen/oregen.lua @@ -54,13 +54,11 @@ minetest.register_ore({ ore_type = "scatter", ore = "technic:mineral_zinc", wherein = "default:stone", - clust_scarcity = 9*9*9, + clust_scarcity = 8*8*8, clust_num_ores = 5, clust_size = 7, y_min = -32, - y_max = 2, - noise_params = lead_params, - noise_threshhold = lead_threshhold, + y_max = 2 }) minetest.register_ore({ -- cgit v1.2.3