From 343c7946d9014bf111e25a7a225a1b6f5746992b Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz <vanessaezekowitz@gmail.com> Date: Fri, 10 Mar 2017 20:15:38 +0100 Subject: [PATCH] power monitor changes New textures, uses facedir, connects from the back as well. --- technic/machines/other/injector.lua | 40 +++++++++++++++++++++++++--------------- 1 files changed, 25 insertions(+), 15 deletions(-) diff --git a/technic/machines/other/injector.lua b/technic/machines/other/injector.lua index 485974c..ec8966c 100644 --- a/technic/machines/other/injector.lua +++ b/technic/machines/other/injector.lua @@ -2,7 +2,7 @@ local S = technic.getter local function inject_items (pos) - local meta=minetest.env:get_meta(pos) + local meta=minetest.get_meta(pos) local inv = meta:get_inventory() local mode=meta:get_string("mode") if mode=="single items" then @@ -13,7 +13,7 @@ local item0=stack:to_table() if item0 then item0["count"] = "1" - pipeworks.tube_item(pos, pos, vector.new(0, -1, 0), item0) + technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0) stack:take_item(1) inv:set_stack("main", i, stack) return @@ -28,7 +28,7 @@ if stack then local item0=stack:to_table() if item0 then - pipeworks.tube_item(pos, pos, vector.new(0, -1, 0), item0) + technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0) stack:clear() inv:set_stack("main", i, stack) return @@ -58,18 +58,27 @@ "button[0,1;2,1;mode_item;"..S("Stackwise").."]" or "button[0,1;2,1;mode_stack;"..S("Itemwise").."]").. "list[current_name;main;0,2;8,2;]".. - "list[current_player;main;0,5;8,4;]") + "list[current_player;main;0,5;8,4;]".. + "listring[]") end minetest.register_node("technic:injector", { description = S("Self-Contained Injector"), tiles = {"technic_injector_top.png", "technic_injector_bottom.png", "technic_injector_side.png", "technic_injector_side.png", "technic_injector_side.png", "technic_injector_side.png"}, - groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, tubedevice=1}, - tube = {connect_sides={bottom=1}}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, tubedevice=1, tubedevice_receiver=1}, + tube = { + can_insert = function(pos, node, stack, direction) + return minetest.get_meta(pos):get_inventory():room_for_item("main",stack) + end, + insert_object = function(pos, node, stack, direction) + return minetest.get_meta(pos):get_inventory():add_item("main",stack) + end, + connect_sides = {left=1, right=1, front=1, back=1, top=1, bottom=1}, + }, sounds = default.node_sound_wood_defaults(), on_construct = function(pos) - local meta = minetest.env:get_meta(pos) + local meta = minetest.get_meta(pos) meta:set_string("infotext", S("Self-Contained Injector")) local inv = meta:get_inventory() inv:set_size("main", 8*4) @@ -77,12 +86,12 @@ set_injector_formspec(meta) end, can_dig = function(pos,player) - local meta = minetest.env:get_meta(pos); + local meta = minetest.get_meta(pos); local inv = meta:get_inventory() return inv:is_empty("main") end, on_receive_fields = function(pos, formanme, fields, sender) - local meta = minetest.env:get_meta(pos) + local meta = minetest.get_meta(pos) if fields.mode_item then meta:set_string("mode", "single items") end if fields.mode_stack then meta:set_string("mode", "whole stacks") end set_injector_formspec(meta) @@ -90,6 +99,8 @@ allow_metadata_inventory_put = technic.machine_inventory_put, allow_metadata_inventory_take = technic.machine_inventory_take, allow_metadata_inventory_move = technic.machine_inventory_move, + after_place_node = pipeworks.after_place, + after_dig_node = pipeworks.after_dig }) minetest.register_abm({ @@ -97,12 +108,11 @@ interval = 1, chance = 1, action = function(pos, node, active_object_count, active_object_count_wider) - local pos1={} - pos1.x = pos.x - pos1.y = pos.y-1 - pos1.z = pos.z - local meta=minetest.env:get_meta(pos1) - if meta:get_int("tubelike")==1 then inject_items (pos) end + local pos1 = vector.add(pos, vector.new(0, -1, 0)) + local node1 = minetest.get_node(pos1) + if minetest.get_item_group(node1.name, "tubedevice") > 0 then + inject_items(pos) + end end, }) -- Gitblit v1.8.0