mirror of
https://github.com/joe7575/techpack.git
synced 2024-11-29 18:43:53 +01:00
V1.01, Support for Ethereal added
This commit is contained in:
parent
a65d2cbf53
commit
dca97e08c7
@ -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
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")
|
|
||||||
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
|
end
|
Loading…
Reference in New Issue
Block a user