V1.01, Support for Ethereal added

This commit is contained in:
Joachim Stolberg 2018-03-24 18:32:28 +01:00
parent a65d2cbf53
commit dca97e08c7
12 changed files with 271 additions and 244 deletions

@ -1,4 +1,4 @@
# TechPack # TechPack V1.01
TechPack, a Mining, Crafting, & Farming Modpack for Minetest. TechPack, a Mining, Crafting, & Farming Modpack for Minetest.
@ -61,3 +61,9 @@ default, doors.
SmartLine Display optional: display_lib, font_lib SmartLine Display optional: display_lib, font_lib
SmartLine Controller optional: mail, SmartLine Controller optional: mail,
Gravelsieve optional: moreores, hopper, pipeworks Gravelsieve optional: moreores, hopper, pipeworks
### History
- 2018-03-18 V1.00 * Tubelib, tubelib_addons1, tubelib_addons2, smartline, and gravelsieve combined to one modpack.
- 2018-03-24 V1.01 * Support for Ethereal added

@ -8,20 +8,15 @@
LGPLv2.1+ LGPLv2.1+
See LICENSE.txt for more information See LICENSE.txt for more information
History:
2018-01-01 v0.01 first version
2018-01-26 v0.02 timer and sequencer added
2018-02-01 v0.03 further commands, hints and cancel button aded
]]-- ]]--
if minetest.get_modpath("display_lib") and display_lib ~= nil and if minetest.get_modpath("display_lib") and display_lib ~= nil and
minetest.get_modpath("font_lib") and font_lib ~= nil then minetest.get_modpath("font_lib") and font_lib ~= nil then
dofile(minetest.get_modpath("smartline") .. "/playerdetector.lua") dofile(minetest.get_modpath("smartline") .. "/display.lua")
end end
dofile(minetest.get_modpath("smartline") .. "/button.lua") dofile(minetest.get_modpath("smartline") .. "/button.lua")
dofile(minetest.get_modpath("smartline") .. "/signaltower.lua") dofile(minetest.get_modpath("smartline") .. "/signaltower.lua")
dofile(minetest.get_modpath("smartline") .. "/display.lua") dofile(minetest.get_modpath("smartline") .. "/playerdetector.lua")
dofile(minetest.get_modpath("smartline") .. "/sequencer.lua") dofile(minetest.get_modpath("smartline") .. "/sequencer.lua")
dofile(minetest.get_modpath("smartline") .. "/timer.lua") dofile(minetest.get_modpath("smartline") .. "/timer.lua")
dofile(minetest.get_modpath("smartline") .. "/repeater.lua") dofile(minetest.get_modpath("smartline") .. "/repeater.lua")

@ -3,7 +3,7 @@
Tube Library Tube Library
============ ============
Copyright (C) 2017 Joachim Stolberg Copyright (C) 2017,2018 Joachim Stolberg
LGPLv2.1+ LGPLv2.1+
See LICENSE.txt for more information See LICENSE.txt for more information

@ -1,37 +0,0 @@
# Tubelib Library
## Hints for Admins and Players
Tubelib is little useful for itself, it makes only sense with izs extensions.
However, Tubelib provides the following basic nodes:
### Tubes
Tubes allow the item exchange between two nodes. Tube forks are not possible. You have to use chests
or other inventory nodes as hubs to build more complex structures.
Tubes for itself are passive. For item exchange you have to use pulling/pushing nodes in addition.
The maximum tube length is limited to 100 nodes.
### Pusher
The Pusher is able to pull one item out of one inventory node and pushing it into another inventory node directly or by means of tubes.
It the source node is empty or the destination node full, the Pusher goes into STANDBY state for some seconds.
### Distributor
The Distributor works as filter and pusher. It allows to divide and distribute incoming items into 4 tube channels.
The channels can be switched on/off and individually configured with up to 6 items. The filter passes the configured
items and restrains all others. To increase the throughput, one item can be added several times to a filter.
An unconfigured but activated filter allows to pass up to 6 remaining items.
### Button/Switch
The Button/Switch is a simple communication node for the Tubelib wireless communication.
This node can be configured as button and switch. For the button configuration different switching
times from 2 to 16 seconds are possible. The Button/Switch node has to be configured with the destination
number of the receiving node (e.g. Lamp). This node allows to address several receivers by means or their numbers.
All numbers of the receiving nodes have to be added a configuration time.
### Lamp
The Lamp is a receiving node, showing its destination/communication number via "infotext".
The Lamp can be switched on/off by means of the right mouse button (use function) or by means of messages commands
from a Button/Switch or any other command sending node.

