From 038362cc5dbba95f1e934ed2acbaf1c9cc86df37 Mon Sep 17 00:00:00 2001 From: Brett O'Donnell Date: Thu, 20 Sep 2012 14:27:13 +0930 Subject: [PATCH] cleanup code, make work with builtin dye --- README.txt | 140 ++++++++++++- init.lua | 586 +++++++++++++++++++---------------------------------- 2 files changed, 343 insertions(+), 383 deletions(-) diff --git a/README.txt b/README.txt index 6cb51cc..4d4b766 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,138 @@ -Blox for Minetest +[Mod] Blox Mod - Now with 100 craftable blocks! [0.4] [blox] -by: Sanchez -forum page: http://minetest.net/forum/viewtopic.php?id=1960 \ No newline at end of file +Homepage: http://minetest.net/forum/viewtopic.php?id=1663 + +License: WTFPL + +Contributors: +Sanchez + +0.4 is a big update, many new blocks have been added and recipes updated +When creating this mod I looked at and used code from: +Flowers Mod by ironzorg +More Blocks Mod by Calinou +New for [0.4] +More stone blocks added +- Big checker +- Loop +- Corner +Wood blocks have been added +- Coloured wood +- Wood checker +- Big wood checker +Colour cobble blocks have been added +Crafting recipes for new blocks added +Checker recipes changed to make room for big checker blocks +Some textures updated to reduce noise +New for [0.3] +Black dye added +Black blocks added +Cross blocks added +Crafting recipes for new blocks +New for [0.2] +Textures recreated from scratch to avoid copyright issues. +Coloured stone blocks added +Stone block recipes added +Minor code changes +New for [0.1] +Checker blocks added +Stone square blocks added +Glowstone added +Dyes added +Crafting recipes added + + + + +This mod adds new stone and wood blocks for construction and decoration, a dye system for making colours is used to craft blocks. I have also added a glowstone in a similar vain to glowglass from the moreblocks mod. +Although not dependant, if you wish to craft these blocks you will need the ‘Flowers’ mod (to create dyes) and the ‘More Blocks’ mod (only used for crafting coloured stone squares). +Flowers can be crafted into (4) dyes: +Roses = Pink +Yellow dandelions = Yellow +White dandelions = White +Tulips = Orange +Violas = Purple +Waterlilies = Blue (Not the best choice but I was a bit stuck for blue) +In addition apples and cacti produce red and green, coal now produces black dye. +Red, Yellow and Blue dyes can be mixed in combinations (one above the other) to produce Orange, Green and Purple (1). +To craft checker blocks (updated as of 0.4) +X O X +O X O +X O X +Or +O X O +X O X +O X O +Where X is a single dye colour and O is stone (produces 6 or 8 blocks depending on recipe used) +To craft coloured stone square blocks + O +O X O + O +Where X is a single dye colour and O is stone square (from ‘more blocks’ mod) (produces 4 blocks) +To craft glowstone blocks + X +X O X + X +Where X is a torch and O is stone square (from ‘more blocks’ mod) (produces 1 blocks) +To craft coloured stone blocks + O +O X O + O +Where X is a single dye colour and O is stone (produces 4 blocks) +To craft coloured cross blocks +O O + X +O O +Where X is a single dye colour and O is stone (produces 4 blocks) +To craft coloured corner blocks +X X + O +X X +Where X is a single dye colour and O is stone (produces 4 blocks) +To craft loop blocks +O O O +O X O +O O O +Where X is a single dye colour and O is stone (produces 8 blocks) +To craft big checker blocks +X O +O X +or +O X +X O +Where X is a single dye colour and O is stone (produces 4 blocks) +Wooden blocks and cobble blocks are crafted the same way you just need to substitute stone for wood/cobble in the recipes. +/giveme node blox:******* +orangesquare +whitesquare +yellowsquare +pinksquare +... +purplechecker +redchecker +bluechecker_wood +greenchecker_wood +... +redstone +yellowcobble +pinkwood +... +blackcross +redcross +greencross +... +orangecorner +whitecorner +yellowcorner +pinkcorner +... +redquarter (big checker blocks) +yellowquarter +pinkquarter_wood +blackquarter_wood +... +purpleloop +redloop +blueloop +... +glowstone \ No newline at end of file diff --git a/init.lua b/init.lua index 17b2b95..9b99ff4 100644 --- a/init.lua +++ b/init.lua @@ -5,464 +5,290 @@ by Sanchez *********** --]] local version = "0.4" - local DYES = { "pink", "yellow", "white", "orange", - "purple", + "violet", "blue", "red", "green", "black", } - --- Nodes +local colour, name - for _, colour in ipairs(DYES) do - local cname = colour .. 'checker' +for _, colour in ipairs(DYES) do - minetest.register_node('blox:' .. cname, { + -- checker + name = colour .. 'checker' + minetest.register_node('blox:' .. name, { description = colour .. " checker", - tile_images = { 'blox_' .. cname .. '.png' }, - inventory_image = 'blox_' .. cname .. '.png', + tiles = { 'blox_' .. name .. '.png' }, + --inventory_image = 'blox_' .. name .. '.png', is_ground_content = true, groups = {cracky=3}, sounds = default.node_sound_stone_defaults(), }) -end -for _, colour2 in ipairs(DYES) do - local sname = colour2 .. 'square' - - minetest.register_node('blox:' .. sname, { - description = colour2 .. " stone square", - tile_images = { 'blox_' .. sname .. '.png' }, - inventory_image = 'blox_' .. sname .. '.png', + -- square + name = colour .. 'square' + minetest.register_node('blox:' .. name, { + description = colour .. " stone square", + tiles = { 'blox_' .. name .. '.png' }, + --inventory_image = 'blox_' .. name .. '.png', is_ground_content = true, groups = {cracky=3}, sounds = default.node_sound_stone_defaults(), }) -end -for _, colour7 in ipairs(DYES) do - local sname = colour7 .. 'stone' - - minetest.register_node('blox:' .. sname, { - description = colour7 .. " stone", - tile_images = { 'blox_' .. sname .. '.png' }, - inventory_image = 'blox_' .. sname .. '.png', + -- stone + name = colour .. 'stone' + minetest.register_node('blox:' .. name, { + description = colour .. " stone", + tiles = { 'blox_' .. name .. '.png' }, + --inventory_image = 'blox_' .. name .. '.png', is_ground_content = true, groups = {cracky=3}, sounds = default.node_sound_stone_defaults(), }) -end -for _, colour8 in ipairs(DYES) do - local sname = colour8 .. 'cross' - - minetest.register_node('blox:' .. sname, { - description = colour8 .. " cross", - tile_images = { 'blox_' .. sname .. '.png' }, - inventory_image = 'blox_' .. sname .. '.png', + -- cross + name = colour .. 'cross' + minetest.register_node('blox:' .. name, { + description = colour .. " cross", + tiles = { 'blox_' .. name .. '.png' }, + --inventory_image = 'blox_' .. name .. '.png', is_ground_content = true, groups = {cracky=3}, sounds = default.node_sound_stone_defaults(), }) -end -for _, colour10 in ipairs(DYES) do - local sname = colour10 .. 'wood' - - minetest.register_node('blox:' .. sname, { - description = colour10 .. " wood", - tile_images = { 'blox_' .. sname .. '.png' }, - inventory_image = 'blox_' .. sname .. '.png', + -- wood + name = colour .. 'wood' + minetest.register_node('blox:' .. name, { + description = colour .. " wood", + tiles = { 'blox_' .. name .. '.png' }, + --inventory_image = 'blox_' .. name .. '.png', is_ground_content = true, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, sounds = default.node_sound_wood_defaults(), }) -end -for _, colour11 in ipairs(DYES) do - local sname = colour11 .. 'loop' - - minetest.register_node('blox:' .. sname, { - description = colour11 .. " decorative block", - tile_images = { 'blox_' .. sname .. '.png' }, - inventory_image = 'blox_' .. sname .. '.png', + -- loop + name = colour .. 'loop' + minetest.register_node('blox:' .. name, { + description = colour .. " decorative block", + tiles = { 'blox_' .. name .. '.png' }, + --inventory_image = 'blox_' .. name .. '.png', is_ground_content = true, groups = {cracky=3}, sounds = default.node_sound_stone_defaults(), }) -end -for _, colour12 in ipairs(DYES) do - local sname = colour12 .. 'quarter' - - minetest.register_node('blox:' .. sname, { - description = colour12 .. " large checker", - tile_images = { 'blox_' .. sname .. '.png' }, - inventory_image = 'blox_' .. sname .. '.png', + -- quarter + name = colour .. 'quarter' + minetest.register_node('blox:' .. name, { + description = colour .. " large checker", + tiles = { 'blox_' .. name .. '.png' }, + --inventory_image = 'blox_' .. name .. '.png', is_ground_content = true, groups = {cracky=3}, sounds = default.node_sound_stone_defaults(), }) -end -for _, colour13 in ipairs(DYES) do - local sname = colour13 .. 'quarter_wood' - - minetest.register_node('blox:' .. sname, { - description = colour13 .. " large wooden checker", - tile_images = { 'blox_' .. sname .. '.png' }, - inventory_image = 'blox_' .. sname .. '.png', + -- quarter_wood + name = colour .. 'quarter_wood' + minetest.register_node('blox:' .. name, { + description = colour .. " large wooden checker", + tiles = { 'blox_' .. name .. '.png' }, + --inventory_image = 'blox_' .. name .. '.png', is_ground_content = true, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, sounds = default.node_sound_wood_defaults(), }) -end -for _, colour14 in ipairs(DYES) do - local sname = colour14 .. 'checker_wood' - - minetest.register_node('blox:' .. sname, { - description = colour14 .. " wooden checker", - tile_images = { 'blox_' .. sname .. '.png' }, - inventory_image = 'blox_' .. sname .. '.png', + -- checker_wood + name = colour .. 'checker_wood' + minetest.register_node('blox:' .. name, { + description = colour .. " wooden checker", + tiles = { 'blox_' .. name .. '.png' }, + --inventory_image = 'blox_' .. name .. '.png', is_ground_content = true, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, sounds = default.node_sound_wood_defaults(), }) -end -for _, colour15 in ipairs(DYES) do - local sname = colour15 .. 'corner' - - minetest.register_node('blox:' .. sname, { - description = colour15 .. " corners", - tile_images = { 'blox_' .. sname .. '.png' }, - inventory_image = 'blox_' .. sname .. '.png', + -- corner + name = colour .. 'corner' + minetest.register_node('blox:' .. name, { + description = colour .. " corners", + tiles = { 'blox_' .. name .. '.png' }, + --inventory_image = 'blox_' .. name .. '.png', is_ground_content = true, groups = {cracky=3}, sounds = default.node_sound_stone_defaults(), }) -end -minetest.register_node("blox:glowstone", { - description = "Glowstone", - tile_images = {"blox_glowstone.png"}, - inventory_image = "blox_glowstone.png", - light_propagates = true, - paramtype = "light", - sunlight_propagates = true, - light_source = 30 , - is_ground_content = true, - groups = {cracky=2}, - sounds = default.node_sound_stone_defaults(), -}) - -for _, colour22 in ipairs(DYES) do - local sname = colour22 .. 'cobble' - - minetest.register_node('blox:' .. sname, { - description = colour22 .. " cobble", - tile_images = { 'blox_' .. sname .. '.png' }, - inventory_image = 'blox_' .. sname .. '.png', + -- cobble + name = colour .. 'cobble' + minetest.register_node('blox:' .. name, { + description = colour .. " cobble", + tiles = { 'blox_' .. name .. '.png' }, + --inventory_image = 'blox_' .. name .. '.png', is_ground_content = true, groups = {cracky=3}, sounds = default.node_sound_stone_defaults(), }) -end - --- Dyes - -for _, colour3 in ipairs(DYES) do -local dname = colour3 .. "dye" -minetest.register_craftitem("blox:" .. dname, { - description = colour3 .. " dye", - inventory_image = "blox_" .. dname .. ".png", -}) + end - +-- -- Crafting +-- -minetest.register_craft({ - output = 'blox:blackdye 4', - recipe = { - {'default:coal'}, - } -}) +for _, colour in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:reddye 4', - recipe = { - {'default:apple'}, - } -}) + -- quarter + minetest.register_craft({ + output = 'blox:' .. colour ..'quarter 4', + recipe = { + {'default:stone', 'dye:' .. colour}, + {'dye:' .. colour, 'default:stone'}, + } + }) + minetest.register_craft({ + output = 'blox:' .. colour ..'quarter 4', + recipe = { + {'dye:' .. colour, 'default:stone'}, + {'default:stone', 'dye:' .. colour}, + } + }) -minetest.register_craft({ - output = 'blox:pinkdye 4', - recipe = { - {'flowers:flower_rose'}, - } -}) + -- square + minetest.register_craft({ + output = 'blox:' .. colour ..'square 4', + recipe = { + {'', 'moreblocks:stonesquare', ''}, + {'moreblocks:stonesquare', 'dye:' .. colour, 'moreblocks:stonesquare'}, + {'', 'moreblocks:stonesquare', ''}, + } + }) -minetest.register_craft({ - output = 'blox:greendye 4', - recipe = { - {'default:cactus'}, - } -}) + -- stone + minetest.register_craft({ + output = 'blox:' .. colour ..'stone 4', + recipe = { + {'', 'default:stone', ''}, + {'default:stone', 'dye:' .. colour, 'default:stone'}, + {'', 'default:stone', ''}, + } + }) -minetest.register_craft({ - output = 'blox:yellowdye 4', - recipe = { - {'flowers:flower_dandelion_yellow'}, - } -}) + -- cross + minetest.register_craft({ + output = 'blox:' .. colour ..'cross 4', + recipe = { + {'default:stone', '', 'default:stone'}, + {'', 'dye:' .. colour, ''}, + {'default:stone', '', 'default:stone'}, + } + }) + + -- wood + minetest.register_craft({ + output = 'blox:' .. colour ..'wood 4', + recipe = { + {'', 'default:wood', ''}, + {'default:wood', 'dye:' .. colour, 'default:wood'}, + {'', 'default:wood', ''}, + } + }) + + -- quarter_wood + minetest.register_craft({ + output = 'blox:' .. colour ..'quarter_wood 4', + recipe = { + {'default:wood', 'dye:' .. colour}, + {'dye:' .. colour, 'default:wood'}, + } + }) + minetest.register_craft({ + output = 'blox:' .. colour ..'quarter_wood 4', + recipe = { + {'dye:' .. colour, 'default:wood'}, + {'default:wood', 'dye:' .. colour}, + } + }) + + -- checker_wood + minetest.register_craft({ + output = 'blox:' .. colour ..'checker_wood 6', + recipe = { + {'default:wood', 'dye:' .. colour,'default:wood'}, + {'dye:' .. colour, 'default:wood', 'dye:' .. colour}, + {'default:wood', 'dye:' .. colour,'default:wood'}, + } + }) + minetest.register_craft({ + output = 'blox:' .. colour ..'checker_wood 8', + recipe = { + {'dye:' .. colour, 'default:wood', 'dye:' .. colour}, + {'default:wood', 'dye:' .. colour,'default:wood'}, + {'dye:' .. colour, 'default:wood', 'dye:' .. colour}, + } + }) + + -- checker + minetest.register_craft({ + output = 'blox:' .. colour ..'checker 6', + recipe = { + {'default:stone', 'dye:' .. colour,'default:stone'}, + {'dye:' .. colour, 'default:stone', 'dye:' .. colour}, + {'default:stone', 'dye:' .. colour,'default:stone'}, + } + }) + minetest.register_craft({ + output = 'blox:' .. colour ..'checker 8', + recipe = { + {'dye:' .. colour, 'default:stone', 'dye:' .. colour}, + {'default:stone', 'dye:' .. colour,'default:stone'}, + {'dye:' .. colour, 'default:stone', 'dye:' .. colour}, + } + }) -minetest.register_craft({ - output = 'blox:whitedye 4', - recipe = { - {'flowers:flower_dandelion_white'}, - } -}) - -minetest.register_craft({ - output = 'blox:bluedye 4', - recipe = { - {'flowers:flower_waterlily'}, - } -}) - -minetest.register_craft({ - output = 'blox:orangedye 4', - recipe = { - {'flowers:flower_tulip'}, - } -}) - -minetest.register_craft({ - output = 'blox:purpledye 4', - recipe = { - {'flowers:flower_viola'}, - } -}) - -minetest.register_craft({ - output = 'blox:orangedye', - recipe = { - {'blox:reddye'}, - {'blox:yellowdye'}, - } -}) - -minetest.register_craft({ - output = 'blox:orangedye', - recipe = { - {'blox:yellowdye'}, - {'blox:reddye'}, - } -}) - -minetest.register_craft({ - output = 'blox:purpledye', - recipe = { - {'blox:reddye'}, - {'blox:bluedye'}, - } -}) - -minetest.register_craft({ - output = 'blox:purpledye', - recipe = { - {'blox:bluedye'}, - {'blox:reddye'}, - } -}) - -minetest.register_craft({ - output = 'blox:greendye', - recipe = { - {'blox:bluedye'}, - {'blox:yellowdye'}, - } -}) - -minetest.register_craft({ - output = 'blox:greendye', - recipe = { - {'blox:yellowdye'}, - {'blox:bluedye'}, - } -}) - - -for _, colour4 in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:' .. colour4 ..'quarter 4', - recipe = { - {'default:stone', 'blox:' .. colour4 .. 'dye'}, - {'blox:' .. colour4 .. 'dye', 'default:stone'}, - } -}) - -minetest.register_craft({ - output = 'blox:' .. colour4 ..'quarter 4', - recipe = { - {'blox:' .. colour4 .. 'dye', 'default:stone'}, - {'default:stone', 'blox:' .. colour4 .. 'dye'}, - } -}) -end - -for _, colour5 in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:' .. colour5 ..'square 4', - recipe = { - {'', 'moreblocks:stonesquare', ''}, - {'moreblocks:stonesquare', 'blox:' .. colour5 .. 'dye', 'moreblocks:stonesquare'}, - {'', 'moreblocks:stonesquare', ''}, - } -}) -end - -for _, colour6 in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:' .. colour6 ..'stone 4', - recipe = { - {'', 'default:stone', ''}, - {'default:stone', 'blox:' .. colour6 .. 'dye', 'default:stone'}, - {'', 'default:stone', ''}, - } -}) -end - -for _, colour9 in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:' .. colour9 ..'cross 4', - recipe = { - {'default:stone', '', 'default:stone'}, - {'', 'blox:' .. colour9 .. 'dye', ''}, - {'default:stone', '', 'default:stone'}, - } -}) -end - -minetest.register_craft({ - output = 'blox:glowstone', - recipe = { - {'', 'default:torch', ''}, - {'default:torch', 'moreblocks:stonesquare', 'default:torch'}, - {'', 'default:torch', ''}, - } -}) - -for _, colour16 in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:' .. colour16 ..'wood 4', - recipe = { - {'', 'default:wood', ''}, - {'default:wood', 'blox:' .. colour16 .. 'dye', 'default:wood'}, - {'', 'default:wood', ''}, - } -}) -end - -for _, colour17 in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:' .. colour17 ..'quarter_wood 4', - recipe = { - {'default:wood', 'blox:' .. colour17 .. 'dye'}, - {'blox:' .. colour17 .. 'dye', 'default:wood'}, - } -}) - -minetest.register_craft({ - output = 'blox:' .. colour17 ..'quarter_wood 4', - recipe = { - {'blox:' .. colour17 .. 'dye', 'default:wood'}, - {'default:wood', 'blox:' .. colour17 .. 'dye'}, - } -}) -end - -for _, colour18 in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:' .. colour18 ..'checker_wood 6', - recipe = { - {'default:wood', 'blox:' .. colour18 .. 'dye','default:wood'}, - {'blox:' .. colour18 .. 'dye', 'default:wood', 'blox:' .. colour18 .. 'dye'}, - {'default:wood', 'blox:' .. colour18 .. 'dye','default:wood'}, - } -}) - -minetest.register_craft({ - output = 'blox:' .. colour18 ..'checker_wood 8', - recipe = { - {'blox:' .. colour18 .. 'dye', 'default:wood', 'blox:' .. colour18 .. 'dye'}, - {'default:wood', 'blox:' .. colour18 .. 'dye','default:wood'}, - {'blox:' .. colour18 .. 'dye', 'default:wood', 'blox:' .. colour18 .. 'dye'}, - } -}) -end - -for _, colour19 in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:' .. colour19 ..'checker 6', - recipe = { - {'default:stone', 'blox:' .. colour19 .. 'dye','default:stone'}, - {'blox:' .. colour19 .. 'dye', 'default:stone', 'blox:' .. colour19 .. 'dye'}, - {'default:stone', 'blox:' .. colour19 .. 'dye','default:stone'}, - } -}) - -minetest.register_craft({ - output = 'blox:' .. colour19 ..'checker 8', - recipe = { - {'blox:' .. colour19 .. 'dye', 'default:stone', 'blox:' .. colour19 .. 'dye'}, - {'default:stone', 'blox:' .. colour19 .. 'dye','default:stone'}, - {'blox:' .. colour19 .. 'dye', 'default:stone', 'blox:' .. colour19 .. 'dye'}, - } -}) -end - -for _, colour20 in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:' .. colour20 ..'loop 6', - recipe = { - {'default:stone', 'default:stone', 'default:stone'}, - {'default:stone', 'blox:' .. colour20 .. 'dye', 'default:stone'}, - {'default:stone', 'default:stone', 'default:stone'}, - } -}) -end - -for _, colour21 in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:' .. colour21 ..'cobble 4', - recipe = { - {'', 'default:cobble', ''}, - {'default:cobble', 'blox:' .. colour21 .. 'dye', 'default:cobble'}, - {'', 'default:cobble', ''}, - } -}) -end - -for _, colour23 in ipairs(DYES) do -minetest.register_craft({ - output = 'blox:' .. colour23 ..'corner 4', - recipe = { - {'blox:' .. colour23 .. 'dye', '', 'blox:' .. colour23 .. 'dye'}, - {'', 'default:stone', ''}, - {'blox:' .. colour23 .. 'dye', '', 'blox:' .. colour23 .. 'dye'}, - } -}) + -- loop + minetest.register_craft({ + output = 'blox:' .. colour ..'loop 6', + recipe = { + {'default:stone', 'default:stone', 'default:stone'}, + {'default:stone', 'dye:' .. colour, 'default:stone'}, + {'default:stone', 'default:stone', 'default:stone'}, + } + }) + + -- cobble + minetest.register_craft({ + output = 'blox:' .. colour ..'cobble 4', + recipe = { + {'', 'default:cobble', ''}, + {'default:cobble', 'dye:' .. colour, 'default:cobble'}, + {'', 'default:cobble', ''}, + } + }) + + -- corner + minetest.register_craft({ + output = 'blox:' .. colour ..'corner 4', + recipe = { + {'dye:' .. colour, '', 'dye:' .. colour}, + {'', 'default:stone', ''}, + {'dye:' .. colour, '', 'dye:' .. colour}, + } + }) + end print("Blox Mod [" ..version.. "] Loaded!")