summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorh-v-smacker <hans-von-smacker+github@gmail.com>2017-11-20 03:52:00 +0300
committerh-v-smacker <hans-von-smacker+github@gmail.com>2017-11-20 03:52:00 +0300
commit74e18776e7570ad5f92a50cb35f09b594e9933e1 (patch)
tree7930c1c17a3e9b8edbaffe8d188f4144e0aab704
parent27a8ccd8a5e5d461f265d04cc3f15e1b9cef8872 (diff)
Initial commit
-rw-r--r--README.md34
-rw-r--r--depends.txt5
-rw-r--r--init.lua248
-rw-r--r--textures/#example_apple.xcfbin0 -> 2979 bytes
-rw-r--r--textures/apple_jam.pngbin0 -> 695 bytes
-rw-r--r--textures/banana_jam.pngbin0 -> 809 bytes
-rw-r--r--textures/blueberry_jam.pngbin0 -> 630 bytes
-rw-r--r--textures/canned_beans.pngbin0 -> 675 bytes
-rw-r--r--textures/canned_carrot.pngbin0 -> 755 bytes
-rw-r--r--textures/canned_coconut.pngbin0 -> 700 bytes
-rw-r--r--textures/canned_corn.pngbin0 -> 760 bytes
-rw-r--r--textures/canned_cucumber.pngbin0 -> 681 bytes
-rw-r--r--textures/canned_mushrooms.pngbin0 -> 606 bytes
-rw-r--r--textures/canned_pumpkin.pngbin0 -> 786 bytes
-rw-r--r--textures/canned_tomato.pngbin0 -> 852 bytes
-rw-r--r--textures/dandelion_jam.pngbin0 -> 547 bytes
-rw-r--r--textures/grape_jam.pngbin0 -> 737 bytes
-rw-r--r--textures/melon_jam.pngbin0 -> 783 bytes
-rw-r--r--textures/orange_jam.pngbin0 -> 792 bytes
-rw-r--r--textures/raspberry_jam.pngbin0 -> 772 bytes
-rw-r--r--textures/rhubarb_jam.pngbin0 -> 674 bytes
-rw-r--r--textures/rose_jam.pngbin0 -> 573 bytes
-rw-r--r--textures/strawberry_jam.pngbin0 -> 1002 bytes
23 files changed, 285 insertions, 2 deletions
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
--- /dev/null
+++ b/textures/#example_apple.xcf
Binary files differ
diff --git a/textures/apple_jam.png b/textures/apple_jam.png
new file mode 100644
index 0000000..f436dec
--- /dev/null
+++ b/textures/apple_jam.png
Binary files differ
diff --git a/textures/banana_jam.png b/textures/banana_jam.png
new file mode 100644
index 0000000..19b3f42
--- /dev/null
+++ b/textures/banana_jam.png
Binary files differ
diff --git a/textures/blueberry_jam.png b/textures/blueberry_jam.png
new file mode 100644
index 0000000..982d01e
--- /dev/null
+++ b/textures/blueberry_jam.png
Binary files differ
diff --git a/textures/canned_beans.png b/textures/canned_beans.png
new file mode 100644
index 0000000..95a451a
--- /dev/null
+++ b/textures/canned_beans.png
Binary files differ
diff --git a/textures/canned_carrot.png b/textures/canned_carrot.png
new file mode 100644
index 0000000..a27d249
--- /dev/null
+++ b/textures/canned_carrot.png
Binary files differ
diff --git a/textures/canned_coconut.png b/textures/canned_coconut.png
new file mode 100644
index 0000000..b5ab69f
--- /dev/null
+++ b/textures/canned_coconut.png
Binary files differ
diff --git a/textures/canned_corn.png b/textures/canned_corn.png
new file mode 100644
index 0000000..253f994
--- /dev/null
+++ b/textures/canned_corn.png
Binary files differ
diff --git a/textures/canned_cucumber.png b/textures/canned_cucumber.png
new file mode 100644
index 0000000..255e699
--- /dev/null
+++ b/textures/canned_cucumber.png
Binary files differ
diff --git a/textures/canned_mushrooms.png b/textures/canned_mushrooms.png
new file mode 100644
index 0000000..8b3d5ed
--- /dev/null
+++ b/textures/canned_mushrooms.png
Binary files differ
diff --git a/textures/canned_pumpkin.png b/textures/canned_pumpkin.png
new file mode 100644
index 0000000..2b4c7cf
--- /dev/null
+++ b/textures/canned_pumpkin.png
Binary files differ
diff --git a/textures/canned_tomato.png b/textures/canned_tomato.png
new file mode 100644
index 0000000..8d3da76
--- /dev/null
+++ b/textures/canned_tomato.png
Binary files differ
diff --git a/textures/dandelion_jam.png b/textures/dandelion_jam.png
new file mode 100644
index 0000000..dab704c
--- /dev/null
+++ b/textures/dandelion_jam.png
Binary files differ
diff --git a/textures/grape_jam.png b/textures/grape_jam.png
new file mode 100644
index 0000000..b9220e7
--- /dev/null
+++ b/textures/grape_jam.png
Binary files differ
diff --git a/textures/melon_jam.png b/textures/melon_jam.png
new file mode 100644
index 0000000..b08aac0
--- /dev/null
+++ b/textures/melon_jam.png
Binary files differ
diff --git a/textures/orange_jam.png b/textures/orange_jam.png
new file mode 100644
index 0000000..a6d418e
--- /dev/null
+++ b/textures/orange_jam.png
Binary files differ
diff --git a/textures/raspberry_jam.png b/textures/raspberry_jam.png
new file mode 100644
index 0000000..01d020c
--- /dev/null
+++ b/textures/raspberry_jam.png
Binary files differ
diff --git a/textures/rhubarb_jam.png b/textures/rhubarb_jam.png
new file mode 100644
index 0000000..ba74329
--- /dev/null
+++ b/textures/rhubarb_jam.png
Binary files differ
diff --git a/textures/rose_jam.png b/textures/rose_jam.png
new file mode 100644
index 0000000..7da53ef
--- /dev/null
+++ b/textures/rose_jam.png
Binary files differ
diff --git a/textures/strawberry_jam.png b/textures/strawberry_jam.png
new file mode 100644
index 0000000..f2b5ed4
--- /dev/null
+++ b/textures/strawberry_jam.png
Binary files differ