23 Commits

Author SHA1 Message Date
8ebc1de29c make sure MV turbines only turn on in response to *flowing* water 2018-12-17 08:03:18 +01:00
e1a71a8fb0 Add MV-Freezer (#457)
New Grinder-recipe: ice => snowblock
New recipe for freezer: Freezer now generates ice
2018-12-09 17:37:58 +01:00
701240bc3a Quarry: Check for valid facedir to fix server freeze #465 (#466)
Checks if facedir is valid. If the face points up or down the depth-check would run endless and freeze the server
2018-12-09 16:01:10 +01:00
aa82fa1d13 Forcefield: Remove deprecated update_map() call (#467) 2018-12-09 15:57:48 +01:00
bdd13beeff fix brass block->ingot recipe
(clearing basic_materials' copper/silver recipe killed this one also)
2018-11-27 21:24:52 +01:00
f5bf0d98b1 Add mod check for strut register 2018-11-26 22:05:20 +01:00
3cafe7553a minor fix for "LV" translations 2018-11-25 16:10:23 +01:00
bc26b047d2 add blast-resistant concrete
and some basic_materials nodes
2018-11-25 16:10:23 +01:00
83ec1b2476 fix dirt textures
add grassy shapes cut from default:dirt_with_grass
2018-11-25 16:10:23 +01:00
c068edec65 fix excessive "element straight" quantity 2018-11-25 16:10:23 +01:00
4ecb3d4334 make "half"/"full" buttons work 2018-11-25 16:10:23 +01:00
d40946fa38 allow CNC to work without technic
minetest.conf technic_cnc_use_technic = false disables
use of power, returns items instantly, uses only default
stuff in craft recipe

(defaults to enabled if technic is installed)
2018-11-25 16:10:23 +01:00
dc0689018d move CNC machine into its own mod 2018-11-25 16:10:23 +01:00
51d7bd81ff let moreblocks handle brass block stairs et. al (#456) 2018-11-24 17:35:06 +01:00
2b2411d1ee blast-resistant concrete stairs/slopes/et. al (#455)
if moreblocks is installed.
2018-11-23 20:48:23 +01:00
8409be32fc Fix cable plate placement (#446)
Cable plate placement now uses minetest.item_place
2018-11-23 20:25:32 +01:00
3d52b679b0 Quarry: Make use of fake digger from pipeworks (#453)
Fixes crash when digging empty protected chests (https://github.com/minetest/minetest_game/blob/backport-0.4/mods/default/nodes.lua#L1868)
2018-11-16 21:36:03 +01:00
44cb8df048 use basic_materials mod where possible. 2018-11-11 09:54:20 +01:00
f702a6597b fix missing worldgen depends 2018-11-11 09:53:27 +01:00
Tim
e931041358 Fix clear_craft crash due to dependency order via soft-dependency on dye (#449)
Fixes Fix #448
2018-10-23 18:42:52 +02:00
DS
5b97d94dae New sandstone crafts, fix dye crafting (#390) 2018-10-05 19:46:33 +02:00
92dd0f4af8 Add a new type of cable clip
Uses Zeg9's steel mod's "steel:strut_mount" or streetsmod's
"streets:steel_support" as the base/blocky part, with an overlay copied
from the steel mod to make it look like the clip is fixed to the strut
with a steel band.

Textures will adjust to match whichever mod is installed, preferring the
steel mod.

Can be crafted from any of these standard/shaped recipes:

- - -        - f d
- f -   or   - s -
- m -        - i -

f = fencepost-shaped clip
m = steel mod strut with mount
s = steel mod strut without mount, or streets mod steel support
i = default steel ingot
d = dye (optional, see below)

If the user has Unified Dyes (commit 2a816534 or later), the clip can be
dyed (well, the white part anyway :-) ), either by adding a portion of
dye as above, or by crafting an existing clip + dye. Uses
"colorwallmounted" mode for 32-color support.
2018-09-07 17:13:18 -07:00
29f746369f Switch to colored itemstacks (#438)
with full crafting recipes
(requires Unified Dyes commit 2a816534 or later)
2018-08-25 21:24:52 +02:00
124 changed files with 1131 additions and 538 deletions

View File

@ -1,3 +1,4 @@
default default
basic_materials
intllib? intllib?
moreblocks?

View File

@ -23,24 +23,6 @@ else
steel_ingot = "default:steel_ingot" steel_ingot = "default:steel_ingot"
end end
minetest.register_craft({
output = 'technic:rebar 6',
recipe = {
{'','', steel_ingot},
{'',steel_ingot,''},
{steel_ingot, '', ''},
}
})
minetest.register_craft({
output = 'technic:concrete 5',
recipe = {
{'default:stone','technic:rebar','default:stone'},
{'technic:rebar','default:stone','technic:rebar'},
{'default:stone','technic:rebar','default:stone'},
}
})
minetest.register_craft({ minetest.register_craft({
output = 'technic:concrete_post_platform 6', output = 'technic:concrete_post_platform 6',
recipe = { recipe = {
@ -51,9 +33,9 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'technic:concrete_post 12', output = 'technic:concrete_post 12',
recipe = { recipe = {
{'default:stone','technic:rebar','default:stone'}, {'default:stone','basic_materials:steel_bar','default:stone'},
{'default:stone','technic:rebar','default:stone'}, {'default:stone','basic_materials:steel_bar','default:stone'},
{'default:stone','technic:rebar','default:stone'}, {'default:stone','basic_materials:steel_bar','default:stone'},
} }
}) })
@ -66,18 +48,6 @@ minetest.register_craft({
} }
}) })
minetest.register_craftitem(":technic:rebar", {
description = S("Rebar"),
inventory_image = "technic_rebar.png",
})
minetest.register_node(":technic:concrete", {
description = S("Concrete Block"),
tiles = {"technic_concrete_block.png",},
groups = {cracky=1, level=2, concrete=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node(":technic:blast_resistant_concrete", { minetest.register_node(":technic:blast_resistant_concrete", {
description = S("Blast-resistant Concrete Block"), description = S("Blast-resistant Concrete Block"),
tiles = {"technic_blast_resistant_concrete_block.png",}, tiles = {"technic_blast_resistant_concrete_block.png",},
@ -91,6 +61,20 @@ minetest.register_node(":technic:blast_resistant_concrete", {
end, end,
}) })
if minetest.get_modpath("moreblocks") then
stairsplus:register_all("technic","blast_resistant_concrete","technic:blast_resistant_concrete",{
description = "Blast-resistant Concrete",
tiles = {"technic_blast_resistant_concrete_block.png",},
groups = {cracky=1, level=3, concrete=1},
sounds = default.node_sound_stone_defaults(),
on_blast = function(pos, intensity)
if intensity > 1 then
minetest.remove_node(pos)
minetest.add_item(pos, "technic:blast_resistant_concrete")
end
end,
})
end
local box_platform = {-0.5, 0.3, -0.5, 0.5, 0.5, 0.5} local box_platform = {-0.5, 0.3, -0.5, 0.5, 0.5, 0.5}
local box_post = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15} local box_post = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}
@ -101,7 +85,7 @@ local box_right = {0, -0.3, -0.1, 0.5, 0.3, 0.1}
minetest.register_node(":technic:concrete_post_platform", { minetest.register_node(":technic:concrete_post_platform", {
description = S("Concrete Post Platform"), description = S("Concrete Post Platform"),
tiles = {"technic_concrete_block.png",}, tiles = {"basic_materials_concrete_block.png",},
groups={cracky=1, level=2}, groups={cracky=1, level=2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
paramtype = "light", paramtype = "light",
@ -133,7 +117,7 @@ for platform = 0, 1 do
minetest.register_node(":technic:concrete_post"..(platform == 1 and "_with_platform" or ""), { minetest.register_node(":technic:concrete_post"..(platform == 1 and "_with_platform" or ""), {
description = S("Concrete Post"), description = S("Concrete Post"),
tiles = {"technic_concrete_block.png"}, tiles = {"basic_materials_concrete_block.png"},
groups = {cracky=1, level=2, concrete_post=1, not_in_creative_inventory=platform}, groups = {cracky=1, level=2, concrete_post=1, not_in_creative_inventory=platform},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
drop = (platform == 1 and "technic:concrete_post_platform" or drop = (platform == 1 and "technic:concrete_post_platform" or

Binary file not shown.

Before

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 813 B

View File

@ -1,6 +1,9 @@
default default
technic_worldgen technic_worldgen
basic_materials
concrete concrete
unifieddyes? unifieddyes?
intllib? intllib?
moreblocks? moreblocks?
steel?
streetsmod?

View File

@ -30,7 +30,7 @@ if minetest.get_modpath("moreblocks") then
stairsplus:register_all("technic", "concrete", "technic:concrete", { stairsplus:register_all("technic", "concrete", "technic:concrete", {
description=S("Concrete"), description=S("Concrete"),
groups={cracky=3, not_in_creative_inventory=1}, groups={cracky=3, not_in_creative_inventory=1},
tiles={"technic_concrete_block.png"}, tiles={"basic_materials_concrete_block.png"},
}) })
stairsplus:register_all("technic", "zinc_block", "technic:zinc_block", { stairsplus:register_all("technic", "zinc_block", "technic:zinc_block", {
@ -57,12 +57,6 @@ if minetest.get_modpath("moreblocks") then
tiles={"technic_stainless_steel_block.png"}, tiles={"technic_stainless_steel_block.png"},
}) })
stairsplus:register_all("technic", "brass_block", "technic:brass_block", {
description=S("Brass Block"),
groups={cracky=1, not_in_creative_inventory=1},
tiles={"technic_brass_block.png"},
})
function register_technic_stairs_alias(modname, origname, newmod, newname) function register_technic_stairs_alias(modname, origname, newmod, newname)
minetest.register_alias(modname .. ":slab_" .. origname, newmod..":slab_" .. newname) minetest.register_alias(modname .. ":slab_" .. origname, newmod..":slab_" .. newname)
minetest.register_alias(modname .. ":slab_" .. origname .. "_inverted", newmod..":slab_" .. newname .. "_inverted") minetest.register_alias(modname .. ":slab_" .. origname .. "_inverted", newmod..":slab_" .. newname .. "_inverted")
@ -103,7 +97,7 @@ if minetest.get_modpath("moreblocks") then
end end
local iclip_def = { local iclip_def = {
description = "Insulator/cable clip", description = S("Insulator/cable clip"),
drawtype = "mesh", drawtype = "mesh",
mesh = "technic_insulator_clip.obj", mesh = "technic_insulator_clip.obj",
tiles = {"technic_insulator_clip.png"}, tiles = {"technic_insulator_clip.png"},
@ -113,7 +107,7 @@ local iclip_def = {
} }
local iclipfence_def = { local iclipfence_def = {
description = "Insulator/cable clip", description = S("Insulator/cable clip"),
tiles = {"technic_insulator_clip.png"}, tiles = {"technic_insulator_clip.png"},
is_ground_content = false, is_ground_content = false,
paramtype = "light", paramtype = "light",
@ -146,23 +140,55 @@ local iclipfence_def = {
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
} }
local sclip_tex = {
"technic_insulator_clip.png",
{ name = "strut.png^steel_strut_overlay.png", color = "white" },
{ name = "strut.png", color = "white" }
}
local streetsmod = minetest.get_modpath("streets") or minetest.get_modpath ("steelsupport")
-- cheapie's fork breaks it into several individual mods, with differernt names for the same content.
if streetsmod then
sclip_tex = {
"technic_insulator_clip.png",
{ name = "streets_support.png^technic_steel_strut_overlay.png", color = "white" },
{ name = "streets_support.png", color = "white" }
}
end
local sclip_def = {
description = S("Steel strut with insulator/cable clip"),
drawtype = "mesh",
mesh = "technic_steel_strut_with_insulator_clip.obj",
tiles = sclip_tex,
paramtype = "light",
paramtype2 = "wallmounted",
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
groups = { choppy=1, cracky=1 },
backface_culling = false
}
if minetest.get_modpath("unifieddyes") then if minetest.get_modpath("unifieddyes") then
iclip_def.paramtype2 = "colorwallmounted" iclip_def.paramtype2 = "colorwallmounted"
iclip_def.palette = "unifieddyes_palette_colorwallmounted.png" iclip_def.palette = "unifieddyes_palette_colorwallmounted.png"
iclip_def.after_place_node = function(pos, placer, itemstack, pointed_thing) iclip_def.after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing) unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
end end
iclip_def.after_dig_node = unifieddyes.after_dig_node
iclip_def.groups = {choppy=1, snappy=1, oddly_breakable_by_hand=1, ud_param2_colorable = 1} iclip_def.groups = {choppy=1, snappy=1, oddly_breakable_by_hand=1, ud_param2_colorable = 1}
iclipfence_def.paramtype2 = "color" iclipfence_def.paramtype2 = "color"
iclipfence_def.palette = "unifieddyes_palette_extended.png" iclipfence_def.palette = "unifieddyes_palette_extended.png"
iclipfence_def.on_construct = unifieddyes.on_construct iclipfence_def.on_construct = unifieddyes.on_construct
iclipfence_def.after_place_node = unifieddyes.recolor_on_place
iclipfence_def.after_dig_node = unifieddyes.after_dig_node
iclipfence_def.groups = {fence=1, choppy=1, snappy=1, oddly_breakable_by_hand=1, ud_param2_colorable = 1} iclipfence_def.groups = {fence=1, choppy=1, snappy=1, oddly_breakable_by_hand=1, ud_param2_colorable = 1}
iclipfence_def.place_param2 = 171 -- medium amber, low saturation, closest color to default:wood
sclip_def.paramtype2 = "colorwallmounted"
sclip_def.palette = "unifieddyes_palette_colorwallmounted.png"
sclip_def.after_place_node = function(pos, placer, itemstack, pointed_thing)
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
end
sclip_def.groups = {choppy=1, cracky=1, ud_param2_colorable = 1}
end end
minetest.register_node(":technic:insulator_clip", iclip_def) minetest.register_node(":technic:insulator_clip", iclip_def)
@ -185,3 +211,96 @@ minetest.register_craft({
{ "technic:raw_latex", "default:fence_wood", "technic:raw_latex"}, { "technic:raw_latex", "default:fence_wood", "technic:raw_latex"},
} }
}) })
local steelmod = minetest.get_modpath("steel")
if streetsmod or steelmod then
minetest.register_node(":technic:steel_strut_with_insulator_clip", sclip_def)
if steelmod then
minetest.register_craft({
output = "technic:steel_strut_with_insulator_clip",
recipe = {
{"technic:insulator_clip_fencepost"},
{"steel:strut_mount"}
}
})
minetest.register_craft({
output = "technic:steel_strut_with_insulator_clip",
recipe = {
{"technic:insulator_clip_fencepost", "" },
{"steel:strut", "default:steel_ingot" },
}
})
elseif streetsmod then
minetest.register_craft({
output = "technic:steel_strut_with_insulator_clip",
recipe = {
{"technic:insulator_clip_fencepost", "" },
{"streets:steel_support", "default:steel_ingot" },
}
})
end
end
if minetest.get_modpath("unifieddyes") then
unifieddyes.register_color_craft({
output = "technic:insulator_clip_fencepost",
palette = "extended",
type = "shapeless",
neutral_node = "technic:insulator_clip_fencepost",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
unifieddyes.register_color_craft({
output = "technic:insulator_clip",
palette = "wallmounted",
type = "shapeless",
neutral_node = "technic:insulator_clip",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
unifieddyes.register_color_craft({
output = "technic:steel_strut_with_insulator_clip",
palette = "wallmounted",
type = "shapeless",
neutral_node = "",
recipe = {
"technic:steel_strut_with_insulator_clip",
"MAIN_DYE"
}
})
if steelmod then
unifieddyes.register_color_craft({
output = "technic:steel_strut_with_insulator_clip",
palette = "wallmounted",
neutral_node = "",
recipe = {
{ "technic:insulator_clip_fencepost", "MAIN_DYE" },
{ "steel:strut_mount", "" },
}
})
end
if streetsmod then
unifieddyes.register_color_craft({
output = "technic:steel_strut_with_insulator_clip",
palette = "wallmounted",
neutral_node = "technic:steel_strut_with_insulator_clip",
recipe = {
{ "technic:insulator_clip_fencepost", "MAIN_DYE" },
{ "streets:steel_support", "default:steel_ingot" },
}
})
end
end

View File

@ -0,0 +1,246 @@
# Blender v2.79 (sub 0) OBJ File: 'technic steel strut with insulator clip.blend'
# www.blender.org
o Cube_Cube_Material.001
v -0.375000 0.500532 -0.250000
v -0.249997 0.562500 -0.249997
v 0.249997 0.562500 -0.249997
v 0.375000 0.500532 -0.250000
v 0.249997 0.562500 0.249997
v 0.375000 0.500532 0.250000
v -0.249997 0.562500 0.249997
v -0.375000 0.500532 0.250000
v 0.187500 0.562500 -0.187500
v -0.168668 0.718750 0.168668
v 0.168668 0.718750 0.168668
v 0.187500 0.750000 0.187500
v -0.187500 0.750000 0.187500
v 0.168668 0.718750 -0.168668
v 0.187500 0.750000 -0.187500
v -0.168668 0.718750 -0.168668
v -0.187500 0.750000 -0.187500
v 0.250000 0.750000 -0.250000
v 0.250000 0.750000 0.250000
v -0.250000 0.750000 -0.250000
v -0.250000 1.250000 -0.250000
v 0.250000 1.250000 -0.250000
v 0.250000 1.250000 0.250000
v -0.250000 1.250000 0.250000
v -0.250000 0.750000 0.250000
v -0.168668 0.593750 0.168668
v 0.168668 0.593750 0.168668
v 0.187500 0.625000 0.187500
v -0.187500 0.625000 0.187500
v 0.168668 0.593750 -0.168668
v 0.187500 0.625000 -0.187500
v -0.168668 0.593750 -0.168668
v -0.187500 0.625000 -0.187500
v -0.168668 0.656250 0.168668
v 0.168668 0.656250 0.168668
v 0.187500 0.687500 0.187500
v -0.187500 0.687500 0.187500
v 0.168668 0.656250 -0.168668
v 0.187500 0.687500 -0.187500
v -0.168668 0.656250 -0.168668
v -0.187500 0.687500 -0.187500
v 0.187500 0.562500 0.187500
v -0.187500 0.562500 0.187500
v -0.187500 0.562500 -0.187500
v -0.499468 -0.499468 -0.499468
v -0.499468 0.500000 -0.499468
v 0.499468 -0.499468 -0.499468
v -0.499468 -0.499468 0.499468
v -0.499468 0.500000 0.499468
v 0.499468 -0.499468 0.499468
v 0.499468 0.500000 -0.499468
v 0.499468 0.500000 0.499468
vt 1.000000 0.875000
vt 0.937500 0.750000
vt 0.937500 0.250000
vt 1.000000 0.125000
vt 0.250000 0.875000
vt 0.250000 0.750000
vt 0.750000 0.750000
vt 0.750000 0.875000
vt 0.000000 0.125000
vt 0.062500 0.250000
vt 0.062500 0.750000
vt 0.000000 0.875000
vt 0.750000 0.250000
vt 0.687500 0.687500
vt 0.687500 0.312500
vt 0.312500 0.687500
vt 0.250000 0.250000
vt 0.312500 0.312500
vt 0.331332 1.218750
vt 0.668668 1.218750
vt 0.687500 1.250000
vt 0.312500 1.250000
vt 0.531250 0.666667
vt 0.531250 0.333333
vt 0.500000 0.312500
vt 0.500000 0.687500
vt 0.531250 0.333333
vt 0.531250 0.666667
vt 0.500000 0.687500
vt 0.500000 0.312500
vt 0.331332 1.218750
vt 0.668668 1.218750
vt 0.687500 1.250000
vt 0.312500 1.250000
vt 0.687500 0.312500
vt 0.750000 0.250000
vt 0.750000 0.750000
vt 0.687500 0.687500
vt 0.500000 0.250000
vt 0.500000 0.750000
vt 0.000000 0.750000
vt 0.000000 0.250000
vt 0.500000 0.250000
vt 0.000000 0.250000
vt 0.000000 0.750000
vt 0.500000 0.750000
vt 0.500000 0.250000
vt 0.500000 0.750000
vt 0.000000 0.750000
vt 0.000000 0.250000
vt 0.000000 0.250000
vt 0.500000 0.750000
vt 0.250000 0.250000
vt 0.750000 0.250000
vt 0.750000 0.750000
vt 0.250000 0.750000
vt 0.250000 0.750000
vt 0.312500 0.687500
vt 0.250000 0.250000
vt 0.312500 0.312500
vt 0.250000 0.125000
vt 0.750000 0.125000
vt 0.331332 1.093750
vt 0.668668 1.093750
vt 0.687500 1.125000
vt 0.312500 1.125000
vt 0.656250 0.666667
vt 0.656250 0.333333
vt 0.625000 0.312500
vt 0.625000 0.687500
vt 0.656250 0.333333
vt 0.656250 0.666667
vt 0.625000 0.687500
vt 0.625000 0.312500
vt 0.331332 1.093750
vt 0.668668 1.093750
vt 0.687500 1.125000
vt 0.312500 1.125000
vt 0.331332 1.156250
vt 0.668668 1.156250
vt 0.687500 1.187500
vt 0.312500 1.187500
vt 0.593750 0.666667
vt 0.593750 0.333333
vt 0.562500 0.312500
vt 0.562500 0.687500
vt 0.593750 0.333333
vt 0.593750 0.666667
vt 0.562500 0.687500
vt 0.562500 0.312500
vt 0.331332 1.156250
vt 0.668668 1.156250
vt 0.687500 1.187500
vt 0.312500 1.187500
vt 0.312500 1.062500
vt 0.687500 1.062500
vt 0.687500 0.312500
vt 0.687500 0.312500
vt 0.687500 0.687500
vt 0.312500 1.062500
vt 0.687500 1.062500
vt 0.000000 0.750000
vt 0.000000 0.250000
vt 1.000000 0.250000
vt 1.000000 0.750000
vt 1.000000 1.000000
vt -0.000000 1.000000
vt 0.000000 -0.000000
vt 1.000000 -0.000000
vt 1.000000 1.000000
vt -0.000000 1.000000
vt 0.000000 -0.000000
vt 1.000000 -0.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 1.000000 -0.000000
vt 1.000000 1.000000
vt 1.000000 1.000000
vt 0.000000 0.000000
vt -0.000000 0.000000
vn 0.0000 0.0000 -1.0000
vn 0.4442 0.8960 -0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 1.0000 -0.0000
vn 0.0000 -0.5161 0.8565
vn 0.8565 -0.5161 0.0000
vn -0.8565 -0.5161 0.0000
vn 0.0000 -0.5161 -0.8565
vn -0.0000 -1.0000 -0.0000
vn 1.0000 -0.0000 0.0000
vn -1.0000 0.0000 -0.0000
vn -0.4442 0.8960 -0.0000
vn -0.0000 0.5161 0.8565
vn 0.8565 0.5161 -0.0000
vn -0.8565 0.5161 -0.0000
vn 0.0000 0.5161 -0.8565
g Cube_Cube_Material.001_Cube_Cube_Material.001_clip
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
f 4/5/2 3/6/2 5/7/2 6/8/2
f 6/9/3 5/10/3 7/11/3 8/12/3
f 7/13/4 5/7/4 42/14/4 43/15/4
f 5/7/4 3/6/4 9/16/4 42/14/4
f 2/17/4 7/13/4 43/15/4 44/18/4
f 3/6/4 2/17/4 44/18/4 9/16/4
f 10/19/5 11/20/5 12/21/5 13/22/5
f 11/23/6 14/24/6 15/25/6 12/26/6
f 16/27/7 10/28/7 13/29/7 17/30/7
f 14/31/8 16/32/8 17/33/8 15/34/8
f 15/35/9 18/36/9 19/37/9 12/38/9
f 20/39/1 21/40/1 22/41/1 18/42/1
f 18/43/10 22/44/10 23/45/10 19/46/10
f 19/47/3 23/48/3 24/49/3 25/50/3
f 21/51/11 20/39/11 25/52/11 24/49/11
f 21/53/4 24/54/4 23/55/4 22/56/4
f 12/38/9 19/37/9 25/57/9 13/58/9
f 13/58/9 25/57/9 20/59/9 17/60/9
f 17/60/9 20/59/9 18/36/9 15/35/9
f 2/17/12 1/61/12 8/62/12 7/13/12
f 26/63/5 27/64/5 28/65/5 29/66/5
f 27/67/6 30/68/6 31/69/6 28/70/6
f 32/71/7 26/72/7 29/73/7 33/74/7
f 30/75/8 32/76/8 33/77/8 31/78/8
f 34/79/5 35/80/5 36/81/5 37/82/5
f 35/83/6 38/84/6 39/85/6 36/86/6
f 40/87/7 34/88/7 37/89/7 41/90/7
f 38/91/8 40/92/8 41/93/8 39/94/8
f 37/82/13 36/81/13 11/20/13 10/19/13
f 36/86/14 39/85/14 14/24/14 11/23/14
f 41/90/15 37/89/15 10/28/15 16/27/15
f 39/94/16 41/93/16 16/32/16 14/31/16
f 43/95/13 42/96/13 27/64/13 26/63/13
f 42/14/14 9/97/14 30/68/14 27/67/14
f 44/98/15 43/99/15 26/72/15 32/71/15
f 9/100/16 44/101/16 32/76/16 30/75/16
f 29/66/13 28/65/13 35/80/13 34/79/13
f 28/70/14 31/69/14 38/84/14 35/83/14
f 33/74/15 29/73/15 34/88/15 40/87/15
f 31/78/16 33/77/16 40/92/16 38/91/16
f 8/102/9 1/103/9 4/104/9 6/105/9
g Cube_Cube_Material.001_Cube_Cube_Material.001_sides_with_band
s off
f 47/106/10 51/107/10 52/108/10 50/109/10
f 48/110/11 49/111/11 46/112/11 45/113/11
f 47/114/9 50/115/9 48/116/9 45/117/9
f 51/118/4 46/112/4 49/111/4 52/119/4
g Cube_Cube_Material.001_Cube_Cube_Material.001_sides_without_band
f 45/113/1 46/120/1 51/107/1 47/121/1
f 50/109/3 52/119/3 49/111/3 48/122/3

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

View File

@ -38,6 +38,18 @@ if pipeworks.enable_teleport_tube then
}) })
end end
-- basic materials' brass ingot
minetest.clear_craft({
output = "basic_materials:brass_ingot",
})
minetest.register_craft( {
type = "shapeless",
output = "basic_materials:brass_ingot 9",
recipe = { "basic_materials:brass_block" },
})
-- tubes crafting recipes -- tubes crafting recipes
minetest.register_craft({ minetest.register_craft({
@ -71,54 +83,24 @@ minetest.register_craft({
output = 'technic:red_energy_crystal', output = 'technic:red_energy_crystal',
recipe = { recipe = {
{'moreores:silver_ingot', 'technic:battery', 'dye:red'}, {'moreores:silver_ingot', 'technic:battery', 'dye:red'},
{'technic:battery', 'default:diamondblock', 'technic:battery'}, {'technic:battery', 'basic_materials:energy_crystal_simple', 'technic:battery'},
{'dye:red', 'technic:battery', 'moreores:silver_ingot'}, {'dye:red', 'technic:battery', 'moreores:silver_ingot'},
} }
}) })
minetest.register_craft({
output = 'technic:fine_copper_wire 2',
recipe = {
{'', 'default:copper_ingot', ''},
{'', 'default:copper_ingot', ''},
{'', 'default:copper_ingot', ''},
}
})
minetest.register_craft({
output = 'technic:fine_gold_wire 2',
recipe = {
{'', 'default:gold_ingot', ''},
{'', 'default:gold_ingot', ''},
{'', 'default:gold_ingot', ''},
}
})
minetest.register_craft({
output = 'technic:fine_silver_wire 2',
recipe = {
{'', 'moreores:silver_ingot', ''},
{'', 'moreores:silver_ingot', ''},
{'', 'moreores:silver_ingot', ''},
}
})
minetest.register_craft({ minetest.register_craft({
output = 'technic:copper_coil 1', output = 'technic:copper_coil 1',
recipe = { recipe = {
{'technic:fine_copper_wire', 'technic:wrought_iron_ingot', 'technic:fine_copper_wire'}, {'basic_materials:copper_wire', 'technic:wrought_iron_ingot', 'basic_materials:copper_wire'},
{'technic:wrought_iron_ingot', '', 'technic:wrought_iron_ingot'}, {'technic:wrought_iron_ingot', '', 'technic:wrought_iron_ingot'},
{'technic:fine_copper_wire', 'technic:wrought_iron_ingot', 'technic:fine_copper_wire'}, {'basic_materials:copper_wire', 'technic:wrought_iron_ingot', 'basic_materials:copper_wire'},
} },
}) replacements = {
{"basic_materials:copper_wire", "basic_materials:empty_spool"},
minetest.register_craft({ {"basic_materials:copper_wire", "basic_materials:empty_spool"},
output = 'technic:motor', {"basic_materials:copper_wire", "basic_materials:empty_spool"},
recipe = { {"basic_materials:copper_wire", "basic_materials:empty_spool"}
{'technic:carbon_steel_ingot', 'technic:copper_coil', 'technic:carbon_steel_ingot'}, },
{'technic:carbon_steel_ingot', 'technic:copper_coil', 'technic:carbon_steel_ingot'},
{'technic:carbon_steel_ingot', 'default:copper_ingot', 'technic:carbon_steel_ingot'},
}
}) })
local isolation = mesecons_materials and "mesecons_materials:fiber" or "technic:rubber" local isolation = mesecons_materials and "mesecons_materials:fiber" or "technic:rubber"
@ -153,10 +135,11 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'technic:control_logic_unit', output = 'technic:control_logic_unit',
recipe = { recipe = {
{'', 'technic:fine_gold_wire', ''}, {'', 'basic_materials:gold_wire', ''},
{'default:copper_ingot', 'technic:silicon_wafer', 'default:copper_ingot'}, {'default:copper_ingot', 'technic:silicon_wafer', 'default:copper_ingot'},
{'', 'technic:chromium_ingot', ''}, {'', 'technic:chromium_ingot', ''},
} },
replacements = { {"basic_materials:gold_wire", "basic_materials:empty_spool"}, },
}) })
minetest.register_craft({ minetest.register_craft({
@ -179,7 +162,7 @@ minetest.register_craft({
output = "technic:machine_casing", output = "technic:machine_casing",
recipe = { recipe = {
{ "technic:cast_iron_ingot", "technic:cast_iron_ingot", "technic:cast_iron_ingot" }, { "technic:cast_iron_ingot", "technic:cast_iron_ingot", "technic:cast_iron_ingot" },
{ "technic:cast_iron_ingot", "technic:brass_ingot", "technic:cast_iron_ingot" }, { "technic:cast_iron_ingot", "basic_materials:brass_ingot", "technic:cast_iron_ingot" },
{ "technic:cast_iron_ingot", "technic:cast_iron_ingot", "technic:cast_iron_ingot" }, { "technic:cast_iron_ingot", "technic:cast_iron_ingot", "technic:cast_iron_ingot" },
}, },
}) })

View File

@ -1,6 +1,7 @@
default default
pipeworks pipeworks
technic_worldgen technic_worldgen
basic_materials
bucket? bucket?
screwdriver? screwdriver?
mesecons? mesecons?
@ -10,3 +11,4 @@ digiline_remote?
intllib? intllib?
unified_inventory? unified_inventory?
vector_extras? vector_extras?
dye?

View File

@ -69,32 +69,11 @@ minetest.register_tool("technic:red_energy_crystal", {
} }
}) })
minetest.register_craftitem("technic:fine_copper_wire", {
description = S("Fine Copper Wire"),
inventory_image = "technic_fine_copper_wire.png",
})
minetest.register_craftitem("technic:fine_gold_wire", {
description = S("Fine Gold Wire"),
inventory_image = "technic_fine_gold_wire.png",
})
minetest.register_craftitem("technic:fine_silver_wire", {
description = S("Fine Silver Wire"),
inventory_image = "technic_fine_silver_wire.png",
})
minetest.register_craftitem("technic:copper_coil", { minetest.register_craftitem("technic:copper_coil", {
description = S("Copper Coil"), description = S("Copper Coil"),
inventory_image = "technic_copper_coil.png", inventory_image = "technic_copper_coil.png",
}) })
minetest.register_craftitem("technic:motor", {
description = S("Electric Motor"),
inventory_image = "technic_motor.png",
})
minetest.register_craftitem("technic:lv_transformer", { minetest.register_craftitem("technic:lv_transformer", {
description = S("Low Voltage Transformer"), description = S("Low Voltage Transformer"),
inventory_image = "technic_lv_transformer.png", inventory_image = "technic_lv_transformer.png",

View File

@ -67,7 +67,6 @@ Disabled =
%s Alloy Furnace = %s Legierungsofen %s Alloy Furnace = %s Legierungsofen
%s Battery Box = %s Batteriebox %s Battery Box = %s Batteriebox
%s Cable = %s Kabel %s Cable = %s Kabel
%s CNC Machine = %s CNC-Maschine
%s Compressor = %s Kompressor %s Compressor = %s Kompressor
%s Extractor = %s Extraktor %s Extractor = %s Extraktor
%s Forcefield Emitter = %s Kraftfeld-Emitter %s Forcefield Emitter = %s Kraftfeld-Emitter
@ -121,41 +120,6 @@ Digging finished =
Digging %d m above machine = Digging %d m above machine =
Digging %d m below machine = Digging %d m below machine =
## CNC
Cylinder = Zylinder
Element Cross = Halbes Kreuzelement
Element Cross Double = Kreuzelement
Element Edge = Halbes Eckelement
Element Edge Double = Eckelement
Element End = Halbes Endelement
Element End Double = Endelement
Element Straight = Halbes aufrechtes Element
Element Straight Double = Aufrechtes Element
Element T = Halbes T-Element
Element T Double = T-Element
Horizontal Cylinder = Liegender Zylinder
One Curved Edge Block = Block mit einer abgerundeten Kante
Pyramid = Pyramide
Slope = Schraege
Slope Edge = Schraege mit Ecke
Slope Inner Edge = Schraege mit Innenecke
Slope Lying = Liegende Schraege
Slope Upside Down = Umgedrehte Schraege
Slope Upside Down Edge = Umgedrehte Schraege mit Ecke
Slope Upside Down Inner Edge = Umgedrehte Schraege mit Innenecke
Sphere = Kugel
Spike = Spitze
Stick = Stange
Two Curved Edge Block = Block mit zwei abgerundeten Kanten
Brick = Ziegel:
Cobble = Pflasterstein:
Dirt = Erde:
Leaves = Laub:
Sandstone = Sandstein:
Stone = Stein:
Tree = Baumstamm:
Wooden = Holz:
## Grinder Recipes ## Grinder Recipes
# $1: Name # $1: Name
%s Dust = %sstaub %s Dust = %sstaub

View File

@ -63,7 +63,6 @@ Disabled =
%s Alloy Furnace = Horno de Aleacion %s %s Alloy Furnace = Horno de Aleacion %s
%s Battery Box = Caja de Bateria %s %s Battery Box = Caja de Bateria %s
%s Cable = Cable %s %s Cable = Cable %s
%s CNC Machine = Maquina CNC %s
%s Compressor = Compresor %s %s Compressor = Compresor %s
%s Extractor = Extractor %s %s Extractor = Extractor %s
%s Forcefield Emitter = Emisor de Campo de Fuerza %s %s Forcefield Emitter = Emisor de Campo de Fuerza %s
@ -115,40 +114,6 @@ Digging finished =
Digging %d m above machine = Digging %d m above machine =
Digging %d m below machine = Digging %d m below machine =
## CNC Machine
Element Edge = Elemento Borde
Tree = Arbol
Element Cross Double = Elemento Cruz Doble
Spike = Pica
Element Edge Double = Elemento Borde Doble
Two Curved Edge Block = Dos Bloques de Borde Curvados
Pyramid = Piramide
Slope Upside Down Inner Edge = Borde Interno de Rampa Al Reves
Slope Upside Down Edge = Borde de Rampa Al Reves
Element Straight Double = Elemento Doble Recto
Sphere = Esfera
Element End Double = Doble Fin de Elemento
Element Straight = Recta de Elemento
Horizontal Cylinder = Cilindro Horizontal
Slope Inner Edge = Borde Interno de Rampa
One Curved Edge Block = Un Bloque de Borde Curvado
Element Cross = Cruce de Elementos
Stick = Varita
Element End = Fin de Elemento
Slope Lying = Rampa en Reposo
Slope Upside Down = Rampa Al Reves
Slope Edge = Borde de Rampa
Slope = Rampa
Element T = Elemento T
Cylinder = Cilindro
Cobble = Adoquines
Stone = Piedra
Brick = Ladrillo
Dirt = Tierra
Sandstone = Arenisca
Wooden = Madera
Leaves = Hojas
## Grinder Recipes ## Grinder Recipes
# $1: Name # $1: Name
%s Dust = Polvo de %s %s Dust = Polvo de %s

View File

@ -64,7 +64,6 @@ Disabled = Disabilitato
%s Alloy Furnace = %s Fornace per leghe %s Alloy Furnace = %s Fornace per leghe
%s Battery Box = %s Box batterie %s Battery Box = %s Box batterie
%s Cable = Cavo %s %s Cable = Cavo %s
%s CNC Machine = Tornio CNC %s
%s Compressor = Compressore %s %s Compressor = Compressore %s
%s Extractor = Estrattore %s %s Extractor = Estrattore %s
%s Forcefield Emitter = Emettitore di campo di forza %s %s Forcefield Emitter = Emettitore di campo di forza %s
@ -118,41 +117,6 @@ Digging finished = Scavo finito
Digging %d m above machine = Scavo di %d m sopra la macchina Digging %d m above machine = Scavo di %d m sopra la macchina
Digging %d m below machine = Scavo di %d m sotto la macchina Digging %d m below machine = Scavo di %d m sotto la macchina
## CNC
Cylinder = Cilindro
Element Cross = Elemento a croce
Element Cross Double = Elemento a croce doppio
Element Edge = Elemento bordo
Element Edge Double = Elemento bordo doppio
Element End = Elemento finale
Element End Double = Elemento finale doppio
Element Straight = Elemento dritto
Element Straight Double = Elemento dritto doppio
Element T = Elemento a T
Element T Double = Elemento a T doppio
Horizontal Cylinder = Cilindro orizzontale
One Curved Edge Block = Blocco con bordo curvo
Pyramid = Piramide
Slope = Inclinato
Slope Edge = Bordo inclinato
Slope Inner Edge = Bordo interno inclinato
Slope Lying = Pendenza bugiarda
Slope Upside Down = Pendenza capovolta
Slope Upside Down Edge = Bordo inclinato capovolto
Slope Upside Down Inner Edge = Bordo interno inclinato capovolto
Sphere = Sfera
Spike = Spuntone
Stick = Bastone
Two Curved Edge Block = Blocco con bordo a doppia curva
Brick = Mattone
Cobble = Ciottolato
Dirt = Terra
Leaves = Foglie
Sandstone = Arenaria
Stone = Pietra
Tree = Albero
Wooden = Legno
## Grinder Recipes ## Grinder Recipes
# $1: Name # $1: Name
%s Dust = Polvere di %s %s Dust = Polvere di %s

View File

@ -71,7 +71,6 @@ Disabled =
%s Alloy Furnace = %s Alloy Furnace =
%s Battery Box = %s Battery Box =
%s Cable = %s Cable =
%s CNC Machine =
%s Centrifuge = %s Centrifuge =
%s Compressor = %s Compressor =
%s Extractor = %s Extractor =
@ -127,40 +126,6 @@ Digging %d m above machine =
Digging %d m below machine = Digging %d m below machine =
@1 (@2 @3 -> @4 @5) = @1 (@2 @3 -> @4 @5) =
## CNC
Cylinder =
Element Cross =
Element Cross Double =
Element Edge =
Element Edge Double =
Element End =
Element End Double =
Element Straight =
Element Straight Double =
Element T =
Element T Double =
Horizontal Cylinder =
One Curved Edge Block =
Pyramid =
Slope =
Slope Edge =
Slope Inner Edge =
Slope Lying =
Slope Upside Down =
Slope Upside Down Edge =
Slope Upside Down Inner Edge =
Sphere =
Spike =
Stick =
Two Curved Edge Block =
Brick =
Cobble =
Dirt =
Leaves =
Sandstone =
Stone =
Tree =
Wooden =
## Grinder Recipes ## Grinder Recipes
# $1: Name # $1: Name

View File

@ -17,7 +17,7 @@ local cable_entry = "^technic_cable_connection_overlay.png"
minetest.register_craft({ minetest.register_craft({
output = "technic:forcefield_emitter_off", output = "technic:forcefield_emitter_off",
recipe = { recipe = {
{"default:mese", "technic:motor", "default:mese" }, {"default:mese", "basic_materials:motor", "default:mese" },
{"technic:deployer_off", "technic:machine_casing", "technic:deployer_off"}, {"technic:deployer_off", "technic:machine_casing", "technic:deployer_off"},
{"default:mese", "technic:hv_cable", "default:mese" }, {"default:mese", "technic:hv_cable", "default:mese" },
} }
@ -42,7 +42,7 @@ end)
-- | | -- | |
-- \___/\___/ -- \___/\___/
local function update_forcefield(pos, meta, active, first) local function update_forcefield(pos, meta, active)
local shape = meta:get_int("shape") local shape = meta:get_int("shape")
local range = meta:get_int("range") local range = meta:get_int("range")
local vm = VoxelManip() local vm = VoxelManip()
@ -86,11 +86,6 @@ local function update_forcefield(pos, meta, active, first)
vm:set_data(data) vm:set_data(data)
vm:update_liquids() vm:update_liquids()
vm:write_to_map() vm:write_to_map()
-- update_map is very slow, but if we don't call it we'll
-- get phantom blocks on the client.
if not active or first then
vm:update_map()
end
end end
local function set_forcefield_formspec(meta) local function set_forcefield_formspec(meta)
@ -273,13 +268,11 @@ local function run(pos, node)
technic.swap_node(pos, "technic:forcefield_emitter_off") technic.swap_node(pos, "technic:forcefield_emitter_off")
end end
elseif eu_input >= power_requirement then elseif eu_input >= power_requirement then
local first = false
if node.name == "technic:forcefield_emitter_off" then if node.name == "technic:forcefield_emitter_off" then
first = true
technic.swap_node(pos, "technic:forcefield_emitter_on") technic.swap_node(pos, "technic:forcefield_emitter_on")
meta:set_string("infotext", S("%s Active"):format(machine_name)) meta:set_string("infotext", S("%s Active"):format(machine_name))
end end
update_forcefield(pos, meta, true, first) update_forcefield(pos, meta, true)
end end
end end

View File

@ -7,7 +7,7 @@ local cable_entry = "^technic_cable_connection_overlay.png"
minetest.register_craft({ minetest.register_craft({
recipe = { recipe = {
{"technic:carbon_plate", "pipeworks:filter", "technic:composite_plate"}, {"technic:carbon_plate", "pipeworks:filter", "technic:composite_plate"},
{"technic:motor", "technic:machine_casing", "technic:diamond_drill_head"}, {"basic_materials:motor", "technic:machine_casing", "technic:diamond_drill_head"},
{"technic:carbon_steel_block", "technic:hv_cable", "technic:carbon_steel_block"}}, {"technic:carbon_steel_block", "technic:hv_cable", "technic:carbon_steel_block"}},
output = "technic:quarry", output = "technic:quarry",
}) })
@ -112,6 +112,11 @@ local function quarry_run(pos, node)
if meta:get_int("enabled") and meta:get_int("HV_EU_input") >= quarry_demand and meta:get_int("purge_on") == 0 then if meta:get_int("enabled") and meta:get_int("HV_EU_input") >= quarry_demand and meta:get_int("purge_on") == 0 then
local pdir = minetest.facedir_to_dir(node.param2) local pdir = minetest.facedir_to_dir(node.param2)
if pdir.y ~= 0 then
-- faces up or down, not valid, otherwise depth-check would run endless and hang up the server
return
end
local qdir = pdir.x == 1 and vector.new(0,0,-1) or local qdir = pdir.x == 1 and vector.new(0,0,-1) or
(pdir.z == -1 and vector.new(-1,0,0) or (pdir.z == -1 and vector.new(-1,0,0) or
(pdir.x == -1 and vector.new(0,0,1) or (pdir.x == -1 and vector.new(0,0,1) or
@ -146,15 +151,9 @@ local function quarry_run(pos, node)
dignode = technic.get_or_load_node(digpos) or minetest.get_node(digpos) dignode = technic.get_or_load_node(digpos) or minetest.get_node(digpos)
local dignodedef = minetest.registered_nodes[dignode.name] or {diggable=false} local dignodedef = minetest.registered_nodes[dignode.name] or {diggable=false}
-- doors mod among other thing does NOT like a nil digger... -- doors mod among other thing does NOT like a nil digger...
local fakedigger = { local fakedigger = pipeworks.create_fake_player({
get_player_name = function() name = owner
return "!technic_quarry_fake_digger" })
end,
is_player = function() return false end,
get_wielded_item = function()
return ItemStack("air")
end,
}
if not dignodedef.diggable or (dignodedef.can_dig and not dignodedef.can_dig(digpos, fakedigger)) then if not dignodedef.diggable or (dignodedef.can_dig and not dignodedef.can_dig(digpos, fakedigger)) then
can_dig = false can_dig = false
end end

View File

@ -1,91 +0,0 @@
-- REGISTER MATERIALS AND PROPERTIES FOR NONCUBIC ELEMENTS:
-----------------------------------------------------------
local S = technic.getter
-- DIRT
-------
technic.cnc.register_all("default:dirt",
{snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
{"default_grass.png", "default_dirt.png", "default_grass.png"},
S("Dirt"))
-- WOOD
-------
technic.cnc.register_all("default:wood",
{snappy=2, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1},
{"default_wood.png"},
S("Wooden"))
-- STONE
--------
technic.cnc.register_all("default:stone",
{cracky=3, not_in_creative_inventory=1},
{"default_stone.png"},
S("Stone"))
-- COBBLE
---------
technic.cnc.register_all("default:cobble",
{cracky=3, not_in_creative_inventory=1},
{"default_cobble.png"},
S("Cobble"))
-- BRICK
--------
technic.cnc.register_all("default:brick",
{cracky=3, not_in_creative_inventory=1},
{"default_brick.png"},
S("Brick"))
-- SANDSTONE
------------
technic.cnc.register_all("default:sandstone",
{crumbly=2, cracky=3, not_in_creative_inventory=1},
{"default_sandstone.png"},
S("Sandstone"))
-- LEAVES
---------
technic.cnc.register_all("default:leaves",
{snappy=2, choppy=2, oddly_breakable_by_hand=3, not_in_creative_inventory=1},
{"default_leaves.png"},
S("Leaves"))
-- TREE
-------
technic.cnc.register_all("default:tree",
{snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, wood=1, not_in_creative_inventory=1},
{"default_tree.png"},
S("Tree"))
-- WROUGHT IRON
---------------
technic.cnc.register_all("default:steelblock",
{cracky=1, level=2, not_in_creative_inventory=1},
{"technic_wrought_iron_block.png"},
S("Wrought Iron"))
-- Bronze
--------
technic.cnc.register_all("default:bronzeblock",
{cracky=1, level=2, not_in_creative_inventory=1},
{"default_bronze_block.png"},
S("Bronze"))
-- Stainless Steel
--------
technic.cnc.register_all("technic:stainless_steel_block",
{cracky=1, level=2, not_in_creative_inventory=1},
{"technic_stainless_steel_block.png"},
S("Stainless Steel"))
-- Marble
------------
technic.cnc.register_all("technic:marble",
{cracky=3, not_in_creative_inventory=1},
{"technic_marble.png"},
S("Marble"))
-- Granite
------------
technic.cnc.register_all("technic:granite",
{cracky=1, not_in_creative_inventory=1},
{"technic_granite.png"},
S("Granite"))

View File

@ -4,10 +4,14 @@ minetest.register_alias("compressor", "technic:lv_compressor")
minetest.register_craft({ minetest.register_craft({
output = 'technic:lv_compressor', output = 'technic:lv_compressor',
recipe = { recipe = {
{'default:stone', 'technic:motor', 'default:stone'}, {'default:stone', 'basic_materials:motor', 'default:stone'},
{'mesecons:piston', 'technic:machine_casing', 'mesecons:piston'}, {'mesecons:piston', 'technic:machine_casing', 'mesecons:piston'},
{'technic:fine_silver_wire', 'technic:lv_cable', 'technic:fine_silver_wire'}, {'basic_materials:silver_wire', 'technic:lv_cable', 'basic_materials:silver_wire'},
} },
replacements = {
{"basic_materials:silver_wire", "basic_materials:empty_spool"},
{"basic_materials:silver_wire", "basic_materials:empty_spool"}
},
}) })
technic.register_compressor({tier = "LV", demand = {300}, speed = 1}) technic.register_compressor({tier = "LV", demand = {300}, speed = 1})

View File

@ -4,7 +4,7 @@ minetest.register_alias("extractor", "technic:lv_extractor")
minetest.register_craft({ minetest.register_craft({
output = 'technic:lv_extractor', output = 'technic:lv_extractor',
recipe = { recipe = {
{'technic:treetap', 'technic:motor', 'technic:treetap'}, {'technic:treetap', 'basic_materials:motor', 'technic:treetap'},
{'technic:treetap', 'technic:machine_casing', 'technic:treetap'}, {'technic:treetap', 'technic:machine_casing', 'technic:treetap'},
{'', 'technic:lv_cable', ''}, {'', 'technic:lv_cable', ''},
} }

View File

@ -11,9 +11,13 @@ minetest.register_craft({
output = 'technic:geothermal', output = 'technic:geothermal',
recipe = { recipe = {
{'technic:granite', 'default:diamond', 'technic:granite'}, {'technic:granite', 'default:diamond', 'technic:granite'},
{'technic:fine_copper_wire', 'technic:machine_casing', 'technic:fine_copper_wire'}, {'basic_materials:copper_wire', 'technic:machine_casing', 'basic_materials:copper_wire'},
{'technic:granite', 'technic:lv_cable', 'technic:granite'}, {'technic:granite', 'technic:lv_cable', 'technic:granite'},
} },
replacements = {
{"basic_materials:copper_wire", "basic_materials:empty_spool"},
{"basic_materials:copper_wire", "basic_materials:empty_spool"}
},
}) })
minetest.register_craftitem("technic:geothermal", { minetest.register_craftitem("technic:geothermal", {

View File

@ -22,8 +22,3 @@ dofile(path.."/extractor.lua")
dofile(path.."/compressor.lua") dofile(path.."/compressor.lua")
dofile(path.."/music_player.lua") dofile(path.."/music_player.lua")
dofile(path.."/cnc.lua")
dofile(path.."/cnc_api.lua")
dofile(path.."/cnc_nodes.lua")

View File

@ -9,9 +9,9 @@ minetest.register_craft({
output = 'technic:solar_panel', output = 'technic:solar_panel',
recipe = { recipe = {
{'technic:doped_silicon_wafer', 'technic:doped_silicon_wafer', 'technic:doped_silicon_wafer'}, {'technic:doped_silicon_wafer', 'technic:doped_silicon_wafer', 'technic:doped_silicon_wafer'},
{'technic:fine_silver_wire', 'technic:lv_cable', 'mesecons_materials:glue'}, {'basic_materials:silver_wire', 'technic:lv_cable', 'mesecons_materials:glue'},
},
} replacements = { {"basic_materials:silver_wire", "basic_materials:empty_spool"}, },
}) })

View File

@ -1,7 +1,7 @@
minetest.register_craft({ minetest.register_craft({
output = "technic:mv_centrifuge", output = "technic:mv_centrifuge",
recipe = { recipe = {
{"technic:motor", "technic:copper_plate", "technic:diamond_drill_head"}, {"basic_materials:motor", "technic:copper_plate", "technic:diamond_drill_head"},
{"technic:copper_plate", "technic:machine_casing", "technic:copper_plate" }, {"technic:copper_plate", "technic:machine_casing", "technic:copper_plate" },
{"pipeworks:one_way_tube", "technic:mv_cable", "pipeworks:mese_filter" }, {"pipeworks:one_way_tube", "technic:mv_cable", "pipeworks:mese_filter" },
} }

View File

@ -0,0 +1,12 @@
-- MV freezer
minetest.register_craft({
output = 'technic:mv_freezer',
recipe = {
{'technic:stainless_steel_ingot', 'technic:motor', 'technic:stainless_steel_ingot'},
{'pipeworks:pipe_1_empty', 'technic:mv_transformer', 'pipeworks:pipe_1_empty'},
{'technic:stainless_steel_ingot', 'technic:mv_cable', 'technic:stainless_steel_ingot'},
}
})
technic.register_freezer({tier = "MV", demand = {800, 600, 400}, speed = 0.5, upgrade = 1, tube = 1})

View File

@ -18,7 +18,7 @@ minetest.register_craft({
local function get_water_flow(pos) local function get_water_flow(pos)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
if minetest.get_item_group(node.name, "water") == 3 then if minetest.get_item_group(node.name, "water") == 3 and string.find(node.name, "flowing") then
return node.param2 -- returns approx. water flow, if any return node.param2 -- returns approx. water flow, if any
end end
return 0 return 0

View File

@ -25,6 +25,8 @@ dofile(path.."/centrifuge.lua")
dofile(path.."/tool_workshop.lua") dofile(path.."/tool_workshop.lua")
dofile(path.."/freezer.lua")
-- The power radiator supplies appliances with inductive coupled power: -- The power radiator supplies appliances with inductive coupled power:
-- Lighting and associated textures is taken directly from VanessaE's homedecor and made electric. -- Lighting and associated textures is taken directly from VanessaE's homedecor and made electric.
-- This is currently useless, slow, and mostly copied -- This is currently useless, slow, and mostly copied

View File

@ -13,7 +13,7 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'technic:wind_mill', output = 'technic:wind_mill',
recipe = { recipe = {
{'', 'technic:motor', ''}, {'', 'basic_materials:motor', ''},
{'technic:carbon_steel_ingot', 'technic:carbon_steel_block', 'technic:carbon_steel_ingot'}, {'technic:carbon_steel_ingot', 'technic:carbon_steel_block', 'technic:carbon_steel_ingot'},
{'', 'technic:mv_cable', ''}, {'', 'technic:mv_cable', ''},
} }

View File

@ -979,7 +979,7 @@ minetest.register_craft({
output = 'technic:frame_111111', output = 'technic:frame_111111',
recipe = { recipe = {
{ '', 'default:stick', '' }, { '', 'default:stick', '' },
{ 'default:stick', 'technic:brass_ingot', 'default:stick' }, { 'default:stick', 'basic_materials:brass_ingot', 'default:stick' },
{ '', 'default:stick', '' }, { '', 'default:stick', '' },
} }
}) })
@ -988,7 +988,7 @@ minetest.register_craft({
output = 'technic:frame_motor', output = 'technic:frame_motor',
recipe = { recipe = {
{ '', 'technic:frame_111111', '' }, { '', 'technic:frame_111111', '' },
{ 'group:mesecon_conductor_craftable', 'technic:motor', 'group:mesecon_conductor_craftable' }, { 'group:mesecon_conductor_craftable', 'basic_materials:motor', 'group:mesecon_conductor_craftable' },
{ '', 'technic:frame_111111', '' }, { '', 'technic:frame_111111', '' },
} }
}) })
@ -996,9 +996,9 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'technic:template 10', output = 'technic:template 10',
recipe = { recipe = {
{ '', 'technic:brass_ingot', '' }, { '', 'basic_materials:brass_ingot', '' },
{ 'technic:brass_ingot', 'default:mese_crystal', 'technic:brass_ingot' }, { 'basic_materials:brass_ingot', 'default:mese_crystal', 'basic_materials:brass_ingot' },
{ '', 'technic:brass_ingot', '' }, { '', 'basic_materials:brass_ingot', '' },
} }
}) })
@ -1016,7 +1016,7 @@ minetest.register_craft({
output = 'technic:template_motor', output = 'technic:template_motor',
recipe = { recipe = {
{ '', 'technic:template', '' }, { '', 'technic:template', '' },
{ 'group:mesecon_conductor_craftable', 'technic:motor', 'group:mesecon_conductor_craftable' }, { 'group:mesecon_conductor_craftable', 'basic_materials:motor', 'group:mesecon_conductor_craftable' },
{ '', 'technic:template', '' }, { '', 'technic:template', '' },
} }
}) })

View File

@ -21,7 +21,7 @@ local recipes = {
{"technic:carbon_steel_dust 3", "technic:chromium_dust", "technic:stainless_steel_dust 4"}, {"technic:carbon_steel_dust 3", "technic:chromium_dust", "technic:stainless_steel_dust 4"},
{"technic:carbon_steel_ingot 3", "technic:chromium_ingot", "technic:stainless_steel_ingot 4"}, {"technic:carbon_steel_ingot 3", "technic:chromium_ingot", "technic:stainless_steel_ingot 4"},
{"technic:copper_dust 2", "technic:zinc_dust", "technic:brass_dust 3"}, {"technic:copper_dust 2", "technic:zinc_dust", "technic:brass_dust 3"},
{"default:copper_ingot 2", "technic:zinc_ingot", "technic:brass_ingot 3"}, {"default:copper_ingot 2", "technic:zinc_ingot", "basic_materials:brass_ingot 3"},
{"default:sand 2", "technic:coal_dust 2", "technic:silicon_wafer"}, {"default:sand 2", "technic:coal_dust 2", "technic:silicon_wafer"},
{"technic:silicon_wafer", "technic:gold_dust", "technic:doped_silicon_wafer"}, {"technic:silicon_wafer", "technic:gold_dust", "technic:doped_silicon_wafer"},
-- from https://en.wikipedia.org/wiki/Carbon_black -- from https://en.wikipedia.org/wiki/Carbon_black

View File

@ -117,6 +117,19 @@ local function clear_networks(pos)
end end
end end
local function item_place_override_node(itemstack, placer, pointed, node)
-- Call the default on_place function with a fake itemstack
local temp_itemstack = ItemStack(itemstack)
temp_itemstack:set_name(node.name)
local original_count = temp_itemstack:get_count()
temp_itemstack =
minetest.item_place(temp_itemstack, placer, pointed, node.param2) or
temp_itemstack
-- Remove the same number of items from the real itemstack
itemstack:take_item(original_count - temp_itemstack:get_count())
return itemstack
end
function technic.register_cable(tier, size) function technic.register_cable(tier, size)
local ltier = string.lower(tier) local ltier = string.lower(tier)
cable_tier["technic:"..ltier.."_cable"] = tier cable_tier["technic:"..ltier.."_cable"] = tier
@ -228,11 +241,10 @@ function technic.register_cable(tier, size)
num = xyz[((fine_pointed[bigger] < 0 and "-") or "") .. bigger] num = xyz[((fine_pointed[bigger] < 0 and "-") or "") .. bigger]
end end
end end
minetest.set_node(pointed_thing.above, {name = "technic:"..ltier.."_cable_plate_"..num}) return item_place_override_node(
if not (creative and creative.is_enabled_for(placer)) then itemstack, placer, pointed_thing,
itemstack:take_item() {name = "technic:"..ltier.."_cable_plate_"..num}
end )
return itemstack
end end
else else
def.groups.not_in_creative_inventory = 1 def.groups.not_in_creative_inventory = 1

View File

@ -11,6 +11,8 @@ end
local recipes = { local recipes = {
{"default:snowblock", "default:ice"}, {"default:snowblock", "default:ice"},
{"default:sand 2", "default:sandstone"}, {"default:sand 2", "default:sandstone"},
{"default:desert_sand 2", "default:desert_sandstone"},
{"default:silver_sand 2", "default:silver_sandstone"},
{"default:desert_sand", "default:desert_stone"}, {"default:desert_sand", "default:desert_stone"},
{"technic:mixed_metal_ingot", "technic:composite_plate"}, {"technic:mixed_metal_ingot", "technic:composite_plate"},
{"default:copper_ingot 5", "technic:copper_plate"}, {"default:copper_ingot 5", "technic:copper_plate"},
@ -21,10 +23,21 @@ local recipes = {
-- defuse the default sandstone recipe, since we have the compressor to take over in a more realistic manner -- defuse the default sandstone recipe, since we have the compressor to take over in a more realistic manner
minetest.clear_craft({ minetest.clear_craft({
output = "default:sandstone",
recipe = { recipe = {
{'group:sand', 'group:sand'}, {"default:sand", "default:sand"},
{'group:sand', 'group:sand'} {"default:sand", "default:sand"},
},
})
minetest.clear_craft({
recipe = {
{"default:desert_sand", "default:desert_sand"},
{"default:desert_sand", "default:desert_sand"},
},
})
minetest.clear_craft({
recipe = {
{"default:silver_sand", "default:silver_sand"},
{"default:silver_sand", "default:silver_sand"},
}, },
}) })

View File

@ -36,13 +36,21 @@ if minetest.get_modpath("dye") then
-- overwrite the existing crafting recipes -- overwrite the existing crafting recipes
local dyes = {"white", "red", "yellow", "blue", "violet", "orange"} local dyes = {"white", "red", "yellow", "blue", "violet", "orange"}
for _, color in ipairs(dyes) do for _, color in ipairs(dyes) do
minetest.clear_craft({
type = "shapeless",
recipe = {"group:flower,color_"..color},
})
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "dye:"..color.." 1", output = "dye:"..color.." 1",
recipe = {"group:flower,color_"..color}, recipe = {"group:flower,color_"..color},
}) })
end end
minetest.clear_craft({
type = "shapeless",
recipe = {"group:coal"},
})
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "dye:black 1", output = "dye:black 1",
@ -50,6 +58,10 @@ if minetest.get_modpath("dye") then
}) })
if unifieddyes then if unifieddyes then
minetest.clear_craft({
type = "shapeless",
recipe = {"default:cactus"},
})
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "dye:green 1", output = "dye:green 1",

View File

@ -0,0 +1,9 @@
local S = technic.getter
function technic.register_freezer(data)
data.typename = "freezing"
data.machine_name = "freezer"
data.machine_desc = S("%s Freezer")
technic.register_base_machine(data)
end

View File

@ -0,0 +1,21 @@
local S = technic.getter
technic.register_recipe_type("freezing", { description = S("Freezing") })
function technic.register_freezer_recipe(data)
data.time = data.time or 5
technic.register_recipe("freezing", data)
end
local recipes = {
{"bucket:bucket_water", { "default:ice", "bucket:bucket_empty" } },
{"bucket:bucket_river_water", { "default:ice", "bucket:bucket_empty" } },
{"default:dirt", "default:dirt_with_snow" },
{"bucket:bucket_lava", { "default:obsidian", "bucket:bucket_empty" } }
}
for _, data in pairs(recipes) do
technic.register_freezer_recipe({input = {data[1]}, output = data[2]})
end

View File

@ -28,12 +28,26 @@ local recipes = {
{"default:cobble", "default:gravel"}, {"default:cobble", "default:gravel"},
{"default:gravel", "default:sand"}, {"default:gravel", "default:sand"},
{"default:sandstone", "default:sand 2"}, -- reverse recipe can be found in the compressor {"default:sandstone", "default:sand 2"}, -- reverse recipe can be found in the compressor
{"default:desert_sandstone", "default:desert_sand 2"}, -- reverse recipe can be found in the compressor
{"default:silver_sandstone", "default:silver_sand 2"}, -- reverse recipe can be found in the compressor
{"default:ice", "default:snowblock"},
} }
-- defuse the sandstone -> 4 sand recipe to avoid infinite sand bugs (also consult the inverse compressor recipe) -- defuse the sandstone -> 4 sand recipe to avoid infinite sand bugs (also consult the inverse compressor recipe)
minetest.clear_craft({ minetest.clear_craft({
recipe = { recipe = {
{'default:sandstone'} {"default:sandstone"}
},
})
minetest.clear_craft({
recipe = {
{"default:desert_sandstone"}
},
})
minetest.clear_craft({
recipe = {
{"default:silver_sandstone"}
}, },
}) })
@ -81,7 +95,7 @@ local function register_dust(name, ingot)
end end
-- Sorted alphibeticaly -- Sorted alphibeticaly
register_dust("Brass", "technic:brass_ingot") register_dust("Brass", "basic_materials:brass_ingot")
register_dust("Bronze", "default:bronze_ingot") register_dust("Bronze", "default:bronze_ingot")
register_dust("Carbon Steel", "technic:carbon_steel_ingot") register_dust("Carbon Steel", "technic:carbon_steel_ingot")
register_dust("Cast Iron", "technic:cast_iron_ingot") register_dust("Cast Iron", "technic:cast_iron_ingot")

View File

@ -20,6 +20,7 @@ dofile(path.."/grinder_recipes.lua")
dofile(path.."/extractor_recipes.lua") dofile(path.."/extractor_recipes.lua")
dofile(path.."/compressor_recipes.lua") dofile(path.."/compressor_recipes.lua")
dofile(path.."/centrifuge_recipes.lua") dofile(path.."/centrifuge_recipes.lua")
dofile(path.."/freezer_recipes.lua")
-- Multi-Machine Recipes -- Multi-Machine Recipes
dofile(path.."/grindings.lua") dofile(path.."/grindings.lua")
@ -31,3 +32,4 @@ dofile(path.."/grinder.lua")
dofile(path.."/extractor.lua") dofile(path.."/extractor.lua")
dofile(path.."/compressor.lua") dofile(path.."/compressor.lua")
dofile(path.."/centrifuge.lua") dofile(path.."/centrifuge.lua")
dofile(path.."/freezer.lua")

View File

@ -201,10 +201,11 @@ minetest.register_node("technic:supply_converter", {
minetest.register_craft({ minetest.register_craft({
output = 'technic:supply_converter 1', output = 'technic:supply_converter 1',
recipe = { recipe = {
{'technic:fine_gold_wire', 'technic:rubber', 'technic:doped_silicon_wafer'}, {'basic_materials:gold_wire', 'technic:rubber', 'technic:doped_silicon_wafer'},
{'technic:mv_transformer', 'technic:machine_casing', 'technic:lv_transformer'}, {'technic:mv_transformer', 'technic:machine_casing', 'technic:lv_transformer'},
{'technic:mv_cable', 'technic:rubber', 'technic:lv_cable'}, {'technic:mv_cable', 'technic:rubber', 'technic:lv_cable'},
} },
replacements = { {"basic_materials:gold_wire", "basic_materials:empty_spool"}, },
}) })
for tier, machines in pairs(technic.machines) do for tier, machines in pairs(technic.machines) do

View File

@ -146,7 +146,7 @@ local rad_resistance_node = {
["moreores:mithril_block"] = 26, ["moreores:mithril_block"] = 26,
["moreores:silver_block"] = 53, ["moreores:silver_block"] = 53,
["snow:snow_brick"] = 2.8, ["snow:snow_brick"] = 2.8,
["technic:brass_block"] = 43, ["basic_materials:brass_block"] = 43,
["technic:carbon_steel_block"] = 40, ["technic:carbon_steel_block"] = 40,
["technic:cast_iron_block"] = 40, ["technic:cast_iron_block"] = 40,
["technic:chernobylite_block"] = 40, ["technic:chernobylite_block"] = 40,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 947 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 B

View File

@ -363,8 +363,10 @@ minetest.register_craft({
output = "technic:chainsaw", output = "technic:chainsaw",
recipe = { recipe = {
{"technic:stainless_steel_ingot", trigger, "technic:battery"}, {"technic:stainless_steel_ingot", trigger, "technic:battery"},
{"technic:fine_copper_wire", "technic:motor", "technic:battery"}, {"basic_materials:copper_wire", "basic_materials:motor", "technic:battery"},
{"", "", "technic:stainless_steel_ingot"}, {"", "", "technic:stainless_steel_ingot"},
} },
replacements = { {"basic_materials:copper_wire", "basic_materials:empty_spool"}, },
}) })

View File

@ -7,7 +7,7 @@ minetest.register_craft({
output = 'technic:mining_drill', output = 'technic:mining_drill',
recipe = { recipe = {
{'default:tin_ingot', 'technic:diamond_drill_head', 'default:tin_ingot'}, {'default:tin_ingot', 'technic:diamond_drill_head', 'default:tin_ingot'},
{'technic:stainless_steel_ingot', 'technic:motor', 'technic:stainless_steel_ingot'}, {'technic:stainless_steel_ingot', 'basic_materials:motor', 'technic:stainless_steel_ingot'},
{'', 'technic:red_energy_crystal', 'default:copper_ingot'}, {'', 'technic:red_energy_crystal', 'default:copper_ingot'},
} }
}) })

View File

@ -11,8 +11,8 @@ local S = technic.getter
minetest.register_craft({ minetest.register_craft({
output = "technic:laser_mk1", output = "technic:laser_mk1",
recipe = { recipe = {
{"default:diamond", "technic:brass_ingot", "default:obsidian_glass"}, {"default:diamond", "basic_materials:brass_ingot", "default:obsidian_glass"},
{"", "technic:brass_ingot", "technic:red_energy_crystal"}, {"", "basic_materials:brass_ingot", "technic:red_energy_crystal"},
{"", "", "default:copper_ingot"}, {"", "", "default:copper_ingot"},
} }
}) })

View File

@ -122,7 +122,7 @@ minetest.register_craft({
output = "technic:prospector", output = "technic:prospector",
recipe = { recipe = {
{"moreores:pick_silver", "moreores:mithril_block", "pipeworks:teleport_tube_1"}, {"moreores:pick_silver", "moreores:mithril_block", "pipeworks:teleport_tube_1"},
{"technic:brass_ingot", "technic:control_logic_unit", "technic:brass_ingot"}, {"basic_materials:brass_ingot", "technic:control_logic_unit", "basic_materials:brass_ingot"},
{"", "technic:blue_energy_crystal", ""}, {"", "technic:blue_energy_crystal", ""},
} }
}) })

View File

@ -55,7 +55,7 @@ minetest.register_craft({
output = 'technic:vacuum', output = 'technic:vacuum',
recipe = { recipe = {
{'pipeworks:tube_1', 'pipeworks:filter', 'technic:battery'}, {'pipeworks:tube_1', 'pipeworks:filter', 'technic:battery'},
{'pipeworks:tube_1', 'technic:motor', 'technic:battery'}, {'pipeworks:tube_1', 'basic_materials:motor', 'technic:battery'},
{'technic:stainless_steel_ingot', '', ''}, {'technic:stainless_steel_ingot', '', ''},
} }
}) })

View File

@ -19,7 +19,7 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'technic:copper_locked_chest 1', output = 'technic:copper_locked_chest 1',
recipe = { recipe = {
{'default:steel_ingot'}, {'basic_materials:padlock'},
{'technic:copper_chest'}, {'technic:copper_chest'},
} }
}) })

View File

@ -1,4 +1,6 @@
default default
basic_materials
moreblocks?
moreores? moreores?
pipeworks? pipeworks?
intllib? intllib?

View File

@ -30,7 +30,7 @@ end
minetest.register_craft({ minetest.register_craft({
output = 'technic:gold_locked_chest', output = 'technic:gold_locked_chest',
recipe = { recipe = {
{'default:steel_ingot'}, {'basic_materials:padlock'},
{'technic:gold_chest'}, {'technic:gold_chest'},
} }
}) })

View File

@ -15,6 +15,63 @@ dofile(modpath.."/silver_chest.lua")
dofile(modpath.."/gold_chest.lua") dofile(modpath.."/gold_chest.lua")
dofile(modpath.."/mithril_chest.lua") dofile(modpath.."/mithril_chest.lua")
-- undo all of the locked wooden chest recipes created by default and
-- moreblocks, and just make them use a padlock.
if minetest.get_modpath("moreblocks") then
minetest.clear_craft({
type = "shapeless",
recipe = {
"default:chest",
"default:gold_ingot",
}
})
minetest.clear_craft({
type = "shapeless",
recipe = {
"default:chest",
"default:bronze_ingot",
}
})
minetest.clear_craft({
type = "shapeless",
recipe = {
"default:chest",
"default:copper_ingot",
}
})
end
minetest.clear_craft({
type = "shapeless",
recipe = {
"default:chest",
"default:steel_ingot",
}
})
minetest.clear_craft({output = "default:chest_locked"})
minetest.register_craft({
output = "default:chest_locked",
recipe = {
{ "group:wood", "group:wood", "group:wood" },
{ "group:wood", "basic_materials:padlock", "group:wood" },
{ "group:wood", "group:wood", "group:wood" }
}
})
minetest.register_craft({
output = "default:chest_locked",
type = "shapeless",
recipe = {
"default:chest",
"basic_materials:padlock"
}
})
minetest.register_lbm({ minetest.register_lbm({
name = "technic_chests:fix_wooden_chests", name = "technic_chests:fix_wooden_chests",
nodenames = {"default:chest"}, nodenames = {"default:chest"},

View File

@ -26,7 +26,7 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'technic:iron_locked_chest 1', output = 'technic:iron_locked_chest 1',
recipe = { recipe = {
{'default:steel_ingot'}, {'basic_materials:padlock'},
{'technic:iron_chest'}, {'technic:iron_chest'},
} }
}) })

View File

@ -21,7 +21,7 @@ end
minetest.register_craft({ minetest.register_craft({
output = 'technic:mithril_locked_chest 1', output = 'technic:mithril_locked_chest 1',
recipe = { recipe = {
{'default:steel_ingot'}, {'basic_materials:padlock'},
{'technic:mithril_chest'}, {'technic:mithril_chest'},
} }
}) })

View File

@ -21,7 +21,7 @@ end
minetest.register_craft({ minetest.register_craft({
output = 'technic:silver_locked_chest', output = 'technic:silver_locked_chest',
recipe = { recipe = {
{'default:steel_ingot'}, {'basic_materials:padlock'},
{'technic:silver_chest'}, {'technic:silver_chest'},
} }
}) })

View File

@ -7,18 +7,70 @@
-- I could imagine some form of API allowing modders to come with their own node -- I could imagine some form of API allowing modders to come with their own node
-- box definitions and easily stuff it in the this machine for production. -- box definitions and easily stuff it in the this machine for production.
local S = technic.getter local S = technic_cnc.getter
local allow_metadata_inventory_put
local allow_metadata_inventory_take
local allow_metadata_inventory_move
local can_dig
local desc_tr = S("CNC Machine")
minetest.register_craft({ if technic_cnc.use_technic then
minetest.register_craft({
output = 'technic:cnc', output = 'technic:cnc',
recipe = { recipe = {
{'default:glass', 'technic:diamond_drill_head', 'default:glass'}, {'default:glass', 'technic:diamond_drill_head', 'default:glass'},
{'technic:control_logic_unit', 'technic:machine_casing', 'technic:motor'}, {'technic:control_logic_unit', 'technic:machine_casing', 'basic_materials:motor'},
{'technic:carbon_steel_ingot', 'technic:lv_cable', 'technic:carbon_steel_ingot'}, {'technic:carbon_steel_ingot', 'technic:lv_cable', 'technic:carbon_steel_ingot'},
}, },
}) })
allow_metadata_inventory_put = technic.machine_inventory_put
allow_metadata_inventory_take = technic.machine_inventory_take
allow_metadata_inventory_move = technic.machine_inventory_move
can_dig = technic.machine_can_dig
desc_tr = S("%s CNC Machine"):format("LV")
else
minetest.register_craft({
output = 'technic:cnc',
recipe = {
{'default:glass', 'default:diamond', 'default:glass'},
{'basic_materials:ic', 'default:steelblock', 'basic_materials:motor'},
{'default:steel_ingot', 'default:mese', 'default:steel_ingot'},
},
})
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return stack:get_count()
end
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return stack:get_count()
end
allow_metadata_inventory_move = function(pos, from_list, from_index,
to_list, to_index, count, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return stack:get_count()
end
can_dig = function(pos, player)
if player and minetest.is_protected(pos, player:get_player_name()) then return false end
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("dst")
and inv:is_empty("src")
and default.can_interact_with_node(player, pos)
end
end
local shape = {} local shape = {}
local onesize_products = { local onesize_products = {
@ -40,7 +92,7 @@ local onesize_products = {
twocurvededge = 1, twocurvededge = 1,
} }
local twosize_products = { local twosize_products = {
element_straight = 4, element_straight = 2,
element_end = 2, element_end = 2,
element_cross = 1, element_cross = 1,
element_t = 1, element_t = 1,
@ -90,30 +142,32 @@ local cnc_formspec =
"listring[current_name;src]".. "listring[current_name;src]"..
"listring[current_player;main]" "listring[current_player;main]"
local size = 1;
-- The form handler is declared here because we need it in both the inactive and active modes -- The form handler is declared here because we need it in both the inactive and active modes
-- in order to be able to change programs wile it is running. -- in order to be able to change programs wile it is running.
local function form_handler(pos, formname, fields, sender) local function form_handler(pos, formname, fields, sender)
local meta = minetest.get_meta(pos)
-- REGISTER MILLING PROGRAMS AND OUTPUTS: -- REGISTER MILLING PROGRAMS AND OUTPUTS:
------------------------------------------ ------------------------------------------
-- Program for half/full size -- Program for half/full size
if fields["full"] then if fields["full"] then
size = 1 meta:set_int("size", 1)
return return
end end
if fields["half"] then if fields["half"] then
size = 2 meta:set_int("size", 2)
return return
end end
-- Resolve the node name and the number of items to make -- Resolve the node name and the number of items to make
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
local inputstack = inv:get_stack("src", 1) local inputstack = inv:get_stack("src", 1)
local inputname = inputstack:get_name() local inputname = inputstack:get_name()
local multiplier = 0 local multiplier = 0
local size = meta:get_int("size")
if size < 1 then size = 1 end
for k, _ in pairs(fields) do for k, _ in pairs(fields) do
-- Set a multipier for the half/full size capable blocks -- Set a multipier for the half/full size capable blocks
if twosize_products[k] ~= nil then if twosize_products[k] ~= nil then
@ -139,7 +193,19 @@ local function form_handler(pos, formname, fields, sender)
break break
end end
end end
return
if not technic_cnc.use_technic then
local result = meta:get_string("cnc_product")
if not inv:is_empty("src")
and minetest.registered_nodes[result]
and inv:room_for_item("dst", result) then
local srcstack = inv:get_stack("src", 1)
srcstack:take_item()
inv:set_stack("src", 1, srcstack)
inv:add_item("dst", result.." "..meta:get_int("cnc_multiplier"))
end
end
end end
-- Action code performing the transformation -- Action code performing the transformation
@ -147,7 +213,7 @@ local run = function(pos, node)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
local eu_input = meta:get_int("LV_EU_input") local eu_input = meta:get_int("LV_EU_input")
local machine_name = S("%s CNC Machine"):format("LV") local machine_name = desc_tr
local machine_node = "technic:cnc" local machine_node = "technic:cnc"
local demand = 450 local demand = 450
@ -181,8 +247,8 @@ local run = function(pos, node)
end end
-- The actual block inactive state -- The actual block inactive state
minetest.register_node("technic:cnc", { minetest.register_node(":technic:cnc", {
description = S("%s CNC Machine"):format("LV"), description = desc_tr,
tiles = {"technic_cnc_top.png", "technic_cnc_bottom.png", "technic_cnc_side.png", tiles = {"technic_cnc_top.png", "technic_cnc_bottom.png", "technic_cnc_side.png",
"technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front.png"}, "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front.png"},
groups = {cracky=2, technic_machine=1, technic_lv=1}, groups = {cracky=2, technic_machine=1, technic_lv=1},
@ -191,24 +257,26 @@ minetest.register_node("technic:cnc", {
legacy_facedir_simple = true, legacy_facedir_simple = true,
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("infotext", S("%s CNC Machine"):format("LV")) meta:set_string("infotext", desc_tr)
meta:set_float("technic_power_machine", 1) meta:set_float("technic_power_machine", 1)
meta:set_string("formspec", cnc_formspec) meta:set_string("formspec", cnc_formspec)
local inv = meta:get_inventory() local inv = meta:get_inventory()
inv:set_size("src", 1) inv:set_size("src", 1)
inv:set_size("dst", 4) inv:set_size("dst", 4)
end, end,
can_dig = technic.machine_can_dig, can_dig = can_dig,
allow_metadata_inventory_put = technic.machine_inventory_put, allow_metadata_inventory_put = allow_metadata_inventory_put,
allow_metadata_inventory_take = technic.machine_inventory_take, allow_metadata_inventory_take = allow_metadata_inventory_take,
allow_metadata_inventory_move = technic.machine_inventory_move, allow_metadata_inventory_move = allow_metadata_inventory_move,
on_receive_fields = form_handler, on_receive_fields = form_handler,
technic_run = run, technic_run = technic_cnc.use_technic and run,
}) })
-- Active state block -- Active state block
minetest.register_node("technic:cnc_active", { if technic_cnc.use_technic then
description = S("%s CNC Machine"):format("LV"),
minetest.register_node(":technic:cnc_active", {
description = desc_tr,
tiles = {"technic_cnc_top_active.png", "technic_cnc_bottom.png", "technic_cnc_side.png", tiles = {"technic_cnc_top_active.png", "technic_cnc_bottom.png", "technic_cnc_side.png",
"technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front_active.png"}, "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front_active.png"},
groups = {cracky=2, technic_machine=1, technic_lv=1, not_in_creative_inventory=1}, groups = {cracky=2, technic_machine=1, technic_lv=1, not_in_creative_inventory=1},
@ -216,15 +284,17 @@ minetest.register_node("technic:cnc_active", {
paramtype2 = "facedir", paramtype2 = "facedir",
drop = "technic:cnc", drop = "technic:cnc",
legacy_facedir_simple = true, legacy_facedir_simple = true,
can_dig = technic.machine_can_dig, can_dig = can_dig,
allow_metadata_inventory_put = technic.machine_inventory_put, allow_metadata_inventory_put = allow_metadata_inventory_put,
allow_metadata_inventory_take = technic.machine_inventory_take, allow_metadata_inventory_take = allow_metadata_inventory_take,
allow_metadata_inventory_move = technic.machine_inventory_move, allow_metadata_inventory_move = allow_metadata_inventory_move,
on_receive_fields = form_handler, on_receive_fields = form_handler,
technic_run = run, technic_run = run,
technic_disabled_machine_name = "technic:cnc", technic_disabled_machine_name = "technic:cnc",
}) })
technic.register_machine("LV", "technic:cnc", technic.receiver)
technic.register_machine("LV", "technic:cnc_active", technic.receiver)
technic.register_machine("LV", "technic:cnc", technic.receiver)
technic.register_machine("LV", "technic:cnc_active", technic.receiver)
else
minetest.register_alias("technic:cnc_active", "technic:cnc")
end

View File

@ -1,16 +1,14 @@
-- API for the technic CNC machine -- API for the technic CNC machine
-- Again code is adapted from the NonCubic Blocks MOD v1.4 by yves_de_beck -- Again code is adapted from the NonCubic Blocks MOD v1.4 by yves_de_beck
local S = technic.getter local S = technic_cnc.getter
technic.cnc = {}
-- REGISTER NONCUBIC FORMS, CREATE MODELS AND RECIPES: -- REGISTER NONCUBIC FORMS, CREATE MODELS AND RECIPES:
------------------------------------------------------ ------------------------------------------------------
-- Define slope boxes for the various nodes -- Define slope boxes for the various nodes
------------------------------------------- -------------------------------------------
technic.cnc.programs = { technic_cnc.programs = {
{ suffix = "technic_cnc_stick", { suffix = "technic_cnc_stick",
model = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}, model = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
desc = S("Stick") desc = S("Stick")
@ -83,7 +81,7 @@ technic.cnc.programs = {
}, },
{ suffix = "technic_cnc_oblate_spheroid", { suffix = "technic_cnc_oblate_spheroid",
model = "technic_oblate_spheroid.obj", model = "technic_cnc_oblate_spheroid.obj",
desc = S("Oblate spheroid"), desc = S("Oblate spheroid"),
cbox = { cbox = {
type = "fixed", type = "fixed",
@ -96,32 +94,32 @@ technic.cnc.programs = {
}, },
{ suffix = "technic_cnc_sphere", { suffix = "technic_cnc_sphere",
model = "technic_sphere.obj", model = "technic_cnc_sphere.obj",
desc = S("Sphere") desc = S("Sphere")
}, },
{ suffix = "technic_cnc_cylinder_horizontal", { suffix = "technic_cnc_cylinder_horizontal",
model = "technic_cylinder_horizontal.obj", model = "technic_cnc_cylinder_horizontal.obj",
desc = S("Horizontal Cylinder") desc = S("Horizontal Cylinder")
}, },
{ suffix = "technic_cnc_cylinder", { suffix = "technic_cnc_cylinder",
model = "technic_cylinder.obj", model = "technic_cnc_cylinder.obj",
desc = S("Cylinder") desc = S("Cylinder")
}, },
{ suffix = "technic_cnc_twocurvededge", { suffix = "technic_cnc_twocurvededge",
model = "technic_two_curved_edge.obj", model = "technic_cnc_two_curved_edge.obj",
desc = S("Two Curved Edge/Corner Block") desc = S("Two Curved Edge/Corner Block")
}, },
{ suffix = "technic_cnc_onecurvededge", { suffix = "technic_cnc_onecurvededge",
model = "technic_one_curved_edge.obj", model = "technic_cnc_one_curved_edge.obj",
desc = S("One Curved Edge Block") desc = S("One Curved Edge Block")
}, },
{ suffix = "technic_cnc_spike", { suffix = "technic_cnc_spike",
model = "technic_pyramid_spike.obj", model = "technic_cnc_pyramid_spike.obj",
desc = S("Spike"), desc = S("Spike"),
cbox = { cbox = {
type = "fixed", type = "fixed",
@ -135,7 +133,7 @@ technic.cnc.programs = {
}, },
{ suffix = "technic_cnc_pyramid", { suffix = "technic_cnc_pyramid",
model = "technic_pyramid.obj", model = "technic_cnc_pyramid.obj",
desc = S("Pyramid"), desc = S("Pyramid"),
cbox = { cbox = {
type = "fixed", type = "fixed",
@ -149,7 +147,7 @@ technic.cnc.programs = {
}, },
{ suffix = "technic_cnc_slope_inner_edge_upsdown", { suffix = "technic_cnc_slope_inner_edge_upsdown",
model = "technic_innercorner_upsdown.obj", model = "technic_cnc_innercorner_upsdown.obj",
desc = S("Slope Upside Down Inner Edge/Corner"), desc = S("Slope Upside Down Inner Edge/Corner"),
sbox = { sbox = {
type = "fixed", type = "fixed",
@ -170,7 +168,7 @@ technic.cnc.programs = {
}, },
{ suffix = "technic_cnc_slope_edge_upsdown", { suffix = "technic_cnc_slope_edge_upsdown",
model = "technic_outercorner_upsdown.obj", model = "technic_cnc_outercorner_upsdown.obj",
desc = S("Slope Upside Down Outer Edge/Corner"), desc = S("Slope Upside Down Outer Edge/Corner"),
cbox = { cbox = {
type = "fixed", type = "fixed",
@ -184,7 +182,7 @@ technic.cnc.programs = {
}, },
{ suffix = "technic_cnc_slope_inner_edge", { suffix = "technic_cnc_slope_inner_edge",
model = "technic_innercorner.obj", model = "technic_cnc_innercorner.obj",
desc = S("Slope Inner Edge/Corner"), desc = S("Slope Inner Edge/Corner"),
sbox = { sbox = {
type = "fixed", type = "fixed",
@ -205,7 +203,7 @@ technic.cnc.programs = {
}, },
{ suffix = "technic_cnc_slope_edge", { suffix = "technic_cnc_slope_edge",
model = "technic_outercorner.obj", model = "technic_cnc_outercorner.obj",
desc = S("Slope Outer Edge/Corner"), desc = S("Slope Outer Edge/Corner"),
cbox = { cbox = {
type = "fixed", type = "fixed",
@ -219,7 +217,7 @@ technic.cnc.programs = {
}, },
{ suffix = "technic_cnc_slope_upsdown", { suffix = "technic_cnc_slope_upsdown",
model = "technic_slope_upsdown.obj", model = "technic_cnc_slope_upsdown.obj",
desc = S("Slope Upside Down"), desc = S("Slope Upside Down"),
cbox = { cbox = {
type = "fixed", type = "fixed",
@ -233,7 +231,7 @@ technic.cnc.programs = {
}, },
{ suffix = "technic_cnc_slope_lying", { suffix = "technic_cnc_slope_lying",
model = "technic_slope_horizontal.obj", model = "technic_cnc_slope_horizontal.obj",
desc = S("Slope Lying"), desc = S("Slope Lying"),
cbox = { cbox = {
type = "fixed", type = "fixed",
@ -247,7 +245,7 @@ technic.cnc.programs = {
}, },
{ suffix = "technic_cnc_slope", { suffix = "technic_cnc_slope",
model = "technic_slope.obj", model = "technic_cnc_slope.obj",
desc = S("Slope"), desc = S("Slope"),
cbox = { cbox = {
type = "fixed", type = "fixed",
@ -263,7 +261,7 @@ technic.cnc.programs = {
} }
-- Allow disabling certain programs for some node. Default is allowing all types for all nodes -- Allow disabling certain programs for some node. Default is allowing all types for all nodes
technic.cnc.programs_disable = { technic_cnc.programs_disable = {
-- ["default:brick"] = {"technic_cnc_stick"}, -- Example: Disallow the stick for brick -- ["default:brick"] = {"technic_cnc_stick"}, -- Example: Disallow the stick for brick
-- ... -- ...
["default:dirt"] = {"technic_cnc_oblate_spheroid", "technic_cnc_slope_upsdown", "technic_cnc_edge", ["default:dirt"] = {"technic_cnc_oblate_spheroid", "technic_cnc_slope_upsdown", "technic_cnc_edge",
@ -273,7 +271,7 @@ technic.cnc.programs_disable = {
} }
-- Generic function for registering all the different node types -- Generic function for registering all the different node types
function technic.cnc.register_program(recipeitem, suffix, model, groups, images, description, cbox, sbox) function technic_cnc.register_program(recipeitem, suffix, model, groups, images, description, cbox, sbox)
local dtype local dtype
local nodeboxdef local nodeboxdef
@ -308,12 +306,12 @@ function technic.cnc.register_program(recipeitem, suffix, model, groups, images,
end end
-- function to iterate over all the programs the CNC machine knows -- function to iterate over all the programs the CNC machine knows
function technic.cnc.register_all(recipeitem, groups, images, description) function technic_cnc.register_all(recipeitem, groups, images, description)
for _, data in ipairs(technic.cnc.programs) do for _, data in ipairs(technic_cnc.programs) do
-- Disable node creation for disabled node types for some material -- Disable node creation for disabled node types for some material
local do_register = true local do_register = true
if technic.cnc.programs_disable[recipeitem] ~= nil then if technic_cnc.programs_disable[recipeitem] ~= nil then
for __, disable in ipairs(technic.cnc.programs_disable[recipeitem]) do for __, disable in ipairs(technic_cnc.programs_disable[recipeitem]) do
if disable == data.suffix then if disable == data.suffix then
do_register = false do_register = false
end end
@ -321,49 +319,49 @@ function technic.cnc.register_all(recipeitem, groups, images, description)
end end
-- Create the node if it passes the test -- Create the node if it passes the test
if do_register then if do_register then
technic.cnc.register_program(recipeitem, data.suffix, data.model, technic_cnc.register_program(recipeitem, data.suffix, data.model,
groups, images, description.." "..data.desc, data.cbox, data.sbox) groups, images, description.." "..data.desc, data.cbox, data.sbox)
end end
end end
end end
-- REGISTER NEW TECHNIC_CNC_API's PART 2: technic.cnc..register_element_end(subname, recipeitem, groups, images, desc_element_xyz) -- REGISTER NEW TECHNIC_CNC_API's PART 2: technic_cnc..register_element_end(subname, recipeitem, groups, images, desc_element_xyz)
----------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------
function technic.cnc.register_slope_edge_etc(recipeitem, groups, images, desc_slope, desc_slope_lying, desc_slope_upsdown, desc_slope_edge, desc_slope_inner_edge, desc_slope_upsdwn_edge, desc_slope_upsdwn_inner_edge, desc_pyramid, desc_spike, desc_onecurvededge, desc_twocurvededge, desc_cylinder, desc_cylinder_horizontal, desc_spheroid, desc_element_straight, desc_element_edge, desc_element_t, desc_element_cross, desc_element_end) function technic_cnc.register_slope_edge_etc(recipeitem, groups, images, desc_slope, desc_slope_lying, desc_slope_upsdown, desc_slope_edge, desc_slope_inner_edge, desc_slope_upsdwn_edge, desc_slope_upsdwn_inner_edge, desc_pyramid, desc_spike, desc_onecurvededge, desc_twocurvededge, desc_cylinder, desc_cylinder_horizontal, desc_spheroid, desc_element_straight, desc_element_edge, desc_element_t, desc_element_cross, desc_element_end)
technic.cnc.register_slope(recipeitem, groups, images, desc_slope) technic_cnc.register_slope(recipeitem, groups, images, desc_slope)
technic.cnc.register_slope_lying(recipeitem, groups, images, desc_slope_lying) technic_cnc.register_slope_lying(recipeitem, groups, images, desc_slope_lying)
technic.cnc.register_slope_upsdown(recipeitem, groups, images, desc_slope_upsdown) technic_cnc.register_slope_upsdown(recipeitem, groups, images, desc_slope_upsdown)
technic.cnc.register_slope_edge(recipeitem, groups, images, desc_slope_edge) technic_cnc.register_slope_edge(recipeitem, groups, images, desc_slope_edge)
technic.cnc.register_slope_inner_edge(recipeitem, groups, images, desc_slope_inner_edge) technic_cnc.register_slope_inner_edge(recipeitem, groups, images, desc_slope_inner_edge)
technic.cnc.register_slope_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_edge) technic_cnc.register_slope_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_edge)
technic.cnc.register_slope_inner_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_inner_edge) technic_cnc.register_slope_inner_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_inner_edge)
technic.cnc.register_pyramid(recipeitem, groups, images, desc_pyramid) technic_cnc.register_pyramid(recipeitem, groups, images, desc_pyramid)
technic.cnc.register_spike(recipeitem, groups, images, desc_spike) technic_cnc.register_spike(recipeitem, groups, images, desc_spike)
technic.cnc.register_onecurvededge(recipeitem, groups, images, desc_onecurvededge) technic_cnc.register_onecurvededge(recipeitem, groups, images, desc_onecurvededge)
technic.cnc.register_twocurvededge(recipeitem, groups, images, desc_twocurvededge) technic_cnc.register_twocurvededge(recipeitem, groups, images, desc_twocurvededge)
technic.cnc.register_cylinder(recipeitem, groups, images, desc_cylinder) technic_cnc.register_cylinder(recipeitem, groups, images, desc_cylinder)
technic.cnc.register_cylinder_horizontal(recipeitem, groups, images, desc_cylinder_horizontal) technic_cnc.register_cylinder_horizontal(recipeitem, groups, images, desc_cylinder_horizontal)
technic.cnc.register_spheroid(recipeitem, groups, images, desc_spheroid) technic_cnc.register_spheroid(recipeitem, groups, images, desc_spheroid)
technic.cnc.register_element_straight(recipeitem, groups, images, desc_element_straight) technic_cnc.register_element_straight(recipeitem, groups, images, desc_element_straight)
technic.cnc.register_element_edge(recipeitem, groups, images, desc_element_edge) technic_cnc.register_element_edge(recipeitem, groups, images, desc_element_edge)
technic.cnc.register_element_t(recipeitem, groups, images, desc_element_t) technic_cnc.register_element_t(recipeitem, groups, images, desc_element_t)
technic.cnc.register_element_cross(recipeitem, groups, images, desc_element_cross) technic_cnc.register_element_cross(recipeitem, groups, images, desc_element_cross)
technic.cnc.register_element_end(recipeitem, groups, images, desc_element_end) technic_cnc.register_element_end(recipeitem, groups, images, desc_element_end)
end end
-- REGISTER STICKS: noncubic.register_xyz(recipeitem, groups, images, desc_element_xyz) -- REGISTER STICKS: noncubic.register_xyz(recipeitem, groups, images, desc_element_xyz)
------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------
function technic.cnc.register_stick_etc(recipeitem, groups, images, desc_stick) function technic_cnc.register_stick_etc(recipeitem, groups, images, desc_stick)
technic.cnc.register_stick(recipeitem, groups, images, desc_stick) technic_cnc.register_stick(recipeitem, groups, images, desc_stick)
end end
function technic.cnc.register_elements(recipeitem, groups, images, desc_element_straight_double, desc_element_edge_double, desc_element_t_double, desc_element_cross_double, desc_element_end_double) function technic_cnc.register_elements(recipeitem, groups, images, desc_element_straight_double, desc_element_edge_double, desc_element_t_double, desc_element_cross_double, desc_element_end_double)
technic.cnc.register_element_straight_double(recipeitem, groups, images, desc_element_straight_double) technic_cnc.register_element_straight_double(recipeitem, groups, images, desc_element_straight_double)
technic.cnc.register_element_edge_double(recipeitem, groups, images, desc_element_edge_double) technic_cnc.register_element_edge_double(recipeitem, groups, images, desc_element_edge_double)
technic.cnc.register_element_t_double(recipeitem, groups, images, desc_element_t_double) technic_cnc.register_element_t_double(recipeitem, groups, images, desc_element_t_double)
technic.cnc.register_element_cross_double(recipeitem, groups, images, desc_element_cross_double) technic_cnc.register_element_cross_double(recipeitem, groups, images, desc_element_cross_double)
technic.cnc.register_element_end_double(recipeitem, groups, images, desc_element_end_double) technic_cnc.register_element_end_double(recipeitem, groups, images, desc_element_end_double)
end end

View File

@ -0,0 +1,131 @@
-- REGISTER MATERIALS AND PROPERTIES FOR NONCUBIC ELEMENTS:
-----------------------------------------------------------
local S = technic_cnc.getter
-- DIRT
-------
technic_cnc.register_all("default:dirt",
{snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
{"default_dirt.png"},
S("Dirt"))
-- (DIRT WITH) GRASS
--------------------
technic_cnc.register_all("default:dirt_with_grass",
{snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
{"default_grass.png"},
S("Grassy dirt"))
-- WOOD
-------
technic_cnc.register_all("default:wood",
{snappy=2, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1},
{"default_wood.png"},
S("Wooden"))
-- STONE
--------
technic_cnc.register_all("default:stone",
{cracky=3, not_in_creative_inventory=1},
{"default_stone.png"},
S("Stone"))
-- COBBLE
---------
technic_cnc.register_all("default:cobble",
{cracky=3, not_in_creative_inventory=1},
{"default_cobble.png"},
S("Cobble"))
-- BRICK
--------
technic_cnc.register_all("default:brick",
{cracky=3, not_in_creative_inventory=1},
{"default_brick.png"},
S("Brick"))
-- SANDSTONE
------------
technic_cnc.register_all("default:sandstone",
{crumbly=2, cracky=3, not_in_creative_inventory=1},
{"default_sandstone.png"},
S("Sandstone"))
-- LEAVES
---------
technic_cnc.register_all("default:leaves",
{snappy=2, choppy=2, oddly_breakable_by_hand=3, not_in_creative_inventory=1},
{"default_leaves.png"},
S("Leaves"))
-- TREE
-------
technic_cnc.register_all("default:tree",
{snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, wood=1, not_in_creative_inventory=1},
{"default_tree.png"},
S("Tree"))
-- Bronze
--------
technic_cnc.register_all("default:bronzeblock",
{cracky=1, level=2, not_in_creative_inventory=1},
{"default_bronze_block.png"},
S("Bronze"))
local steeltex = "default_steel_block.png"
local steelname = "Steel"
if technic_cnc.technic_modpath then
steeltex = "technic_wrought_iron_block.png"
steelname = "Wrought Iron"
-- Stainless Steel
--------
technic_cnc.register_all("technic:stainless_steel_block",
{cracky=1, level=2, not_in_creative_inventory=1},
{"technic_stainless_steel_block.png"},
S("Stainless Steel"))
-- Marble
------------
technic_cnc.register_all("technic:marble",
{cracky=3, not_in_creative_inventory=1},
{"technic_marble.png"},
S("Marble"))
-- Granite
------------
technic_cnc.register_all("technic:granite",
{cracky=1, not_in_creative_inventory=1},
{"technic_granite.png"},
S("Granite"))
-- Blast-resistant concrete
---------------------------
technic_cnc.register_all("technic:blast_resistant_concrete",
{cracky=2, level=2, not_in_creative_inventory=1},
{"technic_blast_resistant_concrete_block.png"},
S("Blast-resistant concrete"))
end
-- STEEL
---------------
technic_cnc.register_all("default:steelblock",
{cracky=1, level=2, not_in_creative_inventory=1},
{steeltex},
S(steelname))
-- CONCRETE AND CEMENT
----------------------
technic_cnc.register_all("basic_materials:concrete_block",
{cracky=2, level=2, not_in_creative_inventory=1},
{"basic_materials_concrete_block.png"},
S("Concrete"))
technic_cnc.register_all("basic_materials:cement_block",
{cracky=2, level=2, not_in_creative_inventory=1},
{"basic_materials_cement_block.png"},
S("Cement"))
technic_cnc.register_all("basic_materials:brass_block",
{cracky=1, level=2, not_in_creative_inventory=1},
{"basic_materials_brass_block.png"},
S("Brass block"))

3
technic_cnc/depends.txt Normal file
View File

@ -0,0 +1,3 @@
default
basic_materials
technic?

18
technic_cnc/init.lua Normal file
View File

@ -0,0 +1,18 @@
local modpath = minetest.get_modpath("technic_cnc")
technic_cnc = {}
technic_cnc.technic_modpath = minetest.get_modpath("technic")
technic_cnc.use_technic = technic_cnc.technic_modpath
and minetest.settings:get_bool("technic_cnc_use_technic") ~= false
if rawget(_G, "intllib") then
technic_cnc.getter = intllib.Getter()
else
technic_cnc.getter = function(s,a,...)if a==nil then return s end a={a,...}return s:gsub("(@?)@(%(?)(%d+)(%)?)",function(e,o,n,c)if e==""then return a[tonumber(n)]..(o==""and c or"")else return"@"..o..n..c end end) end
end
dofile(modpath.."/cnc.lua")
dofile(modpath.."/cnc_api.lua")
dofile(modpath.."/cnc_materials.lua")

36
technic_cnc/locale/de.txt Normal file
View File

@ -0,0 +1,36 @@
## CNC
CNC Machine = CNC-Maschine
%s CNC Machine = %s CNC-Maschine
Cylinder = Zylinder
Element Cross = Halbes Kreuzelement
Element Cross Double = Kreuzelement
Element Edge = Halbes Eckelement
Element Edge Double = Eckelement
Element End = Halbes Endelement
Element End Double = Endelement
Element Straight = Halbes aufrechtes Element
Element Straight Double = Aufrechtes Element
Element T = Halbes T-Element
Element T Double = T-Element
Horizontal Cylinder = Liegender Zylinder
One Curved Edge Block = Block mit einer abgerundeten Kante
Pyramid = Pyramide
Slope = Schraege
Slope Edge = Schraege mit Ecke
Slope Inner Edge = Schraege mit Innenecke
Slope Lying = Liegende Schraege
Slope Upside Down = Umgedrehte Schraege
Slope Upside Down Edge = Umgedrehte Schraege mit Ecke
Slope Upside Down Inner Edge = Umgedrehte Schraege mit Innenecke
Sphere = Kugel
Spike = Spitze
Stick = Stange
Two Curved Edge Block = Block mit zwei abgerundeten Kanten
Brick = Ziegel:
Cobble = Pflasterstein:
Dirt = Erde:
Leaves = Laub:
Sandstone = Sandstein:
Stone = Stein:
Tree = Baumstamm:
Wooden = Holz:

35
technic_cnc/locale/es.txt Normal file
View File

@ -0,0 +1,35 @@
## CNC
CNC Machine = Maquina CNC
%s CNC Machine = Maquina CNC %s
Element Edge = Elemento Borde
Tree = Arbol
Element Cross Double = Elemento Cruz Doble
Spike = Pica
Element Edge Double = Elemento Borde Doble
Two Curved Edge Block = Dos Bloques de Borde Curvados
Pyramid = Piramide
Slope Upside Down Inner Edge = Borde Interno de Rampa Al Reves
Slope Upside Down Edge = Borde de Rampa Al Reves
Element Straight Double = Elemento Doble Recto
Sphere = Esfera
Element End Double = Doble Fin de Elemento
Element Straight = Recta de Elemento
Horizontal Cylinder = Cilindro Horizontal
Slope Inner Edge = Borde Interno de Rampa
One Curved Edge Block = Un Bloque de Borde Curvado
Element Cross = Cruce de Elementos
Stick = Varita
Element End = Fin de Elemento
Slope Lying = Rampa en Reposo
Slope Upside Down = Rampa Al Reves
Slope Edge = Borde de Rampa
Slope = Rampa
Element T = Elemento T
Cylinder = Cilindro
Cobble = Adoquines
Stone = Piedra
Brick = Ladrillo
Dirt = Tierra
Sandstone = Arenisca
Wooden = Madera
Leaves = Hojas

36
technic_cnc/locale/it.txt Normal file
View File

@ -0,0 +1,36 @@
## CNC
CNC Machine = Tornio CNC
%s CNC Machine = Tornio CNC %s
Cylinder = Cilindro
Element Cross = Elemento a croce
Element Cross Double = Elemento a croce doppio
Element Edge = Elemento bordo
Element Edge Double = Elemento bordo doppio
Element End = Elemento finale
Element End Double = Elemento finale doppio
Element Straight = Elemento dritto
Element Straight Double = Elemento dritto doppio
Element T = Elemento a T
Element T Double = Elemento a T doppio
Horizontal Cylinder = Cilindro orizzontale
One Curved Edge Block = Blocco con bordo curvo
Pyramid = Piramide
Slope = Inclinato
Slope Edge = Bordo inclinato
Slope Inner Edge = Bordo interno inclinato
Slope Lying = Pendenza bugiarda
Slope Upside Down = Pendenza capovolta
Slope Upside Down Edge = Bordo inclinato capovolto
Slope Upside Down Inner Edge = Bordo interno inclinato capovolto
Sphere = Sfera
Spike = Spuntone
Stick = Bastone
Two Curved Edge Block = Blocco con bordo a doppia curva
Brick = Mattone
Cobble = Ciottolato
Dirt = Terra
Leaves = Foglie
Sandstone = Arenaria
Stone = Pietra
Tree = Albero
Wooden = Legno

View File

@ -0,0 +1,36 @@
## CNC
CNC Machine =
%s CNC Machine =
Cylinder =
Element Cross =
Element Cross Double =
Element Edge =
Element Edge Double =
Element End =
Element End Double =
Element Straight =
Element Straight Double =
Element T =
Element T Double =
Horizontal Cylinder =
One Curved Edge Block =
Pyramid =
Slope =
Slope Edge =
Slope Inner Edge =
Slope Lying =
Slope Upside Down =
Slope Upside Down Edge =
Slope Upside Down Inner Edge =
Sphere =
Spike =
Stick =
Two Curved Edge Block =
Brick =
Cobble =
Dirt =
Leaves =
Sandstone =
Stone =
Tree =
Wooden =

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 997 B

After

Width:  |  Height:  |  Size: 997 B

Some files were not shown because too many files have changed in this diff Show More