Compare commits

11 Commits

64 changed files with 201 additions and 152 deletions

View File

@ -1 +0,0 @@
default

View File

@ -13,9 +13,6 @@ local config = Settings(worldpath.."/christmas_craft.conf")
local conf_table = config:to_table() local conf_table = config:to_table()
--look into readme.md how to change settings --look into readme.md how to change settings
local defaults = { local defaults = {
enable_snowing = "true", enable_snowing = "true",
@ -165,3 +162,5 @@ minetest.register_node("christmas_craft:snow", {
}), }),
}) })
]]-- ]]--
minetest.log("action", "[christmas_craft] loaded.")

5
mod.conf Normal file
View File

@ -0,0 +1,5 @@
name = christmas_craft
title = Christmas Craft
description = Bring the joy of Christmas to Minetest. This mod adds Christmas related things such as presents, baubles, decorations and more, also the mod can also allows you to cover the grass with snow, and make things such as snowmen. You can even have a snowball fight!
depends = default
optional_depends = youngtrees,bushes,woodsoils,flowers,moretrees

View File

@ -83,7 +83,7 @@ minetest.register_craft({
output = "christmas_craft:snowman", output = "christmas_craft:snowman",
recipe = { recipe = {
{"default:coal_lump","default:snow","default:coal_lump"}, {"default:coal_lump","default:snow","default:coal_lump"},
{"default:snow","christmas_craft:snowball","default:snow"}, {"default:snow","default:snow","default:snow"},
{"default:coal_lump","default:coal_lump","default:coal_lump"}, {"default:coal_lump","default:coal_lump","default:coal_lump"},
} }
}) })

View File

