123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- --[[
- k_smallblocks is a Minetest mod that adds smaller blocks to minetest aswell as
- its own node placement prediction/system
- Copyright (C) 2019 Kurtzmusch
- This file is part of k_smallblocks
- k_smallblocks is free software; you can redistribute it and/or modify it under
- the terms of the GNU Lesser General Public License as published by the Free
- Software Foundation; either version 2.1 of the License, or (at your option) any
- later version.
- k_smallblocks is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License along
- with k_smallblocks. If not, see <https://www.gnu.org/licenses/>.
- --]]
- local function register_recipes( node_name, shapeless )
- local recipe_type = "shaped"
- if( shapeless ) then recipe_type = "shapeless" end
- local smallblock_recipes = {
- [1] = {
- type = recipe_type,
- output = "k_smallblocks:1_"..node_name.." 8",
- recipe = {
- { "default:"..node_name, "", "" },
- { "", "", "" },
- { "", "", "" }
- }
- },
- [2] = {
- type = recipe_type,
- output = "k_smallblocks:1_"..node_name.." 2",
- recipe = {
- { "k_smallblocks:3_"..node_name, "", "" },
- { "", "", "" },
- { "", "", "" }
- }
- },
- [3] = {
- type = recipe_type,
- output = "k_smallblocks:1_"..node_name.." 4",
- recipe = {
- { "k_smallblocks:15_"..node_name, "", "" },
- { "", "", "" },
- { "", "", "" }
- }
- },
- [4] = {
- type = recipe_type,
- output = "k_smallblocks:1_"..node_name.." 6",
- recipe = {
- { "k_smallblocks:63_"..node_name, "", "" },
- { "", "", "" },
- { "", "", "" }
- }
- },
- }
- local halfslab_recipe = {
- type = recipe_type,
- output = "k_smallblocks:3_"..node_name,
- recipe = {
- { "k_smallblocks:1_"..node_name, "k_smallblocks:1_"..node_name,"" },
- { "", "", "" },
- { "", "", "" }
- }
- }
- local slab_recipes = {
- [1] = {
- type = recipe_type,
- output = "k_smallblocks:15_"..node_name,
- recipe = {
- { "k_smallblocks:1_"..node_name, "k_smallblocks:1_"..node_name,"" },
- { "k_smallblocks:1_"..node_name, "k_smallblocks:1_"..node_name, "" },
- { "", "", "" }
- }
- },
- [2] = {
- type = recipe_type,
- output = "k_smallblocks:15_"..node_name,
- recipe = {
- { "k_smallblocks:3_"..node_name, "", "" },
- { "k_smallblocks:3_"..node_name, "", "" },
- { "", "", "" }
- }
- }
- }
- local fullNode_recipes = {
- --TODO
- }
- local stair_recipe = {
- type= recipe_type,
- output = "k_smallblocks:63_"..node_name,
- recipe = {
- { "k_smallblocks:3_"..node_name, "", "" },
- { "k_smallblocks:3_"..node_name, "k_smallblocks:3_"..node_name, "" },
- { "", "", "" }
- }
- }
- for key_int, val_recipe in pairs( smallblock_recipes ) do
- minetest.register_craft( val_recipe )
- end
- minetest.register_craft( halfslab_recipe )
- for key_int, val_recipe in pairs( slab_recipes ) do
- minetest.register_craft( val_recipe )
- end
- minetest.register_craft( stair_recipe )
- end
- local function register_nodes( node_name )
- for key_int, val_bitmap_name in pairs( smallblocks.origin_bitmaps ) do
- local origin_bitmap_nodebox = smallblocks.nodeboxes[key_int]
- if( bitmap_name_definition_map[val_bitmap_name] ) then
- minetest.register_node("k_smallblocks:".. val_bitmap_name.."_"..node_name,
- {
- description = bitmap_name_definition_map[val_bitmap_name].description,
- paramtype = "light",
- paramtype2 = "facedir",
- drawtype = "nodebox",
- tiles = { {name="default_stone_brick.png", align_style="world"} },
- is_ground_content = false,
- groups = { cracky=2, not_in_creative_inventory= 0},
- sunlight_propagates = true,
- node_box = {
- type = "fixed",
- fixed = origin_bitmap_nodebox
- },
- on_rightclick = common.on_right_click,
- on_punch = function()
- minetest.chat_send_all( "node got punched" )
- end,
- on_use = bitmap_name_definition_map[val_bitmap_name].on_use
- }
- )
- else
- minetest.register_node("k_smallblocks:"..val_bitmap_name.."_"..node_name,
- {
- description = node_name.." odd shape",
- paramtype = "light",
- paramtype2 = "facedir",
- drawtype = "nodebox",
- tiles = { {name="default_stone_brick.png", align_style="world"} },
- is_ground_content = false,
- groups = { cracky=2, not_in_creative_inventory= 1},
- sunlight_propagates = true,
- node_box = {
- type = "fixed",
- fixed = origin_bitmap_nodebox
- },
- on_rightclick = common.on_right_click,
- on_punch = function()
- minetest.chat_send_all( "node got punched" )
- end,
- }
- )
- end
- end
- end
- smallblocks.register_node = function( node_name, generate_recipes, shapeless )
- register_nodes( node_name )
- if( generate_recipes ) then register_recipes( node_name, shapeless ) end
- end
|