More crafting recipes

This commit is contained in:
Evert Prants 2018-06-21 11:09:01 +03:00
parent 9749faad72
commit d40b08a492
Signed by: evert
GPG Key ID: 1688DA83D222D0B5
23 changed files with 229 additions and 30 deletions

View File

@ -4,7 +4,7 @@ A new *powerful* modpack for [Minetest](http://minetest.net) 5.0.0+!
**I do not recommend using this modpack with technic, as this modpack aims to become an all new technology mod. However, compatibility might be added at a later date.** **I do not recommend using this modpack with technic, as this modpack aims to become an all new technology mod. However, compatibility might be added at a later date.**
**Depends on [fluid_lib](/evert/fluid_lib)!** **Depends on [fluid_lib](https://gitlab.icynet.eu/evert/fluid_lib)!**
## Features ## Features

View File

@ -114,6 +114,26 @@ minetest.register_craft({
} }
}) })
-- Duct
minetest.register_craft({
output = "elepower_dynamics:fluid_duct 6",
recipe = {
{"group:glass", "group:glass", "group:glass"},
{"elepower_dynamics:lead_ingot", "elepower_dynamics:lead_ingot", "elepower_dynamics:lead_ingot"},
{"group:glass", "group:glass", "group:glass"},
}
})
-- Fluid Transfer Node
minetest.register_craft({
output = "elepower_dynamics:fluid_transfer_node",
recipe = {
{"group:stone", "elepower_dynamics:fluid_duct", "group:stone"},
{"elepower_dynamics:steel_gear", "elepower_dynamics:servo_valve", "elepower_dynamics:steel_gear"},
{"group:stone", "elepower_dynamics:fluid_duct", "group:stone"},
}
})
----------- -----------
-- Items -- -- Items --
----------- -----------
@ -136,6 +156,22 @@ minetest.register_craft({
} }
}) })
minetest.register_craft({
output = "elepower_dynamics:servo_valve 3",
recipe = {
{"", "elepower_dynamics:wound_copper_coil", ""},
{"elepower_dynamics:fluid_duct", "elepower_dynamics:fluid_duct", "elepower_dynamics:fluid_duct"},
}
})
minetest.register_craft({
output = "elepower_dynamics:tree_tap",
recipe = {
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
{"", "", "default:steel_ingot"},
}
})
-------------- --------------
-- Smelting -- -- Smelting --
-------------- --------------

View File