@ -1,2 +1,6 @@
tubelib tubelib
default default
stairs?
moreores?
farming?
ethereal?

@ -3,7 +3,7 @@
Tubelib Addons 1 Tubelib Addons 1
================ ================
Copyright (C) 2017 Joachim Stolberg Copyright (C) 2017,2018 Joachim Stolberg
LGPLv2.1+ LGPLv2.1+
See LICENSE.txt for more information See LICENSE.txt for more information

@ -3,7 +3,7 @@
Tubelib Addons 1 Tubelib Addons 1
================ ================
Copyright (C) 2017 Joachim Stolberg Copyright (C) 2017,2018 Joachim Stolberg
LGPLv2.1+ LGPLv2.1+
See LICENSE.txt for more information See LICENSE.txt for more information
@ -57,76 +57,6 @@ end
local WorkingSteps = gen_working_steps() local WorkingSteps = gen_working_steps()
-- valid harvesting nodes and the results for the inventory
local ResultNodes = {
["default:tree"] = "default:tree",
["default:aspen_tree"] = "default:aspen_tree",
["default:pine_tree"] = "default:pine_tree",
["default:acacia_tree"] = "default:acacia_tree",
["default:jungletree"] = "default:jungletree",
["default:leaves"] = "default:leaves",
["default:aspen_leaves"] = "default:aspen_leaves",
["default:pine_needles"] = "default:pine_needles",
["default:acacia_leaves"] = "default:acacia_leaves",
["default:jungleleaves"] = "default:jungleleaves",
["default:bush_leaves"] = "default:bush_leaves",
["default:acacia_bush_leaves"] = "default:acacia_bush_leaves",
["default:cactus"] = "default:cactus",
["default:papyrus"] = "default:papyrus",
["farming:wheat_8"] = "farming:wheat",
["farming:cotton_8"] = "farming:cotton",
["default:apple"] = "default:apple",
["farming:carrot_8"] = "farming:carrot 2",
["farming:potato_4"] = "farming:potato 3",
["farming:tomato_8"] = "farming:tomato 3",
["farming:cucumber_4"] = "farming:cucumber 2",
["farming:corn_8"] = "farming:corn 2",
["farming:coffee_5"] = "farming:coffee_beans 2",
["farming:melon_8"] = "farming:melon_slice 9",
["farming:pumpkin_8"] = "farming:pumpkin_slice 9",
["farming:raspberry_4"] = "farming:raspberries",
["farming:blueberry_4"] = "farming:blueberries",
["farming:rhubarb_3"] = "farming:rhubarb 2",
["farming:beanpole_5"] = "farming:beans 3",
["farming:grapes_8"] = "farming:grapes 3",
["farming:barley_7"] = "farming:barley",
["farming:chili_8"] = "farming:chili_pepper 2",
["farming:hemp_8"] = "farming:hemp_leaf",
}
-- Which sapling/seed belongs to which tree/crop
local SaplingList = {
["default:tree"] = "default:sapling",
["default:aspen_tree"] = "default:aspen_sapling",
["default:pine_tree"] = "default:pine_sapling",
["default:acacia_tree"] = "default:acacia_sapling",
["default:jungletree"] = "default:junglesapling",
["farming:wheat_8"] = "farming:wheat_1",
["farming:cotton_8"] = "farming:cotton_1",
["farming:carrot_8"] = "farming:carrot_1",
["farming:potato_4"] = "farming:potato_1",
["farming:tomato_8"] = "farming:tomato_1",
["farming:cucumber_4"] = "farming:cucumber_1",
["farming:corn_8"] = "farming:corn_1",
["farming:coffee_5"] = "farming:coffee_1",
["farming:melon_8"] = "farming:melon_1",
["farming:pumpkin_8"] = "farming:pumpkin_1",
["farming:raspberry_4"] = "farming:raspberry_1",
["farming:blueberry_4"] = "farming:blueberry_1",
["farming:rhubarb_3"] = "farming:rhubarb_1",
["farming:beanpole_5"] = "farming:beanpole_1",
["farming:grapes_8"] = "farming:grapes_1",
["farming:barley_7"] = "farming:barley_1",
["farming:chili_8"] = "farming:chili_1",
["farming:hemp_8"] = "farming:hemp_1",
}
local function formspec(this, state) local function formspec(this, state)
-- some recalculations -- some recalculations
local endless = this.endless == 1 and "true" or "false" local endless = this.endless == 1 and "true" or "false"
@ -238,7 +168,7 @@ end
-- Remove wood/leave nodes and place sapling if necessary -- Remove wood/leave nodes and place sapling if necessary
-- Return false if inventory is full -- Return false if inventory is full
-- else return true -- else return true
local function remove_or_replace_node(pos, inv, node) local function remove_or_replace_node(pos, inv, node, order)
local next_pos = table.copy(pos) local next_pos = table.copy(pos)
next_pos.y = next_pos.y - 1 next_pos.y = next_pos.y - 1
@ -248,34 +178,15 @@ local function remove_or_replace_node(pos, inv, node)
end end
local next_node = minetest.get_node_or_nil(next_pos) local next_node = minetest.get_node_or_nil(next_pos)
if next_node then if next_node then
-- don't remove the last cactus block
if node.name == "default:cactus" and next_node.name ~= "default:cactus" then
return true
end
-- don't remove the last papyrus block
if node.name == "default:papyrus" and next_node.name ~= "default:papyrus" then
return true
end
minetest.remove_node(pos) minetest.remove_node(pos)
inv:add_item("main", ItemStack(ResultNodes[node.name])) inv:add_item("main", ItemStack(order.drop))
if ResultNodes[next_node.name] == nil and next_node.name ~= "air" then -- hit the ground? if tubelib_addons1.GroundNodes[next_node.name] ~= nil and order.plant then -- hit the ground?
if SaplingList[node.name] then minetest.set_node(pos, {name=order.plant, paramtype2 = "wallmounted", param2=1})
node.name = SaplingList[node.name] if order.t1 ~= nil then
minetest.set_node(pos, {name=node.name, paramtype2 = "wallmounted", param2=1}) -- We have to simulate "on_place" and start the timer by hand
if node.name:sub(1,8) == "farming:" then -- because the after_place_node function checks player rights and can't therefore
-- farming_redo installed? -- be used.
if farming.mod == "redo" then minetest.get_node_timer(pos):start(math.random(order.t1, order.t2))
-- nothing to do
else
-- We have to simulate "on_place" and start the timer by hand
-- because the after_place_node function checks player rights and can't therefore
-- be used.
minetest.get_node_timer(pos):start(math.random(166,288))
end
else
-- default trees
minetest.get_node_timer(pos):start(math.random(2400,4800))
end
end end
remove_all_sapling_items(pos) remove_all_sapling_items(pos)
end end
@ -326,8 +237,9 @@ local function harvest_field(this, meta)
pos.y = y_pos pos.y = y_pos
local node = minetest.get_node_or_nil(pos) local node = minetest.get_node_or_nil(pos)
if node and node.name ~= "air" then if node and node.name ~= "air" then
if ResultNodes[node.name] then local order = tubelib_addons1.FarmingNodes[node.name]
if not remove_or_replace_node(pos, inv, node) then if order then
if not remove_or_replace_node(pos, inv, node, order) then
return false return false
end end
else else

