built on 26/11/2023 12:42:06
13
basic_materials/.github/workflows/luacheck.yml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
name: luacheck
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: apt
|
||||
run: sudo apt-get install -y luarocks
|
||||
- name: luacheck install
|
||||
run: luarocks install --local luacheck
|
||||
- name: luacheck run
|
||||
run: $HOME/.luarocks/bin/luacheck ./
|
3
basic_materials/.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "sound_api_core"]
|
||||
path = sound_api_core
|
||||
url = https://github.com/mt-mods/sound_api_core.git
|
@ -1,30 +1,7 @@
|
||||
std = "lua51+minetest"
|
||||
unused_args = false
|
||||
allow_defined_top = true
|
||||
max_line_length = 999
|
||||
|
||||
stds.minetest = {
|
||||
read_globals = {
|
||||
"DIR_DELIM",
|
||||
"minetest",
|
||||
"core",
|
||||
"dump",
|
||||
"vector",
|
||||
"nodeupdate",
|
||||
"VoxelManip",
|
||||
"VoxelArea",
|
||||
"PseudoRandom",
|
||||
"ItemStack",
|
||||
"default",
|
||||
table = {
|
||||
fields = {
|
||||
"copy",
|
||||
},
|
||||
},
|
||||
}
|
||||
globals = {
|
||||
"minetest", "basic_materials", "crafting",
|
||||
}
|
||||
|
||||
read_globals = {
|
||||
"default",
|
||||
"moreores",
|
||||
"default",
|
||||
}
|
30
basic_materials/README.md
Normal file
@ -0,0 +1,30 @@
|
||||
# Basic Materials mod
|
||||
|
||||
mod that adds basic material nodes and items
|
||||
|
||||
## Install
|
||||
|
||||
### Option 1: use content tab in minetest
|
||||
|
||||
* click the content tab
|
||||
* search for basic materials
|
||||
* click install on basic materials
|
||||
|
||||
### Option 2: download from [ContentDB](https://content.minetest.net/packages/VanessaE/basic_materials/)
|
||||
|
||||
* click the above link or search for basic materials on ContentDB
|
||||
* select the download button on the basic materials page
|
||||
* extract the zip downloaded from the previous step
|
||||
* place in your mods folder
|
||||
|
||||
### Option 3: use git
|
||||
|
||||
* `git clone https://github.com/mt-mods/basic_materials.git`
|
||||
* `cd basic_materials`
|
||||
* `git submodule init`
|
||||
* `git submodule update`
|
||||
|
||||
to update please use the following commands starting inside the mod directory
|
||||
|
||||
* `git submodule sync`
|
||||
* `git submodule update`
|
34
basic_materials/aliases.lua
Normal file
@ -0,0 +1,34 @@
|
||||
minetest.register_alias("homedecor:plastic_sheeting", "basic_materials:plastic_sheet")
|
||||
minetest.register_alias("homedecor:plastic_strips", "basic_materials:plastic_strip")
|
||||
minetest.register_alias("homedecor:empty_spool", "basic_materials:empty_spool")
|
||||
minetest.register_alias("homedecor:oil_extract", "basic_materials:oil_extract")
|
||||
minetest.register_alias("homedecor:paraffin", "basic_materials:paraffin")
|
||||
minetest.register_alias("homedecor:plastic_base", "basic_materials:paraffin")
|
||||
minetest.register_alias("homedecor:terracotta_base", "basic_materials:terracotta_base")
|
||||
minetest.register_alias("gloopblocks:wet_cement", "basic_materials:wet_cement")
|
||||
minetest.register_alias("gloopblocks:cement", "basic_materials:cement_block")
|
||||
minetest.register_alias("technic:concrete", "basic_materials:concrete_block")
|
||||
minetest.register_alias("homedecor:ic", "basic_materials:ic")
|
||||
minetest.register_alias("homedecor:motor", "basic_materials:motor")
|
||||
minetest.register_alias("technic:motor", "basic_materials:motor")
|
||||
minetest.register_alias("homedecor:heating_element", "basic_materials:heating_element")
|
||||
minetest.register_alias("homedecor:power_crystal", "basic_materials:energy_crystal_simple")
|
||||
minetest.register_alias("homedecor:copper_wire", "basic_materials:copper_wire")
|
||||
minetest.register_alias("technic:fine_copper_wire", "basic_materials:copper_wire")
|
||||
minetest.register_alias("technic:fine_silver_wire", "basic_materials:silver_wire")
|
||||
minetest.register_alias("technic:fine_gold_wire", "basic_materials:gold_wire")
|
||||
minetest.register_alias("homedecor:steel_wire", "basic_materials:steel_wire")
|
||||
minetest.register_alias("homedecor:brass_ingot", "basic_materials:brass_ingot")
|
||||
minetest.register_alias("technic:brass_ingot", "basic_materials:brass_ingot")
|
||||
minetest.register_alias("technic:brass_block", "basic_materials:brass_block")
|
||||
minetest.register_alias("homedecor:copper_strip", "basic_materials:copper_strip")
|
||||
minetest.register_alias("homedecor:steel_strip", "basic_materials:steel_strip")
|
||||
minetest.register_alias("homedecor:chainlink_brass", "basic_materials:chainlink_brass")
|
||||
minetest.register_alias("chains:chain", "basic_materials:chain_steel")
|
||||
minetest.register_alias("chains:chain_brass", "basic_materials:chain_brass")
|
||||
minetest.register_alias("pipeworks:gear", "basic_materials:gear_steel")
|
||||
minetest.register_alias("technic:rebar", "basic_materials:steel_bar")
|
||||
|
||||
minetest.register_alias_force("mesecons_materials:silicon", "basic_materials:silicon")
|
||||
minetest.register_alias_force("glooptest:chainlink", "basic_materials:chainlink_steel")
|
||||
minetest.register_alias_force("homedecor:chainlink_steel", "basic_materials:chainlink_steel")
|
188
basic_materials/craftitems.lua
Normal file
@ -0,0 +1,188 @@
|
||||
local S = minetest.get_translator("basic_materials")
|
||||
|
||||
minetest.register_craftitem("basic_materials:plastic_sheet", {
|
||||
description = S("Plastic sheet"),
|
||||
inventory_image = "basic_materials_plastic_sheet.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:plastic_strip", {
|
||||
description = S("Plastic strips"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_plastic_strip.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:empty_spool", {
|
||||
description = S("Empty wire spool"),
|
||||
inventory_image = "basic_materials_empty_spool.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:oil_extract", {
|
||||
description = S("Oil extract"),
|
||||
inventory_image = "basic_materials_oil_extract.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:paraffin", {
|
||||
description = S("Unprocessed paraffin"),
|
||||
inventory_image = "basic_materials_paraffin.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:terracotta_base", {
|
||||
description = S("Uncooked Terracotta Base"),
|
||||
inventory_image = "basic_materials_terracotta_base.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:wet_cement", {
|
||||
description = S("Wet Cement"),
|
||||
inventory_image = "basic_materials_wet_cement.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:silicon", {
|
||||
description = S("Silicon lump"),
|
||||
inventory_image = "basic_materials_silicon.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:ic", {
|
||||
description = S("Simple Integrated Circuit"),
|
||||
inventory_image = "basic_materials_ic.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:motor", {
|
||||
description = S("Simple Motor"),
|
||||
inventory_image = "basic_materials_motor.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:heating_element", {
|
||||
description = S("Heating element"),
|
||||
inventory_image = "basic_materials_heating_element.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:energy_crystal_simple", {
|
||||
description = S("Simple energy crystal"),
|
||||
inventory_image = "basic_materials_energy_crystal.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:steel_wire", {
|
||||
description = S("Spool of steel wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_steel_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:copper_wire", {
|
||||
description = S("Spool of copper wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_copper_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:silver_wire", {
|
||||
description = S("Spool of silver wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_silver_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:gold_wire", {
|
||||
description = S("Spool of gold wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_gold_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:stainless_steel_wire", {
|
||||
description = S("Spool of stainless steel wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_stainless_steel_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:aluminum_wire", {
|
||||
description = S("Spool of aluminum wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_aluminum_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:steel_strip", {
|
||||
description = S("Steel Strip"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_steel_strip.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:copper_strip", {
|
||||
description = S("Copper Strip"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_copper_strip.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:lead_strip", {
|
||||
description = S("Lead Strip"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_lead_strip.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:gold_strip", {
|
||||
description = S("Gold Strip"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_gold_strip.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:stainless_steel_strip", {
|
||||
description = S("Stainless Steel Strip"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_stainless_steel_strip.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:aluminum_strip", {
|
||||
description = S("Aluminum Strip"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_aluminum_strip.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:steel_bar", {
|
||||
description = S("Steel Bar"),
|
||||
inventory_image = "basic_materials_steel_bar.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:carbon_steel_bar", {
|
||||
description = S("Carbon Steel Bar"),
|
||||
inventory_image = "basic_materials_carbon_steel_bar.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:stainless_steel_bar", {
|
||||
description = S("Stainless Steel Bar"),
|
||||
inventory_image = "basic_materials_stainless_steel_bar.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:aluminum_bar", {
|
||||
description = S("Aluminum Bar"),
|
||||
inventory_image = "basic_materials_aluminum_bar.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:chainlink_brass", {
|
||||
description = S("Chainlinks (brass)"),
|
||||
groups = { chainlinks = 1 },
|
||||
inventory_image = "basic_materials_chainlink_brass.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:chainlink_steel", {
|
||||
description = S("Chainlinks (steel)"),
|
||||
groups = { chainlinks = 1 },
|
||||
inventory_image = "basic_materials_chainlink_steel.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:brass_ingot", {
|
||||
description = S("Brass Ingot"),
|
||||
inventory_image = "basic_materials_brass_ingot.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:gear_steel", {
|
||||
description = S("Steel gear"),
|
||||
inventory_image = "basic_materials_gear_steel.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:padlock", {
|
||||
description = S("Padlock"),
|
||||
inventory_image = "basic_materials_padlock.png"
|
||||
})
|
||||
|
||||
if minetest.get_modpath("hades_materials") then
|
||||
minetest.register_alias_force("basic_materials:plastic_sheet", "hades_materials:plastic_sheeting")
|
||||
minetest.register_alias_force("basic_materials:paraffin", "hades_materials:plastic_base")
|
||||
minetest.register_alias_force("basic_materials:silicon", "hades_materials:silicon")
|
||||
end
|
||||
|
573
basic_materials/crafts.lua
Normal file
@ -0,0 +1,573 @@
|
||||
local materials = {
|
||||
dirt = "default:dirt",
|
||||
sand = "default:sand",
|
||||
gravel = "default:gravel",
|
||||
copper_ingot = "default:copper_ingot",
|
||||
steel_ingot = "default:steel_ingot",
|
||||
gold_ingot = "default:gold_ingot",
|
||||
tin_ingot = "default:tin_ingot",
|
||||
mese_crystal_fragment = "default:mese_crystal_fragment",
|
||||
torch = "default:torch",
|
||||
diamond = "default:diamond",
|
||||
clay_lump = "default:clay_lump",
|
||||
water_bucket = "bucket:bucket_water",
|
||||
empty_bucket = "bucket:bucket_empty",
|
||||
dye_dark_grey = "dye:dark_grey",
|
||||
silicon = "mesecons_materials:silicon",
|
||||
}
|
||||
|
||||
if minetest.get_modpath("moreores") then
|
||||
materials.silver_ingot = "moreores:silver_ingot"
|
||||
end
|
||||
|
||||
if minetest.get_modpath("technic") then
|
||||
materials.lead_ingot = "technic:lead_ingot"
|
||||
materials.carbon_steel_ingot = "technic:carbon_steel_ingot"
|
||||
materials.stainless_steel_ingot = "technic:stainless_steel_ingot"
|
||||
end
|
||||
|
||||
if minetest.get_modpath("aloz") then
|
||||
materials.aluminum_ingot = "aloz:aluminum_ingot"
|
||||
end
|
||||
|
||||
if minetest.get_modpath("techage") then
|
||||
materials.aluminum_ingot = "techage:aluminum"
|
||||
end
|
||||
|
||||
if minetest.get_modpath("mcl_core") then
|
||||
materials = {
|
||||
dirt = "mcl_core:dirt",
|
||||
sand = "mcl_core:sand",
|
||||
gravel = "mcl_core:gravel",
|
||||
steel_ingot = "mcl_core:iron_ingot",
|
||||
gold_ingot = "mcl_core:gold_ingot",
|
||||
mese_crystal_fragment = "mesecons:redstone",
|
||||
torch = "mcl_torches:torch",
|
||||
diamond = "mcl_core:diamond",
|
||||
clay_lump = "mcl_core:clay_lump",
|
||||
water_bucket = "mcl_buckets:bucket_water",
|
||||
empty_bucket = "mcl_buckets:bucket_empty",
|
||||
dye_dark_grey = "mcl_dye:dark_grey",
|
||||
-- Use iron where no equivalent
|
||||
copper_ingot = "mcl_core:iron_ingot",
|
||||
tin_ingot = "mcl_core:iron_ingot",
|
||||
silver_ingot = "mcl_core:iron_ingot",
|
||||
silicon = "mesecons_materials:silicon",
|
||||
}
|
||||
elseif minetest.get_modpath("fl_ores") and minetest.get_modpath("fl_stone") then
|
||||
materials = {
|
||||
dirt = "fl_topsoil:dirt",
|
||||
sand = "fl_stone:sand",
|
||||
gravel = "fl_topsoil:gravel",
|
||||
steel_ingot = "fl_ores:iron_ingot",
|
||||
gold_ingot = "fl_ores:gold_ingot",
|
||||
mese_crystal_fragment = "fl_ores:iron_ingot",
|
||||
torch = "fl_light_sources:torch",
|
||||
diamond = "fl_ores:diamond",
|
||||
clay_lump = "fl_bricks:clay_lump",
|
||||
water_bucket = "fl_bucket:bucket_water",
|
||||
empty_bucket = "fl_bucket:bucket",
|
||||
dye_dark_grey = "fl_dyes:dark_grey_dye",
|
||||
copper_ingot = "fl_ores:copper_ingot",
|
||||
tin_ingot = "fl_ores:tin_ingot",
|
||||
silver_ingot = "fl_ores:iron_ingot",
|
||||
silicon = "mesecons_materials:silicon",
|
||||
}
|
||||
elseif minetest.get_modpath("rp_default") then
|
||||
materials = {
|
||||
dirt = "rp_default:dirt",
|
||||
sand = "rp_default:sand",
|
||||
gravel = "rp_default:gravel",
|
||||
steel_ingot = "rp_default:ingot_steel",
|
||||
gold_ingot = "rp_default:ingot_gold",
|
||||
mese_crystal_fragment = "rp_default:ingot_steel",
|
||||
torch = "rp_default:torch",
|
||||
diamond = "rp_default:pearl",
|
||||
clay_lump = "rp_default:ingot_steel",
|
||||
water_bucket = "rp_default:swamp_dirt",
|
||||
empty_bucket = "rp_default:dirt",
|
||||
dye_dark_grey = "rp_default:ingot_steel",
|
||||
copper_ingot = "rp_default:ingot_copper",
|
||||
tin_ingot = "rp_default:ingot_tin",
|
||||
silver_ingot = "rp_default:ingot_steel",
|
||||
silicon = "rp_default:ingot_steel",
|
||||
}
|
||||
elseif minetest.get_modpath("hades_core") then
|
||||
materials = {
|
||||
dirt = "hades_core:dirt",
|
||||
sand = "hades_core:fertile_sand",
|
||||
gravel = "hades_core:gravel",
|
||||
steel_ingot = "hades_core:steel_ingot",
|
||||
gold_ingot = "hades_core:gold_ingot",
|
||||
mese_crystal_fragment = "hades_core:mese_crystal_fragment",
|
||||
torch = "hades_torches:torch",
|
||||
diamond = "hades_core:diamond",
|
||||
clay_lump = "hades_core:clay_lump",
|
||||
dye_dark_grey = "hades_dye:dark_grey",
|
||||
copper_ingot = "hades_core:copper_ingot",
|
||||
tin_ingot = "hades_core:tin_ingot",
|
||||
--[[
|
||||
Since hades doesnt have buckets or water for the user,
|
||||
using dirt from near water to pull the water out
|
||||
]]
|
||||
water_bucket = "hades_core:dirt",
|
||||
empty_bucket = "hades_core:fertile_sand",
|
||||
-- Set this to steel unless hadesextraores is present
|
||||
silver_ingot = "hades_core:steel_ingot",
|
||||
silicon = "hades_materials:silicon",
|
||||
}
|
||||
|
||||
if minetest.get_modpath("hades_bucket") then
|
||||
materials["water_bucket"] = "hades_bucket:bucket_water"
|
||||
materials["empty_bucket"] = "hades_bucket:bucket_empty"
|
||||
end
|
||||
if minetest.get_modpath("hades_extraores") then
|
||||
materials["silver_ingot"] = "hades_extraores:silver_ingot"
|
||||
materials["aluminum_ingot"] = "hades_extraores:aluminum_ingot"
|
||||
end
|
||||
if minetest.get_modpath("hades_technic") then
|
||||
materials.lead_ingot = "hades_technic:lead_ingot"
|
||||
materials.carbon_steel_ingot = "hades_technic:carbon_steel_ingot"
|
||||
materials.stainless_steel_ingot = "hades_technic:stainless_steel_ingot"
|
||||
end
|
||||
end
|
||||
|
||||
local have_hades_materials = minetest.get_modpath("hades_materials")
|
||||
|
||||
local function compress_craft(input)
|
||||
local buffer = {}
|
||||
for _, item in pairs(input) do
|
||||
if type(item)=="table" then
|
||||
for _, inneritem in pairs(item) do
|
||||
buffer[inneritem] = (buffer[inneritem] or 0) + 1
|
||||
end
|
||||
elseif item ~= "" then
|
||||
buffer[item] = (buffer[item] or 0) + 1
|
||||
end
|
||||
end
|
||||
|
||||
local output = {}
|
||||
for item, count in pairs(buffer) do
|
||||
output[#output + 1] = item .. " " .. count
|
||||
end
|
||||
return output
|
||||
end
|
||||
|
||||
local function register_craft(input)
|
||||
if minetest.get_modpath("rp_crafting") then
|
||||
local rp_craft = compress_craft(input.recipe)
|
||||
if #rp_craft > crafting.MAX_INPUTS then
|
||||
minetest.log("error", "[basic_materials] unable to register craft for " .. input.output)
|
||||
return
|
||||
end
|
||||
|
||||
crafting.register_craft({
|
||||
output = input.output,
|
||||
items = rp_craft
|
||||
})
|
||||
else
|
||||
minetest.register_craft(input)
|
||||
end
|
||||
end
|
||||
|
||||
-- Craft recipes
|
||||
register_craft({
|
||||
output = "basic_materials:chainlink_brass 12",
|
||||
recipe = {
|
||||
{"", "basic_materials:brass_ingot", "basic_materials:brass_ingot"},
|
||||
{"basic_materials:brass_ingot", "", "basic_materials:brass_ingot"},
|
||||
{"basic_materials:brass_ingot", "basic_materials:brass_ingot", ""},
|
||||
},
|
||||
})
|
||||
|
||||
register_craft({
|
||||
output = "basic_materials:chain_steel 2",
|
||||
recipe = {
|
||||
{"basic_materials:chainlink_steel"},
|
||||
{"basic_materials:chainlink_steel"},
|
||||
{"basic_materials:chainlink_steel"}
|
||||
}
|
||||
})
|
||||
|
||||
register_craft({
|
||||
output = "basic_materials:chain_brass 2",
|
||||
recipe = {
|
||||
{"basic_materials:chainlink_brass"},
|
||||
{"basic_materials:chainlink_brass"},
|
||||
{"basic_materials:chainlink_brass"}
|
||||
}
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
type = "shapeless",
|
||||
output = "basic_materials:brass_ingot 9",
|
||||
recipe = {"basic_materials:brass_block"},
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:brass_block",
|
||||
recipe = {
|
||||
{"basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot"},
|
||||
{"basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot"},
|
||||
{"basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot"},
|
||||
},
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:plastic_strip 9",
|
||||
recipe = {
|
||||
{"basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet"}
|
||||
},
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:empty_spool 3",
|
||||
recipe = {
|
||||
{"basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet"},
|
||||
{"", "basic_materials:plastic_sheet", ""},
|
||||
{"basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet"}
|
||||
},
|
||||
})
|
||||
|
||||
if have_hades_materials then
|
||||
minetest.clear_craft({
|
||||
type = "shapeless",
|
||||
recipe = {"group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves"}
|
||||
})
|
||||
end
|
||||
|
||||
register_craft({
|
||||
type = "shapeless",
|
||||
output = "basic_materials:oil_extract 2",
|
||||
recipe = {"group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves", "group:leaves"}
|
||||
})
|
||||
|
||||
-- Cooking recipes
|
||||
if not have_hades_materials then
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "basic_materials:plastic_sheet",
|
||||
recipe = "basic_materials:paraffin",
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "basic_materials:paraffin",
|
||||
recipe = "basic_materials:oil_extract",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "basic_materials:cement_block",
|
||||
recipe = "basic_materials:wet_cement",
|
||||
cooktime = 8
|
||||
})
|
||||
|
||||
-- Fuel recipes
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "basic_materials:plastic_sheet",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "basic_materials:oil_extract",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "basic_materials:paraffin",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
register_craft({
|
||||
output = "basic_materials:concrete_block 6",
|
||||
recipe = {
|
||||
{"group:sand", "basic_materials:wet_cement", materials.gravel},
|
||||
{"basic_materials:steel_bar", "basic_materials:wet_cement", "basic_materials:steel_bar"},
|
||||
{materials.gravel, "basic_materials:wet_cement", "group:sand"},
|
||||
}
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:motor 2",
|
||||
recipe = {
|
||||
{materials.mese_crystal_fragment, "basic_materials:copper_wire", "basic_materials:plastic_sheet"},
|
||||
{materials.copper_ingot, materials.steel_ingot, materials.steel_ingot},
|
||||
{materials.mese_crystal_fragment, "basic_materials:copper_wire", "basic_materials:plastic_sheet"}
|
||||
},
|
||||
replacements = {
|
||||
{"basic_materials:copper_wire", "basic_materials:empty_spool"},
|
||||
{"basic_materials:copper_wire", "basic_materials:empty_spool"},
|
||||
}
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:heating_element 2",
|
||||
recipe = {
|
||||
{materials.copper_ingot, materials.mese_crystal_fragment, materials.copper_ingot}
|
||||
},
|
||||
})
|
||||
|
||||
register_craft({
|
||||
--type = "shapeless",
|
||||
output = "basic_materials:energy_crystal_simple 2",
|
||||
recipe = {
|
||||
{materials.mese_crystal_fragment, materials.torch, materials.mese_crystal_fragment},
|
||||
{materials.diamond, materials.gold_ingot, materials.diamond}
|
||||
},
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:copper_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
materials.copper_ingot,
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:gold_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
materials.gold_ingot,
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:steel_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
materials.steel_ingot,
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
if materials.stainless_steel_ingot then
|
||||
register_craft( {
|
||||
output = "basic_materials:stainless_steel_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
materials.stainless_steel_ingot,
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
if materials.aluminum_ingot then
|
||||
register_craft( {
|
||||
output = "basic_materials:aluminum_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
materials.aluminum_ingot,
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:steel_strip 12",
|
||||
recipe = {
|
||||
{"", materials.steel_ingot, ""},
|
||||
{materials.steel_ingot, "", ""},
|
||||
},
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:copper_strip 12",
|
||||
recipe = {
|
||||
{"", materials.copper_ingot, ""},
|
||||
{materials.copper_ingot, "", ""},
|
||||
},
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:gold_strip 12",
|
||||
recipe = {
|
||||
{"", materials.gold_ingot, ""},
|
||||
{materials.gold_ingot, "", ""},
|
||||
},
|
||||
})
|
||||
|
||||
if materials.lead_ingot then
|
||||
register_craft( {
|
||||
output = "basic_materials:lead_strip 12",
|
||||
recipe = {
|
||||
{"", materials.lead_ingot, ""},
|
||||
{materials.lead_ingot, "", ""},
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
if materials.stainless_steel_ingot then
|
||||
register_craft( {
|
||||
output = "basic_materials:stainless_steel_strip 12",
|
||||
recipe = {
|
||||
{"", materials.stainless_steel_ingot, ""},
|
||||
{materials.stainless_steel_ingot, "", ""},
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
if materials.aluminum_ingot then
|
||||
register_craft( {
|
||||
output = "basic_materials:aluminum_strip 12",
|
||||
recipe = {
|
||||
{"", materials.aluminum_ingot, ""},
|
||||
{materials.aluminum_ingot, "", ""},
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:steel_bar 6",
|
||||
recipe = {
|
||||
{"", "", materials.steel_ingot},
|
||||
{"", materials.steel_ingot, ""},
|
||||
{materials.steel_ingot, "", ""},
|
||||
},
|
||||
})
|
||||
|
||||
if materials.carbon_steel_ingot then
|
||||
register_craft( {
|
||||
output = "basic_materials:carbon_steel_bar 6",
|
||||
recipe = {
|
||||
{"", "", materials.carbon_steel_ingot},
|
||||
{"", materials.carbon_steel_ingot, ""},
|
||||
{materials.carbon_steel_ingot, "", ""},
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
if materials.stainless_steel_ingot then
|
||||
register_craft( {
|
||||
output = "basic_materials:stainless_steel_bar 6",
|
||||
recipe = {
|
||||
{"", "", materials.stainless_steel_ingot},
|
||||
{"", materials.stainless_steel_ingot, ""},
|
||||
{materials.stainless_steel_ingot, "", ""},
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
if materials.aluminum_ingot then
|
||||
register_craft( {
|
||||
output = "basic_materials:aluminum_bar 6",
|
||||
recipe = {
|
||||
{"", "", materials.aluminum_ingot},
|
||||
{"", materials.aluminum_ingot, ""},
|
||||
{materials.aluminum_ingot, "", ""},
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:padlock 2",
|
||||
recipe = {
|
||||
{"basic_materials:steel_bar"},
|
||||
{materials.steel_ingot},
|
||||
{materials.steel_ingot},
|
||||
},
|
||||
})
|
||||
|
||||
register_craft({
|
||||
output = "basic_materials:chainlink_steel 12",
|
||||
recipe = {
|
||||
{"", materials.steel_ingot, materials.steel_ingot},
|
||||
{materials.steel_ingot, "", materials.steel_ingot},
|
||||
{materials.steel_ingot, materials.steel_ingot, ""},
|
||||
},
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:gear_steel 6",
|
||||
recipe = {
|
||||
{"", materials.steel_ingot, ""},
|
||||
{materials.steel_ingot,"basic_materials:chainlink_steel", materials.steel_ingot},
|
||||
{"", materials.steel_ingot, ""}
|
||||
},
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
type = "shapeless",
|
||||
output = "basic_materials:terracotta_base 8",
|
||||
recipe = {
|
||||
materials.water_bucket,
|
||||
materials.clay_lump,
|
||||
materials.gravel,
|
||||
},
|
||||
replacements = {{materials.water_bucket, materials.empty_bucket}},
|
||||
})
|
||||
|
||||
register_craft({
|
||||
type = "shapeless",
|
||||
output = "basic_materials:wet_cement 3",
|
||||
recipe = {
|
||||
materials.dirt,
|
||||
materials.dye_dark_grey,
|
||||
materials.dye_dark_grey,
|
||||
materials.dye_dark_grey,
|
||||
materials.water_bucket
|
||||
},
|
||||
replacements = {{materials.water_bucket, materials.empty_bucket}},
|
||||
})
|
||||
|
||||
if not have_hades_materials then
|
||||
register_craft( {
|
||||
output = materials.silicon.." 4",
|
||||
recipe = {
|
||||
{materials.sand, materials.sand},
|
||||
{materials.sand, materials.steel_ingot},
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
register_craft( {
|
||||
output = "basic_materials:ic 4",
|
||||
recipe = {
|
||||
{materials.silicon, materials.silicon},
|
||||
{materials.silicon, materials.copper_ingot},
|
||||
},
|
||||
})
|
||||
|
||||
-- Without moreores, there still should be a way to create brass.
|
||||
register_craft( {
|
||||
output = "basic_materials:brass_ingot 9",
|
||||
recipe = {
|
||||
{materials.copper_ingot, materials.tin_ingot, materials.copper_ingot},
|
||||
{materials.gold_ingot, materials.copper_ingot, materials.tin_ingot},
|
||||
{materials.copper_ingot, materials.tin_ingot, materials.copper_ingot},
|
||||
},
|
||||
})
|
||||
|
||||
if materials.silver_ingot then
|
||||
register_craft( {
|
||||
output = "basic_materials:silver_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
materials.silver_ingot,
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
register_craft( {
|
||||
type = "shapeless",
|
||||
output = "basic_materials:brass_ingot 3",
|
||||
recipe = {
|
||||
materials.copper_ingot,
|
||||
materials.copper_ingot,
|
||||
materials.silver_ingot,
|
||||
},
|
||||
})
|
||||
end
|
@ -1,86 +0,0 @@
|
||||
-- Translation support
|
||||
local S = minetest.get_translator("basic_materials")
|
||||
|
||||
-- items
|
||||
|
||||
minetest.register_craftitem("basic_materials:silicon", {
|
||||
description = S("Silicon lump"),
|
||||
inventory_image = "basic_materials_silicon.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:ic", {
|
||||
description = S("Simple Integrated Circuit"),
|
||||
inventory_image = "basic_materials_ic.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:motor", {
|
||||
description = S("Simple Motor"),
|
||||
inventory_image = "basic_materials_motor.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:heating_element", {
|
||||
description = S("Heating element"),
|
||||
inventory_image = "basic_materials_heating_element.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:energy_crystal_simple", {
|
||||
description = S("Simple energy crystal"),
|
||||
inventory_image = "basic_materials_energy_crystal.png",
|
||||
})
|
||||
|
||||
-- crafts
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "mesecons_materials:silicon 4",
|
||||
recipe = {
|
||||
{ "default:sand", "default:sand" },
|
||||
{ "default:sand", "default:steel_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:ic 4",
|
||||
recipe = {
|
||||
{ "mesecons_materials:silicon", "mesecons_materials:silicon" },
|
||||
{ "mesecons_materials:silicon", "default:copper_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:motor 2",
|
||||
recipe = {
|
||||
{ "default:mese_crystal_fragment", "basic_materials:copper_wire", "basic_materials:plastic_sheet" },
|
||||
{ "default:copper_ingot", "default:steel_ingot", "default:steel_ingot" },
|
||||
{ "default:mese_crystal_fragment", "basic_materials:copper_wire", "basic_materials:plastic_sheet" }
|
||||
},
|
||||
replacements = {
|
||||
{ "basic_materials:copper_wire", "basic_materials:empty_spool" },
|
||||
{ "basic_materials:copper_wire", "basic_materials:empty_spool" },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:heating_element 2",
|
||||
recipe = {
|
||||
{ "default:copper_ingot", "default:mese_crystal_fragment", "default:copper_ingot" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
--type = "shapeless",
|
||||
output = "basic_materials:energy_crystal_simple 2",
|
||||
recipe = {
|
||||
{ "default:mese_crystal_fragment", "default:torch", "default:mese_crystal_fragment" },
|
||||
{ "default:diamond", "default:gold_ingot", "default:diamond" }
|
||||
},
|
||||
})
|
||||
|
||||
-- aliases
|
||||
|
||||
minetest.register_alias("homedecor:ic", "basic_materials:ic")
|
||||
minetest.register_alias("homedecor:motor", "basic_materials:motor")
|
||||
minetest.register_alias("technic:motor", "basic_materials:motor")
|
||||
minetest.register_alias("homedecor:heating_element", "basic_materials:heating_element")
|
||||
minetest.register_alias("homedecor:power_crystal", "basic_materials:energy_crystal_simple")
|
||||
|
||||
minetest.register_alias_force("mesecons_materials:silicon", "basic_materials:silicon")
|
@ -4,12 +4,11 @@
|
||||
-- This mod supplies all those little random craft items that everyone always
|
||||
-- seems to need, such as metal bars (ala rebar), plastic, wire, and so on.
|
||||
|
||||
local modpath = minetest.get_modpath("basic_materials")
|
||||
|
||||
basic_materials = {}
|
||||
basic_materials.mod = { author = "Vanessa Dannenberg" }
|
||||
basic_materials.modpath = minetest.get_modpath("basic_materials")
|
||||
|
||||
dofile(modpath.."/metals.lua")
|
||||
dofile(modpath.."/plastics.lua")
|
||||
dofile(modpath.."/electrical-electronic.lua")
|
||||
dofile(modpath.."/misc.lua")
|
||||
dofile(basic_materials.modpath .. "/nodes.lua")
|
||||
dofile(basic_materials.modpath .. "/craftitems.lua")
|
||||
dofile(basic_materials.modpath .. "/crafts.lua")
|
||||
dofile(basic_materials.modpath .. "/aliases.lua")
|
@ -1,300 +0,0 @@
|
||||
-- Translation support
|
||||
local S = minetest.get_translator("basic_materials")
|
||||
|
||||
-- items
|
||||
|
||||
minetest.register_craftitem("basic_materials:steel_wire", {
|
||||
description = S("Spool of steel wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_steel_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:copper_wire", {
|
||||
description = S("Spool of copper wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_copper_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:silver_wire", {
|
||||
description = S("Spool of silver wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_silver_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:gold_wire", {
|
||||
description = S("Spool of gold wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_gold_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:steel_strip", {
|
||||
description = S("Steel Strip"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_steel_strip.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:copper_strip", {
|
||||
description = S("Copper Strip"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_copper_strip.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:steel_bar", {
|
||||
description = S("Steel Bar"),
|
||||
inventory_image = "basic_materials_steel_bar.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:chainlink_brass", {
|
||||
description = S("Chainlinks (brass)"),
|
||||
groups = { chainlinks = 1 },
|
||||
inventory_image = "basic_materials_chainlink_brass.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:chainlink_steel", {
|
||||
description = S("Chainlinks (steel)"),
|
||||
groups = { chainlinks = 1 },
|
||||
inventory_image = "basic_materials_chainlink_steel.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:brass_ingot", {
|
||||
description = S("Brass Ingot"),
|
||||
inventory_image = "basic_materials_brass_ingot.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:gear_steel", {
|
||||
description = S("Steel gear"),
|
||||
inventory_image = "basic_materials_gear_steel.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:padlock", {
|
||||
description = S("Padlock"),
|
||||
inventory_image = "basic_materials_padlock.png"
|
||||
})
|
||||
|
||||
-- nodes
|
||||
|
||||
local chains_sbox = {
|
||||
type = "fixed",
|
||||
fixed = { -0.1, -0.5, -0.1, 0.1, 0.5, 0.1 }
|
||||
}
|
||||
|
||||
minetest.register_node("basic_materials:chain_steel", {
|
||||
description = S("Chain (steel, hanging)"),
|
||||
drawtype = "mesh",
|
||||
mesh = "basic_materials_chains.obj",
|
||||
tiles = {"basic_materials_chain_steel.png"},
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
inventory_image = "basic_materials_chain_steel_inv.png",
|
||||
groups = {cracky=3},
|
||||
selection_box = chains_sbox,
|
||||
})
|
||||
|
||||
minetest.register_node("basic_materials:chain_brass", {
|
||||
description = S("Chain (brass, hanging)"),
|
||||
drawtype = "mesh",
|
||||
mesh = "basic_materials_chains.obj",
|
||||
tiles = {"basic_materials_chain_brass.png"},
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
inventory_image = "basic_materials_chain_brass_inv.png",
|
||||
groups = {cracky=3},
|
||||
selection_box = chains_sbox,
|
||||
})
|
||||
|
||||
minetest.register_node("basic_materials:brass_block", {
|
||||
description = S("Brass Block"),
|
||||
tiles = { "basic_materials_brass_block.png" },
|
||||
is_ground_content = false,
|
||||
groups = {cracky=1, level=2},
|
||||
sounds = default.node_sound_metal_defaults()
|
||||
})
|
||||
|
||||
-- crafts
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:copper_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"default:copper_ingot",
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:silver_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"moreores:silver_ingot",
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:gold_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"default:gold_ingot",
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:steel_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"default:steel_ingot",
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:steel_strip 12",
|
||||
recipe = {
|
||||
{ "", "default:steel_ingot", "" },
|
||||
{ "default:steel_ingot", "", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:copper_strip 12",
|
||||
recipe = {
|
||||
{ "", "default:copper_ingot", "" },
|
||||
{ "default:copper_ingot", "", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:steel_bar 6",
|
||||
recipe = {
|
||||
{ "", "", "default:steel_ingot" },
|
||||
{ "", "default:steel_ingot", "" },
|
||||
{ "default:steel_ingot", "", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:padlock 2",
|
||||
recipe = {
|
||||
{ "basic_materials:steel_bar" },
|
||||
{ "default:steel_ingot" },
|
||||
{ "default:steel_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "basic_materials:chainlink_steel 12",
|
||||
recipe = {
|
||||
{"", "default:steel_ingot", "default:steel_ingot"},
|
||||
{ "default:steel_ingot", "", "default:steel_ingot" },
|
||||
{ "default:steel_ingot", "default:steel_ingot", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "basic_materials:chainlink_brass 12",
|
||||
recipe = {
|
||||
{"", "basic_materials:brass_ingot", "basic_materials:brass_ingot"},
|
||||
{ "basic_materials:brass_ingot", "", "basic_materials:brass_ingot" },
|
||||
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'basic_materials:chain_steel 2',
|
||||
recipe = {
|
||||
{"basic_materials:chainlink_steel"},
|
||||
{"basic_materials:chainlink_steel"},
|
||||
{"basic_materials:chainlink_steel"}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'basic_materials:chain_brass 2',
|
||||
recipe = {
|
||||
{"basic_materials:chainlink_brass"},
|
||||
{"basic_materials:chainlink_brass"},
|
||||
{"basic_materials:chainlink_brass"}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:gear_steel 6",
|
||||
recipe = {
|
||||
{ "", "default:steel_ingot", "" },
|
||||
{ "default:steel_ingot","basic_materials:chainlink_steel", "default:steel_ingot" },
|
||||
{ "", "default:steel_ingot", "" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "basic_materials:brass_ingot 3",
|
||||
recipe = {
|
||||
"default:copper_ingot",
|
||||
"default:copper_ingot",
|
||||
"moreores:silver_ingot",
|
||||
},
|
||||
})
|
||||
|
||||
if not minetest.get_modpath("moreores") then
|
||||
-- Without moreores, there still should be a way to create brass.
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:brass_ingot 9",
|
||||
recipe = {
|
||||
{"default:copper_ingot", "default:tin_ingot", "default:copper_ingot"},
|
||||
{"default:gold_ingot", "default:copper_ingot", "default:gold_ingot"},
|
||||
{"default:copper_ingot", "default:tin_ingot", "default:copper_ingot"},
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "basic_materials:brass_ingot 9",
|
||||
recipe = { "basic_materials:brass_block" },
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:brass_block",
|
||||
recipe = {
|
||||
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" },
|
||||
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" },
|
||||
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
-- aliases
|
||||
|
||||
minetest.register_alias("homedecor:copper_wire", "basic_materials:copper_wire")
|
||||
minetest.register_alias("technic:fine_copper_wire", "basic_materials:copper_wire")
|
||||
minetest.register_alias("technic:fine_silver_wire", "basic_materials:silver_wire")
|
||||
minetest.register_alias("technic:fine_gold_wire", "basic_materials:gold_wire")
|
||||
|
||||
minetest.register_alias("homedecor:steel_wire", "basic_materials:steel_wire")
|
||||
|
||||
minetest.register_alias("homedecor:brass_ingot", "basic_materials:brass_ingot")
|
||||
minetest.register_alias("technic:brass_ingot", "basic_materials:brass_ingot")
|
||||
minetest.register_alias("technic:brass_block", "basic_materials:brass_block")
|
||||
|
||||
minetest.register_alias("homedecor:copper_strip", "basic_materials:copper_strip")
|
||||
minetest.register_alias("homedecor:steel_strip", "basic_materials:steel_strip")
|
||||
|
||||
minetest.register_alias_force("glooptest:chainlink", "basic_materials:chainlink_steel")
|
||||
minetest.register_alias_force("homedecor:chainlink_steel", "basic_materials:chainlink_steel")
|
||||
minetest.register_alias("homedecor:chainlink_brass", "basic_materials:chainlink_brass")
|
||||
minetest.register_alias("chains:chain", "basic_materials:chain_steel")
|
||||
minetest.register_alias("chains:chain_brass", "basic_materials:chain_brass")
|
||||
|
||||
minetest.register_alias("pipeworks:gear", "basic_materials:gear_steel")
|
||||
|
||||
minetest.register_alias("technic:rebar", "basic_materials:steel_bar")
|
||||
|
@ -1,126 +0,0 @@
|
||||
-- Translation support
|
||||
local S = minetest.get_translator("basic_materials")
|
||||
|
||||
-- items
|
||||
|
||||
minetest.register_craftitem("basic_materials:oil_extract", {
|
||||
description = S("Oil extract"),
|
||||
inventory_image = "basic_materials_oil_extract.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:paraffin", {
|
||||
description = S("Unprocessed paraffin"),
|
||||
inventory_image = "basic_materials_paraffin.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:terracotta_base", {
|
||||
description = S("Uncooked Terracotta Base"),
|
||||
inventory_image = "basic_materials_terracotta_base.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:wet_cement", {
|
||||
description = S("Wet Cement"),
|
||||
inventory_image = "basic_materials_wet_cement.png",
|
||||
})
|
||||
|
||||
-- nodes
|
||||
|
||||
minetest.register_node("basic_materials:cement_block", {
|
||||
description = S("Cement"),
|
||||
tiles = {"basic_materials_cement_block.png"},
|
||||
is_ground_content = true,
|
||||
groups = {cracky=2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("basic_materials:concrete_block", {
|
||||
description = S("Concrete Block"),
|
||||
tiles = {"basic_materials_concrete_block.png",},
|
||||
groups = {cracky=1, level=2, concrete=1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
-- crafts
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "basic_materials:oil_extract 2",
|
||||
recipe = {
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves"
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "basic_materials:paraffin",
|
||||
recipe = "basic_materials:oil_extract",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "basic_materials:oil_extract",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "basic_materials:paraffin",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "basic_materials:terracotta_base 8",
|
||||
recipe = {
|
||||
"bucket:bucket_water",
|
||||
"default:clay_lump",
|
||||
"default:gravel",
|
||||
},
|
||||
replacements = { {"bucket:bucket_water", "bucket:bucket_empty"}, },
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "basic_materials:wet_cement 3",
|
||||
recipe = {
|
||||
"default:dirt",
|
||||
"dye:dark_grey",
|
||||
"dye:dark_grey",
|
||||
"dye:dark_grey",
|
||||
"bucket:bucket_water"
|
||||
},
|
||||
replacements = {{'bucket:bucket_water', 'bucket:bucket_empty'},},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "basic_materials:cement_block",
|
||||
recipe = "basic_materials:wet_cement",
|
||||
cooktime = 8
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'basic_materials:concrete_block 6',
|
||||
recipe = {
|
||||
{'group:sand', 'basic_materials:wet_cement', 'default:gravel'},
|
||||
{'basic_materials:steel_bar', 'basic_materials:wet_cement', 'basic_materials:steel_bar'},
|
||||
{'default:gravel', 'basic_materials:wet_cement', 'group:sand'},
|
||||
}
|
||||
})
|
||||
|
||||
-- aliases
|
||||
|
||||
minetest.register_alias("homedecor:oil_extract", "basic_materials:oil_extract")
|
||||
minetest.register_alias("homedecor:paraffin", "basic_materials:paraffin")
|
||||
minetest.register_alias("homedecor:plastic_base", "basic_materials:paraffin")
|
||||
minetest.register_alias("homedecor:terracotta_base", "basic_materials:terracotta_base")
|
||||
|
||||
minetest.register_alias("gloopblocks:wet_cement", "basic_materials:wet_cement")
|
||||
minetest.register_alias("gloopblocks:cement", "basic_materials:cement_block")
|
||||
|
||||
minetest.register_alias("technic:concrete", "basic_materials:concrete_block")
|
@ -1,4 +1,3 @@
|
||||
name = basic_materials
|
||||
depends = default
|
||||
optional_depends = moreores
|
||||
optional_depends = moreores, default, mesecons_materials, dye, bucket, fl_stone, fl_trees, mcl_sounds, hades_core, hades_sounds, hades_materials, hades_dye, hades_bucket, hades_extraores, hades_mesecons_materials, aloz, rp_crafting
|
||||
min_minetest_version = 5.2.0
|
||||
|
59
basic_materials/nodes.lua
Normal file
@ -0,0 +1,59 @@
|
||||
local S = minetest.get_translator("basic_materials")
|
||||
local sound_api = dofile(basic_materials.modpath .. "/sound_api_core/init.lua")
|
||||
local chains_sbox = {type = "fixed",fixed = { -0.1, -0.5, -0.1, 0.1, 0.5, 0.1 }}
|
||||
|
||||
minetest.register_node("basic_materials:cement_block", {
|
||||
description = S("Cement"),
|
||||
tiles = {"basic_materials_cement_block.png"},
|
||||
is_ground_content = true,
|
||||
groups = {cracky=2, dig_stone = 1, pickaxey=5},
|
||||
_mcl_hardness=1.6,
|
||||
sounds = sound_api.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("basic_materials:concrete_block", {
|
||||
description = S("Concrete Block"),
|
||||
tiles = {"basic_materials_concrete_block.png",},
|
||||
groups = {cracky=1, concrete=1, dig_stone = 1, pickaxey=5},
|
||||
_mcl_hardness=1.6,
|
||||
sounds = sound_api.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("basic_materials:chain_steel", {
|
||||
description = S("Chain (steel, hanging)"),
|
||||
drawtype = "mesh",
|
||||
mesh = "basic_materials_chains.obj",
|
||||
tiles = {"basic_materials_chain_steel.png"},
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
inventory_image = "basic_materials_chain_steel_inv.png",
|
||||
groups = {cracky=3, dig_stone = 1, pickaxey=5},
|
||||
_mcl_hardness=1.6,
|
||||
selection_box = chains_sbox,
|
||||
})
|
||||
|
||||
minetest.register_node("basic_materials:chain_brass", {
|
||||
description = S("Chain (brass, hanging)"),
|
||||
drawtype = "mesh",
|
||||
mesh = "basic_materials_chains.obj",
|
||||
tiles = {"basic_materials_chain_brass.png"},
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
inventory_image = "basic_materials_chain_brass_inv.png",
|
||||
groups = {cracky=3, dig_stone = 1, pickaxey=5},
|
||||
_mcl_hardness=1.6,
|
||||
selection_box = chains_sbox,
|
||||
})
|
||||
|
||||
minetest.register_node("basic_materials:brass_block", {
|
||||
description = S("Brass Block"),
|
||||
tiles = { "basic_materials_brass_block.png" },
|
||||
is_ground_content = false,
|
||||
groups = {cracky=1, dig_stone = 1, pickaxey=5},
|
||||
_mcl_hardness=1.6,
|
||||
sounds = sound_api.node_sound_metal_defaults()
|
||||
})
|
@ -1,56 +0,0 @@
|
||||
-- Translation support
|
||||
local S = minetest.get_translator("basic_materials")
|
||||
|
||||
-- items
|
||||
|
||||
minetest.register_craftitem("basic_materials:plastic_sheet", {
|
||||
description = S("Plastic sheet"),
|
||||
inventory_image = "basic_materials_plastic_sheet.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:plastic_strip", {
|
||||
description = S("Plastic strips"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_plastic_strip.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:empty_spool", {
|
||||
description = S("Empty wire spool"),
|
||||
inventory_image = "basic_materials_empty_spool.png"
|
||||
})
|
||||
|
||||
-- crafts
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "basic_materials:plastic_sheet",
|
||||
recipe = "basic_materials:paraffin",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "basic_materials:plastic_sheet",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:plastic_strip 9",
|
||||
recipe = {
|
||||
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:empty_spool 3",
|
||||
recipe = {
|
||||
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
|
||||
{ "", "basic_materials:plastic_sheet", "" },
|
||||
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
|
||||
},
|
||||
})
|
||||
|
||||
-- aliases
|
||||
|
||||
minetest.register_alias("homedecor:plastic_sheeting", "basic_materials:plastic_sheet")
|
||||
minetest.register_alias("homedecor:plastic_strips", "basic_materials:plastic_strip")
|
||||
minetest.register_alias("homedecor:empty_spool", "basic_materials:empty_spool")
|
5
basic_materials/sound_api_core/.luacheckrc
Normal file
@ -0,0 +1,5 @@
|
||||
read_globals = {
|
||||
"minetest", "mcl_sounds", "default", "ks_sounds",
|
||||
"nodes_nature", "fl_stone", "fl_topsoil", "fl_trees",
|
||||
"hades_sounds",
|
||||
}
|
19
basic_materials/sound_api_core/LICENSE
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
MIT Copyright 2021 wsor4035
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
276
basic_materials/sound_api_core/init.lua
Normal file
@ -0,0 +1,276 @@
|
||||
local sound_api = {}
|
||||
|
||||
--convert some games for api usage
|
||||
|
||||
--ks_sounds conversion
|
||||
--currently loggy and bedrock are ignored
|
||||
local ks = {}
|
||||
|
||||
function ks.node_sound_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or ks_sounds.generalnode_sounds.footstep
|
||||
table.dug = table.dug or ks_sounds.generalnode_sounds.dug
|
||||
table.dig = table.dig or ks_sounds.generalnode_sounds.dig
|
||||
table.place = table.place or ks_sounds.generalnode_sounds.place
|
||||
return table
|
||||
end
|
||||
|
||||
function ks.node_sound_wood_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or ks_sounds.woodennode_sounds.footstep
|
||||
table.dug = table.dug or ks_sounds.woodennode_sounds.dug
|
||||
table.dig = table.dig or ks_sounds.woodennode_sounds.dig
|
||||
table.place = table.place or ks_sounds.woodennode_sounds.place
|
||||
ks.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function ks.node_sound_leaves_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or ks_sounds.leafynode_sounds.footstep
|
||||
table.dug = table.dug or ks_sounds.leafynode_sounds.dug
|
||||
table.dig = table.dig or ks_sounds.leafynode_sounds.dig
|
||||
table.place = table.place or ks_sounds.leafynode_sounds.place
|
||||
ks.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function ks.node_sound_snow_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or ks_sounds.snowynode_sounds.footstep
|
||||
table.dug = table.dug or ks_sounds.snowynode_sounds.dug
|
||||
table.dig = table.dig or ks_sounds.snowynode_sounds.dig
|
||||
table.place = table.place or ks_sounds.snowynode_sounds.place
|
||||
ks.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
|
||||
--api
|
||||
function sound_api.node_sound_default(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_defaults(table)
|
||||
elseif minetest.get_modpath("ks_sounds") then
|
||||
return ks.node_sound_default(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_default(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_stone_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_stone_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_stone_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_stone_defaults(table)
|
||||
elseif minetest.get_modpath("fl_stone") then
|
||||
return fl_stone.sounds.stone(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_stone_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_dirt_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_dirt_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_dirt_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_dirt_defaults(table)
|
||||
--s/dirt/grass
|
||||
elseif minetest.get_modpath("fl_topsoil") then
|
||||
return fl_topsoil.sounds.grass(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_dirt_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
--return dirt as some games use dirt vs grass
|
||||
function sound_api.node_sound_grass_defaults(table)
|
||||
if minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_grass_defaults(table)
|
||||
else
|
||||
return sound_api.node_sound_dirt_defaults(table)
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_sand_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_sand_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_sand_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_sand_defaults(table)
|
||||
elseif minetest.get_modpath("fl_stone") then
|
||||
return fl_stone.sounds.sand(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_sand_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_gravel_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_gravel_defaults(table)
|
||||
--s/gravel/sand
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_sand_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_gravel_defaults(table)
|
||||
elseif minetest.get_modpath("fl_topsoil") then
|
||||
return fl_topsoil.sounds.gravel(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_gravel_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wood_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_wood_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_wood_defaults(table)
|
||||
elseif minetest.get_modpath("ks_sounds") then
|
||||
return ks.node_sound_wood_default(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_wood_defaults(table)
|
||||
elseif minetest.get_modpath("fl_trees") then
|
||||
return fl_trees.sounds.wood(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_wood_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_leaves_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_leaves_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_leaves_defaults(table)
|
||||
elseif minetest.get_modpath("ks_sounds") then
|
||||
return ks.node_sound_leaves_default(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_leaves_defaults(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_leaves_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_glass_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_glass_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_glass_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_glass_defaults(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_glass_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function sound_api.node_sound_ice_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_ice_defaults(table)
|
||||
--s/ice/glass
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_glass_defaults(table)
|
||||
--s/ice/glass
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_glass_defaults(table)
|
||||
--s/ice/glass
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_glass_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_metal_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_metal_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_metal_defaults(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_metal_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_water_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_water_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_water_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_water_defaults(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_water_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_lava_defaults(table)
|
||||
--s/lava/water
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_water_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_lava_defaults(table)
|
||||
--s/lava/water
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_water_defaults(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_lava_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_snow_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_snow_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_snow_defaults(table)
|
||||
elseif minetest.get_modpath("ks_sounds") then
|
||||
return ks.node_sound_snow_default(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_snow_defaults(table)
|
||||
elseif minetest.get_modpath("fl_topsoil") then
|
||||
return fl_topsoil.sounds.snow(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wool_defaults(table)
|
||||
--s/wool/default
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_wool_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
return sound_api
|
BIN
basic_materials/textures/basic_materials_aluminum_bar.png
Normal file
After Width: | Height: | Size: 337 B |
BIN
basic_materials/textures/basic_materials_aluminum_strip.png
Normal file
After Width: | Height: | Size: 383 B |
BIN
basic_materials/textures/basic_materials_aluminum_wire.png
Normal file
After Width: | Height: | Size: 258 B |
BIN
basic_materials/textures/basic_materials_carbon_steel_bar.png
Normal file
After Width: | Height: | Size: 292 B |
BIN
basic_materials/textures/basic_materials_gold_strip.png
Normal file
After Width: | Height: | Size: 358 B |
BIN
basic_materials/textures/basic_materials_lead_strip.png
Normal file
After Width: | Height: | Size: 366 B |
BIN
basic_materials/textures/basic_materials_stainless_steel_bar.png
Normal file
After Width: | Height: | Size: 336 B |
After Width: | Height: | Size: 382 B |
After Width: | Height: | Size: 280 B |
@ -134,22 +134,24 @@ local function formspec_plan(meta, manual)
|
||||
end
|
||||
|
||||
function doclib.formspec(pos, mod, language, fields)
|
||||
local manual = doclib.manual[mod][language]
|
||||
local meta = M(pos)
|
||||
if doclib.manual and doclib.manual[mod] and doclib.manual[mod][language] then
|
||||
local manual = doclib.manual[mod][language]
|
||||
local meta = M(pos)
|
||||
|
||||
if not fields then
|
||||
meta:set_int("doclib_index", 1)
|
||||
return formspec_help(meta, manual)
|
||||
elseif fields.plan then
|
||||
return formspec_plan(meta, manual)
|
||||
elseif fields.back then
|
||||
return formspec_help(meta, manual)
|
||||
elseif fields.page then
|
||||
local evt = minetest.explode_table_event(fields.page)
|
||||
if evt.type == "CHG" then
|
||||
local idx = tonumber(evt.row)
|
||||
meta:set_int("doclib_index", idx)
|
||||
if not fields then
|
||||
meta:set_int("doclib_index", 1)
|
||||
return formspec_help(meta, manual)
|
||||
elseif fields.plan then
|
||||
return formspec_plan(meta, manual)
|
||||
elseif fields.back then
|
||||
return formspec_help(meta, manual)
|
||||
elseif fields.page then
|
||||
local evt = minetest.explode_table_event(fields.page)
|
||||
if evt.type == "CHG" then
|
||||
local idx = tonumber(evt.row)
|
||||
meta:set_int("doclib_index", idx)
|
||||
end
|
||||
end
|
||||
return formspec_help(meta, manual)
|
||||
end
|
||||
return formspec_help(meta, manual)
|
||||
end
|
||||
|
@ -14,8 +14,8 @@
|
||||
|
||||
local MP = minetest.get_modpath("minecart")
|
||||
|
||||
if not minetest.global_exists("techage") and
|
||||
minetest.global_exists("doclib") then
|
||||
if not minetest.get_modpath("techage") and
|
||||
minetest.get_modpath("doclib") then
|
||||
|
||||
minetest.register_node("minecart:manual", {
|
||||
description = "Minecart Manual (EN)",
|
||||
@ -122,7 +122,7 @@ if not minetest.global_exists("techage") and
|
||||
end
|
||||
|
||||
minetest.register_on_mods_loaded(function()
|
||||
if minetest.global_exists("techage") then
|
||||
if minetest.get_modpath("techage") then
|
||||
|
||||
-- Use the Techage Construction Board
|
||||
local content = dofile(MP.."/manual_EN.lua")
|
||||
@ -130,7 +130,7 @@ minetest.register_on_mods_loaded(function()
|
||||
local content = dofile(MP.."/manual_DE.lua")
|
||||
doclib.add_to_manual("techage", "DE", content)
|
||||
|
||||
elseif minetest.global_exists("doclib") then
|
||||
elseif minetest.get_modpath("doclib") then
|
||||
|
||||
-- Create own manual book
|
||||
local settings = {
|
||||
|
@ -37,6 +37,7 @@ end
|
||||
local function handle_legacy_magnet(pos)
|
||||
if M(pos):get_string("version") ~= "V2" then
|
||||
if is_junction(pos, "B") and not is_junction(pos, "F") then
|
||||
local node = techage.get_node_lvm(pos)
|
||||
node.param2 = (node.param2 + 2) % 4
|
||||
minetest.swap_node(pos, node)
|
||||
end
|
||||
@ -228,6 +229,7 @@ techage.register_node({"techage:ta4_magnet"}, {
|
||||
return pos2
|
||||
end
|
||||
elseif topic == "enumerate" and payload then
|
||||
handle_legacy_magnet(pos)
|
||||
payload = tonumber(payload) or 1
|
||||
nvm.number = payload
|
||||
M(pos):set_string("infotext", S("TA4 Collider Magnet") .. " #" .. payload)
|
||||
@ -240,7 +242,6 @@ techage.register_node({"techage:ta4_magnet"}, {
|
||||
return send_to_next(pos, in_dir, topic, payload)
|
||||
end
|
||||
elseif topic == "test" then
|
||||
handle_legacy_magnet(pos)
|
||||
if payload and tonumber(payload) == nvm.number then
|
||||
if not nvm.liquid or not nvm.liquid.amount or nvm.liquid.amount < CAPACITY then
|
||||
return false, "no gas"
|
||||
|
@ -17,31 +17,41 @@ https://github.com/joe7575/techage/blob/master/manuals/ta4_lua_controller_EN.pdf
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [TA4 Lua Controller Blocks](#TA4-Lua-Controller-Blocks)
|
||||
- [TA4 Lua Controller](#TA4-Lua-Controller)
|
||||
- [Battery](#Battery)
|
||||
- [TA4 Lua Server](#TA4-Lua-Server)
|
||||
- [TA4 Lua Controller Terminal](#TA4-Lua-Controller-Terminal)
|
||||
- [TA4 Sensor Chest](#TA4-Sensor-Chest)
|
||||
- [Lua Functions and Environment](#Lua-Functions-and-Environment)
|
||||
- [Lua Functions and Limitations](#Lua-Functions-and-Limitations)
|
||||
- [Arrays, Stores, and Sets](#Arrays,-Stores,-and-Sets)
|
||||
- [Initialization, Cyclic Task, and Events](#Initialization,-Cyclic-Task,-and-Events)
|
||||
- [Lua Controller Functions](#Lua-Controller-Functions)
|
||||
- [Controller local Functions](#Controller-local-Functions)
|
||||
- [Techage Command Functions](#Techage-Command-Functions)
|
||||
- [Server and Terminal Functions](#Server-and-Terminal-Functions)
|
||||
- [Further Functions](#Further-Functions)
|
||||
- [Example Scripts](#Example-Scripts)
|
||||
- [Simple Counter](#Simple-Counter)
|
||||
- [Hello World](#Hello-World)
|
||||
- [For Loop with range(from, to)](#For-Loop-with-range(from,-to))
|
||||
- [Monitoring Chest & Furnace](#Monitoring-Chest-&-Furnace)
|
||||
- [Simple Calculator](#Simple-Calculator)
|
||||
- [Welcome Display](#Welcome-Display)
|
||||
- [Sensor Chest](#Sensor-Chest)
|
||||
- [Read the "TA4 4x Button"](#Read-the-TA4-4x-Button)
|
||||
- [Emails](#Emails)
|
||||
- [TA4 Lua Controller](#ta4-lua-controller)
|
||||
- [Table of Contents](#table-of-contents)
|
||||
- [TA4 Lua Controller Blocks](#ta4-lua-controller-blocks)
|
||||
- [TA4 Lua Controller](#ta4-lua-controller-1)
|
||||
- [Battery](#battery)
|
||||
- [TA4 Lua Server](#ta4-lua-server)
|
||||
- [TA4 Lua Controller Terminal](#ta4-lua-controller-terminal)
|
||||
- [TA4 Sensor Chest](#ta4-sensor-chest)
|
||||
- [Lua Functions and Environment](#lua-functions-and-environment)
|
||||
- [Lua Functions and Limitations](#lua-functions-and-limitations)
|
||||
- [Arrays, Stores, and Sets](#arrays-stores-and-sets)
|
||||
- [Arrays](#arrays)
|
||||
- [Stores](#stores)
|
||||
- [Sets](#sets)
|
||||
- [Initialization, Cyclic Task, and Events](#initialization-cyclic-task-and-events)
|
||||
- [Initialization](#initialization)
|
||||
- [Cyclic Task](#cyclic-task)
|
||||
- [Events](#events)
|
||||
- [Lua Controller Functions](#lua-controller-functions)
|
||||
- [Controller local Functions](#controller-local-functions)
|
||||
- [Input Example](#input-example)
|
||||
- [Techage Command Functions](#techage-command-functions)
|
||||
- [Server and Terminal Functions](#server-and-terminal-functions)
|
||||
- [Communication between Lua Controllers](#communication-between-lua-controllers)
|
||||
- [Further Functions](#further-functions)
|
||||
- [Example Scripts](#example-scripts)
|
||||
- [Simple Counter](#simple-counter)
|
||||
- [Hello World](#hello-world)
|
||||
- [For Loop with range(from, to)](#for-loop-with-rangefrom-to)
|
||||
- [Monitoring Chest \& Furnace](#monitoring-chest--furnace)
|
||||
- [Simple Calculator](#simple-calculator)
|
||||
- [Welcome Display](#welcome-display)
|
||||
- [Sensor Chest](#sensor-chest)
|
||||
- [Read the "TA4 4x Button"](#read-the-ta4-4x-button)
|
||||
- [Emails](#emails)
|
||||
|
||||
|
||||
|
||||
@ -333,7 +343,7 @@ In addition to Lua standard function the Lua Controller provides the following f
|
||||
- `$loopcycle(seconds)` - This function allows to change the call frequency of the controller loop() function, witch is per default one second. For more info, see "Cyclic Task"
|
||||
- `$events(bool)` - Enable/disable event handling. For more info, see "Events"
|
||||
- `$get_ms_time()` - Returns the time with millisecond precision
|
||||
- `get_gametime()` - Returns the time, in seconds, since the world was created
|
||||
- `$get_gametime()` - Returns the time, in seconds, since the world was created
|
||||
- `$time_as_str()` - Read the time of day (ingame) as text string in 24h format, like "18:45"
|
||||
- `$time_as_num()` - Read the time of day (ingame) as integer number in 24h format, like 1845
|
||||
- `$get_input(num)` - Read an input value provided by an external block with the given number _num_. The block has to be configured with the number of the controller to be able to send status messages (on/off commands) to the controller. _num_ is the number (data type string) of the remote block, like "1234".
|
||||
|
@ -326,6 +326,16 @@ function Tube:determine_tube_dirs(pos, preferred_pos, fdir)
|
||||
(self:connected(pos, tbl[2]) and 1 or 0)
|
||||
return tbl[1], tbl[2], math.min(2, num_tubes)
|
||||
end
|
||||
|
||||
-- dir1, dir2 still unknown?
|
||||
if fdir and #tbl < 2 then
|
||||
-- Try to turn the node by 90 degrees
|
||||
local dir1 = fdir < 5 and (fdir + 1) % 4 or fdir
|
||||
local dir2 = dir1 < 5 and Turn180Deg[dir1] or dir1
|
||||
if dir1 ~= dir2 and allowed[dir1] and allowed[dir2] then
|
||||
return dir1, dir2, 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Determine a tube side without connection, increment the number of connections
|
||||
|
@ -194,5 +194,7 @@ end
|
||||
if minetest.settings:get_bool("unified_inventory_item_names") ~= false then
|
||||
dofile(modpath.."/item_names.lua")
|
||||
end
|
||||
dofile(modpath.."/waypoints.lua")
|
||||
if minetest.settings:get_bool("unified_inventory_waypoints") ~= false then
|
||||
dofile(modpath.."/waypoints.lua")
|
||||
end
|
||||
dofile(modpath.."/legacy.lua") -- mod compatibility
|
||||
|
@ -1,23 +1,32 @@
|
||||
#Enabling lite mode enables a smaller and simpler version of the Unified
|
||||
#Inventory, optimized for small displays.
|
||||
# Reduced formspec layout, optimized for smaller displays.
|
||||
# Note: This may also disable some features to free up visual space.
|
||||
unified_inventory_lite (Lite mode) bool false
|
||||
|
||||
#If enabled, bags will be made available which can be used to extend
|
||||
#inventory storage size.
|
||||
# Provides craftable bag items to extend the inventory space.
|
||||
unified_inventory_bags (Enable bags) bool true
|
||||
|
||||
#If enabled, the trash slot can be used by those without both creative
|
||||
#and the give privilege.
|
||||
# Shows the trash slot to everyone.
|
||||
# When disabled, only players with the privilege "creative" or "give" will
|
||||
# have this slot shown in their inventory.
|
||||
unified_inventory_trash (Enable trash) bool true
|
||||
|
||||
#If enabled, disabled buttons will be hidden instead of grayed out.
|
||||
# Provides waypoints on a per-player basis to remember positions on the map.
|
||||
unified_inventory_waypoints (Enable waypoints) bool true
|
||||
|
||||
# If enabled, disabled buttons will be hidden instead of grayed out.
|
||||
unified_inventory_hide_disabled_buttons (Hide disabled buttons) bool false
|
||||
|
||||
# Automatically categorizes registered items based on their
|
||||
# groups. This is based on a fuzzy match, thus is not 100% accurate.
|
||||
unified_inventory_automatic_categorization (Categories: add items automatically) bool true
|
||||
|
||||
unified_inventory_automatic_categorization (Items automatically added to categories) bool true
|
||||
# Shows the selected wielded item description in the HUD for a few seconds.
|
||||
unified_inventory_item_names (Enable HUD item names) bool true
|
||||
|
||||
unified_inventory_item_names (Item names are shown above hotbar) bool true
|
||||
# Trims the shown wielded item description to the first line.
|
||||
unified_inventory_only_names (HUD item name: first line only) bool true
|
||||
|
||||
unified_inventory_only_names (Show only item name) bool true
|
||||
|
||||
unified_inventory_max_item_name_length (Maximum length of an item name before it's truncated, 0 disables option) int 80
|
||||
# Hard character limit of the wielded item description.
|
||||
# Crops the shown description to the specified length.
|
||||
# 0 disables this functionality.
|
||||
unified_inventory_max_item_name_length (HUD item names: character limit) int 80
|
||||
|