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 Homepage: http://minetest.net/forum/viewtopic.php?id=1663
forum page: http://minetest.net/forum/viewtopic.php?id=1960
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 version = "0.4"
local DYES = { local DYES = {
"pink", "pink",
"yellow", "yellow",
"white", "white",
"orange", "orange",
"purple", "violet",
"blue", "blue",
"red", "red",
"green", "green",
"black", "black",
} }
local colour, name
-- Nodes
for _, colour in ipairs(DYES) do for _, colour in ipairs(DYES) do
local cname = colour .. 'checker'
minetest.register_node('blox:' .. cname, { -- checker
name = colour .. 'checker'
minetest.register_node('blox:' .. name, {
description = colour .. " checker", description = colour .. " checker",
tile_images = { 'blox_' .. cname .. '.png' }, tiles = { 'blox_' .. name .. '.png' },
inventory_image = 'blox_' .. cname .. '.png', --inventory_image = 'blox_' .. name .. '.png',
is_ground_content = true, is_ground_content = true,
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
end
for _, colour2 in ipairs(DYES) do -- square
local sname = colour2 .. 'square' name = colour .. 'square'
minetest.register_node('blox:' .. name, {
minetest.register_node('blox:' .. sname, { description = colour .. " stone square",
description = colour2 .. " stone square", tiles = { 'blox_' .. name .. '.png' },
tile_images = { 'blox_' .. sname .. '.png' }, --inventory_image = 'blox_' .. name .. '.png',
inventory_image = 'blox_' .. sname .. '.png',
is_ground_content = true, is_ground_content = true,
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
end
for _, colour7 in ipairs(DYES) do -- stone
local sname = colour7 .. 'stone' name = colour .. 'stone'
minetest.register_node('blox:' .. name, {
minetest.register_node('blox:' .. sname, { description = colour .. " stone",
description = colour7 .. " stone", tiles = { 'blox_' .. name .. '.png' },
tile_images = { 'blox_' .. sname .. '.png' }, --inventory_image = 'blox_' .. name .. '.png',
inventory_image = 'blox_' .. sname .. '.png',
is_ground_content = true, is_ground_content = true,
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
end
for _, colour8 in ipairs(DYES) do -- cross
local sname = colour8 .. 'cross' name = colour .. 'cross'
minetest.register_node('blox:' .. name, {
minetest.register_node('blox:' .. sname, { description = colour .. " cross",
description = colour8 .. " cross", tiles = { 'blox_' .. name .. '.png' },
tile_images = { 'blox_' .. sname .. '.png' }, --inventory_image = 'blox_' .. name .. '.png',
inventory_image = 'blox_' .. sname .. '.png',
is_ground_content = true, is_ground_content = true,
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
end
for _, colour10 in ipairs(DYES) do -- wood
local sname = colour10 .. 'wood' name = colour .. 'wood'
minetest.register_node('blox:' .. name, {
minetest.register_node('blox:' .. sname, { description = colour .. " wood",
description = colour10 .. " wood", tiles = { 'blox_' .. name .. '.png' },
tile_images = { 'blox_' .. sname .. '.png' }, --inventory_image = 'blox_' .. name .. '.png',
inventory_image = 'blox_' .. sname .. '.png',
is_ground_content = true, is_ground_content = true,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
end
for _, colour11 in ipairs(DYES) do -- loop
local sname = colour11 .. 'loop' name = colour .. 'loop'
minetest.register_node('blox:' .. name, {
minetest.register_node('blox:' .. sname, { description = colour .. " decorative block",
description = colour11 .. " decorative block", tiles = { 'blox_' .. name .. '.png' },
tile_images = { 'blox_' .. sname .. '.png' }, --inventory_image = 'blox_' .. name .. '.png',
inventory_image = 'blox_' .. sname .. '.png',
is_ground_content = true, is_ground_content = true,
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
end
for _, colour12 in ipairs(DYES) do -- quarter
local sname = colour12 .. 'quarter' name = colour .. 'quarter'
minetest.register_node('blox:' .. name, {
minetest.register_node('blox:' .. sname, { description = colour .. " large checker",
description = colour12 .. " large checker", tiles = { 'blox_' .. name .. '.png' },
tile_images = { 'blox_' .. sname .. '.png' }, --inventory_image = 'blox_' .. name .. '.png',
inventory_image = 'blox_' .. sname .. '.png',
is_ground_content = true, is_ground_content = true,
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
end
for _, colour13 in ipairs(DYES) do -- quarter_wood
local sname = colour13 .. 'quarter_wood' name = colour .. 'quarter_wood'
minetest.register_node('blox:' .. name, {
minetest.register_node('blox:' .. sname, { description = colour .. " large wooden checker",
description = colour13 .. " large wooden checker", tiles = { 'blox_' .. name .. '.png' },
tile_images = { 'blox_' .. sname .. '.png' }, --inventory_image = 'blox_' .. name .. '.png',
inventory_image = 'blox_' .. sname .. '.png',
is_ground_content = true, is_ground_content = true,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
end
for _, colour14 in ipairs(DYES) do -- checker_wood
local sname = colour14 .. 'checker_wood' name = colour .. 'checker_wood'
minetest.register_node('blox:' .. name, {
minetest.register_node('blox:' .. sname, { description = colour .. " wooden checker",
description = colour14 .. " wooden checker", tiles = { 'blox_' .. name .. '.png' },
tile_images = { 'blox_' .. sname .. '.png' }, --inventory_image = 'blox_' .. name .. '.png',
inventory_image = 'blox_' .. sname .. '.png',
is_ground_content = true, is_ground_content = true,
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3}, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3},
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
end
for _, colour15 in ipairs(DYES) do -- corner
local sname = colour15 .. 'corner' name = colour .. 'corner'
minetest.register_node('blox:' .. name, {
minetest.register_node('blox:' .. sname, { description = colour .. " corners",
description = colour15 .. " corners", tiles = { 'blox_' .. name .. '.png' },
tile_images = { 'blox_' .. sname .. '.png' }, --inventory_image = 'blox_' .. name .. '.png',
inventory_image = 'blox_' .. sname .. '.png',
is_ground_content = true, is_ground_content = true,
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
end
minetest.register_node("blox:glowstone", { -- cobble
description = "Glowstone", name = colour .. 'cobble'
tile_images = {"blox_glowstone.png"}, minetest.register_node('blox:' .. name, {
inventory_image = "blox_glowstone.png", description = colour .. " cobble",
light_propagates = true, tiles = { 'blox_' .. name .. '.png' },
paramtype = "light", --inventory_image = 'blox_' .. name .. '.png',
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',
is_ground_content = true, is_ground_content = true,
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults(), 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 end
--
-- Crafting -- Crafting
--
minetest.register_craft({ for _, colour in ipairs(DYES) do
output = 'blox:blackdye 4',
recipe = {
{'default:coal'},
}
})
minetest.register_craft({ -- quarter
output = 'blox:reddye 4', minetest.register_craft({
recipe = { output = 'blox:' .. colour ..'quarter 4',
{'default:apple'}, 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({ -- square
output = 'blox:pinkdye 4', minetest.register_craft({
recipe = { output = 'blox:' .. colour ..'square 4',
{'flowers:flower_rose'}, recipe = {
} {'', 'moreblocks:stonesquare', ''},
}) {'moreblocks:stonesquare', 'dye:' .. colour, 'moreblocks:stonesquare'},
{'', 'moreblocks:stonesquare', ''},
}
})
minetest.register_craft({ -- stone
output = 'blox:greendye 4', minetest.register_craft({
recipe = { output = 'blox:' .. colour ..'stone 4',
{'default:cactus'}, recipe = {
} {'', 'default:stone', ''},
}) {'default:stone', 'dye:' .. colour, 'default:stone'},
{'', 'default:stone', ''},
}
})
minetest.register_craft({ -- cross
output = 'blox:yellowdye 4', minetest.register_craft({
recipe = { output = 'blox:' .. colour ..'cross 4',
{'flowers:flower_dandelion_yellow'}, 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({ -- loop
output = 'blox:whitedye 4', minetest.register_craft({
recipe = { output = 'blox:' .. colour ..'loop 6',
{'flowers:flower_dandelion_white'}, recipe = {
} {'default:stone', 'default:stone', 'default:stone'},
}) {'default:stone', 'dye:' .. colour, 'default:stone'},
{'default:stone', 'default:stone', 'default:stone'},
minetest.register_craft({ }
output = 'blox:bluedye 4', })
recipe = {
{'flowers:flower_waterlily'}, -- cobble
} minetest.register_craft({
}) output = 'blox:' .. colour ..'cobble 4',
recipe = {
minetest.register_craft({ {'', 'default:cobble', ''},
output = 'blox:orangedye 4', {'default:cobble', 'dye:' .. colour, 'default:cobble'},
recipe = { {'', 'default:cobble', ''},
{'flowers:flower_tulip'}, }
} })
})
-- corner
minetest.register_craft({ minetest.register_craft({
output = 'blox:purpledye 4', output = 'blox:' .. colour ..'corner 4',
recipe = { recipe = {
{'flowers:flower_viola'}, {'dye:' .. colour, '', 'dye:' .. colour},
} {'', 'default:stone', ''},
}) {'dye:' .. colour, '', 'dye:' .. colour},
}
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'},
}
})
end end
print("Blox Mod [" ..version.. "] Loaded!") print("Blox Mod [" ..version.. "] Loaded!")