Compare commits
	
		
			23 Commits
		
	
	
		
			488f80d950
			...
			8ebc1de29c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					8ebc1de29c | ||
| 
						 | 
					e1a71a8fb0 | ||
| 
						 | 
					701240bc3a | ||
| 
						 | 
					aa82fa1d13 | ||
| 
						 | 
					bdd13beeff | ||
| 
						 | 
					f5bf0d98b1 | ||
| 
						 | 
					3cafe7553a | ||
| 
						 | 
					bc26b047d2 | ||
| 
						 | 
					83ec1b2476 | ||
| 
						 | 
					c068edec65 | ||
| 
						 | 
					4ecb3d4334 | ||
| 
						 | 
					d40946fa38 | ||
| 
						 | 
					dc0689018d | ||
| 
						 | 
					51d7bd81ff | ||
| 
						 | 
					2b2411d1ee | ||
| 
						 | 
					8409be32fc | ||
| 
						 | 
					3d52b679b0 | ||
| 
						 | 
					44cb8df048 | ||
| 
						 | 
					f702a6597b | ||
| 
						 | 
					e931041358 | ||
| 
						 | 
					5b97d94dae | ||
| 
						 | 
					92dd0f4af8 | ||
| 
						 | 
					29f746369f | 
@@ -1,3 +1,4 @@
 | 
			
		||||
default
 | 
			
		||||
basic_materials
 | 
			
		||||
intllib?
 | 
			
		||||
 | 
			
		||||
moreblocks?
 | 
			
		||||
 
 | 
			
		||||