@ -42,13 +42,25 @@ minetest.register_craftitem("elepower_dynamics:carbon_sheet", {
minetest.register_craftitem("elepower_dynamics:wound_copper_coil", { minetest.register_craftitem("elepower_dynamics:wound_copper_coil", {
description = "Wound Copper Coil", description = "Wound Copper Coil",
inventory_image = "elepower_copper_coil.png", inventory_image = "elepower_copper_coil.png",
groups = {copper = 1, coil = 1} groups = {copper = 1, coil = 1, component = 1}
}) })
minetest.register_craftitem("elepower_dynamics:copper_wire", { minetest.register_craftitem("elepower_dynamics:copper_wire", {
description = "Copper Wire", description = "Copper Wire",
inventory_image = "elepower_copper_wire.png", inventory_image = "elepower_copper_wire.png",
groups = {copper = 1, wire = 1} groups = {copper = 1, wire = 1, component = 1}
})
minetest.register_craftitem("elepower_dynamics:servo_valve", {
description = "Servo Valve",
inventory_image = "elepower_servo_valve.png",
groups = {servo_valve = 1, component = 1}
})
minetest.register_craftitem("elepower_dynamics:tree_tap", {
description = "Steel Treetap",
inventory_image = "elepower_tree_tap.png",
groups = {treetap = 1, component = 1}
}) })
--------------- ---------------

View File

@ -8,6 +8,7 @@ elepd.modpath = modpath
dofile(modpath.."/conduits.lua") dofile(modpath.."/conduits.lua")
dofile(modpath.."/craftitems.lua") dofile(modpath.."/craftitems.lua")
dofile(modpath.."/plastic.lua")
dofile(modpath.."/tools.lua") dofile(modpath.."/tools.lua")
dofile(modpath.."/nodes.lua") dofile(modpath.."/nodes.lua")
dofile(modpath.."/dusts.lua") dofile(modpath.."/dusts.lua")

View File

@ -1,4 +1,4 @@
name = elepower_dynamics name = elepower_dynamics
description = Elepower Dynamics. Conduits and materials! description = Elepower Dynamics. Conduits and materials!
depends = elepower_papi,elepower_fapi,default depends = elepower_papi,elepower_fapi,default
optional_depends = moreores optional_depends = moreores,pipeworks,homedecor

View File

@ -0,0 +1,61 @@
if minetest.get_modpath("homedecor") == nil and minetest.get_modpath("pipeworks") == nil then
minetest.register_craftitem(":homedecor:oil_extract", {
description = "Oil Extract",
inventory_image = "elepower_oil_extract.png",
})
minetest.register_craftitem(":homedecor:paraffin", {
description = "Unprocessed Paraffin",
inventory_image = "elepower_paraffin.png",
})
minetest.register_alias("homedecor:plastic_base", "homedecor:paraffin")
minetest.register_craftitem(":homedecor:plastic_sheeting", {
description = "Plastic Sheet",
inventory_image = "elepower_plastic_sheeting.png",
})
minetest.register_craft({
type = "shapeless",
output = "homedecor:oil_extract 4",
recipe = {
"group:leaves",
"group:leaves",
"group:leaves",
"group:leaves",
"group:leaves",
"group:leaves"
}
})
minetest.register_craft({
type = "cooking",
output = "homedecor:paraffin",
recipe = "homedecor:oil_extract",
})
minetest.register_craft({
type = "cooking",
output = "homedecor:plastic_sheeting",
recipe = "homedecor:paraffin",
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:oil_extract",
burntime = 30,
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:paraffin",
burntime = 30,
})
minetest.register_craft({
type = "fuel",
recipe = "homedecor:plastic_sheeting",
burntime = 30,
})
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 B

View File

@ -0,0 +1,44 @@
-----------
-- Nodes --
-----------
-- Device Frame
minetest.register_craft({
output = "elepower_farming:device_frame",
recipe = {
{"homedecor:plastic_sheeting", "group:glass", "homedecor:plastic_sheeting"},
{"group:glass", "default:mese_crystal", "group:glass"},
{"homedecor:plastic_sheeting", "group:glass", "homedecor:plastic_sheeting"},
}
})
-- Planter
minetest.register_craft({
output = "elepower_farming:planter",
recipe = {
{"homedecor:plastic_sheeting", "elepower_dynamics:copper_wire", "homedecor:plastic_sheeting"},
{"farming:hoe_steel", "elepower_farming:device_frame", "farming:hoe_steel"},
{"elepower_dynamics:wound_copper_coil", "elepower_dynamics:diamond_gear", "elepower_dynamics:wound_copper_coil"},
}
})
-- Harvester
minetest.register_craft({
output = "elepower_farming:harvester",
recipe = {
{"homedecor:plastic_sheeting", "elepower_dynamics:copper_wire", "homedecor:plastic_sheeting"},
{"default:axe_steel", "elepower_farming:device_frame", "farming:hoe_steel"},
{"elepower_dynamics:wound_copper_coil", "elepower_dynamics:diamond_gear", "elepower_dynamics:wound_copper_coil"},
}
})
-- Tree Extractor
minetest.register_craft({
output = "elepower_farming:tree_extractor",
recipe = {
{"homedecor:plastic_sheeting", "bucket:bucket_empty", "homedecor:plastic_sheeting"},
{"elepower_dynamics:tree_tap", "elepower_farming:device_frame", "elepower_dynamics:tree_tap"},
{"elepower_dynamics:copper_gear", "elepower_dynamics:servo_valve", "elepower_dynamics:copper_gear"},
}
})

View File

@ -23,14 +23,15 @@ function elefarm.formspec.planter_formspec(timer, power)
default.get_hotbar_bg(0, 5.75) default.get_hotbar_bg(0, 5.75)
end end
function elefarm.formspec.harvester_formspec(timer, power) function elefarm.formspec.harvester_formspec(timer, power, sludge)
return "size[8,8.5]".. return "size[8,8.5]"..
default.gui_bg.. default.gui_bg..
default.gui_bg_img.. default.gui_bg_img..
default.gui_slots.. default.gui_slots..
ele.formspec.power_meter(power).. ele.formspec.power_meter(power)..
ele.formspec.fluid_bar(7, 0, sludge)..
bar(1, 0, 100-timer).. bar(1, 0, 100-timer)..
"list[context;dst;1.5,0.25;6,2;]".. "list[context;dst;1.5,0;5,3;]"..
"list[current_player;main;0,4.25;8,1;]".. "list[current_player;main;0,4.25;8,1;]"..
"list[current_player;main;0,5.5;8,3;8]".. "list[current_player;main;0,5.5;8,3;8]"..
"listring[context;dst]".. "listring[context;dst]"..

View File

@ -9,3 +9,4 @@ elefarm.modpath = modpath
dofile(modpath.."/formspec.lua") dofile(modpath.."/formspec.lua")
dofile(modpath.."/craftitems.lua") dofile(modpath.."/craftitems.lua")
dofile(modpath.."/nodes/init.lua") dofile(modpath.."/nodes/init.lua")
dofile(modpath.."/crafting.lua")

View File

@ -1,4 +1,3 @@
name = elepower_farming name = elepower_farming
description = Electric Farming Automation! description = Electric Farming Automation!
depends = elepower_papi, elepower_tools, farming depends = elepower_papi, elepower_tools, elepower_fapi, bucket, farming
optional_depends = bucket

View File

@ -5,6 +5,9 @@ local HARVESTER_TICK = 10
-- How many plants we can collect in one run -- How many plants we can collect in one run
local HARVESTER_SWEEP = 9 local HARVESTER_SWEEP = 9
-- How much sludge is generated as a by-product
local SLUDGE_PRODUCED = 10
local function can_dig(pos, player) local function can_dig(pos, player)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
@ -78,9 +81,10 @@ local function on_timer(pos, elapsed)
local usage = ele.helpers.get_node_property(meta, pos, "usage") local usage = ele.helpers.get_node_property(meta, pos, "usage")
local storage = ele.helpers.get_node_property(meta, pos, "storage") local storage = ele.helpers.get_node_property(meta, pos, "storage")
local work = meta:get_int("src_time") local work = meta:get_int("src_time")
local sludge = fluid_lib.get_buffer_data(pos, "sludge")
if storage > usage then if storage > usage and sludge.amount + SLUDGE_PRODUCED < sludge.capacity then
if work == HARVESTER_TICK then if work == HARVESTER_TICK then
local harvested = {} local harvested = {}
@ -89,6 +93,7 @@ local function on_timer(pos, elapsed)
work = 0 work = 0
if #harvested > 0 then if #harvested > 0 then
storage = storage - usage storage = storage - usage
sludge.amount = sludge.amount + SLUDGE_PRODUCED
for _,itm in ipairs(harvested) do for _,itm in ipairs(harvested) do
local stack = ItemStack(itm) local stack = ItemStack(itm)
if inv:room_for_item("dst", stack) then if inv:room_for_item("dst", stack) then
@ -109,10 +114,13 @@ local function on_timer(pos, elapsed)
local power_percent = math.floor((storage / capacity)*100) local power_percent = math.floor((storage / capacity)*100)
local work_percent = math.floor((work / HARVESTER_TICK)*100) local work_percent = math.floor((work / HARVESTER_TICK)*100)
meta:set_string("formspec", elefarm.formspec.harvester_formspec(work_percent, power_percent)) meta:set_string("formspec", elefarm.formspec.harvester_formspec(work_percent, power_percent, sludge))
meta:set_int("storage", storage) meta:set_int("storage", storage)
meta:set_int("src_time", work) meta:set_int("src_time", work)
meta:set_string("sludge_fluid", "elepower_farming:sludge_source")
meta:set_int("sludge_fluid_storage", sludge.amount)
return refresh return refresh
end end
@ -131,16 +139,23 @@ ele.register_machine("elepower_farming:harvester", {
ele_user = 1, ele_user = 1,
cracky = 1, cracky = 1,
tubedevice = 1, tubedevice = 1,
fluid_container = 1,
},
fluid_buffers = {
sludge = {
capacity = 8000,
drainable = true,
}
}, },
on_construct = function (pos) on_construct = function (pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
inv:set_size("layout", 9) inv:set_size("layout", 9)
inv:set_size("dst", 12) inv:set_size("dst", 15)
meta:set_int("src_time", 0) meta:set_int("src_time", 0)
meta:set_string("formspec", elefarm.formspec.harvester_formspec(0,0)) meta:set_string("formspec", elefarm.formspec.harvester_formspec(0, 0))
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
end, end,

View File

@ -1,6 +1,15 @@
minetest.register_node("elepower_farming:device_frame", {
description = "Plastic Device Frame\nSafe for decoration",
tiles = {
"elefarming_machine_base.png", "elefarming_machine_base.png", "elefarming_machine_side.png",
"elefarming_machine_side.png", "elefarming_machine_side.png", "elefarming_machine_side.png",
},
groups = {oddly_breakable_by_hand = 1, cracky = 1}
})
dofile(elefarm.modpath.."/nodes/fluids.lua")
dofile(elefarm.modpath.."/nodes/planter.lua") dofile(elefarm.modpath.."/nodes/planter.lua")
dofile(elefarm.modpath.."/nodes/harvester.lua") dofile(elefarm.modpath.."/nodes/harvester.lua")
dofile(elefarm.modpath.."/nodes/fluids.lua")
dofile(elefarm.modpath.."/nodes/tree_extractor.lua") dofile(elefarm.modpath.."/nodes/tree_extractor.lua")
dofile(elefarm.modpath.."/nodes/tree_processor.lua") dofile(elefarm.modpath.."/nodes/tree_processor.lua")

View File

@ -115,8 +115,8 @@ local function plant(pos, range, stack, inv)
local to_plant = stack:get_name() local to_plant = stack:get_name()
local to_place = nil local to_place = nil
local amount = 0 local amount = 0
local till = false local till = true
for _,stack in ipairs(inv:get_list("src")) do for _,stack in ipairs(inv:get_list("src")) do
if stack:get_name() == to_plant then if stack:get_name() == to_plant then
amount = amount + stack:get_count() amount = amount + stack:get_count()
@ -127,9 +127,9 @@ local function plant(pos, range, stack, inv)
if ele.helpers.get_item_group(to_plant, "sapling") then if ele.helpers.get_item_group(to_plant, "sapling") then
to_place = to_plant to_place = to_plant
to_plant = nil to_plant = nil
till = false
elseif ele.helpers.get_item_group(to_plant, "seed") then elseif ele.helpers.get_item_group(to_plant, "seed") then
to_place = nil to_place = nil
till = true
end end
if (to_plant or to_place) and amount > 0 then if (to_plant or to_place) and amount > 0 then
@ -161,9 +161,22 @@ local function plant(pos, range, stack, inv)
}) })
local soil = regN[base_node.name].soil local soil = regN[base_node.name].soil
if soil then soil = soil.dry else soil = "farming:soil" end local wet_soil = "farming:soil_wet"
minetest.set_node(base_pos, {name = soil}) -- Determine soil name
-- Make sure we don't replace wet soil
if soil then
wet_soil = soil.wet or "farming:soil_wet"
soil = soil.dry
else
soil = "farming:soil"
end
print(dump(base_node), soil,wet_soil)
if base_node.name ~= soil and base_node.name ~= wet_soil then
minetest.set_node(base_pos, {name = soil})
end
end end
end end