@ -8,29 +8,14 @@
LGPLv2.1+ LGPLv2.1+
See LICENSE.txt for more information See LICENSE.txt for more information
History:
2017-09-08 v0.01 first version
2017-09-17 v0.02 harvester added
2017-10-02 v0.03 fermenter and reformer added
2017-10-07 v0.04 Ice, now and corals added to the Quarry
2017-10-24 v0.05 Harvester reworked and optimized
2017-10-29 v0.06 Adapted to Tubelib v0.07
2017-12-29 v0.07 Support for Farming Redo added
2018-01-01 v0.08 Harvester Copter removed
2018-01-04 v0.09 Funnel added
2018-01-28 v0.10 command 'fuel' added for Quarry and Harvester
]]-- ]]--
if tubelib.version >= 0.07 then dofile(minetest.get_modpath("tubelib_addons1") .. "/nodes.lua")
dofile(minetest.get_modpath("tubelib_addons1") .. "/quarry.lua") dofile(minetest.get_modpath("tubelib_addons1") .. "/quarry.lua")
dofile(minetest.get_modpath("tubelib_addons1") .. "/grinder.lua") dofile(minetest.get_modpath("tubelib_addons1") .. "/grinder.lua")
dofile(minetest.get_modpath("tubelib_addons1") .. '/autocrafter.lua') dofile(minetest.get_modpath("tubelib_addons1") .. '/autocrafter.lua')
dofile(minetest.get_modpath("tubelib_addons1") .. '/harvester.lua') dofile(minetest.get_modpath("tubelib_addons1") .. '/harvester.lua')
dofile(minetest.get_modpath("tubelib_addons1") .. '/fermenter.lua') dofile(minetest.get_modpath("tubelib_addons1") .. '/fermenter.lua')
dofile(minetest.get_modpath("tubelib_addons1") .. '/reformer.lua') dofile(minetest.get_modpath("tubelib_addons1") .. '/reformer.lua')
dofile(minetest.get_modpath("tubelib_addons1") .. '/funnel.lua') dofile(minetest.get_modpath("tubelib_addons1") .. '/funnel.lua')
dofile(minetest.get_modpath("tubelib_addons1") .. "/pusher_fast.lua") dofile(minetest.get_modpath("tubelib_addons1") .. "/pusher_fast.lua")
else
print("[tubelib_addons1] Version 0.07+ of Tubelib Mod is required!")
end