@ -21,9 +21,26 @@ minetest.register_node("christmas_craft:present_box", {
-- coloured Present -- -- coloured Present --
local function register_paper(name, description, colorCode, dye)
minetest.register_craftitem("christmas_craft:paper_".. name, {
description = description .."paper",
inventory_image = "default_paper.png^[colorize:#" .. colorCode,
stack_max = 99,
liquids_pointable = false,
})
minetest.register_craft({
type = "shapeless",
output = 'christmas_craft:paper_'.. name,
recipe = {'dye:'..dye,'default:paper'},
})
end
local function register_present(name, description, colorCode, dye) local function register_present(name, description, colorCode, dye)
minetest.register_node("christmas_craft:Christmas_present_"..name, { minetest.register_node("christmas_craft:christmas_present_"..name, {
description = description .." Christmas Present", description = description .." Christmas Present",
tiles = { tiles = {
"christmas_present.png^[colorize:#" ..colorCode.. "^christmas_bow_top.png", "christmas_present.png^[colorize:#" ..colorCode.. "^christmas_bow_top.png",
@ -84,7 +101,7 @@ minetest.register_node("christmas_craft:glass_bauble",{
}, },
is_ground_content = true, is_ground_content = true,
paramtype = "light", paramtype = "light",
use_texture_alpha = true, use_texture_alpha = "blend",
groups = {crumbly=3}, groups = {crumbly=3},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
node_box = { node_box = {
@ -154,23 +171,6 @@ local function register_baubles(name, description, colorCode, dye)
}) })
end end
local function register_paper(name, description, colorCode, dye)
minetest.register_craftitem("christmas_craft:paper_".. name, {
description = description .."paper",
inventory_image = "default_paper.png^[colorize:#" .. colorCode,
stack_max = 99,
liquids_pointable = false,
})
minetest.register_craft({
type = "shapeless",
output = 'christmas_craft:paper_'.. name,
recipe = {'dye:'..dye,'default:paper'},
})
end
colours = { colours = {
-- RGB Prime Colours -- -- RGB Prime Colours --
{name="red", code="FF000099", description="Red", dye="red"}, {name="red", code="FF000099", description="Red", dye="red"},
@ -183,7 +183,7 @@ colours = {
-- RGB Other Colours -- -- RGB Other Colours --
{name="orange", code="E5940099", description="Orange", dye="orange"}, {name="orange", code="E5940099", description="Orange", dye="orange"},
{name="darkgreen", code="004C0099", description="Dark Green", dye="dark_green"}, {name="darkgreen", code="004C0099", description="Dark Green", dye="dark_green"},
{name="violet", code="80008099", description="Violet", dye="purple"}, {name="violet", code="80008099", description="Violet", dye="violet"},
{name="pink", code="FFC0CB99", description="Pink", dye="pink"}, {name="pink", code="FFC0CB99", description="Pink", dye="pink"},
{name="brown", code="732c0b99", description="Brown", dye="brown"}, {name="brown", code="732c0b99", description="Brown", dye="brown"},
-- MonoChrome -- -- MonoChrome --

View File

@ -6,7 +6,7 @@ minetest.register_alias("christmas_craft:snow_block", "default:snowblock")
minetest.register_alias("christmas_craft:silver_baubles", "christmas_craft:white_baubles") minetest.register_alias("christmas_craft:silver_baubles", "christmas_craft:white_baubles")
minetest.register_alias("christmas_craft:Christmas_present", "christmas_craft:Christmas_present_white") minetest.register_alias("christmas_craft:Christmas_present", "christmas_craft:christmas_present_white")
-- ========== -- -- ========== --
-- misk nodes -- -- misk nodes --
@ -329,33 +329,11 @@ minetest.register_node("christmas_craft:candy_cane_tree", {
on_place = minetest.rotate_node on_place = minetest.rotate_node
}) })
minetest.register_node(":default:snow", { minetest.override_item("default:snow", {
description = "Snow",
tiles = {"default_snow.png"},
inventory_image = "default_snowball.png",
wield_image = "default_snowball.png",
paramtype = "light",
buildable_to = true,
walkable = false,
floodable = true,
drawtype = "nodebox",
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
{-0.5, -0.5, -0.5, 0.5, -0.125, 0.5}, {-0.5, -0.5, -0.5, 0.5, -0.125, 0.5},
}, },
}, },
groups = {crumbly = 3, falling_node = 1, puts_out_fire = 1},
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.15},
dug = {name = "default_snow_footstep", gain = 0.2},
dig = {name = "default_snow_footstep", gain = 0.2}
}),
on_construct = function(pos)
pos.y = pos.y - 1
if minetest.get_node(pos).name == "default:dirt_with_grass" then
minetest.set_node(pos, {name = "default:dirt_with_snow"})
end
end,
}) })

274
snow.lua
View File

