cleanup code, make work with builtin dye

master
Brett O'Donnell 2012-09-20 14:27:13 +09:30
parent 31b657315c
commit 038362cc5d
2 changed files with 343 additions and 383 deletions

View File

@ -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
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

586
init.lua
View File

@ -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!")