215
tubelib_addons1/nodes.lua Normal file

@ -0,0 +1,215 @@
--[[
Tubelib Addons 1
================
Copyright (C) 2017,2018 Joachim Stolberg
LGPLv2.1+
See LICENSE.txt for more information
]]--
tubelib_addons1 = {}
-- table needed for Harvester
tubelib_addons1.FarmingNodes = {}
-- table needed for Grinder
tubelib_addons1.GroundNodes = {}
-- default trees which require the node timer
function tubelib_addons1.register_tree_node(name, drop, plant)
tubelib_addons1.FarmingNodes[name] = {drop = drop or name, plant = plant, t1= 166, t2 = 288}
end
-- default farming nodes which require the node timer
function tubelib_addons1.register_default_farming_node(name, drop, plant)
tubelib_addons1.FarmingNodes[name] = {drop = drop or name, plant = plant, t1 = 2400, t2 = 4800}
end
-- farming nodes with ABM
function tubelib_addons1.register_farming_node(name, drop, plant)
tubelib_addons1.FarmingNodes[name] = {drop = drop or name, plant = plant}
end
function tubelib_addons1.register_ground_node(name, drop)
tubelib_addons1.GroundNodes[name] = {drop = drop or name}
end
local tn = tubelib_addons1.register_tree_node
local dn = tubelib_addons1.register_default_farming_node
local fn = tubelib_addons1.register_farming_node
local gn = tubelib_addons1.register_ground_node
-------------------------------------------------------------------------------
-- Default Farming
-------------------------------------------------------------------------------
tn("default:tree", "default:tree", "default:sapling")
tn("default:aspen_tree", "default:aspen_tree", "default:aspen_sapling")
tn("default:pine_tree", "default:pine_tree", "default:pine_sapling")
tn("default:acacia_tree", "default:acacia_tree", "default:acacia_sapling")
tn("default:jungletree", "default:jungletree", "default:junglesapling")
fn("default:leaves")
fn("default:aspen_leaves")
fn("default:pine_needles")
fn("default:acacia_leaves")
fn("default:jungleleaves")
fn("default:bush_leaves")
fn("default:acacia_bush_leaves")
fn("default:cactus", "default:cactus", "default:cactus")
fn("default:papyrus", "default:papyrus", "default:papyrus")
fn("default:apple")
if farming.mod ~= "redo" then
dn("farming:wheat_8", "farming:wheat", "farming:wheat_1")
dn("farming:cotton_8", "farming:cotton", "farming:cotton_1")
end
-------------------------------------------------------------------------------
-- Farming Redo
----------------------------------------------- --------------------------------
if farming.mod == "redo" then
fn("farming:wheat_8", "farming:wheat", "farming:wheat_1")
fn("farming:cotton_8", "farming:cotton", "farming:cotton_1")
fn("farming:carrot_8", "farming:carrot 2", "farming:carrot_1")
fn("farming:potato_4", "farming:potato 3", "farming:potato_1")
fn("farming:tomato_8", "farming:tomato 3", "farming:tomato_1")
fn("farming:cucumber_4", "farming:cucumber 2", "farming:cucumber_1")
fn("farming:corn_8", "farming:corn 2", "farming:corn_1")
fn("farming:coffee_5", "farming:coffee_beans 2", "farming:coffee_1")
fn("farming:melon_8", "farming:melon_slice 9", "farming:melon_1")
fn("farming:pumpkin_8", "farming:pumpkin_slice 9","farming:pumpkin_1")
fn("farming:raspberry_4", "farming:raspberries", "farming:raspberry_1")
fn("farming:blueberry_4", "farming:blueberries", "farming:blueberry_1")
fn("farming:rhubarb_3", "farming:rhubarb 2", "farming:rhubarb_1")
fn("farming:beanpole_5", "farming:beans 3", "farming:beanpole_1")
fn("farming:grapes_8", "farming:grapes 3", "farming:grapes_1")
fn("farming:barley_7", "farming:barley", "farming:barley_1")
fn("farming:chili_8", "farming:chili_pepper 2", "farming:chili_1")
fn("farming:hemp_8", "farming:hemp_leaf", "farming:hemp_1")
end
-------------------------------------------------------------------------------
-- Ethereal Farming
-------------------------------------------------------------------------------
fn("ethereal:strawberry_8", "ethereal:strawberry 2", "ethereal:strawberry 1")
fn("ethereal:onion_5", "ethereal:wild_onion_plant 2", "ethereal:onion_1")
fn("ethereal:willow_trunk", "ethereal:willow_trunk", "ethereal:willow_sapling")
fn("ethereal:redwood_trunk", "ethereal:redwood_trunk", "ethereal:redwood_sapling")
fn("ethereal:frost_tree", "ethereal:frost_tree", "ethereal:frost_tree_sapling")
fn("ethereal:yellow_trunk", "ethereal:yellow_trunk", "ethereal:yellow_tree_sapling")
fn("ethereal:palm_trunk", "ethereal:palm_trunk", "ethereal:palm_sapling")
fn("ethereal:banana_trunk", "ethereal:banana_trunk", "ethereal:banana_tree_sapling")
fn("ethereal:mushroom_trunk", "ethereal:mushroom_trunk", "ethereal:mushroom_sapling")
fn("ethereal:birch_trunk", "ethereal:birch_trunk", "ethereal:birch_sapling")
fn("ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo_sprout")
fn("ethereal:willow_twig")
fn("ethereal:redwood_leaves")
fn("ethereal:orange_leaves")
fn("ethereal:bananaleaves")
fn("ethereal:yellowleaves")
fn("ethereal:palmleaves")
fn("ethereal:birch_leaves")
fn("ethereal:frost_leaves")
fn("ethereal:bamboo_leaves")
fn("ethereal:mushroom")
fn("ethereal:mushroom_pore")
fn("ethereal:bamboo_leaves")
fn("ethereal:bamboo_leaves")
fn("ethereal:banana")
fn("ethereal:orange")
fn("ethereal:coconut")
-------------------------------------------------------------------------------
-- Default Ground
-------------------------------------------------------------------------------
gn("default:cobble")
gn("default:desert_cobble")
gn("default:mossycobble")
gn("default:gravel")
gn("default:dirt")
gn("default:sand")
gn("default:desert_sand")
gn("default:silver_sand")
gn("default:ice")
gn("default:snowblock")
gn("default:snow")
gn("stairs:stair_cobble")
gn("stairs:stair_mossycobble")
gn("stairs:stair_desert_cobble")
gn("default:stone", "default:cobble")
gn("default:desert_stone", "default:desert_cobble")
gn("default:clay", "default:clay_lump")
gn("default:stone_with_coal", "default:coal_lump")
gn("default:stone_with_iron", "default:iron_lump")
gn("default:stone_with_copper", "default:copper_lump")
gn("default:stone_with_gold", "default:gold_lump")
gn("default:stone_with_tin", "default:tin_lump")
gn("default:stone_with_mese", "default:mese_crystal")
gn("default:stone_with_diamond", "default:diamond")
gn("default:dirt_with_grass", "default:dirt")
gn("default:dirt_with_grass_footsteps", "default:dirt")
gn("default:dirt_with_dry_grass", "default:dirt")
gn("default:dirt_with_snow", "default:dirt")
gn("default:dirt_with_rainforest_litter", "default:dirt")
gn("default:dirt_with_grass", "default:dirt")
gn("default:coral_skeleton", "default:coral_skeleton")
gn("default:coral_orange", "default:coral_skeleton")
gn("default:coral_brown", "default:coral_skeleton")
-------------------------------------------------------------------------------
-- Moreores Ground
-------------------------------------------------------------------------------
gn("moreores:mineral_silver", "moreores:silver_lump")
gn("moreores:mineral_mithril", "moreores:mithril_lump")
-------------------------------------------------------------------------------
-- Farming Ground
-------------------------------------------------------------------------------
gn("farming:soil", "default:dirt")
gn("farming:soil_wet", "default:dirt")
-------------------------------------------------------------------------------
-- Compost Ground
-------------------------------------------------------------------------------
gn("compost:garden_soil", "compost:garden_soil")
-------------------------------------------------------------------------------
-- Ethereal Ground
-------------------------------------------------------------------------------
gn("ethereal:dry_dirt", "default:dirt")
gn("ethereal:bamboo_dirt", "default:dirt")
gn("ethereal:jungle_dirt", "default:dirt")
gn("ethereal:grove_dirt", "default:dirt")
gn("ethereal:prairie_dirt", "default:dirt")
gn("ethereal:cold_dirt", "default:dirt")
gn("ethereal:crystal_dirt", "default:dirt")
gn("ethereal:mushroom_dirt", "default:dirt")
gn("ethereal:fiery_dirt", "default:dirt")
gn("ethereal:gray_dirt", "default:dirt")
gn("ethereal:green_dirt", "default:dirt")
gn("bakedclay:red", "bakedclay:red")
gn("bakedclay:orange", "bakedclay:orange")
gn("bakedclay:grey", "bakedclay:grey")
gn("ethereal:quicksand2", "default:sand")
gn("ethereal:illumishroom")
gn("ethereal:illumishroom2")
gn("ethereal:illumishroom3")