@ -1,118 +1,186 @@
print (" ---- Overrider christmas_craft = true! ---- ") print (" ---- Overrider christmas_craft = true! ---- ")
minetest.register_node(":default:dirt_with_grass", { local snowballdrop = {items = {'default:snow'}, rarity = 0}
description = "Dirt with Grass",
tiles = {"default_snow.png", "default_dirt.png", "default_dirt.png^default_snow_side.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1},
drop = {
max_items = 2, items = {
{items = {'default:dirt'}, rarity = 0,},
{items = {'christmas_craft:snowball'}, rarity = 0,},
}},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
}),
})
local add_drop = function (def)
minetest.register_node(":default:leaves", { if type(def.drop) == "table" then
description = "Leaves", if def.drop.max_items then
drawtype = "allfaces_optional", def.drop.max_items = def.drop.max_items + 1
waving = 1, end
visual_scale = 1.3, table.insert(def.drop.items, snowballdrop)
tiles = {"christmas_leaves_side.png"}, elseif type(def.drop) == "string" then
special_tiles = {"default_leaves_simple.png"}, def.drop = {
paramtype = "light", items = {
is_ground_content = false, {items = {def.drop}, rarity = 0},
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, snowballdrop
drop = {
max_items = 1,
items = {
{
-- player will get sapling with 1/20 chance
items = {'default:sapling'},
rarity = 20,
},
{
-- player will get leaves only if he get no saplings,
-- this is because max_items is 1
items = {'default:leaves'},
} }
} }
}, else
sounds = default.node_sound_leaves_defaults(), def.drop = {
items = {
after_place_node = default.after_place_leaves, snowballdrop
})
minetest.register_node(":default:aspen_leaves", {
description = "Aspen Leaves",
drawtype = "allfaces_optional",
visual_scale = 1.3,
tiles = {"christmas_aspen_leaves.png"},
waving = 1,
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
drop = {
max_items = 1,
items = {
{items = {"default:aspen_sapling"}, rarity = 20},
{items = {"default:aspen_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- old code
--[[
minetest.register_node(":default:leaves", {
description = "Leaves",
drawtype = "nodebox",
visual_scale = 1.3,
tiles = {"default_snow.png", "christmas_leaves_bot.png", "christmas_leaves_side.png"},
paramtype = "light",
groups = {snappy=3, leafdecay=3, flammable=2, leaves=1},
drop = {
max_items = 1,
items = {
{
-- player will get sapling with 1/20 chance
items = {'default:sapling'},
rarity = 20,
},
{
-- player will get leaves only if he get no saplings,
-- this is because max_items is 1
items = {'default:leaves'},
} }
} }
}, end
sounds = default.node_sound_leaves_defaults(), end
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
},
},
local data = minetest.registered_nodes["default:dirt_with_snow"]
minetest.override_item(
"default:dirt_with_grass", {
tiles = data.tiles,
sounds = data.sounds,
}) })
]] minetest.override_item(
"default:dirt_with_dry_grass", {
tiles = data.tiles,
sounds = data.sounds,
})
minetest.override_item(
"default:dry_dirt_with_dry_grass", {
tiles = {"default_snow.png", "default_dry_dirt.png",
{name = "default_dry_dirt.png^default_snow_side.png",
tileable_vertical = false}},
sounds = data.sounds,
})
minetest.override_item(
"default:dirt_with_rainforest_litter", {
tiles = data.tiles,
sounds = data.sounds,
})
minetest.override_item(
"default:dirt_with_coniferous_litter", {
tiles = data.tiles,
sounds = data.sounds,
})
-- Replace woodsoils
local woodsoils = {
"woodsoils:grass_with_leaves_1",
"woodsoils:grass_with_leaves_2",
"woodsoils:dirt_with_leaves_1",
"woodsoils:dirt_with_leaves_2"
}
for _,woodsoil in pairs(woodsoils) do
if minetest.registered_nodes[woodsoil] then
minetest.override_item(
woodsoil, {
tiles = { "default_snow.png", "default_dirt.png", "grass_w_snow_side.png" },
sounds = data.sounds
})
add_drop(minetest.registered_nodes[woodsoil])
end
end
-- Replace leaves
minetest.override_item("default:pine_needles", {
tiles = {"default_pine_needles.png^christmas_snow_leaves.png"}
})
minetest.override_item("default:pine_bush_needles", {
tiles = {"default_pine_needles.png^christmas_snow_leaves.png"}
})
minetest.override_item("default:bush_leaves", {
tiles = {"(default_leaves.png^[multiply:#c75000)^christmas_snow_leaves.png"}
})
for _, leaves in pairs({"leaves", "aspen_leaves", "jungleleaves"}) do
local tree_leaves = "default:"..leaves
minetest.override_item(tree_leaves, {
tiles = {
"(default_"..leaves..".png^[multiply:#c75000)^christmas_snow_leaves.png"
}})
end
if minetest.get_modpath("moretrees") then
-- replace moretrees leaves adding snow and brown mask
for _, leaves in pairs({"beech", "apple_tree", "oak", "birch", "poplar", "willow", "rubber_tree"}) do
local tree_leaves = "moretrees:"..leaves.."_leaves"
minetest.override_item(tree_leaves, {
tiles = {
"(moretrees_"..leaves.."_leaves.png^[multiply:#c75000)^christmas_snow_leaves.png"
}})
end
-- replace moretrees leaves adding snow
for _, leaves in pairs({"sequoia", "palm", "date_palm", "spruce", "cedar", "fir"}) do
local tree_leaves = "moretrees:"..leaves.."_leaves"
minetest.override_item(tree_leaves, {
tiles = {
"moretrees_"..leaves.."_leaves.png^christmas_snow_leaves.png"
}})
end
-- fir with bright needles
minetest.override_item("moretrees:fir_leaves_bright", {
tiles = {
"moretrees_fir_leaves_bright.png^christmas_snow_leaves.png"
}})
end
-- Replace apple by the snow version
minetest.override_item("default:apple", {
tiles = {"snow_apple.png"},
inventory_image = "snow_apple.png"
})
-- replace grass
for i=1,5 do
minetest.override_item("default:grass_" .. i, {tiles = {"christmas_grass_"..i..".png"}})
minetest.override_item("default:dry_grass_" .. i, {tiles = {"christmas_dry_grass_"..i..".png"}})
end
-- Replace junglegrass
minetest.override_item("default:junglegrass", {tiles = {"christmas_junglegrass.png"}})
-- Replace youngtrees
if minetest.registered_items["youngtrees:youngtree_top"] then
minetest.override_item("youngtrees:youngtree_top", {tiles = {"christmas_youngtree16xa.png"}})
minetest.override_item("youngtrees:youngtree_middle", {tiles = {"christmas_youngtree16xb.png"}})
end
-- Replace bushes
if minetest.registered_items["bushes:BushLeaves1"] then
minetest.override_item("bushes:BushLeaves1", {tiles = {"christmas_bushes_leaves.png"}})
minetest.override_item("bushes:BushLeaves2", {tiles = {"christmas_bushes_leaves.png"}})
minetest.override_item("bushes:bushbranches1",
{tiles = {"christmas_bushes_leaves.png", "christmas_bushes_branches_center.png"}})
minetest.override_item("bushes:bushbranches3",
{tiles = {"christmas_bushes_leaves.png", "christmas_bushes_branches_center.png"}})
minetest.override_item("bushes:bushbranches2", {
tiles = {
"christmas_bushes_leaves.png",
"christmas_bushes_branches_center.png",
"christmas_bushes_branches_left.png",
"christmas_bushes_branches_right.png",
"christmas_bushes_branches_center.png",
"christmas_bushes_branches_right.png"
}})
minetest.override_item("bushes:bushbranches4", {
tiles = {
"christmas_bushes_leaves.png",
"christmas_bushes_branches_center.png",
"christmas_bushes_branches_left.png",
"christmas_bushes_branches_right.png",
"christmas_bushes_branches_center.png",
"christmas_bushes_branches_right.png"
}})
minetest.override_item("bushes:youngtree2_bottom", {
tiles = {"christmas_bushes_youngtree2trunk.png"},
inventory_image = "christmas_bushes_youngtree2trunk_inv.png",
wield_image = "christmas_bushes_youngtree2trunk_inv.png"
})
end
-- replace flowers
for _,name in pairs({"dandelion_yellow", "geranium", "rose", "tulip", "dandelion_white", "viola", "chrysanthemum_green", "tulip_black"}) do
local flowername = "flowers:"..name
local tiles = { "snow_" .. name .. ".png" }
minetest.override_item(flowername, { tiles = tiles })
end
print (" ---- Overrider christmas_craft [OK] ---- ") print (" ---- Overrider christmas_craft [OK] ---- ")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 B

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 B

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 B

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 B

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 B

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 B

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 602 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 B

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 403 B

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 B

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 B

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 B

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 808 B

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 548 B

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 536 B

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 635 B

After

Width:  |  Height:  |  Size: 214 B

BIN
textures/snow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

BIN
textures/snow_apple.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 203 B

BIN
textures/snow_geranium.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

BIN
textures/snow_rose.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

BIN
textures/snow_tulip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

BIN
textures/snow_viola.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B