diff --git a/README.md b/README.md index 5bdd999..b291e51 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,39 @@ # fachwerk -Fachwerk mod for Minetest +version 0.9.1 + +The fachwerk mod adds timber-framed blocks to Minetest. +It's using a simple API to add new timber-framed blocks + +# contributors +License of source code +---------------------- + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. + + +License of media (textures) +-------------------------------------- + +License of textures +Copyright (C) 2015 JBB CC BY-SA 3.0 + +# TODO +- Make a TNG / AF8 special version +- add new blocks if requested by users +- clean up code + +# Screenshots ![Screenshot 1](http://i.imgur.com/JMegjRt.jpg) ![Screenshot 2](https://forum.minetest.net/download/file.php?mode=view&id=2575 "screenshot by sokomine") diff --git a/api.lua b/api.lua new file mode 100644 index 0000000..5898afa --- /dev/null +++ b/api.lua @@ -0,0 +1,121 @@ +--[[ +================================================================ +** fachwerk ** +By JBB + +Copyright (c) 2015 JBB +(sites.google.com/site/jbbsblog) +The WTFPL applies to all code in this project. +http://www.wtfpl.net/txt/copying/ +See README.txt +================================================================ +--]] + + +fachwerk = {} + +fachwerk.register_fachwerk = function( basename, texture, description, craft_from ) + + local group_def = {choppy=2,oddly_breakable_by_hand=2,cracky=3}; + + minetest.register_node("fachwerk:"..basename, { + description = "Truss with "..description, + tile_images = { texture.."^fachwerk_blank.png"}, + groups = group_def, + sounds = default.node_sound_stone_defaults(), + paramtype = "light", + paramtype2 = "facedir", + }) + + minetest.register_node("fachwerk:"..basename.."_1", { + description = "truss with "..description.." oblique beam 1", + tile_images = { + texture.."^fachwerk_blank.png", -- top + texture.."^fachwerk_blank.png", -- bottom + texture.."^fachwerk_beam_1.png", + texture.."^fachwerk_beam_1.png^[transformFX", + texture.."^fachwerk_beam_1.png^[transformFX", + texture.."^fachwerk_beam_1.png" }, + groups = group_def, + sounds = default.node_sound_stone_defaults(), + paramtype = "light", + paramtype2 = "facedir", + }) + + -- TODO: is this one really needed? the node above covers most of that already + minetest.register_node("fachwerk:"..basename.."_2", { + description = "Truss with "..description.." oblique beam 2", + tile_images = { + texture.."^fachwerk_blank.png", -- top + texture.."^fachwerk_blank.png", -- bottom + texture.."^fachwerk_beam_2.png", + texture.."^fachwerk_beam_2.png^[transformFX", + texture.."^fachwerk_beam_2.png^[transformFX", + texture.."^fachwerk_beam_2.png" }, + groups = group_def, + sounds = default.node_sound_stone_defaults(), + paramtype = "light", + paramtype2 = "facedir", + }) + + minetest.register_node("fachwerk:"..basename.."_cross", { + description = "truss with "..description.." cross", + tile_images = {texture.."^fachwerk_cross.png"}, + groups = group_def, + sounds = default.node_sound_stone_defaults(), + }) + + --crafting-- + + -- yields 2; after all we did add a lot of wood + minetest.register_craft({ + output = "fachwerk:"..basename.." 8", + recipe = { { "group:wood","group:wood","group:wood" }, + { "group:wood", craft_from,"group:wood" }, + { "group:wood","group:wood","group:wood" }, + } }); + + minetest.register_craft({ + output = "fachwerk:"..basename.."_cross 8", + recipe = { { "group:wood",craft_from,"group:wood" }, + { craft_from, "group:wood",craft_from }, + { "group:wood",craft_from,"group:wood" }, + } }); + + minetest.register_craft({ + output = "fachwerk:"..basename.."_1 8", + recipe = { { craft_from,"group:wood", craft_from}, + { craft_from, craft_from, craft_from}, + { "group:wood", craft_from, craft_from}, + } }); + + minetest.register_craft({ + output = "fachwerk:"..basename.."_2 8", + recipe = { { craft_from, craft_from,"group:wood"}, + { craft_from, craft_from, craft_from }, + { craft_from,"group:wood" ,craft_from }, + } }); + + -- chain of craft receipes to convert nodes into each other + --[[minetest.register_craft({ + output = "fachwerk:"..basename.."_1", + recipe = { {"fachwerk:"..basename }} }); + + minetest.register_craft({ + output = "fachwerk:"..basename.."_2", + recipe = { {"fachwerk:"..basename.."_1" }} }); + + minetest.register_craft({ + output = "fachwerk:"..basename.."_cross", + recipe = { {"fachwerk:"..basename.."_2" }} }); + + minetest.register_craft({ + output = "fachwerk:"..basename, + recipe = { {"fachwerk:"..basename.."_cross" }} });--]] + +end + + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "[fachwerk] loaded.") +end diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/depends.txt @@ -0,0 +1 @@ +default diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..8c9b2a1 --- /dev/null +++ b/init.lua @@ -0,0 +1,2 @@ +dofile(minetest.get_modpath("fachwerk").."/api.lua") +dofile(minetest.get_modpath("fachwerk").."/nodes.lua") \ No newline at end of file diff --git a/nodes.lua b/nodes.lua new file mode 100644 index 0000000..d610185 --- /dev/null +++ b/nodes.lua @@ -0,0 +1,33 @@ +-- Blokck id textur description crafting recepie +-- fachwerk_ truss with .. + +fachwerk.register_fachwerk( 'clay', 'default_clay.png', 'clay', 'default:clay' ); +fachwerk.register_fachwerk( 'brick', 'default_brick.png', 'bricks', 'default:brick' ); +fachwerk.register_fachwerk( 'stone_brick', 'default_stone_brick.png', 'stone bricks', 'default:stonebrick' ); + +fachwerk.register_fachwerk( 'cobble', 'default_cobble.png', 'cobble', 'default:cobble' ); +fachwerk.register_fachwerk( 'stone', 'default_stone.png', 'stone', 'default:stone' ); + +--optional fachwerk types you can enable if you like +--[[ + +fachwerk.register_fachwerk( 'desert_stone','default_desert_stone.png','desert stone', 'default:desert_stone' ); +fachwerk.register_fachwerk( 'white', 'wool_white.png', 'white', 'wool:white' ); +fachwerk.register_fachwerk( 'grey', 'wool_grey.png', 'grey', 'wool:grey' ); +fachwerk.register_fachwerk( 'yellow', 'wool_yellow.png', 'yellow', 'wool:yellow' ); +fachwerk.register_fachwerk( 'wood', 'default_wood.png', 'wood', 'default:wood' ); +fachwerk.register_fachwerk( 'junglewood', 'default_junglewood.png', 'junglewood', 'default:junglewood' );]]-- -- you can enable this to get more fachwerk blocks. + +--nodes wich are not supported by the api + +minetest.register_node("fachwerk:framed_glass", { + description = "Fachwerk framed Glass", + drawtype = "glasslike_framed_optional", + tiles = {"fachwerk_blank.png", "fachwerk_blank.png^default_glass_detail.png"}, + inventory_image = minetest.inventorycube("fachwerk_blank.png"), + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), +}) \ No newline at end of file diff --git a/textures/fachwerk_beam_1.png b/textures/fachwerk_beam_1.png new file mode 100644 index 0000000..879b7d8 Binary files /dev/null and b/textures/fachwerk_beam_1.png differ diff --git a/textures/fachwerk_beam_2.png b/textures/fachwerk_beam_2.png new file mode 100644 index 0000000..5138935 Binary files /dev/null and b/textures/fachwerk_beam_2.png differ diff --git a/textures/fachwerk_blank.png b/textures/fachwerk_blank.png new file mode 100644 index 0000000..6ca1adc Binary files /dev/null and b/textures/fachwerk_blank.png differ diff --git a/textures/fachwerk_cross.png b/textures/fachwerk_cross.png new file mode 100644 index 0000000..54b1abd Binary files /dev/null and b/textures/fachwerk_cross.png differ