@ -3,7 +3,7 @@
Tubelib Addons 1 Tubelib Addons 1
================ ================
Copyright (C) 2017 Joachim Stolberg Copyright (C) 2017,2018 Joachim Stolberg
LGPLv2.1+ LGPLv2.1+
See LICENSE.txt for more information See LICENSE.txt for more information
@ -135,45 +135,6 @@ end
local QuarrySchedule = {0,0,3,3,3,3,2,2,2,2,1,1,1,1,0,3,0,0,3,3,2,2,1,0,0} local QuarrySchedule = {0,0,3,3,3,3,2,2,2,2,1,1,1,1,0,3,0,0,3,3,2,2,1,0,0}
local ResultNodes = {
["default:cobble"] = "default:cobble",
["default:stone"] = "default:cobble",
["default:mossycobble"] = "default:mossycobble",
["default:desert_stone"] = "default:desert_cobble",
["default:desert_cobble"] = "default:desert_cobble",
["default:clay"] = "default:clay_lump",
["default:stone_with_coal"] = "default:coal_lump",
["default:stone_with_iron"] = "default:iron_lump",
["default:stone_with_copper"] = "default:copper_lump",
["default:stone_with_gold"] = "default:gold_lump",
["default:gravel"] = "default:gravel",
["default:stone_with_mese"] = "default:meselamp",
["default:stone_with_tin"] = "default:tin_lump",
["default:stone_with_diamond"] = "default:diamond",
["default:dirt"] = "default:dirt",
["default:dirt_with_grass"] = "default:dirt",
["default:dirt_with_grass_footsteps"] = "default:dirt",
["default:dirt_with_dry_grass"] = "default:dirt",
["default:dirt_with_snow"] = "default:dirt",
["default:dirt_with_rainforest_litter"] = "default:dirt",
["default:sand"] = "default:sand",
["default:desert_sand"] = "default:desert_sand",
["default:silver_sand"] = "default:silver_sand",
["moreores:mineral_silver"] = "moreores:silver_lump",
["moreores:mineral_mithril"] = "moreores:mithril_lump",
["stairs:stair_cobble"] = "stairs:stair_cobble",
["stairs:stair_mossycobble"] = "stairs:stair_mossycobble",
["stairs:stair_desert_cobble"] = "stairs:stair_desert_cobble",
["default:cactus"] = "default:cactus",
["default:ice"] = "default:ice",
["default:snowblock"] = "default:snowblock",
["default:dirt_with_snow"] = "default:dirt",
["default:snow"] = "default:snow",
["default:coral_skeleton"] = "default:coral_skeleton",
["default:coral_orange"] = "default:coral_skeleton",
["default:coral_brown"] = "default:coral_skeleton",
}
local function get_next_pos(pos, facedir, dir) local function get_next_pos(pos, facedir, dir)
facedir = (facedir + dir) % 4 facedir = (facedir + dir) % 4
@ -229,11 +190,12 @@ local function quarry_next_node(pos, meta)
end end
local number = meta:get_string("number") local number = meta:get_string("number")
if ResultNodes[node.name] ~= nil then local order = tubelib_addons1.GroundNodes[node.name]
if order ~= nil then
local inv = meta:get_inventory() local inv = meta:get_inventory()
if inv:room_for_item("main", ItemStack(node.name)) then if inv:room_for_item("main", ItemStack(order.drop)) then
minetest.remove_node(quarry_pos) minetest.remove_node(quarry_pos)
inv:add_item("main", ItemStack(ResultNodes[node.name])) inv:add_item("main", ItemStack(order.drop))
meta:set_string("infotext", "Tubelib Quarry "..number.. meta:set_string("infotext", "Tubelib Quarry "..number..
": running "..idx.."/"..(curr_level-pos.y)) ": running "..idx.."/"..(curr_level-pos.y))
return true return true

