From 74e18776e7570ad5f92a50cb35f09b594e9933e1 Mon Sep 17 00:00:00 2001 From: h-v-smacker Date: Mon, 20 Nov 2017 03:52:00 +0300 Subject: Initial commit --- README.md | 34 +++++- depends.txt | 5 + init.lua | 248 ++++++++++++++++++++++++++++++++++++++++++ textures/#example_apple.xcf | Bin 0 -> 2979 bytes textures/apple_jam.png | Bin 0 -> 695 bytes textures/banana_jam.png | Bin 0 -> 809 bytes textures/blueberry_jam.png | Bin 0 -> 630 bytes textures/canned_beans.png | Bin 0 -> 675 bytes textures/canned_carrot.png | Bin 0 -> 755 bytes textures/canned_coconut.png | Bin 0 -> 700 bytes textures/canned_corn.png | Bin 0 -> 760 bytes textures/canned_cucumber.png | Bin 0 -> 681 bytes textures/canned_mushrooms.png | Bin 0 -> 606 bytes textures/canned_pumpkin.png | Bin 0 -> 786 bytes textures/canned_tomato.png | Bin 0 -> 852 bytes textures/dandelion_jam.png | Bin 0 -> 547 bytes textures/grape_jam.png | Bin 0 -> 737 bytes textures/melon_jam.png | Bin 0 -> 783 bytes textures/orange_jam.png | Bin 0 -> 792 bytes textures/raspberry_jam.png | Bin 0 -> 772 bytes textures/rhubarb_jam.png | Bin 0 -> 674 bytes textures/rose_jam.png | Bin 0 -> 573 bytes textures/strawberry_jam.png | Bin 0 -> 1002 bytes 23 files changed, 285 insertions(+), 2 deletions(-) create mode 100644 depends.txt create mode 100644 init.lua create mode 100644 textures/#example_apple.xcf create mode 100644 textures/apple_jam.png create mode 100644 textures/banana_jam.png create mode 100644 textures/blueberry_jam.png create mode 100644 textures/canned_beans.png create mode 100644 textures/canned_carrot.png create mode 100644 textures/canned_coconut.png create mode 100644 textures/canned_corn.png create mode 100644 textures/canned_cucumber.png create mode 100644 textures/canned_mushrooms.png create mode 100644 textures/canned_pumpkin.png create mode 100644 textures/canned_tomato.png create mode 100644 textures/dandelion_jam.png create mode 100644 textures/grape_jam.png create mode 100644 textures/melon_jam.png create mode 100644 textures/orange_jam.png create mode 100644 textures/raspberry_jam.png create mode 100644 textures/rhubarb_jam.png create mode 100644 textures/rose_jam.png create mode 100644 textures/strawberry_jam.png diff --git a/README.md b/README.md index c2e6625..3b3c6dc 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,32 @@ -# canned_food -Canned fruits/vegetables, and jams for Minetest game +# Canned Food + +This mod introduces a variety of canned foods to add some pleasant variety into the available +assrtment of foods and item uses. It relies on the glass bottle from the default vessels mod, +giving this otherwise little used item a considerable purpose. + +All products are defined by shapless recipes, and yield items which can be placed in the +real world. Although the cans with non-symmetrical items on labels look good only from +half of the angles. + +The recipes follow the scheme of "glass bottle" + "produce" [ + "sugar" ] + +The default 4 items do not require sugar, even though 3 of those are jams and probably +would taste horribly IRL without sugar: +* Apple jam +* Canned brown mushrooms +* Rose petal jam +* Dandelion jam + +This is to guarantee that they will always be available in vanilla game. As you can notice, +canning also turns two othwerise inedible objects into food. + +Ethereal and farming (redo) mods introduce items that can be canned, too. +Some of them (jams) require sugar as the third ingredient. So some of them require both mods. + +The mason jars with canned food can be put into vessel storage shelves. Or put on display +just like the glass vessels can, and destroyed by hand (retreiving the item). + +The benefit of canning the food is higher nutritional value (since shelf life is irrelevant +in minetest game, where food never goes bad), this is a "reward" for going through effort +to obtain the glass vessels. When the contents of the jasr are consumed, +the player is left with an empty glass bottle which can be reused. \ No newline at end of file diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..29e384f --- /dev/null +++ b/depends.txt @@ -0,0 +1,5 @@ +default +vessels +flowers +ethereal? +farming? \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..5c12ef8 --- /dev/null +++ b/init.lua @@ -0,0 +1,248 @@ +-- CANNED FOOD +-- Introduces new food types to add some variety. All of them rely on glass bottles +-- from the default vessels mod, which otherwise sees very little use. In vanilla game, +-- at least 4 new types will be available, two of which will also turn inedible items +-- into edible food. With farming (redo) and ethereal, pretty much anything that can +-- be harvested can also be canned. + +--[[ + Definition scheme + internal_name_of_the_product = { + proper_name = Human-readable name, + found_in = mod name where the source object is introduced + obj_name = name of source object (internal, without "modname:") + orig_nutritional_value = self-explanatory + amount = how many objects are needed to fill a bottle /not implemented/ + sugar = boolean, set if needs sugar (jams) or not + } + image files for items must follow the scheme "internal_name_of_the_product.png" +]] + +local canned_food_definitions = { + apple_jam = { + proper_name = "Apple jam", + found_in = "default", + obj_name = "apple", + orig_nutritional_value = 2, + amount = 3, + sugar = false -- must not use sugar to be available in vanilla + }, + dandelion_jam = { + proper_name = "Dandelion jam", + found_in = "flowers", + obj_name = "dandelion_yellow", + orig_nutritional_value = 1, + amount = 5, + sugar = false -- must not use sugar to be available in vanilla + }, + rose_jam = { + proper_name = "Rose petal jam", + found_in = "flowers", + obj_name = "rose", + orig_nutritional_value = 1, + amount = 5, + sugar = false -- must not use sugar to be available in vanilla + }, + canned_mushrooms = { + proper_name = "Canned mushrooms", + found_in = "flowers", + obj_name = "mushroom_brown", + orig_nutritional_value = 1, + amount = 5, + sugar = false + }, + orange_jam = { + proper_name = "Orange jam", + found_in = "ethereal", + obj_name = "orange", + orig_nutritional_value = 2, + amount = 3, + sugar = true + }, + banana_jam = { + proper_name = "Banana jam", + found_in = "ethereal", + obj_name = "banana", + orig_nutritional_value = 1, + amount = 5, + sugar = true + }, + strawberry_jam = { + proper_name = "Strawberry jam", + found_in = "ethereal", + obj_name = "strawberry", + orig_nutritional_value = 1, + amount = 5, + sugar = true + }, + blueberry_jam = { + proper_name = "Blueberry jam", + found_in = "farming", + obj_name = "blueberries", + orig_nutritional_value = 1, + amount = 6, + sugar = true + }, + raspberry_jam = { + proper_name = "Raspberry jam", + found_in = "farming", + obj_name = "raspberries", + orig_nutritional_value = 1, + amount = 6, + sugar = true + }, + grape_jam = { + proper_name = "Grape jam", + found_in = "farming", + obj_name = "grapes", + orig_nutritional_value = 2, + amount = 4, + sugar = true + }, + rhubarb_jam = { + proper_name = "Rhubarb jam", + found_in = "farming", + obj_name = "rhubarb", + orig_nutritional_value = 1, + amount = 6, + sugar = true + }, + melon_jam = { + proper_name = "Melon jam", + found_in = "farming", + obj_name = "melon_slice", + orig_nutritional_value = 2, + amount = 3, + sugar = true + }, + canned_carrot = { + proper_name = "Canned carrots", + found_in = "farming", + obj_name = "carrot", + orig_nutritional_value = 4, + amount = 3, + sugar = false + }, +-- canned_potato = { +-- proper_name = "Canned potatoes", +-- found_in = "farming", +-- obj_name = "potato", +-- orig_nutritional_value = 1, +-- amount = 5, +-- sugar = false +-- }, + canned_cucumber = { + -- aka pickles + proper_name = "Pickles", + found_in = "farming", + obj_name = "cucumber", + orig_nutritional_value = 4, + amount = 3, + sugar = false + }, + canned_tomato = { + proper_name = "Canned tomatoes", + found_in = "farming", + obj_name = "tomato", + orig_nutritional_value = 4, + amount = 3, + sugar = false + }, + canned_corn = { + proper_name = "Canned corn", + found_in = "farming", + obj_name = "corn", + orig_nutritional_value = 3, + amount = 3, + sugar = false + }, + canned_beans = { + proper_name = "Canned beans", + found_in = "farming", + obj_name = "beans", + orig_nutritional_value = 1, + amount = 6, + sugar = false + }, + canned_coconut = { + proper_name = "Canned coconut", + found_in = "ethereal", + obj_name = "coconut_slice", + orig_nutritional_value = 1, + amount = 5, + sugar = false + }, + canned_pumpkin = { + proper_name = "Canned pumpkin puree", + found_in = "farming", + obj_name = "pumpkin_slice", + orig_nutritional_value = 2, + amount = 3, + sugar = false + }, + +} + + +-- creating all objects with one universal scheme +for product, def in pairs(canned_food_definitions) do + if minetest.get_modpath(def.found_in) then + if def.sugar and minetest.get_modpath("farming") or not def.sugar then + + -- introducing a new item, a bit more nutricious than the source + -- material when sugar is used. + minetest.register_node("canned_food:" .. product, { + description = def.proper_name, + drawtype = "plantlike", + tiles = {product .. ".png"}, + inventory_image = product .. ".png", + wield_image = product .. ".png", + paramtype = "light", + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} + }, + groups = { canned_food = 1, + vessel = 1, + dig_immediate = 3, + attached_node = 1 }, + -- canned food prolongs shelf life IRL, but in minetest food never + -- goes bad. Instead, we will reward the effort with 2x higher + -- nutritional value, even if that's not realistic. + -- when (and if) the 'amount' could be taken into account, the + -- rate could also be adjusted + on_use = minetest.item_eat( + math.floor (def.orig_nutritional_value * 2) + + (def.sugar and 1 or 0), "vessels:glass_bottle"), + -- the empty bottle stays, of course + sounds = default.node_sound_glass_defaults(), + }) + + -- a family of shapeless recipes, with sugar for jams + -- except for apple: there should be at least 1 jam guaranteed + -- to be available in vanilla game (and mushrooms are the guaranteed + -- regular - not sweet - canned food) + if def.sugar then + minetest.register_craft({ + type = "shapeless", + output = "canned_food:" .. product, + recipe = {"vessels:glass_bottle", "farming:sugar", + def.found_in .. ":" .. def.obj_name}, + }) + else + minetest.register_craft({ + type = "shapeless", + output = "canned_food:" .. product, + recipe = {"vessels:glass_bottle", + def.found_in .. ":" .. def.obj_name}, + }) + end + end + end +end + + +-- The Moor has done his duty, the Moor can go +canned_food_definitions = nil diff --git a/textures/#example_apple.xcf b/textures/#example_apple.xcf new file mode 100644 index 0000000..a26a2cd Binary files /dev/null and b/textures/#example_apple.xcf differ diff --git a/textures/apple_jam.png b/textures/apple_jam.png new file mode 100644 index 0000000..f436dec Binary files /dev/null and b/textures/apple_jam.png differ diff --git a/textures/banana_jam.png b/textures/banana_jam.png new file mode 100644 index 0000000..19b3f42 Binary files /dev/null and b/textures/banana_jam.png differ diff --git a/textures/blueberry_jam.png b/textures/blueberry_jam.png new file mode 100644 index 0000000..982d01e Binary files /dev/null and b/textures/blueberry_jam.png differ diff --git a/textures/canned_beans.png b/textures/canned_beans.png new file mode 100644 index 0000000..95a451a Binary files /dev/null and b/textures/canned_beans.png differ diff --git a/textures/canned_carrot.png b/textures/canned_carrot.png new file mode 100644 index 0000000..a27d249 Binary files /dev/null and b/textures/canned_carrot.png differ diff --git a/textures/canned_coconut.png b/textures/canned_coconut.png new file mode 100644 index 0000000..b5ab69f Binary files /dev/null and b/textures/canned_coconut.png differ diff --git a/textures/canned_corn.png b/textures/canned_corn.png new file mode 100644 index 0000000..253f994 Binary files /dev/null and b/textures/canned_corn.png differ diff --git a/textures/canned_cucumber.png b/textures/canned_cucumber.png new file mode 100644 index 0000000..255e699 Binary files /dev/null and b/textures/canned_cucumber.png differ diff --git a/textures/canned_mushrooms.png b/textures/canned_mushrooms.png new file mode 100644 index 0000000..8b3d5ed Binary files /dev/null and b/textures/canned_mushrooms.png differ diff --git a/textures/canned_pumpkin.png b/textures/canned_pumpkin.png new file mode 100644 index 0000000..2b4c7cf Binary files /dev/null and b/textures/canned_pumpkin.png differ diff --git a/textures/canned_tomato.png b/textures/canned_tomato.png new file mode 100644 index 0000000..8d3da76 Binary files /dev/null and b/textures/canned_tomato.png differ diff --git a/textures/dandelion_jam.png b/textures/dandelion_jam.png new file mode 100644 index 0000000..dab704c Binary files /dev/null and b/textures/dandelion_jam.png differ diff --git a/textures/grape_jam.png b/textures/grape_jam.png new file mode 100644 index 0000000..b9220e7 Binary files /dev/null and b/textures/grape_jam.png differ diff --git a/textures/melon_jam.png b/textures/melon_jam.png new file mode 100644 index 0000000..b08aac0 Binary files /dev/null and b/textures/melon_jam.png differ diff --git a/textures/orange_jam.png b/textures/orange_jam.png new file mode 100644 index 0000000..a6d418e Binary files /dev/null and b/textures/orange_jam.png differ diff --git a/textures/raspberry_jam.png b/textures/raspberry_jam.png new file mode 100644 index 0000000..01d020c Binary files /dev/null and b/textures/raspberry_jam.png differ diff --git a/textures/rhubarb_jam.png b/textures/rhubarb_jam.png new file mode 100644 index 0000000..ba74329 Binary files /dev/null and b/textures/rhubarb_jam.png differ diff --git a/textures/rose_jam.png b/textures/rose_jam.png new file mode 100644 index 0000000..7da53ef Binary files /dev/null and b/textures/rose_jam.png differ diff --git a/textures/strawberry_jam.png b/textures/strawberry_jam.png new file mode 100644 index 0000000..f2b5ed4 Binary files /dev/null and b/textures/strawberry_jam.png differ -- cgit v1.2.3