From 8d9ee6a22590ab918292bbbd350b03c6f55abca5 Mon Sep 17 00:00:00 2001 From: Infinatum Date: Tue, 8 Nov 2016 08:59:55 +0000 Subject: [PATCH] Added Legacy Support --- mod_files/crafts.lua | 183 ++++++++++ mod_files/items.lua | 47 +++ mod_files/multi-node.lua | 200 ++++++++++ mod_files/node.lua | 361 +++++++++++++++++++ mod_support/mtfoods.lua | 28 ++ textures/christmas-candy_cabe.png | Bin 0 -> 238 bytes textures/christmas-candy_cabe_top.png | Bin 0 -> 440 bytes textures/christmas_aspen_leaves.png | Bin 0 -> 755 bytes textures/christmas_baubles-side.png | Bin 0 -> 301 bytes textures/christmas_baubles-top.png | Bin 0 -> 301 bytes textures/christmas_baubles.png | Bin 0 -> 380 bytes textures/christmas_baubles_side.png | Bin 0 -> 209 bytes textures/christmas_baubles_top.png | Bin 0 -> 203 bytes textures/christmas_bow_bottom.png | Bin 0 -> 127 bytes textures/christmas_bow_side.png | Bin 0 -> 124 bytes textures/christmas_bow_top.png | Bin 0 -> 138 bytes textures/christmas_candy_cain_stick.png | Bin 0 -> 311 bytes textures/christmas_candy_cain_stick_wall.png | Bin 0 -> 309 bytes textures/christmas_craft_pud-top.png | Bin 0 -> 332 bytes textures/christmas_ginger-mix.png | Bin 0 -> 262 bytes textures/christmas_leaves_bot.png | Bin 0 -> 434 bytes textures/christmas_leaves_side.png | Bin 0 -> 602 bytes textures/christmas_lights.png | Bin 0 -> 208 bytes textures/christmas_lights_animated.png | Bin 0 -> 355 bytes textures/christmas_present.png | Bin 0 -> 181 bytes textures/christmas_present_box.png | Bin 0 -> 151 bytes textures/christmas_pud-bot.png | Bin 0 -> 403 bytes textures/christmas_pud-mix.png | Bin 0 -> 264 bytes textures/christmas_pud-side.png | Bin 0 -> 407 bytes textures/christmas_pud-top.png | Bin 0 -> 382 bytes textures/christmas_star.png | Bin 0 -> 387 bytes textures/christmas_stocking.png | Bin 0 -> 464 bytes textures/christmas_sugar.png | Bin 0 -> 343 bytes textures/christmas_wreath.png | Bin 0 -> 808 bytes textures/farming_flour.png | Bin 0 -> 159 bytes textures/ginger_bread_man.png | Bin 0 -> 548 bytes 36 files changed, 819 insertions(+) create mode 100644 mod_files/crafts.lua create mode 100644 mod_files/items.lua create mode 100644 mod_files/multi-node.lua create mode 100644 mod_files/node.lua create mode 100644 mod_support/mtfoods.lua create mode 100644 textures/christmas-candy_cabe.png create mode 100644 textures/christmas-candy_cabe_top.png create mode 100644 textures/christmas_aspen_leaves.png create mode 100644 textures/christmas_baubles-side.png create mode 100644 textures/christmas_baubles-top.png create mode 100644 textures/christmas_baubles.png create mode 100644 textures/christmas_baubles_side.png create mode 100644 textures/christmas_baubles_top.png create mode 100644 textures/christmas_bow_bottom.png create mode 100644 textures/christmas_bow_side.png create mode 100644 textures/christmas_bow_top.png create mode 100644 textures/christmas_candy_cain_stick.png create mode 100644 textures/christmas_candy_cain_stick_wall.png create mode 100644 textures/christmas_craft_pud-top.png create mode 100644 textures/christmas_ginger-mix.png create mode 100644 textures/christmas_leaves_bot.png create mode 100644 textures/christmas_leaves_side.png create mode 100644 textures/christmas_lights.png create mode 100644 textures/christmas_lights_animated.png create mode 100644 textures/christmas_present.png create mode 100644 textures/christmas_present_box.png create mode 100644 textures/christmas_pud-bot.png create mode 100644 textures/christmas_pud-mix.png create mode 100644 textures/christmas_pud-side.png create mode 100644 textures/christmas_pud-top.png create mode 100644 textures/christmas_star.png create mode 100644 textures/christmas_stocking.png create mode 100644 textures/christmas_sugar.png create mode 100644 textures/christmas_wreath.png create mode 100644 textures/farming_flour.png create mode 100644 textures/ginger_bread_man.png diff --git a/mod_files/crafts.lua b/mod_files/crafts.lua new file mode 100644 index 0000000..f47c417 --- /dev/null +++ b/mod_files/crafts.lua @@ -0,0 +1,183 @@ +-- =============== -- +-- christmas nodes -- +-- =============== -- + +-- decorations -- + +minetest.register_craft({ + output = "christmas_craft:christmas_lights 4", + recipe = { + {"farming:string","default:mese_crystal", "farming:string"}, + {"default:glass","default:glass", "default:glass"}, + } +}) + +minetest.register_craft({ + output = "christmas_craft:christmas_wall_lights 4", + recipe = { + {"","default:mese_crystal", ""}, + {"default:glass","default:glass", "default:glass"}, + } +}) + +minetest.register_craft({ + output = "christmas_craft:christmas_leaves 4", + recipe = { + {"default:leaves","default:leaves"}, + {"default:leaves","default:leaves"}, + } +}) + +minetest.register_craft({ + output = "christmas_craft:christmas_star ", + recipe = { + {"","default:gold_ingot",""}, + {"default:gold_ingot","default:gold_ingot","default:gold_ingot"}, + {"default:gold_ingot","","default:gold_ingot"}, + } +}) + +minetest.register_craft({ + output = "christmas_craft:christmas_wreath ", + recipe = { + {"christmas_craft:christmas_leaves","christmas_craft:christmas_leaves","christmas_craft:christmas_leaves"}, + {"christmas_craft:christmas_leaves","","christmas_craft:christmas_leaves"}, + {"christmas_craft:christmas_leaves","christmas_craft:red_ribbon","christmas_craft:christmas_leaves"}, + } +}) + +-- snow node -- + +minetest.register_craft({ + output = "christmas_craft:snow_slab 3", + recipe = { + {"default:snow","default:snow","default:snow"}, + } +}) + +minetest.register_craft({ + output = "christmas_craft:snow_steps 3", + recipe = { + {"default:snow","",""}, + {"default:snow","default:snow",""}, + {"default:snow","default:snow","default:snow"}, + } +}) + +minetest.register_craft({ + output = "christmas_craft:snow_steps_1 3", + recipe = { + {"christmas_craft:snow_steps","christmas_craft:snow_steps",""}, + {"christmas_craft:snow_steps","",""}, + } +}) + +minetest.register_craft({ + output = "christmas_craft:snow_steps_2", + recipe = { + {"christmas_craft:snow_steps"}, + } +}) + +minetest.register_craft({ + output = "christmas_craft:snowman", + recipe = { + {"default:coal_lump","default:snow","default:coal_lump"}, + {"default:snow","christmas_craft:snowball","default:snow"}, + {"default:coal_lump","default:coal_lump","default:coal_lump"}, + } +}) + +-- food -- + +minetest.register_craft({ + output = "christmas_craft:ginger_mix", + recipe = { + {"christmas_craft:sugar","christmas_craft:sugar"}, + {"farming:flour","farming:flour"}, + } +}) + +minetest.register_craft({ + type = "cooking", + output = "christmas_craft:ginger_bread_man", + recipe = "christmas_craft:ginger_mix", +}) + +minetest.register_craft({ + output = "christmas_craft:christmas_pudding_mix", + recipe = { + {"christmas_craft:sugar","christmas_craft:sugar","christmas_craft:sugar"}, + {"default:apple","farming:flour","default:apple"}, + {"farming:flour","default:apple","farming:flour"}, + } +}) + +minetest.register_craft({ + type = "cooking", + output = "christmas_craft:christmas_pudding", + recipe = "christmas_craft:christmas_pudding_mix", +}) + +minetest.register_craft({ + type = "cooking", + output = "christmas_craft:sugar", + recipe = "group:flower", +}) + +-- candy cain + +minetest.register_craft({ + output = "christmas_craft:candy_cane", + recipe = { + {"","christmas_craft:sugar","christmas_craft:sugar"}, + {"","christmas_craft:sugar",""}, + {"christmas_craft:sugar","",""}, + } +}) + + +minetest.register_craft({ + output = "christmas_craft:candy_cane_node", + recipe = { + {"christmas_craft:candy_cane","christmas_craft:candy_cane","christmas_craft:candy_cane"}, + {"christmas_craft:candy_cane","","christmas_craft:candy_cane"}, + {"christmas_craft:candy_cane","christmas_craft:candy_cane","christmas_craft:candy_cane"}, + } +}) + +minetest.register_craft({ + output = "christmas_craft:candy_cane_tree", + recipe = { + {"christmas_craft:candy_cane","christmas_craft:candy_cane","christmas_craft:candy_cane"}, + {"christmas_craft:candy_cane","group:tree","christmas_craft:candy_cane"}, + {"christmas_craft:candy_cane","christmas_craft:candy_cane","christmas_craft:candy_cane"}, + } +}) + +-- ribbon craft -- + +minetest.register_craft({ + type = "shapeless", + output = 'christmas_craft:red_ribbon', + recipe = {'dye:red','farming:string'}, +}) + +-- wish list craft -- + +minetest.register_craft({ + type = "shapeless", + output = 'christmas_craft:wish_list', + recipe = {'default:stick','default:mese_crystal','default:paper','dye:black'}, +}) + +-- present box -- + +minetest.register_craft({ + output = "christmas_craft:present_box", + recipe = { + {"default:paper","default:paper", "default:paper"}, + {"default:paper","christmas_craft:wish_list", "default:paper"}, + {"default:paper","default:paper", "default:paper"}, + } +}) diff --git a/mod_files/items.lua b/mod_files/items.lua new file mode 100644 index 0000000..1f9c807 --- /dev/null +++ b/mod_files/items.lua @@ -0,0 +1,47 @@ +minetest.register_craftitem("christmas_craft:red_ribbon", { +description = "Red Ribbon", +inventory_image = "christmas_craft_red_ribbon.png", +stack_max = 99, +liquids_pointable = false, +}) + +-- wish list -- + +minetest.register_craftitem("christmas_craft:wish_list", { +description = "Wish list", +inventory_image = "christmas_craft_which_list.png", +stack_max = 99, +liquids_pointable = false, +}) + +minetest.register_craftitem("christmas_craft:christmas_pudding_mix", { + description = "Christmas Pudding Mix", + inventory_image = "christmas_pud-mix.png", +}) + +minetest.register_craftitem("christmas_craft:ginger_mix", { + description = "Christmas Ginger Mix", + inventory_image = "christmas_ginger-mix.png", +}) + +minetest.register_craftitem("christmas_craft:sugar", { + description = "Christmas sugar", + inventory_image = "christmas_sugar.png", +}) + +minetest.register_node("christmas_craft:ginger_bread_man", { + description = "Ginger Bread Man", + drawtype = "signlike", + walkable = false, + tiles = + {name="ginger_bread_man.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=3.0}}, + inventory_image = "ginger_bread_man.png", + wield_image = "ginger_bread_man.png", + paramtype = "light", + paramtype2 = "wallmounted", + selection_box = { + type = "wallmounted", + }, + groups = {oddly_breakable_by_hand = 3}, + on_use = minetest.item_eat(4), +}) diff --git a/mod_files/multi-node.lua b/mod_files/multi-node.lua new file mode 100644 index 0000000..426dacd --- /dev/null +++ b/mod_files/multi-node.lua @@ -0,0 +1,200 @@ +-- ===================== -- +-- Christmas Craft Nodes -- +-- ===================== -- + +print("scaffolding: Loading 'functions.lua'") + +-- ============ -- +-- Node Present -- +-- ============ -- + +-- Present boxs -- + +minetest.register_node("christmas_craft:present_box", { + description = "Present Box", + tiles = {"christmas_present_box.png"}, + is_ground_content = true, + paramtype = "light", + groups = {crumbly=3}, + sounds = default.node_sound_sand_defaults(), +}) + +-- coloured Present -- + +local function register_present(name, description, colorCode, dye) + +minetest.register_node("christmas_craft:Christmas_present_"..name, { + description = description .." Christmas Present", + tiles = { + "christmas_present.png^[colorize:#" ..colorCode.. "^christmas_bow_top.png", + "christmas_present.png^[colorize:#" ..colorCode.. "^christmas_bow_bottom.png", + "christmas_present.png^[colorize:#" ..colorCode.. "^christmas_bow_side.png"}, + is_ground_content = true, + groups = {crumbly=3}, + drop = { + max_items = 1, min_items = 1, items = { + {items = {'default:bookshelf'}, rarity = 90,}, + {items = {'default:pick_mese'}, rarity = 80,}, + {items = {'default:shovel_steel'}, rarity = 90,}, + {items = {'default:axe_steel'}, rarity = 90,}, + {items = {'default:pick_steel'}, rarity = 90,}, + {items = {'default:sign_wall'}, rarity = 80,}, + {items = {'default:chest'}, rarity = 80,}, + {items = {'default:furnace'}, rarity = 80,}, + {items = {'default:steelblock'}, rarity = 80,}, + {items = {'default:coal_lump'}, rarity = 80,}, + {items = {'default:pick_diamond'}, rarity = 75,}, + {items = {'default:shovel_diamond'}, rarity = 75,}, + {items = {'default:axe_diamond'}, rarity = 75,}, + {items = {'default:diamondblock'}, rarity = 75}, + {items = {'fake_fire:flint_and_steel'}, rarity = 90,}, + {items = {'default:chest_locked'}, rarity = 80,}, + {items = {'default:brick'}, rarity = 80,}, + {items = {'default:dirt_with_grass'}, rarity = 80,}, + }}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), +}) + +minetest.register_craft({ + output = "christmas_craft:christmas_present"..name , + recipe = { + {"christmas_craft:paper_".. name,"christmas_craft:red_ribbon", "christmas_craft:paper_".. name}, + {"christmas_craft:paper_".. name,"christmas_craft:present_box", "christmas_craft:paper_".. name}, + {"christmas_craft:paper_".. name,"christmas_craft:red_ribbon", "christmas_craft:paper_".. name}, + } +}) + +end + +-- ============ -- +-- Node Baubles -- +-- ============ -- + +-- Glass Baunles -- + +minetest.register_node("christmas_craft:glass_bauble",{ + description = "Bauble", + drawtype = "nodebox", + tiles = { + "christmas_baubles-top.png^christmas_baubles_top.png", + "christmas_baubles-top.png^christmas_baubles_side.png", + "christmas_baubles-side.png^christmas_baubles_side.png", + }, + is_ground_content = true, + paramtype = "light", + use_texture_alpha = true, + groups = {crumbly=3}, + sounds = default.node_sound_glass_defaults(), + node_box = { + type = "fixed", + fixed = { + {-0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 + {-0.25, -0.0625, -0.25, 0.25, 0.4375, 0.25}, -- NodeBox2 + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.0625, 0, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 + {-0.25, -0.0625, -0.25, 0.25, 0.4375, 0.25}, -- NodeBox2 + }, + }, +}) + +minetest.register_craft({ + output = "christmas_craft:glass_bauble 8", + recipe = { + {"default:glass","default:gold_ingot", "default:glass"}, + {"default:glass","", "default:glass"}, + {"default:glass","default:glass", "default:glass"}, + } +}) + +-- Colour Baunles -- + +local function register_baubles(name, description, colorCode, dye) + + minetest.register_node("christmas_craft:" .. name .. "_baubles",{ + description = description.. " Baubles", + drawtype = "nodebox", + tiles = { + "christmas_baubles.png^[colorize:#" ..colorCode.. "^christmas_baubles_top.png", + "christmas_baubles.png^[colorize:#" ..colorCode.. "^christmas_baubles_side.png", + "christmas_baubles.png^[colorize:#" ..colorCode.. "^christmas_baubles_side.png", + }, + is_ground_content = true, + paramtype = "light", + groups = {crumbly=3}, + sounds = default.node_sound_glass_defaults(), + node_box = { + type = "fixed", + fixed = { + {-0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 + {-0.25, -0.0625, -0.25, 0.25, 0.4375, 0.25}, -- NodeBox2 + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.0625, 0, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 + {-0.25, -0.0625, -0.25, 0.25, 0.4375, 0.25}, -- NodeBox2 + }, + }, + }) + + minetest.register_craft({ + output = "christmas_craft:" .. name .. "_baubles 8", + recipe = { + {"default:glass","default:gold_ingot", "default:glass"}, + {"default:glass","dye:"..dye, "default:glass"}, + {"default:glass","default:glass", "default:glass"}, + } + }) +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 = { + -- RGB Prime Colours -- + {name="red", code="FF000099", description="Red", dye="red"}, + {name="green", code="00FF0099", description="Green", dye="green"}, + {name="blue", code="0000FF99", description="Blue", dye="blue"}, + -- RGB Secondary Colour -- + {name="yellow", code="FFFF0099", description="Yellow", dye="yellow"}, + {name="magenta", code="FF00FF99", description="Magenta", dye="magenta"}, + {name="cyan", code="00FFFF99", description="Cyan", dye="cyan"}, + -- RGB Other Colours -- + {name="orange", code="E5940099", description="Orange", dye="orange"}, + {name="darkgreen", code="004C0099", description="Dark Green", dye="dark_green"}, + {name="violet", code="80008099", description="Violet", dye="purple"}, + {name="pink", code="FFC0CB99", description="Pink", dye="pink"}, + {name="brown", code="732c0b99", description="Brown", dye="brown"}, + -- MonoChrome -- + {name="white", code="FFFFFF99", description="White", dye="white"}, + {name="grey", code="80808099", description="Grey", dye="grey"}, + {name="darkgrey", code="14141499", description="Dark Grey", dye="dark_grey"} +} + +for i,colour in ipairs(colours) do + register_present(colour.name, colour.description, colour.code, colour.dye) + register_baubles(colour.name, colour.description, colour.code, colour.dye) + register_paper(colour.name, colour.description, colour.code, colour.dye) + -- register whatever here +end diff --git a/mod_files/node.lua b/mod_files/node.lua new file mode 100644 index 0000000..2261057 --- /dev/null +++ b/mod_files/node.lua @@ -0,0 +1,361 @@ +-- ============== -- +-- legacy support -- +-- ============== -- + +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:Christmas_present", "christmas_craft:Christmas_present_white") + +-- ========== -- +-- misk nodes -- +-- ========== -- +minetest.register_node("christmas_craft:christmas_wreath", { + description = "Christmas Wreath", + drawtype = "signlike", + walkable = false, + tiles = { + {name="christmas_wreath.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=3.0}}, + }, + inventory_image = "christmas_wreath.png", + paramtype = "light", + paramtype2 = "wallmounted", + selection_box = { + type = "wallmounted", + }, + groups = {oddly_breakable_by_hand = 3}, +}) + +minetest.register_node("christmas_craft:christmas_star", { + description = "christmas Star", + drawtype = "plantlike", + light_source = 10, + tiles = {"christmas_star.png"}, + is_ground_content = true, + groups = {crumbly=3}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("christmas_craft:christmas_leaves", { + description = "Christmas leaves", + drawtype = "allfaces_optional", + tiles = {"christmas_leaves.png"}, + is_ground_content = false, + paramtype = "light", + groups = {crumbly=3}, + sounds = default.node_sound_sand_defaults(), +}) + + +-- =========== -- +-- Snow Block -- +-- =========== -- + +-- snowman + +minetest.register_node("christmas_craft:snowman", { + description = "Snowman", + tiles = {"default_snow.png", "default_snow.png", "default_snow.png", + "default_snow.png", "default_snow.png", "Snowman_F.png"}, + is_ground_content = true, + paramtype2 = "facedir", + groups = {crumbly=3}, + sounds = default.node_sound_sand_defaults(), +}) + +-- snow steps -- + +minetest.register_node("christmas_craft:snow_slab",{ + description = "Snow Slab", + drawtype = "nodebox", + tiles = {"default_snow.png"}, + is_ground_content = true, + walkable = false, + paramtype = "light", + paramtype2 = "facedir", + groups = {crumbly=3}, + 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} + }), + drop = 'default:snow', + node_box = { + type = "fixed", + fixed = { + {-0.5, -1, -0.5, 0.5, -0.625, 0.5}, -- NodeBox2 + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -1, -0.5, 0.5, -0.4375, 0.5}, -- NodeBox2 + }, + }, +}) + +minetest.register_node("christmas_craft:snow_steps",{ + description = "Snow Stairs", + drawtype = "nodebox", + tiles = {"default_snow.png"}, + is_ground_content = true, + walkable = false, + paramtype = "light", + paramtype2 = "facedir", + groups = {crumbly=3}, + 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} + }), + drop = 'default:snow 2', + node_box = { + type = "fixed", + fixed = { + {-0.5, -1, -0.5, 0.5, -0.625, 0}, -- NodeBox2 + {-0.5, -0.5, 0, 0.5, -0.125, 0.5}, -- NodeBox3 + } + }, +}) + +minetest.register_node("christmas_craft:snow_steps_1",{ + description = "Snow Stairs", + drawtype = "nodebox", + tiles = {"default_snow.png"}, + is_ground_content = true, + walkable = false, + paramtype = "light", + paramtype2 = "facedir", + groups = {crumbly=3}, + 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} + }), + drop = 'default:snow 2', + node_box = { + type = "fixed", + fixed = { + {0, -1, -0.5, 0.5, -0.625, 0}, -- NodeBox2 + {-0.5, -0.5, 0, 0.5, -0.125, 0.5}, -- NodeBox3 + {-0.5, -0.5, -0.5, 0, -0.125, 0.0625}, -- NodeBox4 + } + }, +}) + +minetest.register_node("christmas_craft:snow_steps_2",{ + description = "Snow Stairs", + drawtype = "nodebox", + tiles = {"default_snow.png"}, + is_ground_content = true, + walkable = false, + paramtype = "light", + paramtype2 = "facedir", + groups = {crumbly=3}, + 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} + }), + drop = 'default:snow 2', + node_box = { + type = "fixed", + fixed = { + {-0.5, -1, -0.5, 0.5, -0.625, 0}, -- NodeBox2 + {-0.5, -0.5, 0, 0, -0.125, 0.5}, -- NodeBox3 + {0, -1, 0, 0.5, -0.625, 0.5}, -- NodeBox5 + } + }, +}) + +minetest.register_node("christmas_craft:christmas_pudding", { + description = "Christmas Pudding", + tiles = { + "christmas_pud-top.png", + "christmas_pud-bot.png", + "christmas_pud-side.png", + }, + drawtype = "nodebox", + paramtype = "light", + groups = {crumbly=3}, + sounds = default.node_sound_sand_defaults(), + on_use = minetest.item_eat(8), + node_box = { + type = "fixed", + fixed = { + {-0.3125, -0.5, -0.3125, 0.3125, 0.0625, 0.3125}, -- NodeBox2 + {-0.0625, 0.0625, 0, 0, 0.125, 0.0625}, -- NodeBox4 + {0, 0.0625, -0.0625, 0.0625, 0.125, 0}, -- NodeBox5 + } + } +}) + +local stocking_formspec = [[ +size[8,9] +list[context;main;0,0.3;8,4;] +list[current_player;main;0,4.85;8,1;] +list[current_player;main;0,6.08;8,3;8] +listring[context;main] +listring[current_player;main] +]] + +minetest.register_node("christmas_craft:stocking", { + description = "Christmas Stocking", + drawtype = "signlike", + walkable = false, + tiles = + {name="christmas_stocking.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=3.0}}, + inventory_image = "christmas_stocking.png", + wield_image = "christmas_stocking.png", + paramtype = "light", + paramtype2 = "wallmounted", + selection_box = { + type = "wallmounted", + }, + groups = {oddly_breakable_by_hand = 3}, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", stocking_formspec ) + meta:set_string("infotext", "Christmas Stocking") + local inv = meta:get_inventory() + inv:set_size("main", 16) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name().. + " moves stuff in box at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " moves stuff to box at "..minetest.pos_to_string(pos)) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from box at "..minetest.pos_to_string(pos)) + end, +}) +-- lights -- + +minetest.register_node("christmas_craft:christmas_wall_lights", { + description = "christmas Wall lights", + drawtype = "signlike", + light_source = 10, + walkable = false, + tiles = { + {name="christmas_lights_animated.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=3.0}}, + }, + inventory_image = "christmas_lights.png", + wield_image = "christmas_lights.png", + paramtype = "light", + paramtype2 = "wallmounted", + selection_box = { + type = "wallmounted", + }, + groups = {oddly_breakable_by_hand = 3}, +}) + +minetest.register_node("christmas_craft:christmas_lights", { + description = "Christmas Lights", + tiles = { + {name="christmas_lights_animated.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=3.0}}, + }, + inventory_image = "christmas_lights.png", + wield_image = "christmas_lights.png", + drawtype = "nodebox", + walkable = false, + light_source = 10, + paramtype = "light", + paramtype2 = "facedir", + groups = {crumbly=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, 0.25, 0, 0.5, 0.5, 0}, -- NodeBox7 + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, 0.25, -0.125, 0.5, 0.5, 0.125}, -- NodeBox13 + }, + }, +}) + +-- candy cain -- +minetest.register_node("christmas_craft:candy_cane", { + description = "Candy Cane", + drawtype = "torchlike", + --tiles = {"default_torch_on_floor.png", "default_torch_on_ceiling.png", "default_torch.png"}, + tiles = {"christmas_candy_cain_stick_wall.png"}, + inventory_image = "christmas_candy_cain_stick.png", + wield_image = "christmas_candy_cain_stick.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + on_use = minetest.item_eat(1), + selection_box = { + type = "wallmounted", + wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1}, + }, + groups = {choppy=2,dig_immediate=3,flammable=1,stick=1}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("christmas_craft:candy_cane_node", { + description = "Giant Candy Cane", + tiles = {"christmas-candy_cabe.png",}, + is_ground_content = true, + paramtype2 = "facedir", + groups = { choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("christmas_craft:candy_cane_tree", { + description = "Candy Cane Tree", + tiles = {"christmas-candy_cabe_top.png", "christmas-candy_cabe_top.png", + "christmas-candy_cabe.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = { choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node(":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 = { + type = "fixed", + fixed = { + {-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, +}) diff --git a/mod_support/mtfoods.lua b/mod_support/mtfoods.lua new file mode 100644 index 0000000..81b4b65 --- /dev/null +++ b/mod_support/mtfoods.lua @@ -0,0 +1,28 @@ + +minetest.register_craft({ + output = "christmas_craft:christmas_pudding_mix", + recipe = { + {"mtfoods:sugar","mtfoods:sugar","mtfoods:sugar"}, + {"default:apple","farming:flour","default:apple"}, + {"farming:flour","default:apple","farming:flour"}, + } +}) + +-- candy cain + +minetest.register_craft({ + output = "christmas_craft:candy_cane", + recipe = { + {"","mtfoods:sugar","mtfoods:sugar"}, + {"","mtfoods:sugar",""}, + {"mtfoods:sugar","",""}, + } +}) + +minetest.register_craft({ + output = "christmas_craft:ginger_mix", + recipe = { + {"mtfoods:sugar","mtfoods:sugar"}, + {"farming:flour","farming:flour"}, + } +}) diff --git a/textures/christmas-candy_cabe.png b/textures/christmas-candy_cabe.png new file mode 100644 index 0000000000000000000000000000000000000000..6b1ba85643aa398f6932f25fe2c3f42b4957bfd8 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#0XLffr`Sg6qIRH=WQl7;iF1B#Zfaf$gL6@8Vo7R>LV0FMhJw4NZ$Nk>pEyua zhNp{Th{pM;moD-iP~c#>&|G-u5a*1kiLVs&6708R=B$yck^CfdXkm;cv&XxNRWrUG z-?UPZ*CA@{9y#HPxpz#L9A}ARo-j{n<$YO?*fSXU6{`mT3JeE%i=I?#WkQPr)+ eKdn-i81hozBtKu<>5vVylfl!~&t;ucLK6VP^-qBS literal 0 HcmV?d00001 diff --git a/textures/christmas-candy_cabe_top.png b/textures/christmas-candy_cabe_top.png new file mode 100644 index 0000000000000000000000000000000000000000..46402e3fc20fc6361ab781a65c3ced00319fbf72 GIT binary patch literal 440 zcmV;p0Z0CcP)1R4C7tQZbH$Fc2IJ2Zker8WHKFbdmCiyud$6og%Nu zPk78xpF|ouun-0x4p$fma93QcEmrH<_0D*V&(jIOAxSWvlrf$BStKu^0T?~!I%|tU zm8H(j?H046%JS=cUNmU5;kp3KFkGOEq8CDOo?WkpBr$rBWVEsM??WR~f~T4`beic&9*hif6UvStwI zU7r8&kaEyu$?{Dp09~GMj>my?%9zZuF3$nH$1&Y(rqJkKh)ESgn-9Rp?e^OdlT(~g iu4ltPT}WO+1NZ?8@}~2LZu#l}0000bpso_N&_zWTghCgfMs1No7a$faS+U?B@VkgA z(Gn#>2t}e*_8=_T6@H}YAjZynlX^UdMTiwk5oh_%z3<#}?=b*bmZ>NTq9|f%X~_T# zheJhCM7>@&{0Hy7rqd~57*ea%3_t+z`K@&%aeRDCnx+DXq6qIj7ZF7f07X$CNps}g zwWi*GyCv`ajBw7W-|uTY9t+_4vuFDB-9+!b(bPGD!C)Y3t?I1`wThTbCY(1sy4j`G zY7vGZKmW9^zmF{cc(J+|@bT3cV~k<*N<;g5yV~E|)r0GaZgo~AX{LIw8|#zxrVbAe z^}$-KJKcD0^x1+w+vvy_B_Pt%lIMRO&$#W4jwI-fC)7gt^~K9GbpUIvoOAOFxdaby zB--l6`tZ$FIp=h6aB$YM)lKyD@s0q}G}ZYP0LJ67Mx&7c?q5r^)lDuJy4Q`hzqhM2 zO=Yc}ed4{JyUJ)Z!h5fNzdw7g0Q}fHGL>(>QZ^}B3`9Mw0`SG{F8O4NB%Pd`Ac-u? zD9aM(9K+#I=HevxuO)JmDN!ZhY46CKS&a4MkH5(CoGi1n9 zYZi)-mBj^uMx$ZA+`LY&*ORqYr=?+ed6}XpaL&m&r##PRfvHMxS~7ZFu=D%S1OSyF zU}a^6cDrqwQOLvFU6Ldr&vPE#yh@|dFbiP-fFx=mRKoykt&Fu+?RML2uC;V9cxlcP lIVws5mHhJJmHEGb{R=!Jff_nzQw9J4002ovPDHLkV1js6 literal 0 HcmV?d00001 diff --git a/textures/christmas_baubles-side.png b/textures/christmas_baubles-side.png new file mode 100644 index 0000000000000000000000000000000000000000..1acc9444c67a0ede3915fcdf0664527a9570fddf GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DjSL74G){)!Z!AbW|YuPgflZYDuxZH^uM_kcpXJY5_^EKa|jypgxrL4f7?gUsd$ zTrrKQ7g;0^Zg-H~@^FfP*8(P|Du)J!hff?OHvGKMXnvDF@A>y8X63b86IL4VT)*k; zk!{=m*yHxL4vyOU>+hAyR?gd>dPPn_>CWO8Y%C4@R~%SB_*^csuV?VNe8kg&q2~PO z9V`}on{Bus^FQ7ydSJz^R&IvtrE3|NYj>P5J#b}>nQlbF?5}prQ-Y>MhMD;`cNp+6 spFZ!U`R~^v70)&OntjPX=RVWFJ;!9mm8NMOKwmI;y85}Sb4q9e0B}QekN^Mx literal 0 HcmV?d00001 diff --git a/textures/christmas_baubles-top.png b/textures/christmas_baubles-top.png new file mode 100644 index 0000000000000000000000000000000000000000..43793b2ad4c41941c1eeb297fecda0dda35fae62 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DjSL74G){)!Z!AbW|YuPgflZYDt$mFsRT9YCR7o-U3d7N_4%G8Aeu5OBSJ=+f<* z5s?=v*rcod9M0FS*wdWrsYU?AUt`6u7JQTzY=zfVHrk7k|I z^J?!0UpG~9y1niFEfZeXz?y=RMH+_`ea#)1?li8xZT+ZC(JhKM+g2B_(&t;ucLK6Tgzi|@) literal 0 HcmV?d00001 diff --git a/textures/christmas_baubles.png b/textures/christmas_baubles.png new file mode 100644 index 0000000000000000000000000000000000000000..b663fa95d3cbf6ff6fd660f45785d000c4cf9797 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DjSL74G){)!Z!AbW|YuPgflZYBXnv$N;?fyOX$db&7PR70gp?1kMfIc z?T-|6b~y1L-?@rI=y-jwQby;IXXn*6iR?dfg!98ioAXC}dml%9pEv7SW!WSTO~qpz zlOnEv-EvG~qmK96%gPNZ+j5y1Z07qvnG+j2v-sP-_qDO%b@EkAGbBSqS9Q%X_9&8I z%en1loP7U#!S`SpOHm~SPUGf|19u<3Q|J_Mik;2CP*C3C!CDp@o;~TsF21uI?&8O* zZ_c*cc#F@8<7%1r?%CcAtDIZ{ymq$iunyTO>lhm7<*3Q3soKGDX3e2}pZ{CjP%lW` zD)};E$&^>gT1&5Ne0%xE!?PUy$C(Y?S_D4S?N3Y--4$OHy#D&@Z|Sp^z5I6X|8@C= X-F3P}+m5aSh7*IQtDnm{r-UW|{u!KU literal 0 HcmV?d00001 diff --git a/textures/christmas_baubles_side.png b/textures/christmas_baubles_side.png new file mode 100644 index 0000000000000000000000000000000000000000..5124cb2a4534760f67df2043b074f75bebb5c93a GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Wq?nJtCYH2?+KOFVsD*&lE-2{2hO vMjKuM3JH3;IEF}EPEKfGaI9+!WME-XVq{Q!`*PP(pd^E*tDnm{r-UW|=X5(R literal 0 HcmV?d00001 diff --git a/textures/christmas_baubles_top.png b/textures/christmas_baubles_top.png new file mode 100644 index 0000000000000000000000000000000000000000..db0a605e86ce951c7735a2c17955d17de3f5f4ee GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Y#EW|NsAgFh}HIyWsm} zqCjE%;I@VjBT$7vNswPKP$M#6c%U3B36$e3@Q5sCVBk9p!i>lBSEK+1RXtrCLp07O z|LA9vXq$h4Jvq5fr189-*EbfHDKQ)z2@+N|%>oRuZ{G)1#V|F2+~Dcz=d#Wzp$PyD CUOS)w literal 0 HcmV?d00001 diff --git a/textures/christmas_bow_bottom.png b/textures/christmas_bow_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..4d8247c632bb2d3d39ac77deb4cc618fbf87002c GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9>lblbgTe~DWM4fxLqG% literal 0 HcmV?d00001 diff --git a/textures/christmas_bow_top.png b/textures/christmas_bow_top.png new file mode 100644 index 0000000000000000000000000000000000000000..79db8660e49dae4f30c529c9f9e59a5cf16ccba6 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9>pMC1|NsAIFN*dCiZGP~ z`33)Hc)H!d3&`Uv@Q5sCVBk9l!i+m6X1@gr%6PgshHzX@{t6zI3E$pgcR2&7j=|H_&t;ucLK6TTOeb9c literal 0 HcmV?d00001 diff --git a/textures/christmas_candy_cain_stick.png b/textures/christmas_candy_cain_stick.png new file mode 100644 index 0000000000000000000000000000000000000000..ad86f238d70ecc02d4ce4be157472e0f0fd7d657 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNH@hgK)H!BBEufHOiEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0KzJjcI8f1iPZ!4!i_>$1PV+h&auf%czxe5y-_mzjqh~_kJqt-j&F5zv z{5=9^<=1vGBo{DBYB?_|5|OL7rA_i(0KYf4xGs~OSd64!_l=ltB<)VvY~=c3falGGH1 z^30M91$R&1fbd2>aiF5Po-U3d7N_S19ppV?z)^f5x8S{(?89S;B5o%%WYv`wp3arr zAs!?Z%DHkrOY&m|mWv^4SKf+PF1pbmI?;?_g_6dZ?T%Z5WV7ARZQp*rtL90MR@3`R zH3p4_ueO?x4xIcORl$9J!OEyavs;S07i%#w{D=)-B>U9PCBFNfR{q_ClQ${5p0G<$ w@t5s!|Kh?|e|63DGA3@`8LZoC4Fvx%KI<$x`ZUm73FuG;Pgg&ebxsLQ00u*A9smFU literal 0 HcmV?d00001 diff --git a/textures/christmas_craft_pud-top.png b/textures/christmas_craft_pud-top.png new file mode 100644 index 0000000000000000000000000000000000000000..d7613a5157397b9233804ff6a8d30192dc919a58 GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNH!F{k(&{O5J^+OzOI#yLobz*YQ}ap~oQqNuOHxx5 z$}>wc6x=<11Hv2m#DR*oc)B=-Se(8Zc#!vy0neTrx>@se4$5^1P7p9wQgllYn)cx4 z3mLgkWp$Ge>*D*~?k=u5@J#u~@h^2t>lr3Vd~ff09pzjq=hV<~;7r%eJYF9m#WPB) zW>u%PO*y5yR4w4@nlSAy54Aj@2`wjL_Q~tdymBTXZRd5B53}dYH@EQ%XK?U($-U>5 zQ;(n$Qz+|6r_zWTgI0^{c7FI`Ja;GD_QP-wY25Gr)LXv9)qW=pUXO@geCxK C{gt<)tMQrN!0c#MI=)G!^Bv6eV<3B=yu) z3^de?Wo3-jWy}q9Z8Vjf476N~bzD`2T}^b|#l?NKL<7`R0}RE&4Gj~G6!J_3N)r;Q zG&EYAbtdKHY)VOaq^h9`w1cT6$PehFvdL#HfV_pCE{-7*lB@?AotPDQTn~Ov)>So65CWj5C|opJ|G$4t!cS`FOM#!{WF*A33_79NIDO&W|7e zSSl?FY#S$W$_X-vAFzHPsORZ4kMTic*3=Itmh?3SUyoAq7Q6PE>6Jutz40uLN6AV- RGk}g|@O1TaS?83{1OOs?iBJFl literal 0 HcmV?d00001 diff --git a/textures/christmas_leaves_side.png b/textures/christmas_leaves_side.png new file mode 100644 index 0000000000000000000000000000000000000000..821ca93aa56113614e4e0d6d8cfe0efb9d55acbc GIT binary patch literal 602 zcmV-g0;TPx#1ZP1_K>z@;j|==^1poj532;bRa{vGf5&!@T5&_cPe*6Fc00(qQO+^RX1rZM; zCN2bPDNB8b~7$DE-^4L^m3s9007lcOjJbx z002ozN&o-<9vT-P8yF!Q7bYGSCLb0lAs#9r7%e0jE+-@~C?+!<95W{zH!v+cDI!8J zDnv6ZMI{qOG%ZIL7fmV^P$nf%F&0-bF<~+wZZ!~fU|@PED1<{Sl5A|UWMsR#xxc=? z!@|PE!okVJ#L&>s(b3S;($dq@($vJh)z#G1)z#M4*4WtC+1S_G+S=UQ+}_#O-_*|E z-{0Wi-{9cj;nvUL*wo^~x#Qf|rvYPVopap&P#w*WPccx} zi!+i5d6icc0H!n~6Cke$O%q585(dBQ;^i#sG%C zXG~}Uv9uC~n|DU+9qxnLRSQf{fY@5_-nRf#fL$QUvPhDInh*e@487b*+%LbDd|!SN o@%nM~ENpCJW?M60yC@3&0ZnHW=COK5I{*Lx07*qoM6N<$f{Pvm+5i9m literal 0 HcmV?d00001 diff --git a/textures/christmas_lights.png b/textures/christmas_lights.png new file mode 100644 index 0000000000000000000000000000000000000000..bcee0763c609b0d75e25a1ea807fb5b138d7020e GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHVEbxddW?Exmi+oLxEv_XR1)MD%)rPvXy?{$?y8ep(1&K{}Bsa{y t&Ds5nk?{@VG~L(CFCMZkt7NWXeZVi3$8M_L{CyJ0eot3Fmvv4FO#tO(M8N<6 literal 0 HcmV?d00001 diff --git a/textures/christmas_lights_animated.png b/textures/christmas_lights_animated.png new file mode 100644 index 0000000000000000000000000000000000000000..7143061e7af775dea7b77dcad994f7a107be73ce GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^0ze$V!3JWj{>lra*pj^6T^Rm@;DWu&Cj&(|3p^r= z85p>QL70(Y)*K0-AbW|YuPgflZZ=+hrkaPMe}O`hC9V-A&iT2ysd*&~&PAz-C8;S2 z<(VZJ3hti10pX2&;y^{GJzX3_A`ZX3v61(Xfq>h?@6po|m?o@Pl>O3{X>!Gm4z5n! zyyXI1&a7OG0ZVp-&kb7gIel)Z*UpU#p1eER=4i%K^gV_BBwtpsdgS$Idwr^B-m%T~ zxizEU`xM4kW!w(@SCaESvu4$vNw;{)bzthe*x!0p9xj0_3xZDVc)~6zAzuB#;{LCr zZ9F#T&A;5gEgq3hq1gR;TabHxOfKhXtxi^0>?&t;ucLK6Ukxrn#` literal 0 HcmV?d00001 diff --git a/textures/christmas_present.png b/textures/christmas_present.png new file mode 100644 index 0000000000000000000000000000000000000000..6b403f2b2d3e75549a2c9186703d8f1c873fc788 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F52SJ!|$HeTnKtc8r zPhVH|2i#2Dmg);8&F=sTg?PF+hG?9BJIRpifCC4M`a^-5_W$+wn?kvq*Kt~|KOZJ$ ztg*@6Wy55~9o3VknPk1PnDmZU)cE%ThuiE)TGM$yF=0 agW=d?3H$#HA?twVGkCiCxvX-gW*O(qy z7VFWJ8C;(l5O@9eXP_F+0*}aI1_r)^Ak4U9V)k30psJ^fV+hCfWC0No5d#(>9tAhW qo`)UB0)l*l7O^p3PEql8JO@-?!dLj5y*wYNfx*+&&t;ucLK6V$F)H8y literal 0 HcmV?d00001 diff --git a/textures/christmas_pud-bot.png b/textures/christmas_pud-bot.png new file mode 100644 index 0000000000000000000000000000000000000000..b93e49e226cff6471c7a81db9702984e839df790 GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNH!F{Y;JekLIY1%F64!_l=ltB<)VvY~=c3falGGH1 z^30M91$R&1fbd2>aiF5#o-U3d7N_q{+Uw_R$m7=kc6Rk`FV{V+{0!W0I?~gUl3yJ; z79GMAwWBk+?VrX{*0c{owM8{=&U60xIU(#$T)f-r(3V1({w_H&|KC=*!h(*Pt#gb8 z4<5H@;^+_%oN?1_yKmIPcP=dJlaF~b9w;ex4JrJ-IFpZInU{-!e3gLXwhMPl(%25% zJ$v=2r$b@75zh>*TCW+BrcF`Wb0v3*C^h{)e)O{^gRgse`p!D_QdzC0nH$gjEayIb zl`GIS#B#o$f$^>>1?A_K1qXTEXTH+&`6f@US*&tL)c1d1PivRB%O~%Cd-vz3ZAo^L qd~g18+;C+0wJ*Ic$^5^L9i#5MJm1!!rdhyXVDNPHb6Mw<&;$VbyO}uv literal 0 HcmV?d00001 diff --git a/textures/christmas_pud-mix.png b/textures/christmas_pud-mix.png new file mode 100644 index 0000000000000000000000000000000000000000..9606d8674bb4a19458dfc9482ecbfbe3ba79ca2f GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#0XLhd3j1HLQ-wgG<(@8%Ar`0K21Ro<1qj%tuj|h+-^EtQ*`&>r#U2>FB1|~R z>T-L=tEoJ{y3d_IFvpUAhxm`j*&k#hpRL@QRp9idPrNQCAf=P>K$);(sG`!2aMN$g zwZnN&*=)7oVo&4`J-Rq^ubPp6-{K9*E_>1%CojCaA==BV`tF35nT>Cnj^A10xcXV= z@us?OZo@S3j3^ HP6aiF6Ao-U3d7N_4%wDmjeAke!1?ni#EJ{P|Oyh_Th3j$cU1w3au zUn*qbb2zGa$-OJ!jZ0r7zv~9YK0{sB^*85U+~aSZ|1iEjroV8F|Kp8iXJ@>3-4(T> z`h4M0zK_fdN4Rh1UYE$;_((C%!^C2JZJc!IABK;Ins+ssma=3>ud1r6@S2!z|9)~$ z+pKkBv+}1|?UlRwy=L>3->bQO!?}Ik4mbPc2pi2m%UE!3;+-=ZpL$+C5ffCLX;ac( zQ7-xVcG+o#E`|%6TwF9lFK)Ucz2@o9r&qV^JJ3~d?RDZ=@$E+4C+d#Pcqh=i)#CZ9 w;<>pm=C^!}+W*gqm64;V;a~cCBXdRh*-Mi{47tSD0E2?T)78&qol`;+0E;A{UH||9 literal 0 HcmV?d00001 diff --git a/textures/christmas_pud-top.png b/textures/christmas_pud-top.png new file mode 100644 index 0000000000000000000000000000000000000000..ae544c766494672deceb7fd75d98533b80eec18e GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPNH!Clr?2G7qr+`9|C9V-A&iT2ysd*&~&PAz-C8;S2 z<(VZJ3hti10pX2&;y^{uJY5_^EKXmYWbMc7$kVoeWBJL&kA-BKxORC6F5-4|X`G_0 zz{0-ZF^9*L%t=jcQiVJ!=Nep^w;Y@&a*^lFq}Ytdr<8x!-;lfUlfz#A>hb75+zDws z-}sHzWn^bPQ)F>rDPR9p?Dl~)Hx6mR(6grH>c@6@W(uvy3iIw-K3%+L{jv@ZwRa^7 zn;yo>`R}lAieQ_U_k2h7y3%(H2_?mCa$;xZ?VqtnXT_>jW`5d@yNioz{m!@B+_Qb~ zZieKlu2t8>{=Dv)|9<_(o&78xul`#l7j5cYQQT5j&u}2?t8ISdyQTTpyf!`F$aa`5 WdP&MX6+NJj89ZJ6T-G@yGywojX_LMH literal 0 HcmV?d00001 diff --git a/textures/christmas_star.png b/textures/christmas_star.png new file mode 100644 index 0000000000000000000000000000000000000000..1eb52910b6a789349d56b0f0dd95f2cba2101f58 GIT binary patch literal 387 zcmV-}0et?6P)%xKL7v$HAzH4R5%fxl21!&Q5400zNbObBrC{jAQerbVMgO3e5f&jU=-`QnQp=9Yr3Q-BbFzEI90S_de`(FE$h>WHgM0KiKFe zLXar!qB~;Bu+v_1oPeGvD^JCods<(in>o7h8F>jX-}-<)B6#ZOUiTb4a#$e5Dt`Vp zIDSUxqyvB#$`rY7@Sl0(mNfu$$c%DiB=jrgxYrT0jiEUVDvhIeOJmhbv#&jd+>-a{ zl6958X|5Puu~B^o8~R6B6_)`AO#l2928iONiCQg4#D06sC`(d8wKZ0WbcEP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00B5jL_t(I%e9j+O9Md=g}<5I zOU^S8L<(iVAq2{@Y<;Wy01wyK6h(omGM!HCR}My1Ww|c-XTu@$`J9x}mJ`_}?f`}Ns0ek8 z8xY{QEX$YH5mudZ=kThi2!(Sz4hHmkJydn~2rID%yeeJq0a(QN<>d6{hJL>9bVNvIc;^5}W^|kL+1*`hULL^Ah$#_7 z@Tz30L^E>da3ZapHvl4nG~M4qAf&`mp6?ZIWw0KgHck$+>|4m!POc^sc}t1VY#^EO zx>)dZd1*fatV8M;`LLz#`ThO(pJ`N822eQ1#r?hTpY;isT!T0>p+^b;00005>NkagYYf<(c2yq;HF5mDVt4z)6BC&k z^!9#Ve{N@cv+vri#qa+XpZlqM>_ueext+WBK8t$YxvFl?R-jsAj)ORt<=I;C#4)~a2MdH>w%W478q%A9q= zGC6HUR{ev$?k-W9Pm>t@8mGT4yZyUr|2r`!h8LM3Ti**gIk>!Qk9s|M)uiHO*G}o3 m-ZUX-(UecCFZpdfD}K`5eMgL;$yA_!89ZJ6T-G@yGywq9zmY8f literal 0 HcmV?d00001 diff --git a/textures/christmas_wreath.png b/textures/christmas_wreath.png new file mode 100644 index 0000000000000000000000000000000000000000..6103e91c361a24a9a0ba84aa251604477c7e624a GIT binary patch literal 808 zcmV+@1K0eCP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0007)Nkl($dX-y}| zWKWt^t45=VB}AkYT(Fp?vDHK)SUeQG2p+s?4=P@?RU|=b-9RbDi%JhYDISzo!JGnZ zvu_6VqE*4~1r!n*JMfr!?|=Wd{XV!3{&Y6alS>up0Z9bvO8ICEE*3+7T<)k{UAC&j63!*#1gwUMq z8Bt}>R3OWGN>i~#w0UDdnKh59@}!14%TVO60Wl4;cE_0RGm5yxX24dgeh1kYR7?RV zZ3(OM04w5MaGcdu0A{a(@MZ07koL?JWV5z2+A^4k^qKCx680|(gwzP>;e|9_orvSwc=@6b^4;Q^6(;udf)7 zRM04C`93MX=Q#TUA(u$FAfKWzs)s-Lgf6#{@Di#Yg%pJu2L zi1r{e0QR?-L;(QV-f_bZT`J8eaSUy&qsF|ix}NW=!Z z1>VlVMmef*W){W!e`Ecc6}a+G1-nGAyZga!1C%PQo8QQrt$=^B;>8Z!`uFNd$ mdh=4~j!$T|1vqr=U-}2u^z3T56^^O^0000e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00E3iL_t(I%cYXfN*hra#eetD zgiK;GnG8)@SBb? z{}v^go7+XuBFVIdp5^y(&b{Y+2mTXc*6`K(Q~KA&0%#?v)z3wofSfgK4I*0%e2Rfj zkn`AHTefovC?z?eiV$!@^{*CW+~OHKSZjIi>|(~zd>H_QD`l&tAmci``+O=MB=GXZ zlD!#5Xe9}}46d6*X-&V|#+ZofVZ=fGyO?Pqtdwjzm8O{Y@VyLUVDrseM#CZLg)Dwh zVDZT!TdQRo`-8AjvXQYo%4c!3!We_2HCk(~nho59=KYs55gX#iuir#6p#bj4x6n#X zk!N0^RzDY=-cQCB);3-vrKI0$vww6U=IQ~!;fFl{MrQo*9)y*W%`T)SOQ{%*BK%x_ zD!e;u)2~l5=nZ~hOrLDZ0n((B?!S8wR!Y{-d9*uSJ{|wL_tt9J77CBK{BarIgIhFP m_sIbJM;D^gYM|A0WWNDx_JIoY2r?c30000