--[[ Minecart ======== Copyright (C) 2019-2021 Joachim Stolberg MIT See license.txt for more information ]]-- -- for lazy programmers local M = minetest.get_meta local S = minecart.S local CYCLE_TIME = 4 local function node_timer(pos) local node = minetest.get_node(pos) local dir = minetest.facedir_to_dir(node.param2) minecart.punch_cart({x = pos.x, y = pos.y + 1, z = pos.z}, nil, 1, dir) return true end local function after_dig_node(pos, oldnode, oldmetadata, digger) techage.remove_node(pos, oldnode, oldmetadata) end minetest.register_node("minecart:cart_pusher", { description = S("Cart Pusher"), drawtype = "nodebox", node_box = { type = "fixed", fixed = { {-8/16,-8/16,-8/16, 8/16, 8/16, 8/16}, {-1/16, 8/16,-4/16, 1/16, 10/16, 4/16}, }, }, tiles = { -- up, down, right, left, back, front "default_steel_block.png^minecart_pusher_top.png", "default_steel_block.png", "default_steel_block.png^minecart_pusher.png", "default_steel_block.png^minecart_pusher.png", "default_steel_block.png^minecart_pusher.png", "default_steel_block.png^minecart_pusher.png", }, after_place_node = function(pos) minetest.get_node_timer(pos):start(CYCLE_TIME) end, on_timer = node_timer, paramtype2 = "facedir", groups = {choppy=2, cracky=2, crumbly=2}, is_ground_content = true, sounds = default.node_sound_metal_defaults(), }) minetest.register_craft({ output = "minecart:cart_pusher", recipe = { {"dye:black", "default:steel_ingot", "dye:yellow"}, {"default:steel_ingot", "default:mese_crystal", "default:steel_ingot"}, {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, }, })