View File

@ -65,6 +65,6 @@ minetest.register_abm({
meta:set_int("tree_fluid_storage", fluid_c) meta:set_int("tree_fluid_storage", fluid_c)
meta:set_string("tree_fluid", ftype) meta:set_string("tree_fluid", ftype)
meta:set_string("infotext", ("%s: %d/%d %s"):format(fname, fluid_c, CAPACITY, elefluid.unit)) meta:set_string("infotext", ("%s: %d/%d %s"):format(fname, fluid_c, CAPACITY, fluid_lib.unit))
end end
}) })

View File

@ -5,7 +5,7 @@ local tree_fluid_recipes = {
amount = 100, amount = 100,
time = 5, time = 5,
output = { output = {
fluid = "elepower_farming:biofuel_source", fluid = "elepower_farming:biomass_source",
amount = 80, amount = 80,
}, },
}, },
@ -15,7 +15,7 @@ local tree_fluid_recipes = {
time = 5, time = 5,
output = { output = {
fluid = "elepower_farming:biomass_source", fluid = "elepower_farming:biomass_source",
amount = 80, amount = 20,
item = "elepower_farming:resin" item = "elepower_farming:resin"
}, },
}, },
@ -26,9 +26,9 @@ local function on_timer(pos, elapsed)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
local tree_buffer = elefluid.get_buffer_data(pos, "tree") local tree_buffer = fluid_lib.get_buffer_data(pos, "tree")
local water_buffer = elefluid.get_buffer_data(pos, "water") local water_buffer = fluid_lib.get_buffer_data(pos, "water")
local out_buffer = elefluid.get_buffer_data(pos, "output") local out_buffer = fluid_lib.get_buffer_data(pos, "output")
local capacity = ele.helpers.get_node_property(meta, pos, "capacity") local capacity = ele.helpers.get_node_property(meta, pos, "capacity")
local storage = ele.helpers.get_node_property(meta, pos, "storage") local storage = ele.helpers.get_node_property(meta, pos, "storage")
@ -150,9 +150,6 @@ ele.register_machine("elepower_farming:tree_processor", {
inv:set_size("dst", 1) inv:set_size("dst", 1)
meta:set_string("formspec", elefarm.formspec.tree_processor(0, 0)) meta:set_string("formspec", elefarm.formspec.tree_processor(0, 0))
meta:set_string("tree_fluid", "elepower_farming:resin_source")
meta:set_int("tree_fluid_storage", 2000)
end, end,
tiles = { tiles = {
"elefarming_machine_tree_processor.png", "elefarming_machine_base.png", "elefarming_machine_side.png", "elefarming_machine_tree_processor.png", "elefarming_machine_base.png", "elefarming_machine_side.png",

View File

@ -2,7 +2,7 @@
-- Machines are registered in `register.lua`! -- Machines are registered in `register.lua`!
minetest.register_node("elepower_machines:machine_block", { minetest.register_node("elepower_machines:machine_block", {
description = "Machine Block", description = "Machine Block\nSafe for decoration",
tiles = {"elepower_machine_top.png", "elepower_machine_base.png", "elepower_machine_side.png"}, tiles = {"elepower_machine_top.png", "elepower_machine_base.png", "elepower_machine_side.png"},
groups = {oddly_breakable_by_hand = 1, cracky = 1}, groups = {oddly_breakable_by_hand = 1, cracky = 1},
}) })

View File

@ -270,3 +270,13 @@ minetest.register_craft({
{"elepower_dynamics:lead_ingot", "elepower_dynamics:diamond_gear", "elepower_dynamics:lead_ingot"}, {"elepower_dynamics:lead_ingot", "elepower_dynamics:diamond_gear", "elepower_dynamics:lead_ingot"},
} }
}) })
-- Water Accumulator
minetest.register_craft({
output = "elepower_machines:accumulator",
recipe = {
{"", "elepower_dynamics:fluid_duct", ""},
{"group:glass", "elepower_machines:machine_block", "group:glass"},
{"elepower_dynamics:steel_gear", "elepower_dynamics:servo_valve", "elepower_dynamics:steel_gear"},
}
})

View File

@ -59,6 +59,6 @@ minetest.register_abm({
water_c = water_c + give water_c = water_c + give
meta:set_int("water_fluid_storage", water_c) meta:set_int("water_fluid_storage", water_c)
meta:set_string("infotext", ("Water: %d/%d %s"):format(water_c, CAPACITY, elefluid.unit)) meta:set_string("infotext", ("Water: %d/%d %s"):format(water_c, CAPACITY, fluid_lib.unit))
end end
}) })