@ -13,7 +13,7 @@
]]-- ]]--
local tColors = {"#0000FF", "#00FFFF", "#00FF00", "#FFFF00", "#FF0000", "#FF00FF", local tColors = {"#0000FF", "#00FFFF", "#00FF00", "#FFFF00", "#FF0000", "#FF00FF",
"#FFFFFF", "#000000", "#3BC23B", "#CA3131", "#FFA500", "#FFC0CB"} "#FFFFFF", "#000000", "#3BC23B", "#CA3131", "#FFA500", "#FFC0CB"}
local sColor = "1,2,3,4,5,6,7,8,9,10,11,12" local sColor = "1,2,3,4,5,6,7,8,9,10,11,12"
local function switch_node(pos, num, player) local function switch_node(pos, num, player)

@ -3,36 +3,21 @@
Tubelib Addons 2 Tubelib Addons 2
================ ================
Copyright (C) 2017 Joachim Stolberg Copyright (C) 2017,2018 Joachim Stolberg
LGPLv2.1+ LGPLv2.1+
See LICENSE.txt for more information See LICENSE.txt for more information
History:
2017-10-05 v0.01 first version
2017-10-06 v0.02 Timer added
2017-10-08 v0.03 Repeater added
2017-10-08 v0.04 Mesecons Converter and Programmer Tool added
2017-10-16 v0.05 Color Lamp added
2017-10-29 v0.06 WLAN Chip + Access Lock added, recipes changed
2017-10-29 v0.07 WLAN Chip removed, recipes changed
]]-- ]]--
dofile(minetest.get_modpath("tubelib_addons2") .. "/timer.lua")
dofile(minetest.get_modpath("tubelib_addons2") .. "/sequencer.lua")
if tubelib.version >= 0.10 then dofile(minetest.get_modpath("tubelib_addons2") .. "/gateblock.lua")
dofile(minetest.get_modpath("tubelib_addons2") .. "/timer.lua") dofile(minetest.get_modpath("tubelib_addons2") .. "/doorblock.lua")
dofile(minetest.get_modpath("tubelib_addons2") .. "/sequencer.lua") dofile(minetest.get_modpath("tubelib_addons2") .. "/colorlamp.lua")
dofile(minetest.get_modpath("tubelib_addons2") .. "/gateblock.lua") dofile(minetest.get_modpath("tubelib_addons2") .. "/repeater.lua")
dofile(minetest.get_modpath("tubelib_addons2") .. "/doorblock.lua") dofile(minetest.get_modpath("tubelib_addons2") .. "/programmer.lua")
dofile(minetest.get_modpath("tubelib_addons2") .. "/colorlamp.lua") dofile(minetest.get_modpath("tubelib_addons2") .. "/accesscontrol.lua")
dofile(minetest.get_modpath("tubelib_addons2") .. "/repeater.lua") if mesecon then
dofile(minetest.get_modpath("tubelib_addons2") .. "/programmer.lua") dofile(minetest.get_modpath("tubelib_addons2") .. "/mesecons_converter.lua")
dofile(minetest.get_modpath("tubelib_addons2") .. "/accesscontrol.lua") end
if mesecon then
dofile(minetest.get_modpath("tubelib_addons2") .. "/mesecons_converter.lua")
end
else
print("[Tubelib] Version 0.10+ of Tubelib Mod is required!")
end