@@ -23,24 +23,6 @@ else
 | 
			
		||||
	steel_ingot = "default:steel_ingot"
 | 
			
		||||
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({
 | 
			
		||||
	output = 'technic:concrete_post_platform 6',
 | 
			
		||||
	recipe = {
 | 
			
		||||
@@ -51,9 +33,9 @@ minetest.register_craft({
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:concrete_post 12',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'default:stone','technic:rebar','default:stone'},
 | 
			
		||||
		{'default:stone','technic:rebar','default:stone'},
 | 
			
		||||
		{'default:stone','technic:rebar','default:stone'},
 | 
			
		||||
		{'default:stone','basic_materials:steel_bar','default:stone'},
 | 
			
		||||
		{'default:stone','basic_materials:steel_bar','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", {
 | 
			
		||||
	description = S("Blast-resistant Concrete Block"),
 | 
			
		||||
	tiles = {"technic_blast_resistant_concrete_block.png",},
 | 
			
		||||
@@ -91,6 +61,20 @@ minetest.register_node(":technic:blast_resistant_concrete", {
 | 
			
		||||
	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_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", {
 | 
			
		||||
	description = S("Concrete Post Platform"),
 | 
			
		||||
	tiles = {"technic_concrete_block.png",},
 | 
			
		||||
	tiles = {"basic_materials_concrete_block.png",},
 | 
			
		||||
	groups={cracky=1, level=2},
 | 
			
		||||
	sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
@@ -133,7 +117,7 @@ for platform = 0, 1 do
 | 
			
		||||
 | 
			
		||||
	minetest.register_node(":technic:concrete_post"..(platform == 1 and "_with_platform" or ""), {
 | 
			
		||||
		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},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		drop = (platform == 1 and "technic:concrete_post_platform" or
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 500 B  | 
| 
		 Before Width: | Height: | Size: 813 B  | 
@@ -1,6 +1,9 @@
 | 
			
		||||
default
 | 
			
		||||
technic_worldgen
 | 
			
		||||
basic_materials
 | 
			
		||||
concrete
 | 
			
		||||
unifieddyes?
 | 
			
		||||
intllib?
 | 
			
		||||
moreblocks?
 | 
			
		||||
steel?
 | 
			
		||||
streetsmod?
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,7 @@ if minetest.get_modpath("moreblocks") then
 | 
			
		||||
	stairsplus:register_all("technic", "concrete", "technic:concrete", {
 | 
			
		||||
		description=S("Concrete"),
 | 
			
		||||
		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", {
 | 
			
		||||
@@ -57,12 +57,6 @@ if minetest.get_modpath("moreblocks") then
 | 
			
		||||
		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)
 | 
			
		||||
		minetest.register_alias(modname .. ":slab_" .. origname, newmod..":slab_" .. newname)
 | 
			
		||||
		minetest.register_alias(modname .. ":slab_" .. origname .. "_inverted", newmod..":slab_" .. newname .. "_inverted")
 | 
			
		||||
@@ -103,7 +97,7 @@ if minetest.get_modpath("moreblocks") then
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local iclip_def = {
 | 
			
		||||
	description = "Insulator/cable clip",
 | 
			
		||||
	description = S("Insulator/cable clip"),
 | 
			
		||||
	drawtype = "mesh",
 | 
			
		||||
	mesh = "technic_insulator_clip.obj",
 | 
			
		||||
	tiles = {"technic_insulator_clip.png"},
 | 
			
		||||
@@ -113,7 +107,7 @@ local iclip_def = {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local iclipfence_def = {
 | 
			
		||||
	description = "Insulator/cable clip",
 | 
			
		||||
	description = S("Insulator/cable clip"),
 | 
			
		||||
	tiles = {"technic_insulator_clip.png"},
 | 
			
		||||
	is_ground_content = false,
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
@@ -146,23 +140,55 @@ local iclipfence_def = {
 | 
			
		||||
	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
 | 
			
		||||
	iclip_def.paramtype2 = "colorwallmounted"
 | 
			
		||||
	iclip_def.palette = "unifieddyes_palette_colorwallmounted.png"
 | 
			
		||||
	iclip_def.after_place_node = function(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
		unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing)
 | 
			
		||||
	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}
 | 
			
		||||
 | 
			
		||||
	iclipfence_def.paramtype2 = "color"
 | 
			
		||||
	iclipfence_def.palette = "unifieddyes_palette_extended.png"
 | 
			
		||||
	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.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
 | 
			
		||||
 | 
			
		||||
minetest.register_node(":technic:insulator_clip", iclip_def)
 | 
			
		||||
@@ -185,3 +211,96 @@ minetest.register_craft({
 | 
			
		||||
		{ "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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										246
									
								
								extranodes/models/technic_steel_strut_with_insulator_clip.obj
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								extranodes/textures/technic_steel_strut_overlay.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 123 B  | 
@@ -38,6 +38,18 @@ if pipeworks.enable_teleport_tube then
 | 
			
		||||
	})
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
@@ -71,54 +83,24 @@ minetest.register_craft({
 | 
			
		||||
	output = 'technic:red_energy_crystal',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'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'},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
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({
 | 
			
		||||
	output = 'technic:copper_coil 1',
 | 
			
		||||
	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:fine_copper_wire', 'technic:wrought_iron_ingot', 'technic:fine_copper_wire'},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:motor',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'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'},
 | 
			
		||||
	}
 | 
			
		||||
		{'basic_materials:copper_wire', 'technic:wrought_iron_ingot', 'basic_materials:copper_wire'},
 | 
			
		||||
	},
 | 
			
		||||
	replacements = {
 | 
			
		||||
		{"basic_materials:copper_wire", "basic_materials:empty_spool"},
 | 
			
		||||
		{"basic_materials:copper_wire", "basic_materials:empty_spool"},
 | 
			
		||||
		{"basic_materials:copper_wire", "basic_materials:empty_spool"},
 | 
			
		||||
		{"basic_materials:copper_wire", "basic_materials:empty_spool"}
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
local isolation = mesecons_materials and "mesecons_materials:fiber" or "technic:rubber"
 | 
			
		||||
@@ -153,10 +135,11 @@ minetest.register_craft({
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:control_logic_unit',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'', 'technic:fine_gold_wire', ''},
 | 
			
		||||
		{'', 'basic_materials:gold_wire', ''},
 | 
			
		||||
		{'default:copper_ingot', 'technic:silicon_wafer', 'default:copper_ingot'},
 | 
			
		||||
		{'', 'technic:chromium_ingot', ''},
 | 
			
		||||
	}
 | 
			
		||||
	},
 | 
			
		||||
	replacements = { {"basic_materials:gold_wire", "basic_materials:empty_spool"}, },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
@@ -179,7 +162,7 @@ minetest.register_craft({
 | 
			
		||||
	output = "technic:machine_casing",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ "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" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
default
 | 
			
		||||
pipeworks
 | 
			
		||||
technic_worldgen
 | 
			
		||||
basic_materials
 | 
			
		||||
bucket?
 | 
			
		||||
screwdriver?
 | 
			
		||||
mesecons?
 | 
			
		||||
@@ -10,3 +11,4 @@ digiline_remote?
 | 
			
		||||
intllib?
 | 
			
		||||
unified_inventory?
 | 
			
		||||
vector_extras?
 | 
			
		||||
dye?
 | 
			
		||||
 
 | 
			
		||||
@@ -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", {
 | 
			
		||||
	description = S("Copper Coil"),
 | 
			
		||||
	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", {
 | 
			
		||||
	description = S("Low Voltage Transformer"),
 | 
			
		||||
	inventory_image = "technic_lv_transformer.png",
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,6 @@ Disabled =
 | 
			
		||||
%s Alloy Furnace = %s Legierungsofen
 | 
			
		||||
%s Battery Box = %s Batteriebox
 | 
			
		||||
%s Cable = %s Kabel
 | 
			
		||||
%s CNC Machine = %s CNC-Maschine
 | 
			
		||||
%s Compressor = %s Kompressor
 | 
			
		||||
%s Extractor = %s Extraktor
 | 
			
		||||
%s Forcefield Emitter = %s Kraftfeld-Emitter 
 | 
			
		||||
@@ -121,41 +120,6 @@ Digging finished =
 | 
			
		||||
Digging %d m above 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
 | 
			
		||||
# $1: Name
 | 
			
		||||
%s Dust = %sstaub
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,6 @@ Disabled =
 | 
			
		||||
%s Alloy Furnace = Horno de Aleacion %s
 | 
			
		||||
%s Battery Box = Caja de Bateria %s
 | 
			
		||||
%s Cable = Cable %s
 | 
			
		||||
%s CNC Machine = Maquina CNC %s
 | 
			
		||||
%s Compressor = Compresor %s
 | 
			
		||||
%s Extractor = Extractor %s
 | 
			
		||||
%s Forcefield Emitter = Emisor de Campo de Fuerza %s
 | 
			
		||||
@@ -115,40 +114,6 @@ Digging finished =
 | 
			
		||||
Digging %d m above 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
 | 
			
		||||
# $1: Name
 | 
			
		||||
%s Dust = Polvo de %s
 | 
			
		||||
 
 | 
			
		||||
@@ -64,7 +64,6 @@ Disabled = Disabilitato
 | 
			
		||||
%s Alloy Furnace = %s Fornace per leghe
 | 
			
		||||
%s Battery Box =  %s Box batterie
 | 
			
		||||
%s Cable = Cavo %s
 | 
			
		||||
%s CNC Machine = Tornio CNC %s
 | 
			
		||||
%s Compressor = Compressore %s
 | 
			
		||||
%s Extractor = Estrattore %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 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
 | 
			
		||||
# $1: Name
 | 
			
		||||
%s Dust = Polvere di %s
 | 
			
		||||
 
 | 
			
		||||
@@ -71,7 +71,6 @@ Disabled =
 | 
			
		||||
%s Alloy Furnace =
 | 
			
		||||
%s Battery Box =
 | 
			
		||||
%s Cable =
 | 
			
		||||
%s CNC Machine =
 | 
			
		||||
%s Centrifuge =
 | 
			
		||||
%s Compressor =
 | 
			
		||||
%s Extractor =
 | 
			
		||||
@@ -127,40 +126,6 @@ Digging %d m above machine =
 | 
			
		||||
Digging %d m below machine =
 | 
			
		||||
@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
 | 
			
		||||
# $1: Name
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ local cable_entry = "^technic_cable_connection_overlay.png"
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "technic:forcefield_emitter_off",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{"default:mese",         "technic:motor",          "default:mese"        },
 | 
			
		||||
		{"default:mese",         "basic_materials:motor",          "default:mese"        },
 | 
			
		||||
		{"technic:deployer_off", "technic:machine_casing", "technic:deployer_off"},
 | 
			
		||||
		{"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 range = meta:get_int("range")
 | 
			
		||||
	local vm = VoxelManip()
 | 
			
		||||
@@ -86,11 +86,6 @@ local function update_forcefield(pos, meta, active, first)
 | 
			
		||||
	vm:set_data(data)
 | 
			
		||||
	vm:update_liquids()
 | 
			
		||||
	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
 | 
			
		||||
 | 
			
		||||
local function set_forcefield_formspec(meta)
 | 
			
		||||
@@ -273,13 +268,11 @@ local function run(pos, node)
 | 
			
		||||
			technic.swap_node(pos, "technic:forcefield_emitter_off")
 | 
			
		||||
		end
 | 
			
		||||
	elseif eu_input >= power_requirement then
 | 
			
		||||
		local first = false
 | 
			
		||||
		if node.name == "technic:forcefield_emitter_off" then
 | 
			
		||||
			first = true
 | 
			
		||||
			technic.swap_node(pos, "technic:forcefield_emitter_on")
 | 
			
		||||
			meta:set_string("infotext", S("%s Active"):format(machine_name))
 | 
			
		||||
		end
 | 
			
		||||
		update_forcefield(pos, meta, true, first)
 | 
			
		||||
		update_forcefield(pos, meta, true)
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ local cable_entry = "^technic_cable_connection_overlay.png"
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{"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"}},
 | 
			
		||||
	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
 | 
			
		||||
		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
 | 
			
		||||
			(pdir.z == -1 and vector.new(-1,0,0) 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)
 | 
			
		||||
				local dignodedef = minetest.registered_nodes[dignode.name] or {diggable=false}
 | 
			
		||||
				-- doors mod among other thing does NOT like a nil digger...
 | 
			
		||||
				local fakedigger = {
 | 
			
		||||
					get_player_name = function()
 | 
			
		||||
						return "!technic_quarry_fake_digger"
 | 
			
		||||
					end,
 | 
			
		||||
					is_player = function() return false end,
 | 
			
		||||
					get_wielded_item = function()
 | 
			
		||||
						return ItemStack("air")
 | 
			
		||||
					end,
 | 
			
		||||
				}
 | 
			
		||||
				local fakedigger = pipeworks.create_fake_player({
 | 
			
		||||
					name = owner
 | 
			
		||||
				})
 | 
			
		||||
				if not dignodedef.diggable or (dignodedef.can_dig and not dignodedef.can_dig(digpos, fakedigger)) then
 | 
			
		||||
					can_dig = false
 | 
			
		||||
				end
 | 
			
		||||
 
 | 
			
		||||
@@ -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"))
 | 
			
		||||
 | 
			
		||||
@@ -4,10 +4,14 @@ minetest.register_alias("compressor", "technic:lv_compressor")
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:lv_compressor',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'default:stone',            'technic:motor',          'default:stone'},
 | 
			
		||||
		{'default:stone',            'basic_materials:motor',          'default:stone'},
 | 
			
		||||
		{'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})
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@ minetest.register_alias("extractor", "technic:lv_extractor")
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:lv_extractor',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'technic:treetap', 'technic:motor',          'technic:treetap'},
 | 
			
		||||
		{'technic:treetap', 'basic_materials:motor',          'technic:treetap'},
 | 
			
		||||
		{'technic:treetap', 'technic:machine_casing', 'technic:treetap'},
 | 
			
		||||
		{'',                'technic:lv_cable',       ''},
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,9 +11,13 @@ minetest.register_craft({
 | 
			
		||||
	output = 'technic:geothermal',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'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'},
 | 
			
		||||
	}
 | 
			
		||||
	},
 | 
			
		||||
	replacements = {
 | 
			
		||||
		{"basic_materials:copper_wire", "basic_materials:empty_spool"},
 | 
			
		||||
		{"basic_materials:copper_wire", "basic_materials:empty_spool"}
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_craftitem("technic:geothermal", {
 | 
			
		||||
 
 | 
			
		||||
@@ -22,8 +22,3 @@ dofile(path.."/extractor.lua")
 | 
			
		||||
dofile(path.."/compressor.lua")
 | 
			
		||||
 | 
			
		||||
dofile(path.."/music_player.lua")
 | 
			
		||||
 | 
			
		||||
dofile(path.."/cnc.lua")
 | 
			
		||||
dofile(path.."/cnc_api.lua")
 | 
			
		||||
dofile(path.."/cnc_nodes.lua")
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,9 +9,9 @@ minetest.register_craft({
 | 
			
		||||
	output = 'technic:solar_panel',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'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"}, },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "technic:mv_centrifuge",
 | 
			
		||||
	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"      },
 | 
			
		||||
		{"pipeworks:one_way_tube", "technic:mv_cable",       "pipeworks:mese_filter"     },
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								technic/machines/MV/freezer.lua
									
									
									
									
									
										Normal 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})
 | 
			
		||||
@@ -18,7 +18,7 @@ minetest.register_craft({
 | 
			
		||||
 | 
			
		||||
local function get_water_flow(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
 | 
			
		||||
	end
 | 
			
		||||
	return 0
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,8 @@ dofile(path.."/centrifuge.lua")
 | 
			
		||||
 | 
			
		||||
dofile(path.."/tool_workshop.lua")
 | 
			
		||||
 | 
			
		||||
dofile(path.."/freezer.lua")
 | 
			
		||||
 | 
			
		||||
-- The power radiator supplies appliances with inductive coupled power:
 | 
			
		||||
-- Lighting and associated textures is taken directly from VanessaE's homedecor and made electric.
 | 
			
		||||
-- This is currently useless, slow, and mostly copied
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ minetest.register_craft({
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:wind_mill',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'',                           'technic:motor',              ''},
 | 
			
		||||
		{'',                           'basic_materials:motor',              ''},
 | 
			
		||||
		{'technic:carbon_steel_ingot', 'technic:carbon_steel_block', 'technic:carbon_steel_ingot'},
 | 
			
		||||
		{'',                           'technic:mv_cable',           ''},
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -979,7 +979,7 @@ minetest.register_craft({
 | 
			
		||||
	output = 'technic:frame_111111',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ '',              'default:stick',       '' },
 | 
			
		||||
		{ 'default:stick', 'technic:brass_ingot', 'default:stick' },
 | 
			
		||||
		{ 'default:stick', 'basic_materials:brass_ingot', 'default:stick' },
 | 
			
		||||
		{ '',              'default:stick',       '' },
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
@@ -988,7 +988,7 @@ minetest.register_craft({
 | 
			
		||||
	output = 'technic:frame_motor',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ '',                                  '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', '' },
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
@@ -996,9 +996,9 @@ minetest.register_craft({
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:template 10',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ '',                    'technic:brass_ingot',  '' },
 | 
			
		||||
		{ 'technic:brass_ingot', 'default:mese_crystal', 'technic:brass_ingot' },
 | 
			
		||||
		{ '',                    'technic:brass_ingot',  '' },
 | 
			
		||||
		{ '',                    'basic_materials:brass_ingot',  '' },
 | 
			
		||||
		{ 'basic_materials:brass_ingot', 'default:mese_crystal', 'basic_materials:brass_ingot' },
 | 
			
		||||
		{ '',                    'basic_materials:brass_ingot',  '' },
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@@ -1016,7 +1016,7 @@ minetest.register_craft({
 | 
			
		||||
	output = 'technic:template_motor',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{ '',                                  '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', '' },
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ local recipes = {
 | 
			
		||||
	{"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: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"},
 | 
			
		||||
	{"technic:silicon_wafer",         "technic:gold_dust",          "technic:doped_silicon_wafer"},
 | 
			
		||||
	-- from https://en.wikipedia.org/wiki/Carbon_black
 | 
			
		||||
 
 | 
			
		||||
@@ -117,6 +117,19 @@ local function clear_networks(pos)
 | 
			
		||||
	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)
 | 
			
		||||
	local ltier = string.lower(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]
 | 
			
		||||
					end
 | 
			
		||||
				end
 | 
			
		||||
				minetest.set_node(pointed_thing.above, {name = "technic:"..ltier.."_cable_plate_"..num})
 | 
			
		||||
				if not (creative and creative.is_enabled_for(placer)) then
 | 
			
		||||
					itemstack:take_item()
 | 
			
		||||
				end
 | 
			
		||||
				return itemstack
 | 
			
		||||
				return item_place_override_node(
 | 
			
		||||
					itemstack, placer, pointed_thing,
 | 
			
		||||
					{name = "technic:"..ltier.."_cable_plate_"..num}
 | 
			
		||||
				)
 | 
			
		||||
			end
 | 
			
		||||
		else
 | 
			
		||||
			def.groups.not_in_creative_inventory = 1
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,8 @@ end
 | 
			
		||||
local recipes = {
 | 
			
		||||
	{"default:snowblock",          "default:ice"},
 | 
			
		||||
	{"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"},
 | 
			
		||||
	{"technic:mixed_metal_ingot",  "technic:composite_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
 | 
			
		||||
minetest.clear_craft({
 | 
			
		||||
	output = "default:sandstone",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'group:sand', 'group:sand'},
 | 
			
		||||
		{'group:sand', 'group:sand'}
 | 
			
		||||
		{"default:sand", "default: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"},
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -36,13 +36,21 @@ if minetest.get_modpath("dye") then
 | 
			
		||||
	-- overwrite the existing crafting recipes
 | 
			
		||||
	local dyes = {"white", "red", "yellow", "blue", "violet", "orange"}
 | 
			
		||||
	for _, color in ipairs(dyes) do
 | 
			
		||||
		minetest.register_craft({
 | 
			
		||||
		        type = "shapeless",
 | 
			
		||||
		        output = "dye:"..color.." 1",
 | 
			
		||||
		        recipe = {"group:flower,color_"..color},
 | 
			
		||||
		minetest.clear_craft({
 | 
			
		||||
			type = "shapeless",
 | 
			
		||||
			recipe = {"group:flower,color_"..color},
 | 
			
		||||
		})
 | 
			
		||||
		minetest.register_craft({
 | 
			
		||||
			type = "shapeless",
 | 
			
		||||
			output = "dye:"..color.." 1",
 | 
			
		||||
			recipe = {"group:flower,color_"..color},
 | 
			
		||||
		})
 | 
			
		||||
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	minetest.clear_craft({
 | 
			
		||||
		type = "shapeless",
 | 
			
		||||
		recipe = {"group:coal"},
 | 
			
		||||
	})
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		type = "shapeless",
 | 
			
		||||
		output = "dye:black 1",
 | 
			
		||||
@@ -50,6 +58,10 @@ if minetest.get_modpath("dye") then
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if unifieddyes then
 | 
			
		||||
		minetest.clear_craft({
 | 
			
		||||
			type = "shapeless",
 | 
			
		||||
			recipe = {"default:cactus"},
 | 
			
		||||
		})
 | 
			
		||||
		minetest.register_craft({
 | 
			
		||||
			type = "shapeless",
 | 
			
		||||
			output = "dye:green 1",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								technic/machines/register/freezer.lua
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										21
									
								
								technic/machines/register/freezer_recipes.lua
									
									
									
									
									
										Normal 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
 | 
			
		||||
 | 
			
		||||
@@ -25,15 +25,29 @@ local recipes = {
 | 
			
		||||
	{"default:sand",               "technic:stone_dust"},
 | 
			
		||||
 | 
			
		||||
	-- Other
 | 
			
		||||
	{"default:cobble",          "default:gravel"},
 | 
			
		||||
	{"default:gravel",          "default:sand"},
 | 
			
		||||
	{"default:sandstone",       "default:sand 2"}, -- reverse recipe can be found in the compressor
 | 
			
		||||
	{"default:cobble",           "default:gravel"},
 | 
			
		||||
	{"default:gravel",           "default:sand"},
 | 
			
		||||
	{"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)
 | 
			
		||||
minetest.clear_craft({
 | 
			
		||||
	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
 | 
			
		||||
 | 
			
		||||
-- Sorted alphibeticaly
 | 
			
		||||
register_dust("Brass",           "technic:brass_ingot")
 | 
			
		||||
register_dust("Brass",           "basic_materials:brass_ingot")
 | 
			
		||||
register_dust("Bronze",          "default:bronze_ingot")
 | 
			
		||||
register_dust("Carbon Steel",    "technic:carbon_steel_ingot")
 | 
			
		||||
register_dust("Cast Iron",       "technic:cast_iron_ingot")
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@ dofile(path.."/grinder_recipes.lua")
 | 
			
		||||
dofile(path.."/extractor_recipes.lua")
 | 
			
		||||
dofile(path.."/compressor_recipes.lua")
 | 
			
		||||
dofile(path.."/centrifuge_recipes.lua")
 | 
			
		||||
dofile(path.."/freezer_recipes.lua")
 | 
			
		||||
 | 
			
		||||
-- Multi-Machine Recipes
 | 
			
		||||
dofile(path.."/grindings.lua")
 | 
			
		||||
@@ -31,3 +32,4 @@ dofile(path.."/grinder.lua")
 | 
			
		||||
dofile(path.."/extractor.lua")
 | 
			
		||||
dofile(path.."/compressor.lua")
 | 
			
		||||
dofile(path.."/centrifuge.lua")
 | 
			
		||||
dofile(path.."/freezer.lua")
 | 
			
		||||
 
 | 
			
		||||
@@ -201,10 +201,11 @@ minetest.register_node("technic:supply_converter", {
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:supply_converter 1',
 | 
			
		||||
	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_cable',       'technic:rubber',         'technic:lv_cable'},
 | 
			
		||||
	}
 | 
			
		||||
	},
 | 
			
		||||
	replacements = { {"basic_materials:gold_wire", "basic_materials:empty_spool"}, },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
for tier, machines in pairs(technic.machines) do
 | 
			
		||||
 
 | 
			
		||||
@@ -146,7 +146,7 @@ local rad_resistance_node = {
 | 
			
		||||
	["moreores:mithril_block"] = 26,
 | 
			
		||||
	["moreores:silver_block"] = 53,
 | 
			
		||||
	["snow:snow_brick"] = 2.8,
 | 
			
		||||
	["technic:brass_block"] = 43,
 | 
			
		||||
	["basic_materials:brass_block"] = 43,
 | 
			
		||||
	["technic:carbon_steel_block"] = 40,
 | 
			
		||||
	["technic:cast_iron_block"] = 40,
 | 
			
		||||
	["technic:chernobylite_block"] = 40,
 | 
			
		||||
 
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 501 B  | 
| 
		 Before Width: | Height: | Size: 474 B  | 
| 
		 Before Width: | Height: | Size: 546 B  | 
| 
		 Before Width: | Height: | Size: 2.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								technic/textures/technic_mv_freezer_bottom.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 284 B  | 
							
								
								
									
										
											BIN
										
									
								
								technic/textures/technic_mv_freezer_front.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 413 B  | 
							
								
								
									
										
											BIN
										
									
								
								technic/textures/technic_mv_freezer_front_active.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 447 B  | 
							
								
								
									
										
											BIN
										
									
								
								technic/textures/technic_mv_freezer_side.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 381 B  | 
							
								
								
									
										
											BIN
										
									
								
								technic/textures/technic_mv_freezer_top.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 325 B  | 
							
								
								
									
										
											BIN
										
									
								
								technic/textures/technicx32/technic_mv_freezer_bottom.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 672 B  | 
							
								
								
									
										
											BIN
										
									
								
								technic/textures/technicx32/technic_mv_freezer_front.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 947 B  | 
							
								
								
									
										
											BIN
										
									
								
								technic/textures/technicx32/technic_mv_freezer_front_active.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								technic/textures/technicx32/technic_mv_freezer_side.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								technic/textures/technicx32/technic_mv_freezer_top.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 826 B  | 
@@ -363,8 +363,10 @@ minetest.register_craft({
 | 
			
		||||
	output = "technic:chainsaw",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{"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"},
 | 
			
		||||
	}
 | 
			
		||||
	},
 | 
			
		||||
	replacements = { {"basic_materials:copper_wire", "basic_materials:empty_spool"}, },
 | 
			
		||||
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ minetest.register_craft({
 | 
			
		||||
	output = 'technic:mining_drill',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'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'},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -11,8 +11,8 @@ local S = technic.getter
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = "technic:laser_mk1",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{"default:diamond", "technic:brass_ingot",        "default:obsidian_glass"},
 | 
			
		||||
		{"",                "technic:brass_ingot",        "technic:red_energy_crystal"},
 | 
			
		||||
		{"default:diamond", "basic_materials:brass_ingot",        "default:obsidian_glass"},
 | 
			
		||||
		{"",                "basic_materials:brass_ingot",        "technic:red_energy_crystal"},
 | 
			
		||||
		{"",                "",                           "default:copper_ingot"},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -122,7 +122,7 @@ minetest.register_craft({
 | 
			
		||||
	output = "technic:prospector",
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{"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", ""},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@ minetest.register_craft({
 | 
			
		||||
	output = 'technic:vacuum',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'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', '',                 ''},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ minetest.register_craft({
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:copper_locked_chest 1',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'default:steel_ingot'},
 | 
			
		||||
		{'basic_materials:padlock'},
 | 
			
		||||
		{'technic:copper_chest'},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,6 @@
 | 
			
		||||
default
 | 
			
		||||
basic_materials
 | 
			
		||||
moreblocks?
 | 
			
		||||
moreores?
 | 
			
		||||
pipeworks?
 | 
			
		||||
intllib?
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,7 @@ end
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:gold_locked_chest',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'default:steel_ingot'},
 | 
			
		||||
		{'basic_materials:padlock'},
 | 
			
		||||
		{'technic:gold_chest'},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,63 @@ dofile(modpath.."/silver_chest.lua")
 | 
			
		||||
dofile(modpath.."/gold_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({
 | 
			
		||||
	name = "technic_chests:fix_wooden_chests",
 | 
			
		||||
	nodenames = {"default:chest"},
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,7 @@ minetest.register_craft({
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:iron_locked_chest 1',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'default:steel_ingot'},
 | 
			
		||||
		{'basic_materials:padlock'},
 | 
			
		||||
		{'technic:iron_chest'},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ end
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:mithril_locked_chest 1',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'default:steel_ingot'},
 | 
			
		||||
		{'basic_materials:padlock'},
 | 
			
		||||
		{'technic:mithril_chest'},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ end
 | 
			
		||||
minetest.register_craft({
 | 
			
		||||
	output = 'technic:silver_locked_chest',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'default:steel_ingot'},
 | 
			
		||||
		{'basic_materials:padlock'},
 | 
			
		||||
		{'technic:silver_chest'},
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -7,18 +7,70 @@
 | 
			
		||||
--   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.
 | 
			
		||||
 | 
			
		||||
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({
 | 
			
		||||
	output = 'technic:cnc',
 | 
			
		||||
	recipe = {
 | 
			
		||||
		{'default:glass',              'technic:diamond_drill_head', 'default:glass'},
 | 
			
		||||
		{'technic:control_logic_unit', 'technic:machine_casing',     'technic:motor'},
 | 
			
		||||
		{'technic:carbon_steel_ingot', 'technic:lv_cable',           'technic:carbon_steel_ingot'},
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
if technic_cnc.use_technic then
 | 
			
		||||
	minetest.register_craft({
 | 
			
		||||
		output = 'technic:cnc',
 | 
			
		||||
		recipe = {
 | 
			
		||||
			{'default:glass',              'technic:diamond_drill_head', 'default:glass'},
 | 
			
		||||
			{'technic:control_logic_unit', 'technic:machine_casing',     'basic_materials:motor'},
 | 
			
		||||
			{'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 onesize_products = {
 | 
			
		||||
@@ -40,7 +92,7 @@ local onesize_products = {
 | 
			
		||||
	twocurvededge            = 1,
 | 
			
		||||
}
 | 
			
		||||
local twosize_products = {
 | 
			
		||||
	element_straight         = 4,
 | 
			
		||||
	element_straight         = 2,
 | 
			
		||||
	element_end              = 2,
 | 
			
		||||
	element_cross            = 1,
 | 
			
		||||
	element_t                = 1,
 | 
			
		||||
@@ -90,30 +142,32 @@ local cnc_formspec =
 | 
			
		||||
	"listring[current_name;src]"..
 | 
			
		||||
	"listring[current_player;main]"
 | 
			
		||||
 | 
			
		||||
local size = 1;
 | 
			
		||||
 | 
			
		||||
-- 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.
 | 
			
		||||
local function form_handler(pos, formname, fields, sender)
 | 
			
		||||
	local meta       = minetest.get_meta(pos)
 | 
			
		||||
 | 
			
		||||
	-- REGISTER MILLING PROGRAMS AND OUTPUTS:
 | 
			
		||||
	------------------------------------------
 | 
			
		||||
	-- Program for half/full size
 | 
			
		||||
	if fields["full"] then
 | 
			
		||||
		size = 1
 | 
			
		||||
		meta:set_int("size", 1)
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if fields["half"] then
 | 
			
		||||
		size = 2
 | 
			
		||||
		meta:set_int("size", 2)
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Resolve the node name and the number of items to make
 | 
			
		||||
	local meta       = minetest.get_meta(pos)
 | 
			
		||||
	local inv        = meta:get_inventory()
 | 
			
		||||
	local inputstack = inv:get_stack("src", 1)
 | 
			
		||||
	local inputname  = inputstack:get_name()
 | 
			
		||||
	local multiplier = 0
 | 
			
		||||
	local size       = meta:get_int("size")
 | 
			
		||||
	if size < 1 then size = 1 end
 | 
			
		||||
 | 
			
		||||
	for k, _ in pairs(fields) do
 | 
			
		||||
		-- Set a multipier for the half/full size capable blocks
 | 
			
		||||
		if twosize_products[k] ~= nil then
 | 
			
		||||
@@ -139,7 +193,19 @@ local function form_handler(pos, formname, fields, sender)
 | 
			
		||||
			break
 | 
			
		||||
		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
 | 
			
		||||
 | 
			
		||||
-- Action code performing the transformation
 | 
			
		||||
@@ -147,7 +213,7 @@ local run = function(pos, node)
 | 
			
		||||
	local meta         = minetest.get_meta(pos)
 | 
			
		||||
	local inv          = meta:get_inventory()
 | 
			
		||||
	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 demand       = 450
 | 
			
		||||
 | 
			
		||||
@@ -181,8 +247,8 @@ local run = function(pos, node)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- The actual block inactive state
 | 
			
		||||
minetest.register_node("technic:cnc", {
 | 
			
		||||
	description = S("%s CNC Machine"):format("LV"),
 | 
			
		||||
minetest.register_node(":technic:cnc", {
 | 
			
		||||
	description = desc_tr,
 | 
			
		||||
	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"},
 | 
			
		||||
	groups = {cracky=2, technic_machine=1, technic_lv=1},
 | 
			
		||||
@@ -191,40 +257,44 @@ minetest.register_node("technic:cnc", {
 | 
			
		||||
	legacy_facedir_simple = true,
 | 
			
		||||
	on_construct = function(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_string("formspec", cnc_formspec)
 | 
			
		||||
		local inv = meta:get_inventory()
 | 
			
		||||
		inv:set_size("src", 1)
 | 
			
		||||
		inv:set_size("dst", 4)
 | 
			
		||||
	end,
 | 
			
		||||
	can_dig = technic.machine_can_dig,
 | 
			
		||||
	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 = can_dig,
 | 
			
		||||
	allow_metadata_inventory_put = allow_metadata_inventory_put,
 | 
			
		||||
	allow_metadata_inventory_take = allow_metadata_inventory_take,
 | 
			
		||||
	allow_metadata_inventory_move = allow_metadata_inventory_move,
 | 
			
		||||
	on_receive_fields = form_handler,
 | 
			
		||||
	technic_run = run,
 | 
			
		||||
	technic_run = technic_cnc.use_technic and run,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- Active state block
 | 
			
		||||
minetest.register_node("technic:cnc_active", {
 | 
			
		||||
	description = S("%s CNC Machine"):format("LV"),
 | 
			
		||||
	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"},
 | 
			
		||||
	groups = {cracky=2, technic_machine=1, technic_lv=1, not_in_creative_inventory=1},
 | 
			
		||||
	connect_sides = {"bottom", "back", "left", "right"},
 | 
			
		||||
	paramtype2 = "facedir",
 | 
			
		||||
	drop = "technic:cnc",
 | 
			
		||||
	legacy_facedir_simple = true,
 | 
			
		||||
	can_dig = technic.machine_can_dig,
 | 
			
		||||
	allow_metadata_inventory_put = technic.machine_inventory_put,
 | 
			
		||||
	allow_metadata_inventory_take = technic.machine_inventory_take,
 | 
			
		||||
	allow_metadata_inventory_move = technic.machine_inventory_move,
 | 
			
		||||
	on_receive_fields = form_handler,
 | 
			
		||||
	technic_run = run,
 | 
			
		||||
	technic_disabled_machine_name = "technic:cnc",
 | 
			
		||||
})
 | 
			
		||||
if technic_cnc.use_technic then
 | 
			
		||||
 | 
			
		||||
technic.register_machine("LV", "technic:cnc",        technic.receiver)
 | 
			
		||||
technic.register_machine("LV", "technic:cnc_active", technic.receiver)
 | 
			
		||||
	minetest.register_node(":technic:cnc_active", {
 | 
			
		||||
		description = desc_tr,
 | 
			
		||||
		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"},
 | 
			
		||||
		groups = {cracky=2, technic_machine=1, technic_lv=1, not_in_creative_inventory=1},
 | 
			
		||||
		connect_sides = {"bottom", "back", "left", "right"},
 | 
			
		||||
		paramtype2 = "facedir",
 | 
			
		||||
		drop = "technic:cnc",
 | 
			
		||||
		legacy_facedir_simple = true,
 | 
			
		||||
		can_dig = can_dig,
 | 
			
		||||
		allow_metadata_inventory_put = allow_metadata_inventory_put,
 | 
			
		||||
		allow_metadata_inventory_take = allow_metadata_inventory_take,
 | 
			
		||||
		allow_metadata_inventory_move = allow_metadata_inventory_move,
 | 
			
		||||
		on_receive_fields = form_handler,
 | 
			
		||||
		technic_run = run,
 | 
			
		||||
		technic_disabled_machine_name = "technic:cnc",
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	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
 | 
			
		||||
@@ -1,16 +1,14 @@
 | 
			
		||||
-- API for the technic CNC machine
 | 
			
		||||
-- Again code is adapted from the NonCubic Blocks MOD v1.4 by yves_de_beck
 | 
			
		||||
 | 
			
		||||
local S = technic.getter
 | 
			
		||||
 | 
			
		||||
technic.cnc = {}
 | 
			
		||||
local S = technic_cnc.getter
 | 
			
		||||
 | 
			
		||||
-- REGISTER NONCUBIC FORMS, CREATE MODELS AND RECIPES:
 | 
			
		||||
------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
-- Define slope boxes for the various nodes
 | 
			
		||||
-------------------------------------------
 | 
			
		||||
technic.cnc.programs = {
 | 
			
		||||
technic_cnc.programs = {
 | 
			
		||||
	{ suffix  = "technic_cnc_stick",
 | 
			
		||||
		model = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
 | 
			
		||||
		desc  = S("Stick")
 | 
			
		||||
@@ -83,7 +81,7 @@ technic.cnc.programs = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_oblate_spheroid",
 | 
			
		||||
		model = "technic_oblate_spheroid.obj",
 | 
			
		||||
		model = "technic_cnc_oblate_spheroid.obj",
 | 
			
		||||
		desc  = S("Oblate spheroid"),
 | 
			
		||||
		cbox  = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
@@ -96,32 +94,32 @@ technic.cnc.programs = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_sphere",
 | 
			
		||||
		model = "technic_sphere.obj",
 | 
			
		||||
		model = "technic_cnc_sphere.obj",
 | 
			
		||||
		desc  = S("Sphere")
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_cylinder_horizontal",
 | 
			
		||||
		model = "technic_cylinder_horizontal.obj",
 | 
			
		||||
		model = "technic_cnc_cylinder_horizontal.obj",
 | 
			
		||||
		desc  = S("Horizontal Cylinder")
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_cylinder",
 | 
			
		||||
		model = "technic_cylinder.obj",
 | 
			
		||||
		model = "technic_cnc_cylinder.obj",
 | 
			
		||||
		desc  = S("Cylinder")
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_twocurvededge",
 | 
			
		||||
		model = "technic_two_curved_edge.obj",
 | 
			
		||||
		model = "technic_cnc_two_curved_edge.obj",
 | 
			
		||||
		desc  = S("Two Curved Edge/Corner Block")
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_onecurvededge",
 | 
			
		||||
		model = "technic_one_curved_edge.obj",
 | 
			
		||||
		model = "technic_cnc_one_curved_edge.obj",
 | 
			
		||||
		desc  = S("One Curved Edge Block")
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_spike",
 | 
			
		||||
		model = "technic_pyramid_spike.obj",
 | 
			
		||||
		model = "technic_cnc_pyramid_spike.obj",
 | 
			
		||||
		desc  = S("Spike"),
 | 
			
		||||
		cbox    = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
@@ -135,7 +133,7 @@ technic.cnc.programs = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_pyramid",
 | 
			
		||||
		model = "technic_pyramid.obj",
 | 
			
		||||
		model = "technic_cnc_pyramid.obj",
 | 
			
		||||
		desc  = S("Pyramid"),
 | 
			
		||||
		cbox  = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
@@ -149,7 +147,7 @@ technic.cnc.programs = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ 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"),
 | 
			
		||||
		sbox  = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
@@ -170,7 +168,7 @@ technic.cnc.programs = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ 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"),
 | 
			
		||||
		cbox  = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
@@ -184,7 +182,7 @@ technic.cnc.programs = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_slope_inner_edge",
 | 
			
		||||
		model = "technic_innercorner.obj",
 | 
			
		||||
		model = "technic_cnc_innercorner.obj",
 | 
			
		||||
		desc  = S("Slope Inner Edge/Corner"),
 | 
			
		||||
		sbox  = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
@@ -205,7 +203,7 @@ technic.cnc.programs = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_slope_edge",
 | 
			
		||||
		model = "technic_outercorner.obj",
 | 
			
		||||
		model = "technic_cnc_outercorner.obj",
 | 
			
		||||
		desc  = S("Slope Outer Edge/Corner"),
 | 
			
		||||
		cbox  = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
@@ -219,7 +217,7 @@ technic.cnc.programs = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_slope_upsdown",
 | 
			
		||||
		model = "technic_slope_upsdown.obj",
 | 
			
		||||
		model = "technic_cnc_slope_upsdown.obj",
 | 
			
		||||
		desc  = S("Slope Upside Down"),
 | 
			
		||||
		cbox  = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
@@ -233,7 +231,7 @@ technic.cnc.programs = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_slope_lying",
 | 
			
		||||
		model = "technic_slope_horizontal.obj",
 | 
			
		||||
		model = "technic_cnc_slope_horizontal.obj",
 | 
			
		||||
		desc  = S("Slope Lying"),
 | 
			
		||||
		cbox  = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
@@ -247,7 +245,7 @@ technic.cnc.programs = {
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	{ suffix  = "technic_cnc_slope",
 | 
			
		||||
		model = "technic_slope.obj",
 | 
			
		||||
		model = "technic_cnc_slope.obj",
 | 
			
		||||
		desc  = S("Slope"),
 | 
			
		||||
		cbox  = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
@@ -263,7 +261,7 @@ technic.cnc.programs = {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- 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: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
 | 
			
		||||
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 nodeboxdef
 | 
			
		||||
@@ -308,12 +306,12 @@ function technic.cnc.register_program(recipeitem, suffix, model, groups, images,
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- function to iterate over all the programs the CNC machine knows
 | 
			
		||||
function technic.cnc.register_all(recipeitem, groups, images, description)
 | 
			
		||||
	for _, data in ipairs(technic.cnc.programs) do
 | 
			
		||||
function technic_cnc.register_all(recipeitem, groups, images, description)
 | 
			
		||||
	for _, data in ipairs(technic_cnc.programs) do
 | 
			
		||||
		-- Disable node creation for disabled node types for some material
 | 
			
		||||
		local do_register = true
 | 
			
		||||
		if technic.cnc.programs_disable[recipeitem] ~= nil then
 | 
			
		||||
			for __, disable in ipairs(technic.cnc.programs_disable[recipeitem]) do
 | 
			
		||||
		if technic_cnc.programs_disable[recipeitem] ~= nil then
 | 
			
		||||
			for __, disable in ipairs(technic_cnc.programs_disable[recipeitem]) do
 | 
			
		||||
				if disable == data.suffix then
 | 
			
		||||
					do_register = false
 | 
			
		||||
				end
 | 
			
		||||
@@ -321,49 +319,49 @@ function technic.cnc.register_all(recipeitem, groups, images, description)
 | 
			
		||||
		end
 | 
			
		||||
		-- Create the node if it passes the test
 | 
			
		||||
		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)
 | 
			
		||||
		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_lying(recipeitem, groups, images, desc_slope_lying)
 | 
			
		||||
         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_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_inner_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_inner_edge)
 | 
			
		||||
         technic.cnc.register_pyramid(recipeitem, groups, images, desc_pyramid)
 | 
			
		||||
         technic.cnc.register_spike(recipeitem, groups, images, desc_spike)
 | 
			
		||||
         technic.cnc.register_onecurvededge(recipeitem, groups, images, desc_onecurvededge)
 | 
			
		||||
         technic.cnc.register_twocurvededge(recipeitem, groups, images, desc_twocurvededge)
 | 
			
		||||
         technic.cnc.register_cylinder(recipeitem, groups, images, desc_cylinder)
 | 
			
		||||
         technic.cnc.register_cylinder_horizontal(recipeitem, groups, images, desc_cylinder_horizontal)
 | 
			
		||||
         technic.cnc.register_spheroid(recipeitem, groups, images, desc_spheroid)
 | 
			
		||||
         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_t(recipeitem, groups, images, desc_element_t)
 | 
			
		||||
         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_slope(recipeitem, groups, images, desc_slope)
 | 
			
		||||
         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_edge(recipeitem, groups, images, desc_slope_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_inner_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_inner_edge)
 | 
			
		||||
         technic_cnc.register_pyramid(recipeitem, groups, images, desc_pyramid)
 | 
			
		||||
         technic_cnc.register_spike(recipeitem, groups, images, desc_spike)
 | 
			
		||||
         technic_cnc.register_onecurvededge(recipeitem, groups, images, desc_onecurvededge)
 | 
			
		||||
         technic_cnc.register_twocurvededge(recipeitem, groups, images, desc_twocurvededge)
 | 
			
		||||
         technic_cnc.register_cylinder(recipeitem, groups, images, desc_cylinder)
 | 
			
		||||
         technic_cnc.register_cylinder_horizontal(recipeitem, groups, images, desc_cylinder_horizontal)
 | 
			
		||||
         technic_cnc.register_spheroid(recipeitem, groups, images, desc_spheroid)
 | 
			
		||||
         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_t(recipeitem, groups, images, desc_element_t)
 | 
			
		||||
         technic_cnc.register_element_cross(recipeitem, groups, images, desc_element_cross)
 | 
			
		||||
         technic_cnc.register_element_end(recipeitem, groups, images, desc_element_end)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- REGISTER STICKS: noncubic.register_xyz(recipeitem, groups, images, desc_element_xyz)
 | 
			
		||||
------------------------------------------------------------------------------------------------------------
 | 
			
		||||
function technic.cnc.register_stick_etc(recipeitem, groups, images, desc_stick)
 | 
			
		||||
         technic.cnc.register_stick(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)
 | 
			
		||||
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)
 | 
			
		||||
         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_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_end_double(recipeitem, groups, images, 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_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_cross_double(recipeitem, groups, images, desc_element_cross_double)
 | 
			
		||||
         technic_cnc.register_element_end_double(recipeitem, groups, images, desc_element_end_double)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										131
									
								
								technic_cnc/cnc_materials.lua
									
									
									
									
									
										Normal 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
									
								
							
							
						
						@@ -0,0 +1,3 @@
 | 
			
		||||
default
 | 
			
		||||
basic_materials
 | 
			
		||||
technic?
 | 
			
		||||
							
								
								
									
										18
									
								
								technic_cnc/init.lua
									
									
									
									
									
										Normal 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
									
								
							
							
						
						@@ -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
									
								
							
							
						
						@@ -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
									
								
							
							
						
						@@ -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
 | 
			
		||||
							
								
								
									
										36
									
								
								technic_cnc/locale/template.txt
									
									
									
									
									
										Normal 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 =
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB  | 
| 
		 Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB  | 
| 
		 Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 7.0 KiB  | 
| 
		 Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB  | 
| 
		 Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB  | 
| 
		 Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB  | 
| 
		 Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB  | 
| 
		 Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB  | 
| 
		 Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB  | 
| 
		 Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB  | 
| 
		 Before Width: | Height: | Size: 997 B After Width: | Height: | Size: 997 B  |