From 080eb4949c680ac4a3ea0ed402fbc3de18079003 Mon Sep 17 00:00:00 2001 From: poikilos <7557867+poikilos@users.noreply.github.com> Date: Thu, 18 Nov 2021 19:29:43 -0500 Subject: [PATCH] Add a patch to make sure each meat's name and image are unique (& add myself to licenses) and alias duplicate meats (related to issue #507 which is tracked at issue #453). --- .../distinguish_meats-vs-211114a/mods/LICENSE | 12 + .../mods/coderfood/oldcoder.txt | 23 + .../mods/coderfood/unified_foods/LICENSE | 63 +++ .../coderfood/unified_foods/basefoods.lua | 208 ++++++++ .../mods/coderfood/unified_foods/oldcoder.txt | 237 +++++++++ .../mods/codermobs/codermobs/LICENSE | 275 ++++++++++ .../codermobs/codermobs/animal_materials.lua | 347 +++++++++++++ .../mods/codermobs/codermobs/hen.lua | 463 +++++++++++++++++ .../mods/codermobs/codermobs/lott_spider.lua | 128 +++++ .../mods/codermobs/codermobs/oldcoder.txt | 19 + .../mods/codermobs/codermobs/ostrich.lua | 355 +++++++++++++ .../mods/codermobs/codermobs/rat_better.lua | 118 +++++ .../mods/codermobs/codermobs/warthog.lua | 154 ++++++ .../mods/codermobs/mobs/crafts.lua | 324 ++++++++++++ .../mods/codermobs/mobs/license.txt | 51 ++ .../mods/codermobs/mobs/oldcoder.txt | 50 ++ .../mods/codermobs/oldcoder.txt | 13 + .../mods/codermobs/whinny/LICENSE | 26 + .../mods/codermobs/whinny/init.lua | 19 + .../mods/codermobs/whinny/oldcoder.txt | 7 + ...nguish_meats-vs-211114a-build_the_patch.sh | 92 ++++ ...tinguish_meats-vs-211114a.instructions.txt | 15 + .../distinguish_meats-vs-211114a/mods/LICENSE | 12 + .../mods/coderfood/oldcoder.txt | 23 + .../mods/coderfood/unified_foods/LICENSE | 63 +++ .../coderfood/unified_foods/basefoods.lua | 208 ++++++++ .../mods/coderfood/unified_foods/oldcoder.txt | 237 +++++++++ .../unified_foods/textures/mobs_meat.png | Bin 0 -> 889 bytes .../unified_foods/textures/mobs_meat_raw.png | Bin 0 -> 447 bytes .../mods/codermobs/codermobs/LICENSE | 299 +++++++++++ .../codermobs/codermobs/animal_materials.lua | 386 ++++++++++++++ .../mods/codermobs/codermobs/hen.lua | 483 ++++++++++++++++++ .../mods/codermobs/codermobs/lott_spider.lua | 128 +++++ .../mods/codermobs/codermobs/oldcoder.txt | 19 + .../mods/codermobs/codermobs/ostrich.lua | 371 ++++++++++++++ .../animal_materials_egg_big+ostrich.xcf | Bin 0 -> 9297 bytes ...animal_materials_egg_big_fried+ostrich.xcf | Bin 0 -> 6658 bytes .../animalmaterials_lamb_raw+cooked.xcf | Bin 0 -> 4306 bytes .../mods/codermobs/codermobs/rat_better.lua | 118 +++++ .../textures/animal_materials_egg_big.png | Bin 0 -> 1446 bytes .../textures/animal_materials_meat_raw.png | Bin 0 -> 447 bytes .../animal_materials_meat_toxic_raw.png | Bin 0 -> 444 bytes .../animal_materials_meat_undead_raw.png | Bin 0 -> 1060 bytes .../textures/animal_materials_pork_raw.png | Bin 0 -> 960 bytes .../textures/codermobs_chicken_cooked.png | Bin 0 -> 1233 bytes .../textures/codermobs_chicken_raw.png | Bin 0 -> 688 bytes .../textures/codermobs_cooked_rat.png | Bin 0 -> 829 bytes .../textures/codermobs_egg_big_fried.png | Bin 0 -> 355 bytes .../textures/codermobs_lamb_cooked.png | Bin 0 -> 1155 bytes .../codermobs/textures/codermobs_lamb_raw.png | Bin 0 -> 1248 bytes .../codermobs/textures/codermobs_meat.png | Bin 0 -> 889 bytes .../codermobs/textures/codermobs_meat_raw.png | Bin 0 -> 447 bytes .../textures/codermobs_ostrich_cooked.png | Bin 0 -> 1475 bytes .../textures/codermobs_ostrich_egg.png | Bin 0 -> 1279 bytes .../textures/codermobs_ostrich_egg_fried.png | Bin 0 -> 670 bytes .../textures/codermobs_ostrich_raw.png | Bin 0 -> 1091 bytes .../textures/codermobs_pork_cooked.png | Bin 0 -> 352 bytes .../codermobs/textures/codermobs_pork_raw.png | Bin 0 -> 960 bytes .../textures/codermobs_rat_better_inv.png | Bin 0 -> 527 bytes .../textures/codermobs_rat_cooked.png | Bin 0 -> 829 bytes .../codermobs/textures/codermobs_rat_inv.png | Bin 0 -> 432 bytes .../mods/codermobs/codermobs/warthog.lua | 164 ++++++ .../mods/codermobs/mobs/crafts.lua | 345 +++++++++++++ .../mods/codermobs/mobs/license.txt | 51 ++ .../mods/codermobs/mobs/oldcoder.txt | 50 ++ .../codermobs/mobs/textures/mobs_meat.png | Bin 0 -> 889 bytes .../codermobs/mobs/textures/mobs_meat_raw.png | Bin 0 -> 447 bytes .../mods/codermobs/oldcoder.txt | 13 + .../mods/codermobs/whinny/LICENSE | 28 + .../mods/codermobs/whinny/init.lua | 19 + .../mods/codermobs/whinny/oldcoder.txt | 7 + .../whinny/projects/whinny_meat+raw.xcf | Bin 0 -> 3015 bytes .../codermobs/whinny/textures/whinny_meat.png | Bin 0 -> 1070 bytes .../whinny/textures/whinny_meat_raw.png | Bin 0 -> 1088 bytes 74 files changed, 6023 insertions(+) create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/LICENSE create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/oldcoder.txt create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/LICENSE create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/basefoods.lua create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/oldcoder.txt create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/LICENSE create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/animal_materials.lua create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/hen.lua create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/lott_spider.lua create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/oldcoder.txt create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/ostrich.lua create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/rat_better.lua create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/warthog.lua create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/crafts.lua create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/license.txt create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/oldcoder.txt create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/oldcoder.txt create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/LICENSE create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/init.lua create mode 100644 Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/oldcoder.txt create mode 100755 Bucket_Game-branches/distinguish_meats-vs-211114a-build_the_patch.sh create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a.instructions.txt create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/LICENSE create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/oldcoder.txt create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/LICENSE create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/basefoods.lua create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/oldcoder.txt create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/textures/mobs_meat.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/textures/mobs_meat_raw.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/LICENSE create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/animal_materials.lua create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/hen.lua create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/lott_spider.lua create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/oldcoder.txt create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/ostrich.lua create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animal_materials_egg_big+ostrich.xcf create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animal_materials_egg_big_fried+ostrich.xcf create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animalmaterials_lamb_raw+cooked.xcf create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/rat_better.lua create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_egg_big.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_raw.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_toxic_raw.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_undead_raw.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_pork_raw.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_chicken_cooked.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_chicken_raw.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_cooked_rat.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_egg_big_fried.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_lamb_cooked.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_lamb_raw.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_meat.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_meat_raw.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_cooked.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_egg.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_egg_fried.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_raw.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_pork_cooked.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_pork_raw.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_better_inv.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_cooked.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_inv.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/warthog.lua create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/crafts.lua create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/license.txt create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/oldcoder.txt create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/textures/mobs_meat.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/textures/mobs_meat_raw.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/oldcoder.txt create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/LICENSE create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/init.lua create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/oldcoder.txt create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/projects/whinny_meat+raw.xcf create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/textures/whinny_meat.png create mode 100644 Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/textures/whinny_meat_raw.png diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/LICENSE b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/LICENSE new file mode 100644 index 0000000..4ebf695 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/LICENSE @@ -0,0 +1,12 @@ +For license information, see the following files, where they exist, in +each modpack or mod: + + oldcoder.txt + LICENSE + LICENSE.txt + license.txt + README.md + README.txt + readme.txt + +and/or files with similar names. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/oldcoder.txt b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/oldcoder.txt new file mode 100644 index 0000000..b1e18be --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/oldcoder.txt @@ -0,0 +1,23 @@ +Name: coderfood +Source: New modpack based on various mods and/or modpacks +License: See "license-modpack.txt" + +---------------------------------------------------------------------- + +1. The "food" and "food_basic" mods were extracted from the following +modpack: + + https://github.com/rubenwardy/food.git + +modpack-level documentation files were moved into a new subdirectory +of the "food" mod named "rwfooddoc". + +---------------------------------------------------------------------- + +2. Additions to that starting point: + +2a. Added the OldCoder mod "coderfruit". + +2b. Added Milan's forks of the mods "hbhunger" and "hudbars". + +2c. Added the files "00README" and "oldcoder.txt" (this file). diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/LICENSE b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/LICENSE new file mode 100644 index 0000000..8278e07 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/LICENSE @@ -0,0 +1,63 @@ +Unified Foods Licenses +---------------------------------------------------------------------- + +1. OldCoder Unified Foods includes a food registration system and a +hunger system. + +---------------------------------------------------------------------- + +2. The food registration system is original code. The license for the +code in question is: + +(c) 2015-2020 and CC BY-NC-SA 4.0 International: OldCoder (Robert Kir- +aly) + +---------------------------------------------------------------------- + +3. The hunger system is descended from a MT mod named "hbhunger". The +license for "hbhunger" code is LGPL v2.1. The license for "hbhunger" +textures is MIT. + +One "hbhunger" sound file is used: + +better_hunger_eat_generic.ogg + +The license for that file is CC BY 3.0 with attribution to: + +https://freesound.org/people/xtrgamr/sounds/253619/ + +---------------------------------------------------------------------- + +4. The licenses for other files are as follows: + +* ufoods_*.png: WTFPL except for "ufoods_glass_*". + +* ufoods_glass_*.png: These textures are presently based on a version +of "mobs_glass_milk.png" that is licensed as follows: + +The MIT License (MIT) +Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1 + +* farming_*.png: See "farming" mod license file. + +* mobs_*.png: See "mobs" mod license file. + +* mtfoods_*.png: + +License: (c) 2014-2020 and CC BY-NC-SA 4.0 International: Philip Rob- +inson. + +* misc_baked_potato.png: WTFPL. + +* coderfruit_*.png: + +License: (c) 2019 and CC BY-NC-SA 4.0 International: OldCoder (Robert +Kiraly). + +* moono_*.png: +License: (c) 2015-2020 and CC BY-SA 4.0 International: Moono. + +* dessert_*.png and food_*.png: +License: (c) 2013-2010 and CC-BY-SA 3.0 Rubenwardy. + +(end of document) diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/basefoods.lua b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/basefoods.lua new file mode 100644 index 0000000..ac79edd --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/basefoods.lua @@ -0,0 +1,208 @@ +-- =================================================================== +-- "ufoods" common header. + +local S +if minetest.get_modpath ("intllib") then + S = intllib.Getter() +else + S = function (s) return s end +end + +local item_eat = unified_foods.item_eat +local keep_vessels = unified_foods.keep_vessels +local mra = minetest.registered_aliases +local mri = minetest.registered_items + +local reg_alias = ocutil.safe_register_alias +local reg_craft = minetest.register_craft +local reg_food = unified_foods.register_food +local reg_item = ocutil.safe_register_item +local reg_juice = unified_foods.register_juice + +local needitem + +-- =================================================================== + +needitem = reg_food ("juicer", + { + description = "Juicer" , + external_items = "farming:juicer" , + }) + +reg_craft ({ + output = neednode , + recipe = { + { "" , "default:stone" , "" } , + { "default:stone" , "" , "default:stone" } , + } +}) + +-- =================================================================== + +needitem = reg_food ("sugar", + { + description = "Sugar" , + + external_items = { + "farming:sugar" , "jkfarming:sugar" , + "bushes:sugar" , "mtfoods:sugar" , + } + }) + +if ocutil.thing_exists ("default:papyrus") then + reg_craft ({ + output = needitem .. " 20" , + recipe = { + { "default:papyrus" } , + } + }) +end + +-- =================================================================== + +-- Note: The fallback definition provided here isn't fully functional. +-- However, the expectation is that "bucket" is usually present, so +-- the fallback usually shouldn't be needed. + +needitem = reg_food ("bucket_water", + { + description = "Bucket of water" , + extra_groups = { bucket_water=1 } , + external_items = "bucket:bucket_water" , + }) + +reg_alias ("bucket:bucket_water", needitem) + +-- =================================================================== + +needitem = reg_food ("salt", + { + description = "Salt" , + satiate = 0 , + external_items = "farming:salt" , + }) + +reg_craft ({ + type = "cooking" , + cooktime = 15 , + output = needitem , + recipe = "group:bucket_water" , + replacements = keep_vessels , +}) + +reg_alias ("farming:salt", needitem) + +-- =================================================================== + +needitem = reg_food ("wheat", + { + description = "Wheat" , + + external_items = { + "farming:wheat", "plantlib:wheat" + } , + }) + +reg_craft ({ + output = needitem , + recipe = { + { "default:dry_shrub" } , + } +}) + +reg_alias ("farming:wheat", needitem) + +-- =================================================================== + +needitem = reg_food ("flour", + { + description = "Flour" , + external_items = "farming:flour" , + }) + +reg_craft ({ + output = needitem , + recipe = { + { "group:food_wheat" } , + { "group:food_wheat" } , + } +}) + +reg_alias ("farming:flour", needitem) + +-- =================================================================== + +needitem = reg_food ("bread", + { + description = "Bread" , + stack_max = 3 , + satiate = 5 , + external_items = "farming:bread" , + }) + +reg_craft ({ + type = "cooking" , + cooktime = 15 , + output = needitem , + recipe = "group:food_flour" , +}) + +reg_alias ("farming:bread", needitem) + +-- =================================================================== + +needitem = reg_food ("egg", + { + description = "Egg" , + stack_max = 10 , + satiate = 1 , + + external_items = { + "mobs:egg" , "animalmaterials:egg" , + "animalmaterials:egg_big" , "jkanimals:egg" , + } , + }) + +reg_alias ("mobs:egg", needitem) + +-- =================================================================== + +needitem = reg_food ("meat_raw", + { + description = "Raw meat" , + stack_max = 25 , + satiate = 1 , + + extra_groups = { meat=1 } , + external_items = { + "mobs:meat_raw", "animalmaterials:meat_raw" + } , + }) + +reg_alias ("mobs:meat_raw", needitem) + +-- =================================================================== + +needitem = reg_food ("meat", + { + description = "Cooked Meat" , + satiate = 3 , + extra_groups = { meat=1 } , + + external_items = { + "mobs:meat" , "jkanimals:meat" , + "mobs:chicken_cooked" , "mobfcooking:cooked_pork" , + "mobfcooking:cooked_beef" , "mobfcooking:cooked_chicken" , + "mobfcooking:cooked_lamb" , "mobfcooking:cooked_venison" , + } , + }) + +reg_craft ({ + type = "cooking" , + output = needitem , + recipe = "group:food_meat_raw" , + cooktime = 30 , +}) + +-- =================================================================== +-- End of file. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/oldcoder.txt b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/oldcoder.txt new file mode 100644 index 0000000..576ba1b --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/oldcoder.txt @@ -0,0 +1,237 @@ +Name: unified_foods +Source: Original mod except for some "hbhunger" code +License: See "LICENSE" + +---------------------------------------------------------------------- + +1. "unified_foods" is a largely original mod that provides a combined +food registration and hunger system. + +The hunger system is based on a fork of "hbhunger". + +This mod supersedes the following mods, though it doesn't replace all +of the foods defined in the mods: + +food, food_basic, dessert, hbhunger, extra, mtfoods + +---------------------------------------------------------------------- + +2. Overview of features. + +2.1. Unified Foods supports satiation, healing, poison, and replace- +ment items as "hbhunger" did. It also offers numerous extra features. + +---------------------------------------------------------------------- + +2.2. You don't need to explicitly hook foods any longer to support +basic operation. + +Unified Foods intercepts calls to "minetest.item_eat". This means that +satiation and replacement items are supported automatically for normal +foods out of the box. + +You can still hook foods to modify existing parameters or to set new +ones. However, this is optional. + +---------------------------------------------------------------------- + +2.3. Unified Foods can merge similar items. + +If there are, for example, three types of hamburgers, Unified Foods +retains all of the items or nodes, but it optionally assigns a similar +image and food parameters to all of them. + +No permanent conversion is done. Just a temporary merge to promote the +sense of smoother operation. However, permanent conversion could be +added as another feature. + +---------------------------------------------------------------------- + +2.4. Eating a particular food can optionally produce a specified mes- +sage to the user. Lists of messages are supported. If a list is speci- +fied, a random message is chosen from the list. + +---------------------------------------------------------------------- + +2.5. "hbhunger" had a bug which prevented it from properly registering +items that didn't set "on_use". Unified Foods supports items of that +type. This means that, for example, you can make arbitrary items eata- +ble. + +---------------------------------------------------------------------- + +2.6. Eating works whether or not damage is enabled. + +If hunger is enabled and damage is disabled, the hunger time loop is +stopped and poison does no damage at the Unified Foods level. + +---------------------------------------------------------------------- + +2.7. Two new commands "/starve" and "/satiate" have been added. +"/starve" makes the user hungry. "/satiate" makes him or her satiated +instead. These commands are useful for debugging purposes. + +---------------------------------------------------------------------- + +2.8. It's easy to add juices to Unified Foods. + +You can create a new juice, including merges with existing objects, +crafting recipes, and aliases, using just one simple statement. For +example, this statement: + +reg_juice ("apple", + { color = "#FFC929" } , { "mtfoods:apple_juice" }) + +sets up and/or performs all of these steps: + + * Create a glass of juice named "food:apple_juice" + * Alias the glass to "mtfoods:apple_juice" if that item exists + * Set "mtfoods:apple_juice" to new juice's image and satiation + * Add a crafting recipe for new juice + * Create aliases "apple_juice" and "applejuice" + * If the player drinks the juice, replace it with empty glass + +If a juice is a uniform color, the API is able to create an appropri- +ate juice image at runtime. So, it's possible to have numerous juices +without the need for numerous image files. + +However, juice image files may be specified as well. This allows spe- +cial cases such as rainbow juice or worm juice to be handled. + +---------------------------------------------------------------------- + +2.9. Unified Foods allows craft-item foods to be placed. Two modes are +supported: + +Craft-items may be placed as static 2D sprites that always face the +caller. + +This often looks better than the "plantlike" or "torchlike" drawing +modes that MT "_games" usually use when 2D objects are placed. + +Or craft-items may be placed as dynamic 2D sprites that work the same +way but are "alive". For example, placed hamburgers may attempt to run +away from hungry players. + +Craft-items may also be placed in "plantlike" or "torchlike" mode if a +world developer prefers this. + +The mode in which craft-items are to be placed can be specified glob- +ally in "world.conf" or on a per-item basis in the mod source code for +individual items. + +For more detailed documentation, see the comments preceding "register_ +food" in "foodcore.lua". + +---------------------------------------------------------------------- + +3. This mod requires only "default" and "hud", but "bucket" and "farm- +ing" are strongly recommended. + +---------------------------------------------------------------------- + +4. This mod replaces the complicated API used by "food" v2 with an API +that's easier to use. + +In particular, in Unified Foods, one subroutine call, in one place, is +typically enough to set up a food. Two calls, if a juice variation of +the food is desired. + +Additionally, this mod restores some of the foods that were discarded +in "food" v2. + +Historical note: The last pre-v2 commit to "food" was: + + 22be9b83c3087e15eea8878c5aef9be0f12d6158 + +---------------------------------------------------------------------- + +5. Unified Foods creates food and utensils in the "food:" namespace. + +Most of these objects are original items that fall back to existing +items where possible. + +For example, if "farming" is installed, "food:bread" becomes an alias +for "farming:bread". Otherwise, it's defined as a new and independent +item. + +---------------------------------------------------------------------- + +6. If "drawtype" is set to "sprite" or "mob" for an item, "vsize" may +set, as well, to scale the size of the item up or down. + +vsize = 0.50 will, for example, scale the item to half size. vsize = +2.00 will scale it to twice normal size. + +The code adjusts collision boxes and vertical positions for items ap- +propriately. + +---------------------------------------------------------------------- + +Appendix A. Partial list of objects supported. + +Fruits: + +Apple, Banana, Cherry, Orange, Pineapple, and Strawberry. Plus the +associated juices. + +---------------------------------------------------------------------- + +Misc.: + +Hamburger. Hamburger juice. Rainbow and worm juices. OBOE (Open Blade +of Exile) potions in multiple colors. Taco. + +Raw and cooked pasta. A couple of types of breakfast cereal. Dog +treats. + +Glass of Romulan Ale. Glass of Ginger Ale. Bottle of apple cider. + +---------------------------------------------------------------------- + +Vegetables: + +Onion, onion rings, onion slices. + +Potato, potato juice, baked potato, potato slices, french fries, pota- +to chips. + +Carrot, corn, rhubarb, and tomato. Plus most of the associated juices. + +---------------------------------------------------------------------- + +Dairy: + +Glass or bucket of milk. Butter. Cheese. + +---------------------------------------------------------------------- + +Chocolate: + +Cocoa bean, chocolate powder, dark chocolate, milk chocolate, and cup +or mug of chocolate milk. + +---------------------------------------------------------------------- + +Coffee: + +Raw coffee beans, roasted coffee beans, and cup or mug of coffee. + +---------------------------------------------------------------------- + +Dessert: + +Snackcake, blueberry muffin, raw tart base, tart base, and strawberry +tart. + +Banana split, shortbread, cream, strawberry shortcake, and cupcake. + +Moono desserts: Butterscotch Dillybar, Butterscotch Sundae, Heart on a +Stick, Strawberry Bar, Strawberry Icecream, and Strawberry Star. + +There are also some cakes, but we encourage people to use the cakes +and pies from the "cakepie" mod instead. The cakes in this mod are +provided primarily for legacy support purposes. + +---------------------------------------------------------------------- +End of file. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/LICENSE b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/LICENSE new file mode 100644 index 0000000..7b3bf08 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/LICENSE @@ -0,0 +1,275 @@ +All of the files involved are used and distributed under FOSS licens- +es. + +---------------------------------------------------------------------- + +License: CC0 aka CC Public Domain +is, or was, described by: +https://creativecommons.org/publicdomain/zero/1.0/ + +License: CC BY-SA 4.0 +is, or was, described by: +https://creativecommons.org/licenses/by-sa/4.0/ + +License: CC BY-SA 3.0 +is, or was, described by: +https://creativecommons.org/licenses/by-sa/3.0/ + +License: CC BY-NC-SA 4.0 +is, or was, described by: +https://creativecommons.org/licenses/by-nc-sa/4.0/ + +License: CC BY-NC-SA 3.0 +is, or was, described by: +https://creativecommons.org/licenses/by-nc-sa/3.0/ + +---------------------------------------------------------------------- + +Original components which are not covered under other copyrights and +licenses are copyright and licensed as follows: + +(c) 2019 and CC BY-NC-SA 4.0: OldCoder (Robert Kiraly). + + +---------------------------------------------------------------------- + +Additional meats: +- codermobs_beef.png +- codermobs_beef_raw.png +- codermobs_ostrich_meat.png +- codermobs_ostrich_meat_raw.png +- codermobs_venison.png +- codermobs_venison_raw.png + +(c) 2021 Poikilos CC BY-SA 4.0 + + +Spider Meat: +- Edited by Poikilos, based on model and texture by AspireMint according to + and + possibly implied by + . +- codermobs_lott_spider_meat_raw.png +- codermobs_lott_spider_meat.png + +(c) ~2014 AspireMint and 2021 Poikilos (edited by) CC BY-SA 3.0 +- history: + +---------------------------------------------------------------------- + +More Creeps and Weirdos for Mobs Redo +https://github.com/22i/amcaw +(Poikilos fork: https://github.com/poikilos/amcaw) +includes: baby, blorp, bubblescum, camel, castle critter, castle guard, +castle king, cavelady, caveman, desert lizard, digibug, discomole, +flobmothership, floob, g, googoat, growbotgreg, guineapig, hippo, +hotdog, hunchback, lawyer, loliman, mandog, oldlady, ponie, ponygirl, +ragingbull, ratman, robotted, robottod, rocketgirafe, rockmonster, +sneaky sal, snowdevil and zebra. + +(c) Astromojang, RickWeek84, amcaw CC BY-SA 3.0 + +except: +- codermobs_oldlady_sea_hag_mesh.png + (c) Astromojang, RickWeek84, amcaw and 2021 Poikilos (edited by) + CC BY-SA 3.0 + + +---------------------------------------------------------------------- + + +Skeletons: + +mdskeleton model: +Mdoege + +mdskeleton texture (replaced 2019): +(c) 2019 Poikilos CC BY-SA 4.0 + +mdskeleton sounds (replaced 2019): +(c) 2019 Poikilos CC BY-SA 4.0 + +--------------------------------------------------------------------- + +Models and mesh textures for "baby_chick", "bom", and "icebom": + +(c) 2019 and CC-BY-NC-SA 4.0: Poikilos. OldCoder as well for the "ice- +bom" mesh texture. + +For sound-file information, see the Lua files. + +---------------------------------------------------------------------- + +Denny code and media: +See "denny.lua" + +---------------------------------------------------------------------- + +Improved Spider/Bug Sounds: +codermobs_damage_giant_exoskeleton, codermobs_death_giant_bug, +codermobs_use_giant_exoskeleton +(c) 2019 and CC BY-SA 4.0: Poikilos + +Improved Particles: +codermobs_blood, codermobs_damage_stone, codermobs_lott_spider_blood +(c) 2019 and CC BY-SA 4.0: Poikilos + +codermobs_fireball: +(c) 2012 to 2019 and CC-BY-SA 3.0: Sapier, Poikilos + +---------------------------------------------------------------------- + +Media for "animal_materials", "deer", "elk", and "ostrich": + +See the 5 associated Lua source files. In general, the media is: +(c) 2012 to 2019 and CC-BY-SA 3.0: Sapier and Poikilos. + +The "ostrich" texture is as described above but also attribution: Old- +Coder. + +Code for "animal_materials": Same as media. The other 4 mobs listed +here use new code. + +More about the Elk: + +Pixel Art Elk texture: +(c) 2012 to 2019 and CC BY-SA 3.0: Sapier, Polikilos (skinned by) + +HD (video-based) and Lo-fi (16-color video-based) Elk Textures: +based on Elk video "Elk.webm.360p.vp9" (CC BY 2.0 Generic) +Stephen Baker [BLM/Oregon](blm.gov/yg5c).jpg, Poikilos (skinned by) + +Additionally, "chicken.lua" uses Sapier's 3D egg. See that Lua source +file as well. + +---------------------------------------------------------------------- + +Egg texture: +MIT License +(c) 2016-2019 TenPlus1 and Poikilos + +---------------------------------------------------------------------- + +Car model: +(c) 2015 and CC-BY-NC-SA 3.0: Melkor. + +---------------------------------------------------------------------- + +mdoege code and/or media +----------------------------- +WTFPL + +PilzAdam code and/or media +----------------------------- +WTFPL + +Bat +----------------------------- +Code: GPL +Model and texture: CC BY-SA 3.0. Attribution: Defense Subgame. +Sound file: WTFPL + +Birds +----------------------------- +(c) 2012-2019 and CC-BY-SA 3.0: Sapier, Poikilos. Sapier created +the original models. Poikilos derived new models from them and created +new textures. + +Butterfly +----------------------------- +(c) 2012 to 2019 and CC BY-SA 3.0: AspireMint. + +Realistic Milk Bucket +----------------------------- +(c) 2015-2019 and CC BY-SA 3.0: ElementW, Poikilos (modified by). + +D00Med code +----------------------------- +GNU Lesser General Public License 2.1 + +D00Med models and/or textures +----------------------------- +Originals: CC BY-SA 3.0 Unported. Attribution: D00Med. +New panda texture: CC BY SA 3.0 2016 D00Med and 2021 Poikilos + +Mr. Goat +----------------------------- +(c) 2016 to 2019 and CC BY-SA 3.0: Don Batman. OldCoder worked on the +eyes. + +NSSM components +----------------------------- +No NSSM are believed presently to be used. If they're used in the +future, the applicable license will be GPL3. + +Sapier components +----------------------------- +(c) 2012-2019 and CC-BY-SA 3.0: Sapier. + +"mobs_mc" components +----------------------------- +Code and models: GNU GPL V3 + +Other "mobs_mc" Polar Bear media: CC BY-SA 4.0. Attribution: "mobs_mc" +team. + +Skandarella components +----------------------------- +For snail, kangaroo, tiger, and T-Rex media license information, see: +license-skandarella.txt + +---------------------------------------------------------------------- + +Krupnov Pavel and TenPlus1 components: + +The MIT License (MIT) + +(c) 2014 Krupnov Pavel -- bugs, kpgmobs, pmobs +(c) 2014 Krupnov Pavel and 2016 TenPlus1 -- mobs_animal +(c) 2016 TenPlus1 -- mobs_monster and mobs_npc + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------------------------------------- + +Blockmen components: + +(c) 2015-2016 BlockMen + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must +not claim that you wrote the original software. If you use this +software in a product, an acknowledgment in the product documentation +is required. + +2. Altered source versions must be plainly marked as such, and must +not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source +distribution. + +(end of document) diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/animal_materials.lua b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/animal_materials.lua new file mode 100644 index 0000000..4489d23 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/animal_materials.lua @@ -0,0 +1,347 @@ +-- =================================================================== +-- Code and media license. +-- +-- You may copy, use, modify or do nearly anything but remove this +-- copyright notice. Of course, you're not allowed to pretend you've +-- created or written the Sapier or Poikilos pieces. +-- +-- CC-BY-SA 3.0. Attribution: Sapier and Poikilos. + +-- =================================================================== + +-- Boilerplate to support localized strings if intllib mod is install- +-- ed. + +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + +core.log("action","MOD: animal_materials loading ...") +local version = "0.1.3" + +animal_materialsdata = {} + +-- =================================================================== +-- Node definitions + +-- =================================================================== +-- Item definitions + +-- =================================================================== +-- deamondeath sword + +minetest.register_tool(":animal_materials:sword_deamondeath", { + description = S("Sword (Deamondeath)"), + inventory_image = "default_tool_steelsword.png", + tool_capabilities = { + full_punch_interval = 0.50, + max_drop_level=1, + groupcaps={ + fleshy={times={[1]=2.00, [2]=0.80, [3]=0.40}, uses=10, maxlevel=1}, + snappy={times={[2]=0.70, [3]=0.30}, uses=40, maxlevel=1}, + choppy={times={[3]=0.70}, uses=40, maxlevel=0}, + deamon={times={[1]=0.25, [2]=0.10, [3]=0.05}, uses=20, maxlevel=3}, + } + } + }) + +-- =================================================================== +-- scissors +-- + +minetest.register_tool(":animal_materials:scissors", { + description = S("Scissors"), + inventory_image = "animal_materials_scissors.png", + tool_capabilities = { + max_drop_level=0, + groupcaps={ + wool = {uses=40,maxlevel=1} + } + }, +}) + +-- =================================================================== +-- lasso + +minetest.register_craftitem(":animal_materials:lasso", { + description = S("Lasso"), + image = "animal_materials_lasso.png", + stack_max=10, +}) + +-- =================================================================== +-- net + +minetest.register_craftitem(":animal_materials:net", { + description = S("Net"), + image = "animal_materials_net.png", + stack_max=10, +}) + +-- =================================================================== +-- saddle + +minetest.register_craftitem(":animal_materials:saddle", { + description = S("Saddle"), + image = "animal_materials_saddle.png", + stack_max=1 +}) + +-- =================================================================== +-- contract + +minetest.register_craftitem(":animal_materials:contract", { + description = S("Contract"), + image = "animal_materials_contract.png", + stack_max=10, +}) + +-- =================================================================== +-- meat + +minetest.register_craftitem(":animal_materials:meat_raw", { + description = S("Raw meat"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:meat_pork", { + description = S("Pork (raw)"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:meat_beef", { + description = S("Beef (raw)"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:meat_chicken", { + description = S("Chicken (raw)"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:meat_lamb", { + description = S("Lamb (raw)"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:meat_venison", { + description = S("Venison (raw)"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:meat_undead", { + description = S("Meat (not quite dead)"), + image = "animal_materials_meat_undead_raw.png", + on_use = minetest.item_eat(-2), + groups = { meat=1, eatable=1 }, + stack_max=5 +}) + +minetest.register_craftitem(":animal_materials:meat_toxic", { + description = S("Toxic Meat"), + image = "animal_materials_meat_toxic_raw.png", + on_use = minetest.item_eat(-5), + groups = { meat=1, eatable=1 }, + stack_max=5 +}) + +minetest.register_craftitem(":animal_materials:meat_ostrich", { + description = S("Ostrich Meat"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(3), + groups = { meat=1, eatable=1 }, + stack_max=5 +}) + +minetest.register_craftitem(":animal_materials:pork_raw", { + description = S("Pork"), + image = "animal_materials_pork_raw.png", + on_use = minetest.item_eat(4), + groups = { meat=1, eatable=1 }, + stack_max=5 +}) + +minetest.register_craftitem(":animal_materials:fish_bluewhite", { + description = S("Fish (bluewhite)"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:fish_clownfish", { + description = S("Fish (clownfish)"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +-- =================================================================== +-- feather + +minetest.register_craftitem(":animal_materials:feather", { + description = S("Feather"), + image = "animal_materials_feather.png", + stack_max=25 +}) + +-- =================================================================== +-- milk + +minetest.register_craftitem(":animal_materials:milk", { + description = S("Milk"), + image = "animal_materials_milk.png", + on_use = minetest.item_eat(1), + groups = { eatable=1 }, + stack_max=10 +}) + +-- =================================================================== +-- egg + +minetest.register_craftitem(":animal_materials:egg", { + description = S("Egg"), + image = "animal_materials_egg.png", + stack_max=10 +}) + +minetest.register_craftitem(":animal_materials:egg_big", { + description = S("Egg (big)"), + image = "animal_materials_egg_big.png", + stack_max=5 +}) + +animal_materialsdata["animal_materials_egg"] = { + graphics_3d = { + visual = "mesh", + mesh = "animal_materials_egg_ent.b3d", + textures = { "animal_materials_egg_ent_mesh.png" }, + collisionbox = { -0.12,-0.125,-0.12,0.12,0.125,0.12 }, + visual_size = {x=1,y=1,z=1}, + } + } + +animal_materialsdata["animal_materials_egg_big"] = { + graphics_3d = { + visual = "mesh", + mesh = "animal_materials_egg_ent.b3d", + textures = { "animal_materials_egg_ent_mesh.png" }, + collisionbox = { -0.24,-0.25,-0.24,0.24,0.25,0.24 }, + visual_size = {x=2,y=2,z=2}, + } + } + +-- =================================================================== +-- bone + +minetest.register_craftitem(":animal_materials:bone", { + description = S("Bone"), + image = "animal_materials_bone.png", + stack_max=25 +}) + +-- =================================================================== +-- furs + +minetest.register_craftitem(":animal_materials:fur", { + description = S("Fur"), + image = "animal_materials_fur.png", + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:fur_deer", { + description = S("Deer fur"), + image = "animal_materials_deer_fur.png", + stack_max=10 +}) + +minetest.register_craftitem(":animal_materials:coat_cattle", { + description = S("Cattle coat"), + image = "animal_materials_cattle_coat.png", + stack_max=10 +}) + +-- =================================================================== +-- horns + +minetest.register_craftitem(":animal_materials:antlers", { + description = S("Antlers"), + image = "animal_materials_antlers.png", + stack_max=20 +}) + +minetest.register_craftitem(":animal_materials:ivory", { + description = S("Ivory"), + image = "animal_materials_ivory.png", + stack_max=20 +}) + +-- =================================================================== +-- scale + +minetest.register_craftitem(":animal_materials:scale_golden", { + description = S("Scale (golden)"), + image = "animal_materials_scale_golden.png", + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:scale_white", { + description = S("Scale (white)"), + image = "animal_materials_scale_white.png", + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:scale_grey", { + description = S("Scale (grey)"), + image = "animal_materials_scale_grey.png", + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:scale_blue", { + description = S("Scale (blue)"), + image = "animal_materials_scale_blue.png", + stack_max=25 +}) + +-- =================================================================== +-- recipes + +minetest.register_craft({ + output = "wool:white", + recipe = { + {"animal_materials:feather","animal_materials:feather","animal_materials:feather"}, + {"animal_materials:feather", "animal_materials:feather","animal_materials:feather"}, + {"animal_materials:feather","animal_materials:feather","animal_materials:feather"}, + } +}) + +minetest.register_craft({ + output = "animal_materials:contract", + recipe = { + {"default:paper"}, + {"default:paper"}, + } +}) diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/hen.lua b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/hen.lua new file mode 100644 index 0000000..07fe987 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/hen.lua @@ -0,0 +1,463 @@ +-- Hen. Descended from "Farlands" version. + +-- =================================================================== +-- License information for Sapier's 3D-egg media. +-- +-- You may copy, use, modify or do nearly anything but remove this +-- copyright notice. Of course, you're not allowed to pretend you've +-- created or written the Sapier pieces. +-- +-- CC-BY-SA 3.0. Attribution: Sapier. + +-- =================================================================== + +local numset = codermobs.numset_if_any + +local codermobs_egg_time_delay = + numset ("codermobs_egg_time_delay" ) or 120 +if codermobs_egg_time_delay < 3 then + codermobs_egg_time_delay = 3 +end + +local codermobs_egg_hatch_chance = + numset ("codermobs_egg_hatch_chance" ) or 3 + +local EGG_UNFERTILIZED = 1 +local EGG_FERTILIZED = 2 + +-- =================================================================== + +local lcname = "chicken" +local ucname = "Chicken" +local msname = "codermobs_" .. lcname +local obj_name = "codermobs:" .. lcname + +-- This mob is a special case +local obj_hen = "codermobs:hen" + +-- =================================================================== + +mobs_param = { + lcname = "hen" , + ucname = "Hen" , + obj_name = "codermobs:hen" , + + aoc = 4 , + spawn_chance = 20000 , + + day_mode = true , + min_light = 5 , + max_light = 30 , + min_height = -31000 , + max_height = 31000 , + + spawn_type = "animal" , + + spawn_nodes = { + "default:dirt_with_dry_grass" , + "default:dirt_with_grass" , + "earthgen:dirt_with_dry_grass" , + "ethereal:bamboo_dirt" , + "ethereal:green_dirt" , + "ethereal:green_dirt_top" , + "ethereal:grove_dirt" , + "mg:dirt_with_dry_grass" , + "noisegrid:grass" , + } , + + add_egg = true , + egg_image = "wool_brown.png" , +} + +-- =================================================================== + +codermobs.adjust_param() + +-- =================================================================== + +local msname_cooked = msname .. "_cooked" +local msname_raw = msname .. "_raw" + +local msname_img = msname .. ".png" +local msname_cooked_img = msname_cooked .. ".png" +local msname_raw_img = msname_raw .. ".png" + +local msname_egg = msname .. "_egg" +local msname_egg_fried = msname_egg .. "_fried" +local msname_egg_img = msname_egg .. ".png" +local msname_egg_fried_img = msname_egg_fried .. ".png" + +local obj_name_cooked = obj_name .. "_cooked" +local obj_name_raw = obj_name .. "_raw" + +local obj_name_egg = obj_name .. "_egg" +local obj_name_egg_entity = obj_name_egg .. "_entity" +local obj_name_egg_fried = obj_name_egg .. "_fried" + +-- =================================================================== + +local do_breed = function (self) + local pos = self.object:getpos() + local objs = minetest.get_objects_inside_radius (pos, 12) + local egg_status = EGG_UNFERTILIZED + + for n = 1, #objs do + if not objs [n]:is_player() then + local obj = objs [n]:get_luaentity() + if obj and obj.name == "codermobs:rooster" then + egg_status = EGG_FERTILIZED + end + end + end + + minetest.set_node (pos, + { name = obj_name_egg, param2 = egg_status }) + + minetest.sound_play ("chicken_lay_egg", { + pos = pos, gain = 1.0, max_hear_distance = 5, + }) +end + +-- =================================================================== + +mobs_param.core_param = { + type = mobs_param.spawn_type , + makes_footstep_sound = true , + + -- Most behavior/sight/battle + armor = 200 , + attack_type = "dogfight" , + damage = 1 , + hp_max = 10 , + hp_min = 5 , + passive = false , + reach = 1 , + runaway = true , + view_range = 5 , + + -- Velocities + run_velocity = 3 , + walk_velocity = 1 , + + -- Step/jump/fall parameters + fall_damage = 0 , + fall_speed = -8 , + fear_height = 5 , + jump = false , + jump_height = 0 , + stepheight = 1.2 , + + -- Environment damage + lava_damage = 5 , + light_damage = 0 , + water_damage = 1 , + + -- Misc. parameters + floats = 0 , + +-- Too small: +-- collisionbox = {-0.2, 0, -0.2, 0.2, 0.45, 0.2}, + +-- Too large: +-- collisionbox = {-0.4, 0, -0.4, 0.4, 0.90, 0.4}, +-- visual_size = { x=2, y=2 }, + + collisionbox = { -0.30, -0.01 , -0.30, 0.30, 0.66, 0.30 } , + mesh = msname .. ".b3d" , + textures = {{ "codermobs_hen_mesh.png" }} , + visual = "mesh" , + visual_size = { x=1.5, y=1.5 } , + + animation = { + stand_start = 0 , + stand_end = 20 , + walk_start = 25 , + walk_end = 45 , + speed_normal = 15 , + } , + + drops = { + { name=obj_name_raw, chance=1, min=2, max=2 } , + } , + + follow = { + "farming:seed_wheat", "farming:seed_cotton" + } , + + sounds = { random = msname } , + + specific_attack = codermobs.make_mob_list ({ + "bug", "beetle" + }) , + + on_rightclick = function (self, clicker) + if mobs:feed_tame (self, clicker, 8, true, true) then + return + end + mobs:protect (self, clicker) + mobs:capture_mob (self, clicker, 30, 50, 80, false, nil) + end, + + do_custom = function (self) + if self.child or math.random (1, 4000) > 1 then return end + do_breed (self) + end , + +-- Poikilos June 2019: false here prevents the creation of a mini- +-- chicken based on the adult mesh. + + on_breed = function (self, ent) + do_breed (self) + return false + end , +} + +-- =================================================================== + +codermobs.setup_mob() + +mobs:alias_mob ("codermobs:chicken" , obj_hen) +mobs:alias_mob ("codermobs:chook" , obj_hen) +mobs:alias_mob ("mobs:chicken" , obj_hen) +mobs:alias_mob ("mobs_animal:chicken" , obj_hen) + +-- =================================================================== +-- Egg throwing item + +local egg_GRAVITY = 9 +local egg_VELOCITY = 19 + +-- shoot egg +local mobs_shoot_egg = function (item, player, pointed_thing) + + local playerpos = player:getpos() + + minetest.sound_play("default_place_node_hard", { + pos = playerpos, + gain = 1.0, + max_hear_distance = 5, + }) + + local obj = minetest.add_entity({ + x = playerpos.x, + y = playerpos.y +1.5, + z = playerpos.z + }, obj_name_egg_entity) + + local ent = obj:get_luaentity() + local dir = player:get_look_dir() + + ent.velocity = egg_VELOCITY -- needed for api internal timing + ent.switch = 1 -- needed so that egg doesn't despawn straight away + + obj:setvelocity({ + x = dir.x * egg_VELOCITY, + y = dir.y * egg_VELOCITY, + z = dir.z * egg_VELOCITY + }) + + obj:setacceleration({ + x = dir.x * -3, + y = -egg_GRAVITY, + z = dir.z * -3 + }) + + -- pass player name to egg for chick ownership + local ent2 = obj:get_luaentity() + ent2.playername = player:get_player_name() + item:take_item() + return item +end + +-- =================================================================== +-- Egg. + +minetest.register_node (obj_name_egg, { + description = ucname .. " Egg", + inventory_image = msname_egg_img , + wield_image = msname_egg_img , + paramtype = "light", + walkable = false, + is_ground_content = true, + sunlight_propagates = true, + +-- This draws the new 3D chicken egg: +-- + drawtype = "mesh" , + mesh = "codermobs_chicken_egg.b3d" , + tiles = { "animal_materials_egg_ent_mesh.png" } , + selection_box = { + type = "fixed" , + fixed = { -0.12,-0.425,-0.12,0.12,-0.175,0.12 } , + } , + visual_scale = 0.12 , + + groups = {snappy = 2, dig_immediate = 3}, + + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, + { name = obj_name_egg, param2 = EGG_UNFERTILIZED }) + end + end, + + on_construct = function (pos) + minetest.get_node_timer (pos):start (codermobs_egg_time_delay) + end , + + on_use = mobs_shoot_egg , + + on_timer = function (pos, elapsed) + local self = minetest.get_node (pos) + local sp2 = self.param2 + + minetest.remove_node (pos) + + if sp2 ~= nil and sp2 == EGG_FERTILIZED then + local num = math.random (1, codermobs_egg_hatch_chance) + if num == 1 then + minetest.add_entity (pos, "codermobs:baby_chick") + end + end + end , +}) + +minetest.register_alias ("codermobs:egg" , obj_name_egg) +minetest.register_alias ("mobs:egg" , obj_name_egg) +minetest.register_alias ("egg" , obj_name_egg) + +-- =================================================================== +-- Egg entity + +mobs:register_arrow (obj_name_egg_entity, { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = { msname_egg_img } , + velocity = 6, + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 1}, + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 1}, + }, nil) + end, + + hit_node = function(self, pos, node) + local num = math.random(1, 10) + +-- RJK 191223: This code is disabled for now because it'll presently +-- crash if it's used. + + if false and num == 1 then + pos.y = pos.y + 1 + local nod = minetest.get_node_or_nil(pos) + + if not nod + or not minetest.registered_nodes[nod.name] + or minetest.registered_nodes[nod.name].walkable == true then + return + end + + local mob = minetest.add_entity (pos, obj_name) + local ent2 = mob:get_luaentity() + + mob:set_properties({ + textures = ent2.child_texture[1], + visual_size = { + x = ent2.base_size.x / 2, + y = ent2.base_size.y / 2 + }, + collisionbox = { + ent2.base_colbox[1] / 2, + ent2.base_colbox[2] / 2, + ent2.base_colbox[3] / 2, + ent2.base_colbox[4] / 2, + ent2.base_colbox[5] / 2, + ent2.base_colbox[6] / 2 + }, + }) + + ent2.child = true + ent2.tamed = true + ent2.owner = self.playername + end + end +}) + +-- =================================================================== +-- Fried egg. + +minetest.register_craftitem (obj_name_egg_fried, { + description = "Fried " .. ucname .. " Egg" , + inventory_image = msname_egg_fried_img , + on_use = minetest.item_eat (2) , +}) + +minetest.register_alias ("mobs:chicken_egg_fried", + obj_name_egg_fried) + +minetest.register_craft ({ + type = "cooking" , + recipe = obj_name_egg , + output = obj_name_egg_fried , +}) + +-- =================================================================== +-- Raw bird. + +minetest.register_craftitem (obj_name_raw, { + description = "Raw " .. ucname , + inventory_image = msname_raw_img , + + on_use = function (itemstack, player, pointed_thing) + local name = player:get_player_name() + local msg = name .. " ate raw " .. ucname .. ". Salmonella!" + minetest.chat_send_all (msg) + player:set_hp (player:get_hp() - 2) + end , +}) + +minetest.register_alias ("mobs:chicken_raw", obj_name_raw) + +-- =================================================================== +-- Cooked bird. + +minetest.register_craftitem (obj_name_cooked, { + description = "Cooked " .. ucname , + inventory_image = msname_cooked_img , + on_use = minetest.item_eat (6) , +}) + +minetest.register_alias ("mobs:chicken_cooked", + obj_name_cooked) + +minetest.register_craft ({ + type = "cooking" , + recipe = obj_name_raw , + output = obj_name_cooked , +}) + +-- =================================================================== +-- Chicken feather. + +minetest.register_craftitem ("codermobs:chicken_feather", { + description = "Feather" , + inventory_image = "codermobs_chicken_feather.png" , +}) + +minetest.register_alias ("mobs:chicken_feather", + "codermobs:chicken_feather") + +-- =================================================================== + +codermobs.log_done() + +-- =================================================================== +-- End of file. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/lott_spider.lua b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/lott_spider.lua new file mode 100644 index 0000000..27a86cb --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/lott_spider.lua @@ -0,0 +1,128 @@ +-- Giant Spider. Descended from LOTT version. + +-- =================================================================== + +local lcname = "lott_spider" +local ucname = "LOTT Spider" +local msname = "codermobs_" .. lcname +local obj_name = "codermobs:" .. lcname + +-- =================================================================== + +mobs_param = { + lcname = lcname , + ucname = ucname , + obj_name = obj_name , + + aoc = -1 , + spawn_chance = 120000 , + + day_mode = true , + min_light = 0 , + max_light = 30 , + min_height = -31000 , + max_height = 31000 , + + spawn_type = "npc" , + + spawn_nodes = { + "default:junglegrass" , + "default:jungleleaves" , + "default:jungletree" , + } , + + add_egg = true , + egg_image = "default_stone.png" , +} + +-- =================================================================== + +codermobs.adjust_param() + +-- =================================================================== + +minetest.register_craftitem (obj_name .. "_meat", { + description = "Cooked Meat", + inventory_image = msname .. "_meat.png", + on_use = minetest.item_eat (4), +}) + +minetest.register_craftitem (obj_name .. "_meat_raw", { + description = "Raw Meat", + inventory_image = msname .. "_meat_raw.png", +}) + +minetest.register_craft ({ + type = "cooking", + output = obj_name .. "_meat", + recipe = obj_name .. "_meat_raw", +}) + +mobs_param.core_param = { + type = mobs_param.spawn_type , + passive = false, + attacks_monsters = true, + hp_min = 15, + hp_max = 30, + collisionbox = {-0.9, -0.01, -0.7, 0.7, 0.6, 0.7}, + textures = { msname .. ".png"} , + visual_size = {x=7,y=7}, + visual = "mesh", + mesh = msname .. ".x", + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + armor = 200, + damage = 3, + stepheight = 1.2 , + jump_height = 0 , + jump = false , + + drops = { + { name = "farming:string" , + chance = 2, min = 1, max = 3 } , + { name = obj_name .. "_meat_raw" , + chance = 4, min = 1, max = 2 } , + } , + + light_resistant = true, + drawtype = "front", + water_damage = 5, + floats = 0, + runaway = true, + lava_damage = 5, + light_damage = 0, + on_rightclick = nil, + attack_type = "dogfight", + + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 1, + stand_end = 1, + walk_start = 20, + walk_end = 40, + run_start = 20, + run_end = 40, + punch_start = 50, + punch_end = 90, + }, + blood_texture = msname .. "_blood.png", + + sounds = { + war_cry = "codermobs_eerie" , + damage = "codermobs_damage_giant_exoskeleton" , + death = "codermobs_death_giant_bug" , + attack = "codermobs_use_giant_exoskeleton" , + }, +} + +-- =================================================================== + +codermobs.setup_mob() +mobs:alias_mob ("mobs_monster:spider" , obj_name) +codermobs.log_done() + +-- =================================================================== +-- End of file. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/oldcoder.txt b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/oldcoder.txt new file mode 100644 index 0000000..3a8d8b3 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/oldcoder.txt @@ -0,0 +1,19 @@ +Name: codermobs +Source: New mod using existing media files +License: See "LICENSE" + +---------------------------------------------------------------------- + +1. This is a new mod which implements a number of Final Minetest 3D +mobs. + +For general information, see the "_game" documentation, which covers +this mod and the associated modpack in detail. + +---------------------------------------------------------------------- + +2. The code is largely new, but it includes elements from existing +mods. The media files, in most cases, have been extracted from the +same or similar mods. + +For license information, see "LICENSE". diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/ostrich.lua b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/ostrich.lua new file mode 100644 index 0000000..f014800 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/ostrich.lua @@ -0,0 +1,355 @@ +-- Ostrich. Descended from Sapier version. + +-- =================================================================== +-- Media license. Applies to model and associated texture. +-- +-- You may copy, use, modify or do nearly anything but remove this +-- copyright notice. Of course, you're not allowed to pretend you've +-- created or written the Sapier, Poikilos, or OldCoder pieces. +-- +-- CC-BY-SA 3.0. Attribution: Sapier, Poikilos, and OldCoder. + +-- =================================================================== + +local lcname = "ostrich" +local ucname = "Ostrich" +local msname = "codermobs_" .. lcname +local obj_name = "codermobs:" .. lcname + +-- =================================================================== + +mobs_param = { + lcname = lcname , + ucname = ucname , + obj_name = obj_name , + + aoc = -1 , + spawn_chance = 80000 , + + day_mode = true , + min_light = 14 , + max_light = 20 , + min_height = 0 , + max_height = 200 , + + spawn_type = "animal" , + + spawn_nodes = { + "default:dirt_with_dry_grass" , + "ethereal:mushroom_dirt" , + } , + + spawn_by = { + "group:dry_grass" , + "group:grass" , + "flowers:mushroom_brown" , + } , + + add_egg = true , + egg_image = "wool_pink.png" , +} + +-- =================================================================== + +codermobs.adjust_param() + +-- =================================================================== + +-- Chicken-based images stand in for ostrich-based images in some +-- cases. + +local mcname = "codermobs_chicken" + +local msname_cooked = mcname .. "_cooked" +local msname_raw = mcname .. "_raw" + +local msname_img = mcname .. ".png" +local msname_cooked_img = msname_cooked .. ".png" +local msname_raw_img = msname_raw .. ".png" + +local msname_egg = mcname .. "_egg" +local msname_egg_fried = msname_egg .. "_fried" +local msname_egg_fried_img = msname_egg_fried .. ".png" +local msname_egg_img = msname_egg .. ".png" + +local obj_name_cooked = obj_name .. "_cooked" +local obj_name_raw = obj_name .. "_raw" + +local obj_name_egg = obj_name .. "_egg" +local obj_name_egg_entity = obj_name_egg .. "_entity" +local obj_name_egg_fried = obj_name_egg .. "_fried" + +-- =================================================================== + +mobs_param.core_param = { + type = mobs_param.spawn_type , + makes_footstep_sound = true , + + armor = 200 , + attack_npcs = false , + attack_type = "dogfight" , + damage = 2 , + fear_height = 3 , + floats = 0 , + group_attack = true , + hp_max = 15 , + hp_min = 5 , + stepheight = 1.2 , + jump_height = 0 , + jump = false , + owner_loyal = true , + passive = false , + pushable = true , + reach = 2 , + run_velocity = 3 , + runaway = true , + type = "animal" , + view_range = 10 , + walk_velocity = 2 , + + lava_damage = 5 , + light_damage = 0 , + water_damage = 1 , + + collisionbox = { -0.50, -0.85, -0.50, 0.50, 0.60, 0.50 } , + mesh = "codermobs_ostrich.b3d" , + rotate = 270 , + textures = { "codermobs_ostrich_mesh.png" } , + visual = "mesh" , + + sounds = { + } , + + follow = { "default:apple", "farming:potato" } , + + drops = { + { + name="animal_materials:meat_ostrich", + chance=1, min=1, max=3 + } , + } , + + specific_attack = codermobs.make_mob_list ({ + "chicken", "bunny", + }) , + + + animation = { + speed_normal = 10 , + stand_start = 1 , + stand_end = 40 , + walk_start = 41 , + walk_end = 81 , + }, + + on_rightclick = function (self, clicker) + if mobs:feed_tame(self, clicker, 8, true, true) then return end + if mobs:protect(self, clicker) then return end + + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then + return + end + end, +} + +-- =================================================================== + +codermobs.setup_mob() + +-- =================================================================== +-- Egg-throwing item + +local egg_GRAVITY = 9 +local egg_VELOCITY = 19 + +-- Shoot egg +local mobs_shoot_egg = function (item, player, pointed_thing) + + local playerpos = player:getpos() + + minetest.sound_play ("default_place_node_hard", { + pos = playerpos, + gain = 1.0, + max_hear_distance = 5, + }) + + local obj = minetest.add_entity({ + x = playerpos.x, + y = playerpos.y +1.5, + z = playerpos.z + }, obj_name_egg_entity) + + local ent = obj:get_luaentity() + local dir = player:get_look_dir() + + ent.velocity = egg_VELOCITY -- needed for api internal timing + ent.switch = 1 -- needed so that egg doesn't despawn straight away + + obj:setvelocity({ + x = dir.x * egg_VELOCITY, + y = dir.y * egg_VELOCITY, + z = dir.z * egg_VELOCITY + }) + + obj:setacceleration({ + x = dir.x * -3, + y = -egg_GRAVITY, + z = dir.z * -3 + }) + + -- pass player name to egg for chick ownership + local ent2 = obj:get_luaentity() + ent2.playername = player:get_player_name() + item:take_item() + return item +end + +-- =================================================================== +-- Egg. + +minetest.register_node (obj_name_egg, { + description = ucname .. " Egg", + inventory_image = msname_egg_img , + wield_image = msname_egg_img , + paramtype = "light", + walkable = false, + is_ground_content = true, + sunlight_propagates = true, + + drawtype = "mesh" , + mesh = "animal-materials-egg.b3d" , + tiles = { "animal_materials_egg_ent_mesh.png" } , + visual_scale = 0.24 , + + selection_box = { + type = "fixed" , + fixed = { -0.25, -0.25, -0.25, 0.25, 0.25, 0.24 } , + } , + + groups = {snappy = 2, dig_immediate = 3}, + + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name = obj_name_egg, param2 = 1}) + end + end , + + on_use = mobs_shoot_egg , +}) + +-- =================================================================== +-- Egg entity. + +mobs:register_arrow (obj_name_egg_entity, { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = { msname_egg_img } , + velocity = 6, + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 1}, + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 1}, + }, nil) + end, + + hit_node = function (self, pos, node) + local num = math.random (1, 10) + +-- RJK 191223: This code is disabled for now because it'll presently +-- crash if it's used. + + if false and num == 1 then + pos.y = pos.y + 1 + local nod = minetest.get_node_or_nil(pos) + + if not nod + or not minetest.registered_nodes[nod.name] + or minetest.registered_nodes[nod.name].walkable == true then + return + end + + local mob = minetest.add_entity (pos, obj_name) + local ent2 = mob:get_luaentity() + + mob:set_properties({ + textures = ent2.child_texture[1], + visual_size = { + x = ent2.base_size.x / 2, + y = ent2.base_size.y / 2 + }, + collisionbox = { + ent2.base_colbox[1] / 2, + ent2.base_colbox[2] / 2, + ent2.base_colbox[3] / 2, + ent2.base_colbox[4] / 2, + ent2.base_colbox[5] / 2, + ent2.base_colbox[6] / 2 + }, + }) + + ent2.child = true + ent2.tamed = true + ent2.owner = self.playername + end + end +}) + +-- =================================================================== +-- Fried egg. + +minetest.register_craftitem (obj_name_egg_fried, { + description = "Fried " .. ucname .. " Egg" , + inventory_image = msname_egg_fried_img , + on_use = minetest.item_eat (3) , +}) + +minetest.register_craft ({ + type = "cooking" , + recipe = obj_name_egg , + output = obj_name_egg_fried , +}) + +-- =================================================================== +-- Raw bird. + +minetest.register_craftitem (obj_name_raw, { + description = "Raw " .. ucname , + inventory_image = msname_raw_img , + + on_use = function (itemstack, player, pointed_thing) + local name = player:get_player_name() + local msg = name .. " ate raw " .. ucname .. ". Salmonella!" + minetest.chat_send_all (msg) + player:set_hp (player:get_hp() - 2) + end , +}) + +-- =================================================================== +-- Cooked bird. + +minetest.register_craftitem (obj_name_cooked, { + description = "Cooked " .. ucname , + inventory_image = msname_cooked_img , + on_use = minetest.item_eat (6) , +}) + +minetest.register_craft ({ + type = "cooking" , + recipe = obj_name_raw , + output = obj_name_cooked , +}) + +-- =================================================================== + +codermobs.log_done() + +-- =================================================================== +-- End of file. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/rat_better.lua b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/rat_better.lua new file mode 100644 index 0000000..e99299f --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/rat_better.lua @@ -0,0 +1,118 @@ +-- Better Rat. Descended from Melkor version. + +-- Note: Should be loaded *after* regular rat. + +-- =================================================================== + +local lcname = "rat_better" +local ucname = "Rat_Better" +local msname = "codermobs_" .. lcname +local obj_name = "codermobs:" .. lcname + +-- =================================================================== + +mobs_param = { + lcname = lcname , + ucname = ucname , + obj_name = obj_name , + + aoc = 2 , + spawn_chance = 150000 , + + day_mode = true , + min_light = 10 , + max_light = 20 , + min_height = -31000 , + max_height = 31000 , + + scale = 1.5 , + spawn_type = "animal" , + + spawn_nodes = { + "darkage:silt" , + "default:desert_sand" , + "default:dirt_with_dry_grass" , + "default:dirt_with_grass" , + "default:silver_sand" , + "default:stone" , + "earthgen:dirt_with_dry_grass" , + "ethereal:green_dirt" , + "ethereal:green_dirt_top" , + "ethereal:grove_dirt" , + "ethereal:mushroom_dirt" , + "loud_walking:polluted_dirt" , + "mg:dirt_with_dry_grass" , + "noisegrid:grass" , + } , + + add_egg = false , + egg_image = msname .. "_inv.png" , +} + +-- =================================================================== + +codermobs.adjust_param() + +-- =================================================================== + +mobs_param.core_param = { + type = mobs_param.spawn_type , + visual = "mesh" , + mesh = msname .. ".b3d" , + rotate = 180, + + textures = { + { msname .. "_black.png" } , + { msname .. "_brown.png" } , + { msname .. "_gray.png" } , + { msname .. "_white.png" } , + }, + + collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.2, 0.2}, + hp_min= 2, + hp_max = 5, + armor = 80, + knock_back = 2, + blood_amount = 1, + stepheight = 1.2 , + jump_height = 0 , + jump = false , + water_damage = 1, + floats = 0, + runaway = true, + lava_damage = 5, + fall_damage = 0, + damage = 1, + attack_type = "dogfight", + group_attack = true, + + drops = { + { name="mobs:cheese", chance=1, min=1, max=2 } , + } , + + follow = { "mobs:cheese" , } , + replace_rate = 50, + replace_what = { "mobs:cheese" , "mobs:cheeseblock" , } , + replace_with = "air", + view_range = 8, + + on_rightclick = function (self, clicker) + mobs:capture_mob (self, clicker, 25, 80, 0, true, nil) + end , +} + +-- cooked rat, yummy! +minetest.register_craft ({ + type = "cooking" , + output = "codermobs:rat_standard_cooked" , + recipe = obj_name , + cooktime = 5, +}) + +-- =================================================================== + +codermobs.setup_mob() +codermobs.log_done() + +-- =================================================================== +-- End of file. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/warthog.lua b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/warthog.lua new file mode 100644 index 0000000..b472775 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/warthog.lua @@ -0,0 +1,154 @@ +-- Warthog. Descended from KrupnoPavel version. + +-- =================================================================== + +local lcname = "warthog" +local ucname = "Warthog" +local msname = "codermobs_" .. lcname +local obj_name = "codermobs:" .. lcname + +-- =================================================================== + +mobs_param = { + lcname = lcname , + ucname = ucname , + obj_name = obj_name , + + aoc = -1 , + spawn_chance = 80000 , + + day_mode = true , + min_light = 14 , + max_light = 20 , + min_height = 0 , + max_height = 200 , + + spawn_type = "animal" , + + spawn_nodes = { + "default:dirt_with_dry_grass" , + "ethereal:mushroom_dirt" , + } , + + spawn_by = { + "group:dry_grass" , + "group:grass" , + "flowers:mushroom_brown" , + } , + + add_egg = true , + egg_image = "wool_pink.png" , +} + +-- =================================================================== + +codermobs.adjust_param() + +-- =================================================================== + +mobs_param.core_param = { + type = mobs_param.spawn_type , + makes_footstep_sound = true , + + armor = 200 , + attack_npcs = false , + attack_type = "dogfight" , + damage = 2 , + fear_height = 2 , + floats = 0 , + group_attack = true , + hp_max = 15 , + hp_min = 5 , + stepheight = 1.2 , + jump_height = 0 , + jump = false , + owner_loyal = true , + passive = false , + pushable = true , + reach = 2 , + run_velocity = 3 , + runaway = true , + type = "animal" , + view_range = 10 , + walk_velocity = 2 , + + lava_damage = 5 , + light_damage = 0 , + water_damage = 1 , + + collisionbox = { -0.40, -0.01, -0.40, 0.40, 0.95, 0.40 } , + mesh = msname .. ".x" , + textures = {{ msname .. ".png" }} , + visual = "mesh" , + + animation = { + stand_start = 25 , + stand_end = 55 , + punch_start = 70 , + punch_end = 100 , + walk_start = 70 , + walk_end = 100 , + speed_normal = 15 , + } , + + sounds = { + random = "mobs_pig", + attack = "mobs_pig_angry", + } , + + follow = { "default:apple", "farming:potato" } , + + drops = { + { name="mobs:pork_raw", chance=1, min=1, max=3 } , + } , + + specific_attack = codermobs.make_mob_list ({ + "rat" , "rat_better", "chicken", + }) , + + on_rightclick = function (self, clicker) + if mobs:feed_tame(self, clicker, 8, true, true) then return end + if mobs:protect(self, clicker) then return end + + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then + return + end + end, +} + +-- =================================================================== + +-- raw porkchop +minetest.register_craftitem(":mobs:pork_raw", { + description = "Raw Porkchop" , + inventory_image = "codermobs_pork_raw.png", + on_use = minetest.item_eat(4), + groups = {food_meat_raw = 1, food_pork_raw = 1, flammable = 2}, +}) + +-- cooked porkchop +minetest.register_craftitem(":mobs:pork_cooked", { + description = "Cooked Porkchop" , + inventory_image = "codermobs_pork_cooked.png", + + on_use = minetest.item_eat(8), + groups = {food_meat = 1, food_pork = 1, flammable = 2}, +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:pork_cooked", + recipe = "mobs:pork_raw", + cooktime = 5, +}) + +-- =================================================================== + +codermobs.setup_mob() +mobs:alias_mob ("mobs:pumba" , obj_name) +mobs:alias_mob ("mobs:warthog" , obj_name) +mobs:alias_mob ("mobs_animal:pumba" , obj_name) +codermobs.log_done() + +-- =================================================================== +-- End of file. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/crafts.lua b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/crafts.lua new file mode 100644 index 0000000..cb80d81 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/crafts.lua @@ -0,0 +1,324 @@ + +local S = mobs.intllib + +-- name tag +minetest.register_craftitem("mobs:nametag", { + description = S("Name Tag"), + inventory_image = "mobs_nametag.png", + groups = {flammable = 2}, +}) + +if minetest.get_modpath("dye") and minetest.get_modpath("farming") then + minetest.register_craft({ + type = "shapeless", + output = "mobs:nametag", + recipe = {"default:paper", "dye:black", "farming:string"}, + }) +end + +-- leather +minetest.register_craftitem("mobs:leather", { + description = S("Leather"), + inventory_image = "mobs_leather.png", + groups = {flammable = 2}, +}) + +-- raw meat +minetest.register_craftitem("mobs:meat_raw", { + description = S("Raw Meat"), + inventory_image = "mobs_meat_raw.png", + on_use = minetest.item_eat(3), + groups = {food_meat_raw = 1, flammable = 2}, +}) + +-- cooked meat +minetest.register_craftitem("mobs:meat", { + description = S("Meat"), + inventory_image = "mobs_meat.png", + on_use = minetest.item_eat(8), + groups = {food_meat = 1, flammable = 2}, +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:meat", + recipe = "mobs:meat_raw", + cooktime = 5, +}) + +-- lasso +minetest.register_tool("mobs:lasso", { + description = S("Lasso (right-click animal to put in inventory)"), + inventory_image = "mobs_magic_lasso.png", + groups = {flammable = 2}, +}) + +if minetest.get_modpath("farming") then + minetest.register_craft({ + output = "mobs:lasso", + recipe = { + {"farming:string", "", "farming:string"}, + {"", "default:diamond", ""}, + {"farming:string", "", "farming:string"}, + } + }) +end + +minetest.register_alias("mobs:magic_lasso", "mobs:lasso") + +-- net +minetest.register_tool("mobs:net", { + description = S("Net (right-click animal to put in inventory)"), + inventory_image = "mobs_net.png", + groups = {flammable = 2}, +}) + +if minetest.get_modpath("farming") then + minetest.register_craft({ + output = "mobs:net", + recipe = { + {"group:stick", "", "group:stick"}, + {"group:stick", "", "group:stick"}, + {"farming:string", "group:stick", "farming:string"}, + } + }) +end + +-- shears (right click to shear animal) +minetest.register_tool("mobs:shears", { + description = S("Steel Shears (right-click to shear)"), + inventory_image = "mobs_shears.png", + groups = {flammable = 2}, +}) + +minetest.register_craft({ + output = 'mobs:shears', + recipe = { + {'', 'default:steel_ingot', ''}, + {'', 'group:stick', 'default:steel_ingot'}, + } +}) + +-- protection rune +minetest.register_craftitem("mobs:protector", { + description = S("Mob Protection Rune"), + inventory_image = "mobs_protector.png", + groups = {flammable = 2}, +}) + +minetest.register_craft({ + output = "mobs:protector", + recipe = { + {"default:stone", "default:stone", "default:stone"}, + {"default:stone", "default:goldblock", "default:stone"}, + {"default:stone", "default:stone", "default:stone"}, + } +}) + +-- saddle +minetest.register_craftitem ("mobs:saddle", { + description = S("Saddle") , + inventory_image = "mobs_saddle.png", + groups = { flammable=2 } , + stack_max = 1 , +}) + +minetest.register_craft({ + output = "mobs:saddle", + recipe = { + {"mobs:leather", "mobs:leather", "mobs:leather"}, + {"mobs:leather", "default:steel_ingot", "mobs:leather"}, + {"mobs:leather", "default:steel_ingot", "mobs:leather"}, + } +}) + +-- mob fence (looks like normal fence but collision is 2 high) +default.register_fence("mobs:fence_wood", { + description = S("Mob Fence"), + texture = "default_wood.png", + material = "default:fence_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + collision_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 1.9, 0.5}, + }, + }, +}) + +-- mob fence top (has enlarged collisionbox to stop mobs getting over) + minetest.register_node("mobs:fence_top", { + description = S("Mob Fence Top"), + drawtype = "nodebox", + tiles = {"default_wood.png"}, + paramtype = "light", + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, + }, + collision_box = { + type = "fixed", + fixed = {-0.4, -1.5, -0.4, 0.4, 0, 0.4}, + }, + selection_box = { + type = "fixed", + fixed = {-0.4, -1.5, -0.4, 0.4, 0, 0.4}, + }, +}) + +minetest.register_craft({ + output = "mobs:fence_top 12", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"", "default:fence_wood", ""}, + } +}) + +-- items that can be used as fuel +minetest.register_craft({ + type = "fuel", + recipe = "mobs:nametag", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:lasso", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:net", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:leather", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:saddle", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:fence_wood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:fence_top", + burntime = 2, +}) + +-- this tool spawns same mob and adds owner, protected, nametag info +-- then removes original entity, this is used for fixing any issues. + +local tex_obj + +minetest.register_tool(":mobs:mob_reset_stick", { + description = "Mob Reset Stick", + inventory_image = "default_stick.png^[colorize:#ff000050", + stack_max = 1, + groups = {not_in_creative_inventory = 1}, + + on_use = function(itemstack, user, pointed_thing) + + if pointed_thing.type ~= "object" then + return + end + + local obj = pointed_thing.ref + + local control = user:get_player_control() + local sneak = control and control.sneak + + if obj and not sneak then + + local self = obj:get_luaentity() + local obj2 = minetest.add_entity(obj:get_pos(), self.name) + + if obj2 then + + local ent2 = obj2:get_luaentity() + + ent2.protected = self.protected + ent2.owner = self.owner + ent2.nametag = self.nametag + ent2.gotten = self.gotten + ent2.tamed = self.tamed + ent2.health = self.health + ent2.order = self.order + + if self.child then + obj2:set_velocity({x = 0, y = self.jump_height, z = 0}) + end + + obj2:set_properties({nametag = self.nametag}) + + obj:remove() + end + end + + if obj and sneak then + + tex_obj = obj + + local name = user:get_player_name() + local tex = "" + + minetest.show_formspec(name, "mobs_texture", "size[8,4]" + .. "field[0.5,1;7.5,0;name;" + .. minetest.formspec_escape(S("Enter texture:")) .. ";" .. tex .. "]" + .. "button_exit[2.5,3.5;3,1;mob_texture_change;" + .. minetest.formspec_escape(S("Change")) .. "]") + end + end, +}) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + + -- right-clicked with nametag and name entered? + if formname == "mobs_texture" + and fields.name + and fields.name ~= "" then + + local name = player:get_player_name() + + if not tex_obj then + return + end + + -- make sure nametag is being used to name mob + local item = player:get_wielded_item() + + if item:get_name() ~= "mobs:mob_reset_stick" then + return + end + + -- limit name entered to 64 characters long + if string.len(fields.name) > 64 then + fields.name = string.sub(fields.name, 1, 64) + end + + -- update texture + local self = tex_obj:get_luaentity() + + self.base_texture = {fields.name} + + tex_obj:set_properties({textures = {fields.name}}) + + -- reset external variable + tex_obj = nil + end +end) diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/license.txt b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/license.txt new file mode 100644 index 0000000..ace4627 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/license.txt @@ -0,0 +1,51 @@ +Copyright and license for new code and/or media not covered below: +(c) 2019 and CC BY-NC-SA 4.0 International: OldCoder (Robert Kiraly). + +---------------------------------------------------------------------- + +New Poikilos textures: + + mobs_damage_blood_big.png + mobs_damage_blood.png + mobs_damage_bug_big.png + mobs_damage_bug.png + mobs_damage_stone_big.png + mobs_damage_stone.png + mobs_damage_sweat_big.png + mobs_damage_sweat.png + +(c) 2019 and CC BY-SA 4.0 International: Poikilos. + +---------------------------------------------------------------------- + +Additional changes: + + mobs_chicken_egg.png + mobs_chicken_egg_overlay.png + +(c) 2016-2019 and MIT License: TenPlus1, Poikilos. + +---------------------------------------------------------------------- + +The MIT License (MIT) + +Copyright (c) 2016 TenPlus1 + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/oldcoder.txt b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/oldcoder.txt new file mode 100644 index 0000000..1232a54 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/mobs/oldcoder.txt @@ -0,0 +1,50 @@ +Name: mods +Source: For of upstream mod - Do not replace +License: See "license.txt" + +---------------------------------------------------------------------- + +1. This is a fork of an upstream mod. Don't attempt to update or re- +place it. + +To be documented. + +---------------------------------------------------------------------- + +2. Partial list of changes: + +* Multiple bug fixes related to old models that are rotated relative +to today's standard. + +* Bug fix related to behavior of mobs at the edge of cliffs. + +* Mobs that are sensitive to light can now optionally be configured to +burst into flames when light damage occurs. + +* Fix failure of API code to pass riding/driving parameters specified +by higher levels to riding/driving code. + +* Add support for more sophisticated approach to assessing mob densi- +ty. + +* Improve support for amphibious mobs. + +* Better TNT smoke texture. + +* Fix failure in riding/driving code to handle missing parameters. + +* Add support for steering both ground vehicles and aircraft using +the keyboard as well as the mouse. Note: These are separate features. + +* Talking mobs. Multiple languages are supported. + +* New damage-related textures by Poikilos: + +mobs_damage_blood_big.png +mobs_damage_blood.png +mobs_damage_stone_big.png +mobs_damage_stone.png +mobs_damage_sweat_big.png +mobs_damage_sweat.png + +* Add section to "license.txt" to cover new code and media. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/oldcoder.txt b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/oldcoder.txt new file mode 100644 index 0000000..1d6a449 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/oldcoder.txt @@ -0,0 +1,13 @@ +Name: codermobs +Source: New modpack mixing original and forked mods +License: See notes below + +---------------------------------------------------------------------- + +The full documentation for "codermobs" is presently merged into the +"_game" documentation. + +Media files are derived, in general, from older mods. The code mixes +old and new pieces. + +License files are present in the individual mod directories. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/LICENSE b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/LICENSE new file mode 100644 index 0000000..3df9564 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/LICENSE @@ -0,0 +1,26 @@ +Krupnov Pavel and TenPlus1 components: + +The MIT License (MIT) + +Copyright (c) 2014 Krupnov Pavel -- bugs, kpgmobs, pmobs +Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1 -- mobs_animal +Copyright (c) 2016 TenPlus1 -- mobs_monster and mobs_npc + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/init.lua b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/init.lua new file mode 100644 index 0000000..922c661 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/init.lua @@ -0,0 +1,19 @@ +dofile (minetest.get_modpath ("whinny").."/api.lua" ) +dofile (minetest.get_modpath ("whinny").."/horse.lua" ) + +minetest.register_craftitem ("whinny:meat", { + description = "Cooked Meat", + inventory_image = "whinny_meat.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craftitem ("whinny:meat_raw", { + description = "Raw Meat", + inventory_image = "whinny_meat_raw.png", +}) + +minetest.register_craft ({ + type = "cooking", + output = "whinny:meat", + recipe = "whinny:meat_raw", +}) diff --git a/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/oldcoder.txt b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/oldcoder.txt new file mode 100644 index 0000000..7854b22 --- /dev/null +++ b/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/whinny/oldcoder.txt @@ -0,0 +1,7 @@ +Name: whinny +Source: Fork of an upstream mod (do not replace) +License: See "LICENSE" + +---------------------------------------------------------------------- + +To be documented. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a-build_the_patch.sh b/Bucket_Game-branches/distinguish_meats-vs-211114a-build_the_patch.sh new file mode 100755 index 0000000..f58dcf1 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a-build_the_patch.sh @@ -0,0 +1,92 @@ +#!/bin/bash +SOURCE_MP="$HOME/git/animalmaterials" +# ^ the source modpack +cd "$SOURCE_MP" + +if [ ! -d "$SOURCE_MP/animalmaterials/textures" ]; then + printf "Error: SOURCE_MP \"$SOURCE_MP\" doesn't seem to be the animalmaterials modpack directory. Make sure you run this script from animalmaterials" + if [ -d "$SOURCE_MP/textures" ]; then + printf " (SOURCE_MP seems to be animalmaterials/animalmaterials--or some other mod directory--since it contains a textures directory)" + fi + echo "." + exit 1 +fi + +patchFileOrFail(){ + src="$1" + if [ ! -f "$src" ]; then + src="$SOURCE_MP/$1" + fi + if [ ! -f "$src" ]; then + echo " Error: The source file $src doesn't exist. The script refuses to continue." + exit 1 + fi + dst="$2" + if [ ! -f "$dst" ]; then + echo " Error: The destination file $dst doesn't exist. This script refuses to continue unless the destination is recognized." + exit 1 + fi + echo " * $dst" + cp "$src" "$dst" +} + +patchBucketGame(){ + BUCKET_GAME="$1" + if [ ! -d "$BUCKET_GAME/mods" ]; then + echo "Error: \"$BUCKET_GAME\" doesn't seem to be a game because it doesn't contain a mods directory." + exit 1 + fi + echo "* patching \"$BUCKET_GAME\"..." + patchFileOrFail animalmaterials/textures/animalmaterials_meat_raw.png $BUCKET_GAME/mods/codermobs/codermobs/textures/animal_materials_meat_raw.png + patchFileOrFail animalmaterials/textures/animalmaterials_meat_raw.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_meat_raw.png + patchFileOrFail animalmaterials/textures/animalmaterials_meat_raw.png $BUCKET_GAME/mods/coderfood/unified_foods/textures/mobs_meat_raw.png + patchFileOrFail animalmaterials/textures/animalmaterials_meat_raw.png $BUCKET_GAME/mods/codermobs/mobs/textures/mobs_meat_raw.png + patchFileOrFail animalmaterials/textures/animalmaterials_meat_toxic_raw.png $BUCKET_GAME/mods/codermobs/codermobs/textures/animal_materials_meat_toxic_raw.png + patchFileOrFail animalmaterials/textures/animalmaterials_meat_undead_raw.png $BUCKET_GAME/mods/codermobs/codermobs/textures/animal_materials_meat_undead_raw.png + patchFileOrFail animalmaterials/textures/animalmaterials_pork_raw.png $BUCKET_GAME/mods/codermobs/codermobs/textures/animal_materials_pork_raw.png + patchFileOrFail animalmaterials/textures/animalmaterials_pork_raw.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_pork_raw.png + patchFileOrFail animalmaterials/textures/animalmaterials_egg_big.png $BUCKET_GAME/mods/codermobs/codermobs/textures/animal_materials_egg_big.png + patchFileOrFail cooking/textures/cooking_cooked_meat.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_meat.png + patchFileOrFail cooking/textures/cooking_cooked_meat.png $BUCKET_GAME/mods/codermobs/mobs/textures/mobs_meat.png + patchFileOrFail cooking/textures/cooking_cooked_meat.png $BUCKET_GAME/mods/coderfood/unified_foods/textures/mobs_meat.png + patchFileOrFail cooking/textures/cooking_pork_cooked.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_pork_cooked.png + + # These were added in an earlier patch but renamed due to code-only changes in this page + # (See TODO manually further down) + # patchFileOrFail animalmaterials/textures/cooking_ostrich.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_ostrich_raw.png + # patchFileOrFail cooking/textures/cooking_ostrich_cooked.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_ostrich_cooked.png + # patchFileOrFail animalmaterials/textures/cooking_beef_raw.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_beef_raw.png + # patchFileOrFail animalmaterials/textures/cooking_venison_raw.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_venison_raw.png + # patchFileOrFail cooking/textures/cooking_beef_cooked.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_beef.png + # patchFileOrFail cooking/textures/cooking_venison_cooked.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_venison.png + echo " * done" +} + +patchBucketGame ~/minetest/games/bucket_game +patchBucketGame ~/git/EnlivenMinetest/Bucket_Game-branches/distinguish_meats-vs-211114a + +cat >/dev/null < /home/owner/git/EnlivenMinetest/bucket_game-211114a-20211118-animal_materials_egg_big.png.patch + +* getting parent of /home/owner/minetest/bucket_game-211114a/mods/codermobs/codermobs/textures/animal_materials_egg_big.png... +* updating /home/owner/git/EnlivenMinetest/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_egg_big.png +* creating /home/owner/git/EnlivenMinetest/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_egg_big.png +* updating LICENSE '/home/owner/git/EnlivenMinetest/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/LICENSE'... +* updating LICENSE '/home/owner/git/EnlivenMinetest/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/codermobs/oldcoder.txt'... +* updating '/home/owner/git/EnlivenMinetest/Bucket_Game-base/distinguish_meats-vs-211114a/mods/codermobs/oldcoder.txt'... +Done. + +To apply, set BUCKET_GAME then: +cd EnlivenMinetest && git pull && rsync -rt Bucket_Game-branches/distinguish_meats-vs-211114a/ $BUCKET_GAME +mv $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_ostrich_meat_raw.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_ostrich_raw.png +mv $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_ostrich_meat_cooked.png $BUCKET_GAME/mods/codermobs/codermobs/textures/codermobs_ostrich_cooked.png diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/LICENSE b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/LICENSE new file mode 100644 index 0000000..4ebf695 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/LICENSE @@ -0,0 +1,12 @@ +For license information, see the following files, where they exist, in +each modpack or mod: + + oldcoder.txt + LICENSE + LICENSE.txt + license.txt + README.md + README.txt + readme.txt + +and/or files with similar names. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/oldcoder.txt b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/oldcoder.txt new file mode 100644 index 0000000..b1e18be --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/oldcoder.txt @@ -0,0 +1,23 @@ +Name: coderfood +Source: New modpack based on various mods and/or modpacks +License: See "license-modpack.txt" + +---------------------------------------------------------------------- + +1. The "food" and "food_basic" mods were extracted from the following +modpack: + + https://github.com/rubenwardy/food.git + +modpack-level documentation files were moved into a new subdirectory +of the "food" mod named "rwfooddoc". + +---------------------------------------------------------------------- + +2. Additions to that starting point: + +2a. Added the OldCoder mod "coderfruit". + +2b. Added Milan's forks of the mods "hbhunger" and "hudbars". + +2c. Added the files "00README" and "oldcoder.txt" (this file). diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/LICENSE b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/LICENSE new file mode 100644 index 0000000..8278e07 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/LICENSE @@ -0,0 +1,63 @@ +Unified Foods Licenses +---------------------------------------------------------------------- + +1. OldCoder Unified Foods includes a food registration system and a +hunger system. + +---------------------------------------------------------------------- + +2. The food registration system is original code. The license for the +code in question is: + +(c) 2015-2020 and CC BY-NC-SA 4.0 International: OldCoder (Robert Kir- +aly) + +---------------------------------------------------------------------- + +3. The hunger system is descended from a MT mod named "hbhunger". The +license for "hbhunger" code is LGPL v2.1. The license for "hbhunger" +textures is MIT. + +One "hbhunger" sound file is used: + +better_hunger_eat_generic.ogg + +The license for that file is CC BY 3.0 with attribution to: + +https://freesound.org/people/xtrgamr/sounds/253619/ + +---------------------------------------------------------------------- + +4. The licenses for other files are as follows: + +* ufoods_*.png: WTFPL except for "ufoods_glass_*". + +* ufoods_glass_*.png: These textures are presently based on a version +of "mobs_glass_milk.png" that is licensed as follows: + +The MIT License (MIT) +Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1 + +* farming_*.png: See "farming" mod license file. + +* mobs_*.png: See "mobs" mod license file. + +* mtfoods_*.png: + +License: (c) 2014-2020 and CC BY-NC-SA 4.0 International: Philip Rob- +inson. + +* misc_baked_potato.png: WTFPL. + +* coderfruit_*.png: + +License: (c) 2019 and CC BY-NC-SA 4.0 International: OldCoder (Robert +Kiraly). + +* moono_*.png: +License: (c) 2015-2020 and CC BY-SA 4.0 International: Moono. + +* dessert_*.png and food_*.png: +License: (c) 2013-2010 and CC-BY-SA 3.0 Rubenwardy. + +(end of document) diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/basefoods.lua b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/basefoods.lua new file mode 100644 index 0000000..2aead64 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/basefoods.lua @@ -0,0 +1,208 @@ +-- =================================================================== +-- "ufoods" common header. + +local S +if minetest.get_modpath ("intllib") then + S = intllib.Getter() +else + S = function (s) return s end +end + +local item_eat = unified_foods.item_eat +local keep_vessels = unified_foods.keep_vessels +local mra = minetest.registered_aliases +local mri = minetest.registered_items + +local reg_alias = ocutil.safe_register_alias +local reg_craft = minetest.register_craft +local reg_food = unified_foods.register_food +local reg_item = ocutil.safe_register_item +local reg_juice = unified_foods.register_juice + +local needitem + +-- =================================================================== + +needitem = reg_food ("juicer", + { + description = "Juicer" , + external_items = "farming:juicer" , + }) + +reg_craft ({ + output = neednode , + recipe = { + { "" , "default:stone" , "" } , + { "default:stone" , "" , "default:stone" } , + } +}) + +-- =================================================================== + +needitem = reg_food ("sugar", + { + description = "Sugar" , + + external_items = { + "farming:sugar" , "jkfarming:sugar" , + "bushes:sugar" , "mtfoods:sugar" , + } + }) + +if ocutil.thing_exists ("default:papyrus") then + reg_craft ({ + output = needitem .. " 20" , + recipe = { + { "default:papyrus" } , + } + }) +end + +-- =================================================================== + +-- Note: The fallback definition provided here isn't fully functional. +-- However, the expectation is that "bucket" is usually present, so +-- the fallback usually shouldn't be needed. + +needitem = reg_food ("bucket_water", + { + description = "Bucket of water" , + extra_groups = { bucket_water=1 } , + external_items = "bucket:bucket_water" , + }) + +reg_alias ("bucket:bucket_water", needitem) + +-- =================================================================== + +needitem = reg_food ("salt", + { + description = "Salt" , + satiate = 0 , + external_items = "farming:salt" , + }) + +reg_craft ({ + type = "cooking" , + cooktime = 15 , + output = needitem , + recipe = "group:bucket_water" , + replacements = keep_vessels , +}) + +reg_alias ("farming:salt", needitem) + +-- =================================================================== + +needitem = reg_food ("wheat", + { + description = "Wheat" , + + external_items = { + "farming:wheat", "plantlib:wheat" + } , + }) + +reg_craft ({ + output = needitem , + recipe = { + { "default:dry_shrub" } , + } +}) + +reg_alias ("farming:wheat", needitem) + +-- =================================================================== + +needitem = reg_food ("flour", + { + description = "Flour" , + external_items = "farming:flour" , + }) + +reg_craft ({ + output = needitem , + recipe = { + { "group:food_wheat" } , + { "group:food_wheat" } , + } +}) + +reg_alias ("farming:flour", needitem) + +-- =================================================================== + +needitem = reg_food ("bread", + { + description = "Bread" , + stack_max = 3 , + satiate = 5 , + external_items = "farming:bread" , + }) + +reg_craft ({ + type = "cooking" , + cooktime = 15 , + output = needitem , + recipe = "group:food_flour" , +}) + +reg_alias ("farming:bread", needitem) + +-- =================================================================== + +needitem = reg_food ("egg", + { + description = "Egg" , + stack_max = 10 , + satiate = 1 , + + external_items = { + "mobs:egg" , "animalmaterials:egg" , + "animalmaterials:egg_big" , "jkanimals:egg" , + } , + }) + +reg_alias ("mobs:egg", needitem) + +-- =================================================================== + +needitem = reg_food ("meat_raw", + { + description = "Raw Meat" , + stack_max = 25 , + satiate = 1 , + + extra_groups = { meat=1 } , + external_items = { + "mobs:meat_raw", "animalmaterials:meat_raw" + } , + }) + +reg_alias ("mobs:meat_raw", needitem) + +-- =================================================================== + +needitem = reg_food ("meat", + { + description = "Cooked Meat" , + satiate = 6 , + extra_groups = { meat=1 } , + + external_items = { + "mobs:meat" , "jkanimals:meat" , + "mobfcooking:cooked_pork" , + "mobfcooking:cooked_beef" , "mobfcooking:cooked_chicken" , + "mobfcooking:cooked_lamb" , "mobfcooking:cooked_venison" , + } , + }) + +reg_craft ({ + type = "cooking" , + output = needitem , + recipe = "group:food_meat_raw" , + cooktime = 30 , +}) + +-- =================================================================== +-- End of file. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/oldcoder.txt b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/oldcoder.txt new file mode 100644 index 0000000..576ba1b --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/oldcoder.txt @@ -0,0 +1,237 @@ +Name: unified_foods +Source: Original mod except for some "hbhunger" code +License: See "LICENSE" + +---------------------------------------------------------------------- + +1. "unified_foods" is a largely original mod that provides a combined +food registration and hunger system. + +The hunger system is based on a fork of "hbhunger". + +This mod supersedes the following mods, though it doesn't replace all +of the foods defined in the mods: + +food, food_basic, dessert, hbhunger, extra, mtfoods + +---------------------------------------------------------------------- + +2. Overview of features. + +2.1. Unified Foods supports satiation, healing, poison, and replace- +ment items as "hbhunger" did. It also offers numerous extra features. + +---------------------------------------------------------------------- + +2.2. You don't need to explicitly hook foods any longer to support +basic operation. + +Unified Foods intercepts calls to "minetest.item_eat". This means that +satiation and replacement items are supported automatically for normal +foods out of the box. + +You can still hook foods to modify existing parameters or to set new +ones. However, this is optional. + +---------------------------------------------------------------------- + +2.3. Unified Foods can merge similar items. + +If there are, for example, three types of hamburgers, Unified Foods +retains all of the items or nodes, but it optionally assigns a similar +image and food parameters to all of them. + +No permanent conversion is done. Just a temporary merge to promote the +sense of smoother operation. However, permanent conversion could be +added as another feature. + +---------------------------------------------------------------------- + +2.4. Eating a particular food can optionally produce a specified mes- +sage to the user. Lists of messages are supported. If a list is speci- +fied, a random message is chosen from the list. + +---------------------------------------------------------------------- + +2.5. "hbhunger" had a bug which prevented it from properly registering +items that didn't set "on_use". Unified Foods supports items of that +type. This means that, for example, you can make arbitrary items eata- +ble. + +---------------------------------------------------------------------- + +2.6. Eating works whether or not damage is enabled. + +If hunger is enabled and damage is disabled, the hunger time loop is +stopped and poison does no damage at the Unified Foods level. + +---------------------------------------------------------------------- + +2.7. Two new commands "/starve" and "/satiate" have been added. +"/starve" makes the user hungry. "/satiate" makes him or her satiated +instead. These commands are useful for debugging purposes. + +---------------------------------------------------------------------- + +2.8. It's easy to add juices to Unified Foods. + +You can create a new juice, including merges with existing objects, +crafting recipes, and aliases, using just one simple statement. For +example, this statement: + +reg_juice ("apple", + { color = "#FFC929" } , { "mtfoods:apple_juice" }) + +sets up and/or performs all of these steps: + + * Create a glass of juice named "food:apple_juice" + * Alias the glass to "mtfoods:apple_juice" if that item exists + * Set "mtfoods:apple_juice" to new juice's image and satiation + * Add a crafting recipe for new juice + * Create aliases "apple_juice" and "applejuice" + * If the player drinks the juice, replace it with empty glass + +If a juice is a uniform color, the API is able to create an appropri- +ate juice image at runtime. So, it's possible to have numerous juices +without the need for numerous image files. + +However, juice image files may be specified as well. This allows spe- +cial cases such as rainbow juice or worm juice to be handled. + +---------------------------------------------------------------------- + +2.9. Unified Foods allows craft-item foods to be placed. Two modes are +supported: + +Craft-items may be placed as static 2D sprites that always face the +caller. + +This often looks better than the "plantlike" or "torchlike" drawing +modes that MT "_games" usually use when 2D objects are placed. + +Or craft-items may be placed as dynamic 2D sprites that work the same +way but are "alive". For example, placed hamburgers may attempt to run +away from hungry players. + +Craft-items may also be placed in "plantlike" or "torchlike" mode if a +world developer prefers this. + +The mode in which craft-items are to be placed can be specified glob- +ally in "world.conf" or on a per-item basis in the mod source code for +individual items. + +For more detailed documentation, see the comments preceding "register_ +food" in "foodcore.lua". + +---------------------------------------------------------------------- + +3. This mod requires only "default" and "hud", but "bucket" and "farm- +ing" are strongly recommended. + +---------------------------------------------------------------------- + +4. This mod replaces the complicated API used by "food" v2 with an API +that's easier to use. + +In particular, in Unified Foods, one subroutine call, in one place, is +typically enough to set up a food. Two calls, if a juice variation of +the food is desired. + +Additionally, this mod restores some of the foods that were discarded +in "food" v2. + +Historical note: The last pre-v2 commit to "food" was: + + 22be9b83c3087e15eea8878c5aef9be0f12d6158 + +---------------------------------------------------------------------- + +5. Unified Foods creates food and utensils in the "food:" namespace. + +Most of these objects are original items that fall back to existing +items where possible. + +For example, if "farming" is installed, "food:bread" becomes an alias +for "farming:bread". Otherwise, it's defined as a new and independent +item. + +---------------------------------------------------------------------- + +6. If "drawtype" is set to "sprite" or "mob" for an item, "vsize" may +set, as well, to scale the size of the item up or down. + +vsize = 0.50 will, for example, scale the item to half size. vsize = +2.00 will scale it to twice normal size. + +The code adjusts collision boxes and vertical positions for items ap- +propriately. + +---------------------------------------------------------------------- + +Appendix A. Partial list of objects supported. + +Fruits: + +Apple, Banana, Cherry, Orange, Pineapple, and Strawberry. Plus the +associated juices. + +---------------------------------------------------------------------- + +Misc.: + +Hamburger. Hamburger juice. Rainbow and worm juices. OBOE (Open Blade +of Exile) potions in multiple colors. Taco. + +Raw and cooked pasta. A couple of types of breakfast cereal. Dog +treats. + +Glass of Romulan Ale. Glass of Ginger Ale. Bottle of apple cider. + +---------------------------------------------------------------------- + +Vegetables: + +Onion, onion rings, onion slices. + +Potato, potato juice, baked potato, potato slices, french fries, pota- +to chips. + +Carrot, corn, rhubarb, and tomato. Plus most of the associated juices. + +---------------------------------------------------------------------- + +Dairy: + +Glass or bucket of milk. Butter. Cheese. + +---------------------------------------------------------------------- + +Chocolate: + +Cocoa bean, chocolate powder, dark chocolate, milk chocolate, and cup +or mug of chocolate milk. + +---------------------------------------------------------------------- + +Coffee: + +Raw coffee beans, roasted coffee beans, and cup or mug of coffee. + +---------------------------------------------------------------------- + +Dessert: + +Snackcake, blueberry muffin, raw tart base, tart base, and strawberry +tart. + +Banana split, shortbread, cream, strawberry shortcake, and cupcake. + +Moono desserts: Butterscotch Dillybar, Butterscotch Sundae, Heart on a +Stick, Strawberry Bar, Strawberry Icecream, and Strawberry Star. + +There are also some cakes, but we encourage people to use the cakes +and pies from the "cakepie" mod instead. The cakes in this mod are +provided primarily for legacy support purposes. + +---------------------------------------------------------------------- +End of file. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/textures/mobs_meat.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/textures/mobs_meat.png new file mode 100644 index 0000000000000000000000000000000000000000..fc1c86ea8ce9393fef3868b8f1f37c90f85d1ce3 GIT binary patch literal 889 zcmV-<1BU#GP)Y}T7{`BWue`JC z*t<2GwV7G)@jgwRm zmmP&VBaR{f;wXl>f-v!u=8A=~WZfO!%`zT4Z}z)8zde;xdRmIxT)+Y1vZE(k$fUw( zV%U~VwAIKwM_Y}y8l^1dB%+zd46LCO*XRZjUw-($yRw1nH4pAJBN{Ry7SPQida^~K zPSJ~iJQW-jL$+HP#fjggvxbJu=*br0nden*z70V6)bhp0AGl{4`25pPTnAh|ig>lt z@rNqU0XQq+;YMGi9*`oVR;{9~Wo#gfw$N_Qyb{og1kxDVH{bH0h32#O-u#b=a5d;P z8nhEAhL-K>l!dYsj66`pYxqi|iJ_3E92G+V)Y8XmaYi=?aiYRszy5*~mGwb8(c{ZA z@Xgm>Ie=Rq-J%{rd08PA5lZ>=YNH`cxIeV(-2?pb_<%Ty>B-asX0w0&{Nd3)kNUqe z`g`jCqs`?84n~?)bT;B- zHly9$!5BxL3Lf_R{HYDga!heNp|tR&n`5um2i_3=7T7b01wIR@KurvR2-sJS8@WJR zOB_Y(_^LOkiJ>7QYH15u-J+9MeWMx;`1a?1aHU4HTf&(oh!Shxc`7&<8D!#N+FAQSE7&Cp_dDsHE83@XSmvfw9!Tzz1;c-7>O<5L8G6e%MrBi&;YcM`<2JcL>SDB6K%O8*}~yHRV?FE-?R90GFI|x$)l0 zbu~7hpON#G>s=7(HDApJ2d=fYjYDe9nOiOk6K#S3w1g5AhMOQPk%Z9l%nkCNlZ;AY zVzw%oYz$d&IBdw7wy(4P$TJIx(!W%G6qd9Fnbtd5$Fmy_%zP)12liF~z zF{n~{;-Gj(<_3CNlR8w@97OcIWze+-IN&r9)4>s^z;1(Z;=1O}?RY+^JJY#-O2O@o pM*$a{d0JoKjsJw#f2^)=_zMi_5hdR;sSE%B002ovPDHLkV1jAev?Krk literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/LICENSE b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/LICENSE new file mode 100644 index 0000000..7e02853 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/LICENSE @@ -0,0 +1,299 @@ +All of the files involved are used and distributed under FOSS licens- +es. + +---------------------------------------------------------------------- + +License: CC0 aka CC Public Domain +is, or was, described by: +https://creativecommons.org/publicdomain/zero/1.0/ + +License: CC BY-SA 4.0 +is, or was, described by: +https://creativecommons.org/licenses/by-sa/4.0/ + +License: CC BY-SA 3.0 +is, or was, described by: +https://creativecommons.org/licenses/by-sa/3.0/ + +License: CC BY-NC-SA 4.0 +is, or was, described by: +https://creativecommons.org/licenses/by-nc-sa/4.0/ + +License: CC BY-NC-SA 3.0 +is, or was, described by: +https://creativecommons.org/licenses/by-nc-sa/3.0/ + +---------------------------------------------------------------------- + +Original components which are not covered under other copyrights and +licenses are copyright and licensed as follows: + +(c) 2019 and CC BY-NC-SA 4.0: OldCoder (Robert Kiraly). + + +---------------------------------------------------------------------- + +Additional meats: +- codermobs_beef.png +- codermobs_beef_raw.png +- codermobs_ostrich_cooked.png +- codermobs_ostrich_raw.png +- codermobs_venison.png +- codermobs_venison_raw.png +- codermobs_lamb_raw.png +- codermobs_lamb_cooked.png + +(c) 2021 Poikilos CC BY-SA 4.0 + +Redrawn mobs meats and animal materials: +- codermobs_pork_cooked.png +- codermobs_pork_raw.png +- animal_materials_pork_raw.png + +(c) 2021 Poikilos CC BY-SA 4.0 + +Improved or adapted mobs meats and animal materials +(based on image of same name unless specified): +- animal_materials_egg_big.png (improved) +- codermobs_ostrich_*.png (based on raw and cooked chicken **) +- codermobs_ostrich_egg.png (based on sapier egg) +- codermobs_egg_big_fried.* (based on fried egg **) +- codermobs_ostrich_egg_fried.png (based on fried egg **) +- codermobs_chicken_*.png (improved) ** + +(c) 2011 sapier, 2021 Poikilos CC BY-SA 4.0 + +`**` The author is assumed to be sapier due to context, but correct the author later if found. + +Spider Meat: +- Edited by Poikilos, based on model and texture by AspireMint according to + and + possibly implied by + . +- codermobs_lott_spider_meat_raw.png +- codermobs_lott_spider_meat.png + +(c) ~2014 AspireMint and 2021 Poikilos (edited by) CC BY-SA 3.0 +- history: + +---------------------------------------------------------------------- + +More Creeps and Weirdos for Mobs Redo +https://github.com/22i/amcaw +(Poikilos fork: https://github.com/poikilos/amcaw) +includes: baby, blorp, bubblescum, camel, castle critter, castle guard, +castle king, cavelady, caveman, desert lizard, digibug, discomole, +flobmothership, floob, g, googoat, growbotgreg, guineapig, hippo, +hotdog, hunchback, lawyer, loliman, mandog, oldlady, ponie, ponygirl, +ragingbull, ratman, robotted, robottod, rocketgirafe, rockmonster, +sneaky sal, snowdevil and zebra. + +(c) Astromojang, RickWeek84, amcaw CC BY-SA 3.0 + +except: +- codermobs_oldlady_sea_hag_mesh.png + (c) Astromojang, RickWeek84, amcaw and 2021 Poikilos (edited by) + CC BY-SA 3.0 + + +---------------------------------------------------------------------- + + +Skeletons: + +mdskeleton model: +Mdoege + +mdskeleton texture (replaced 2019): +(c) 2019 Poikilos CC BY-SA 4.0 + +mdskeleton sounds (replaced 2019): +(c) 2019 Poikilos CC BY-SA 4.0 + +--------------------------------------------------------------------- + +Models and mesh textures for "baby_chick", "bom", and "icebom": + +(c) 2019 and CC-BY-NC-SA 4.0: Poikilos. OldCoder as well for the "ice- +bom" mesh texture. + +For sound-file information, see the Lua files. + +---------------------------------------------------------------------- + +Denny code and media: +See "denny.lua" + +---------------------------------------------------------------------- + +Improved Spider/Bug Sounds: +codermobs_damage_giant_exoskeleton, codermobs_death_giant_bug, +codermobs_use_giant_exoskeleton +(c) 2019 and CC BY-SA 4.0: Poikilos + +Improved Particles: +codermobs_blood, codermobs_damage_stone, codermobs_lott_spider_blood +(c) 2019 and CC BY-SA 4.0: Poikilos + +codermobs_fireball: +(c) 2012 to 2019 and CC-BY-SA 3.0: Sapier, Poikilos + +---------------------------------------------------------------------- + +Media for "animal_materials", "deer", "elk", and "ostrich": + +See the 5 associated Lua source files. In general, the media is: +(c) 2012 to 2019 and CC-BY-SA 3.0: Sapier and Poikilos. + +The "ostrich" texture is as described above but also attribution: Old- +Coder. + +Code for "animal_materials": Same as media. The other 4 mobs listed +here use new code. + +More about the Elk: + +Pixel Art Elk texture: +(c) 2012 to 2019 and CC BY-SA 3.0: Sapier, Polikilos (skinned by) + +HD (video-based) and Lo-fi (16-color video-based) Elk Textures: +based on Elk video "Elk.webm.360p.vp9" (CC BY 2.0 Generic) +Stephen Baker [BLM/Oregon](blm.gov/yg5c).jpg, Poikilos (skinned by) + +Additionally, "chicken.lua" uses Sapier's 3D egg. See that Lua source +file as well. + +---------------------------------------------------------------------- + +Egg texture: +MIT License +(c) 2016-2019 TenPlus1 and Poikilos + +---------------------------------------------------------------------- + +Car model: +(c) 2015 and CC-BY-NC-SA 3.0: Melkor. + +---------------------------------------------------------------------- + +mdoege code and/or media +----------------------------- +WTFPL + +PilzAdam code and/or media +----------------------------- +WTFPL + +Bat +----------------------------- +Code: GPL +Model and texture: CC BY-SA 3.0. Attribution: Defense Subgame. +Sound file: WTFPL + +Birds +----------------------------- +(c) 2012-2019 and CC-BY-SA 3.0: Sapier, Poikilos. Sapier created +the original models. Poikilos derived new models from them and created +new textures. + +Butterfly +----------------------------- +(c) 2012 to 2019 and CC BY-SA 3.0: AspireMint. + +Realistic Milk Bucket +----------------------------- +(c) 2015-2019 and CC BY-SA 3.0: ElementW, Poikilos (modified by). + +D00Med code +----------------------------- +GNU Lesser General Public License 2.1 + +D00Med models and/or textures +----------------------------- +Originals: CC BY-SA 3.0 Unported. Attribution: D00Med. +New panda texture: CC BY SA 3.0 2016 D00Med and 2021 Poikilos + +Mr. Goat +----------------------------- +(c) 2016 to 2019 and CC BY-SA 3.0: Don Batman. OldCoder worked on the +eyes. + +NSSM components +----------------------------- +No NSSM are believed presently to be used. If they're used in the +future, the applicable license will be GPL3. + +Sapier components +----------------------------- +(c) 2012-2019 and CC-BY-SA 3.0: Sapier. + +"mobs_mc" components +----------------------------- +Code and models: GNU GPL V3 + +Other "mobs_mc" Polar Bear media: CC BY-SA 4.0. Attribution: "mobs_mc" +team. + +Skandarella components +----------------------------- +For snail, kangaroo, tiger, and T-Rex media license information, see: +license-skandarella.txt + +---------------------------------------------------------------------- + +Krupnov Pavel and TenPlus1 components: + +The MIT License (MIT) + +(c) 2014 Krupnov Pavel -- bugs, kpgmobs, pmobs +(c) 2014 Krupnov Pavel and 2016 TenPlus1 -- mobs_animal (deer mesh, + dungeon master (hunched version), small rat, sand monster / + as mummy, sheep, stone monster / as dirt monster, treant) +(c) 2011 sapier, 2021 Poikilos (redraw meats) -- animalmaterials +(c) 2016 TenPlus1 -- mobs_monster and mobs_npc + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------------------------------------- + +Blockmen components: + +(c) 2015-2016 BlockMen + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must +not claim that you wrote the original software. If you use this +software in a product, an acknowledgment in the product documentation +is required. + +2. Altered source versions must be plainly marked as such, and must +not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source +distribution. + +(end of document) diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/animal_materials.lua b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/animal_materials.lua new file mode 100644 index 0000000..8b8022a --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/animal_materials.lua @@ -0,0 +1,386 @@ +-- =================================================================== +-- Code and media license. +-- +-- You may copy, use, modify or do nearly anything but remove this +-- copyright notice. Of course, you're not allowed to pretend you've +-- created or written the Sapier or Poikilos pieces. +-- +-- CC-BY-SA 3.0. Attribution: Sapier and Poikilos. + +-- =================================================================== + +-- Boilerplate to support localized strings if intllib mod is install- +-- ed. + +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + +core.log("action","MOD: animal_materials loading ...") +local version = "0.1.3" + +animal_materialsdata = {} + +-- =================================================================== +-- Node definitions + +-- =================================================================== +-- Item definitions + +-- =================================================================== +-- deamondeath sword + +minetest.register_tool(":animal_materials:sword_deamondeath", { + description = S("Sword (Deamondeath)"), + inventory_image = "default_tool_steelsword.png", + tool_capabilities = { + full_punch_interval = 0.50, + max_drop_level=1, + groupcaps={ + fleshy={times={[1]=2.00, [2]=0.80, [3]=0.40}, uses=10, maxlevel=1}, + snappy={times={[2]=0.70, [3]=0.30}, uses=40, maxlevel=1}, + choppy={times={[3]=0.70}, uses=40, maxlevel=0}, + deamon={times={[1]=0.25, [2]=0.10, [3]=0.05}, uses=20, maxlevel=3}, + } + } + }) + +-- =================================================================== +-- scissors +-- + +minetest.register_tool(":animal_materials:scissors", { + description = S("Scissors"), + inventory_image = "animal_materials_scissors.png", + tool_capabilities = { + max_drop_level=0, + groupcaps={ + wool = {uses=40,maxlevel=1} + } + }, +}) + +-- =================================================================== +-- lasso + +minetest.register_craftitem(":animal_materials:lasso", { + description = S("Lasso"), + image = "animal_materials_lasso.png", + stack_max=10, +}) + +-- =================================================================== +-- net + +minetest.register_craftitem(":animal_materials:net", { + description = S("Net"), + image = "animal_materials_net.png", + stack_max=10, +}) + +-- =================================================================== +-- saddle + +minetest.register_craftitem(":animal_materials:saddle", { + description = S("Saddle"), + image = "animal_materials_saddle.png", + stack_max=1 +}) + +-- =================================================================== +-- contract + +minetest.register_craftitem(":animal_materials:contract", { + description = S("Contract"), + image = "animal_materials_contract.png", + stack_max=10, +}) + +-- =================================================================== +-- meat + +local dep_meat_raw = nil +if minetest.registered_items["mobs:meat"] then + dep_meat_raw = "mobs:meat" +elseif minetest.registered_items["animalmaterials:meat"] then + dep_meat_raw = "animalmaterials:meat" +end + +if not dep_meat_raw then + minetest.register_craftitem(":animal_materials:meat_raw", { + description = S("Raw Meat"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 + }) +else + minetest.register_alias("animal_materials:meat_raw", dep_meat_raw) +end + +local dep_pork_raw = nil +if minetest.registered_items["mobs:pork_raw"] then + dep_pork_raw = "mobs:pork_raw" +elseif minetest.registered_items["animalmaterials:meat_pork"] then + dep_pork_raw = "animalmaterials:meat_pork" +end + +if not dep_pork_raw then + minetest.register_craftitem(":animal_materials:meat_pork", { + description = S("Raw Pork"), + image = "codermobs_pork_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 + }) + + minetest.register_alias("animal_materials:pork_raw", "animal_materials:meat_pork") +else + minetest.register_alias("animal_materials:pork_raw", dep_pork_raw) + minetest.register_alias("animal_materials:meat_pork", dep_pork_raw) +end + +minetest.register_craftitem(":animal_materials:meat_beef", { + description = S("Raw Beef"), + image = "codermobs_beef_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +local dep_chicken_raw = nil +if minetest.registered_items["animalmaterials:meat_chicken"] then + dep_chicken_raw = "animalmaterials:meat_chicken" +end + +if not dep_chicken_raw then + minetest.register_craftitem(":animal_materials:meat_chicken", { + description = S("Raw Chicken"), + image = "codermobs_chicken_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 + }) +else + minetest.register_alias("animalmaterials:meat_chicken", dep_chicken_raw) + -- ^ The alias is only necessary for older versions of bucket_game-- + -- as long as new ones always use the latter craftitem everywhere else, + -- they don't need the alias for any other reason. +end + +local dep_lamb_raw = nil +if minetest.registered_items["animalmaterials:meat_lamb"] then + dep_lamb_raw = "animalmaterials:meat_lamb" +end + +if not dep_lamb_raw then + minetest.register_craftitem(":animal_materials:meat_lamb", { + description = S("Raw Lamb"), + image = "codermobs_lamb_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 + }) +else + minetest.register_alias("animal_materials:meat_lamb", dep_lamb_raw) +end + +minetest.register_craftitem(":animal_materials:meat_venison", { + description = S("Raw Venison"), + image = "codermobs_venison_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:meat_undead", { + description = S("Meat (not quite dead)"), + image = "animal_materials_meat_undead_raw.png", + on_use = minetest.item_eat(-2), + groups = { meat=1, eatable=1 }, + stack_max=5 +}) + +minetest.register_craftitem(":animal_materials:meat_toxic", { + description = S("Toxic Meat"), + image = "animal_materials_meat_toxic_raw.png", + on_use = minetest.item_eat(-5), + groups = { meat=1, eatable=1 }, + stack_max=5 +}) + +minetest.register_craftitem(":animal_materials:meat_ostrich", { + description = S("Raw Ostrich"), + image = "animal_materials_ostrich_meat_raw.png", + on_use = minetest.item_eat(3), + groups = { meat=1, eatable=1 }, + stack_max=5 +}) + + +minetest.register_craftitem(":animal_materials:fish_bluewhite", { + description = S("Fish (bluewhite)"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:fish_clownfish", { + description = S("Fish (clownfish)"), + image = "animal_materials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +-- =================================================================== +-- feather + +minetest.register_craftitem(":animal_materials:feather", { + description = S("Feather"), + image = "animal_materials_feather.png", + stack_max=25 +}) + +-- =================================================================== +-- milk + +minetest.register_craftitem(":animal_materials:milk", { + description = S("Milk"), + image = "animal_materials_milk.png", + on_use = minetest.item_eat(1), + groups = { eatable=1 }, + stack_max=10 +}) + +-- =================================================================== +-- egg + +minetest.register_craftitem(":animal_materials:egg", { + description = S("Egg"), + image = "animal_materials_egg.png", + stack_max=10 +}) + +minetest.register_craftitem(":animal_materials:egg_big", { + description = S("Big Egg"), + image = "animal_materials_egg_big.png", + stack_max=5 +}) + +animal_materialsdata["animal_materials_egg"] = { + graphics_3d = { + visual = "mesh", + mesh = "animal_materials_egg_ent.b3d", + textures = { "animal_materials_egg_ent_mesh.png" }, + collisionbox = { -0.12,-0.125,-0.12,0.12,0.125,0.12 }, + visual_size = {x=1,y=1,z=1}, + } + } + +animal_materialsdata["animal_materials_egg_big"] = { + graphics_3d = { + visual = "mesh", + mesh = "animal_materials_egg_ent.b3d", + textures = { "animal_materials_egg_ent_mesh.png" }, + collisionbox = { -0.24,-0.25,-0.24,0.24,0.25,0.24 }, + visual_size = {x=2,y=2,z=2}, + } + } + +-- =================================================================== +-- bone + +minetest.register_craftitem(":animal_materials:bone", { + description = S("Bone"), + image = "animal_materials_bone.png", + stack_max=25 +}) + +-- =================================================================== +-- furs + +minetest.register_craftitem(":animal_materials:fur", { + description = S("Fur"), + image = "animal_materials_fur.png", + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:fur_deer", { + description = S("Deer fur"), + image = "animal_materials_deer_fur.png", + stack_max=10 +}) + +minetest.register_craftitem(":animal_materials:coat_cattle", { + description = S("Cattle coat"), + image = "animal_materials_cattle_coat.png", + stack_max=10 +}) + +-- =================================================================== +-- horns + +minetest.register_craftitem(":animal_materials:antlers", { + description = S("Antlers"), + image = "animal_materials_antlers.png", + stack_max=20 +}) + +minetest.register_craftitem(":animal_materials:ivory", { + description = S("Ivory"), + image = "animal_materials_ivory.png", + stack_max=20 +}) + +-- =================================================================== +-- scale + +minetest.register_craftitem(":animal_materials:scale_golden", { + description = S("Scale (golden)"), + image = "animal_materials_scale_golden.png", + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:scale_white", { + description = S("Scale (white)"), + image = "animal_materials_scale_white.png", + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:scale_grey", { + description = S("Scale (grey)"), + image = "animal_materials_scale_grey.png", + stack_max=25 +}) + +minetest.register_craftitem(":animal_materials:scale_blue", { + description = S("Scale (blue)"), + image = "animal_materials_scale_blue.png", + stack_max=25 +}) + +-- =================================================================== +-- recipes + +minetest.register_craft({ + output = "wool:white", + recipe = { + {"animal_materials:feather","animal_materials:feather","animal_materials:feather"}, + {"animal_materials:feather", "animal_materials:feather","animal_materials:feather"}, + {"animal_materials:feather","animal_materials:feather","animal_materials:feather"}, + } +}) + +minetest.register_craft({ + output = "animal_materials:contract", + recipe = { + {"default:paper"}, + {"default:paper"}, + } +}) diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/hen.lua b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/hen.lua new file mode 100644 index 0000000..ecff1ec --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/hen.lua @@ -0,0 +1,483 @@ +-- Hen. Descended from "Farlands" version. + +-- =================================================================== +-- License information for Sapier's 3D-egg media. +-- +-- You may copy, use, modify or do nearly anything but remove this +-- copyright notice. Of course, you're not allowed to pretend you've +-- created or written the Sapier pieces. +-- +-- CC-BY-SA 3.0. Attribution: Sapier. + +-- =================================================================== + +local numset = codermobs.numset_if_any + +local codermobs_egg_time_delay = + numset ("codermobs_egg_time_delay" ) or 120 +if codermobs_egg_time_delay < 3 then + codermobs_egg_time_delay = 3 +end + +local codermobs_egg_hatch_chance = + numset ("codermobs_egg_hatch_chance" ) or 3 + +local EGG_UNFERTILIZED = 1 +local EGG_FERTILIZED = 2 + +-- =================================================================== + +local lcname = "chicken" +local ucname = "Chicken" +local msname = "codermobs_" .. lcname +local obj_name = "codermobs:" .. lcname + +-- This mob is a special case +local obj_hen = "codermobs:hen" + +-- =================================================================== + +mobs_param = { + lcname = "hen" , + ucname = "Hen" , + obj_name = "codermobs:hen" , + + aoc = 4 , + spawn_chance = 20000 , + + day_mode = true , + min_light = 5 , + max_light = 30 , + min_height = -31000 , + max_height = 31000 , + + spawn_type = "animal" , + + spawn_nodes = { + "default:dirt_with_dry_grass" , + "default:dirt_with_grass" , + "earthgen:dirt_with_dry_grass" , + "ethereal:bamboo_dirt" , + "ethereal:green_dirt" , + "ethereal:green_dirt_top" , + "ethereal:grove_dirt" , + "mg:dirt_with_dry_grass" , + "noisegrid:grass" , + } , + + add_egg = true , + egg_image = "wool_brown.png" , +} + +-- =================================================================== + +codermobs.adjust_param() + +-- =================================================================== + +local msname_cooked = msname .. "_cooked" +local msname_raw = msname .. "_raw" + +local msname_img = msname .. ".png" +local msname_cooked_img = msname_cooked .. ".png" +local msname_raw_img = msname_raw .. ".png" + +local msname_egg = msname .. "_egg" +local msname_egg_fried = msname_egg .. "_fried" +local msname_egg_img = msname_egg .. ".png" +local msname_egg_fried_img = msname_egg_fried .. ".png" + +local obj_name_cooked = obj_name .. "_cooked" +local obj_name_raw = obj_name .. "_raw" + +local obj_name_egg = obj_name .. "_egg" +local obj_name_egg_entity = obj_name_egg .. "_entity" +local obj_name_egg_fried = obj_name_egg .. "_fried" + +-- =================================================================== + +local do_breed = function (self) + local pos = self.object:getpos() + local objs = minetest.get_objects_inside_radius (pos, 12) + local egg_status = EGG_UNFERTILIZED + + for n = 1, #objs do + if not objs [n]:is_player() then + local obj = objs [n]:get_luaentity() + if obj and obj.name == "codermobs:rooster" then + egg_status = EGG_FERTILIZED + end + end + end + + minetest.set_node (pos, + { name = obj_name_egg, param2 = egg_status }) + + minetest.sound_play ("chicken_lay_egg", { + pos = pos, gain = 1.0, max_hear_distance = 5, + }) +end + +-- =================================================================== + +mobs_param.core_param = { + type = mobs_param.spawn_type , + makes_footstep_sound = true , + + -- Most behavior/sight/battle + armor = 200 , + attack_type = "dogfight" , + damage = 1 , + hp_max = 10 , + hp_min = 5 , + passive = false , + reach = 1 , + runaway = true , + view_range = 5 , + + -- Velocities + run_velocity = 3 , + walk_velocity = 1 , + + -- Step/jump/fall parameters + fall_damage = 0 , + fall_speed = -8 , + fear_height = 5 , + jump = false , + jump_height = 0 , + stepheight = 1.2 , + + -- Environment damage + lava_damage = 5 , + light_damage = 0 , + water_damage = 1 , + + -- Misc. parameters + floats = 0 , + +-- Too small: +-- collisionbox = {-0.2, 0, -0.2, 0.2, 0.45, 0.2}, + +-- Too large: +-- collisionbox = {-0.4, 0, -0.4, 0.4, 0.90, 0.4}, +-- visual_size = { x=2, y=2 }, + + collisionbox = { -0.30, -0.01 , -0.30, 0.30, 0.66, 0.30 } , + mesh = msname .. ".b3d" , + textures = {{ "codermobs_hen_mesh.png" }} , + visual = "mesh" , + visual_size = { x=1.5, y=1.5 } , + + animation = { + stand_start = 0 , + stand_end = 20 , + walk_start = 25 , + walk_end = 45 , + speed_normal = 15 , + } , + + drops = { + { name=obj_name_raw, chance=1, min=2, max=2 } , + } , + + follow = { + "farming:seed_wheat", "farming:seed_cotton" + } , + + sounds = { random = msname } , + + specific_attack = codermobs.make_mob_list ({ + "bug", "beetle" + }) , + + on_rightclick = function (self, clicker) + if mobs:feed_tame (self, clicker, 8, true, true) then + return + end + mobs:protect (self, clicker) + mobs:capture_mob (self, clicker, 30, 50, 80, false, nil) + end, + + do_custom = function (self) + if self.child or math.random (1, 4000) > 1 then return end + do_breed (self) + end , + +-- Poikilos June 2019: false here prevents the creation of a mini- +-- chicken based on the adult mesh. + + on_breed = function (self, ent) + do_breed (self) + return false + end , +} + +-- =================================================================== + +codermobs.setup_mob() + +mobs:alias_mob ("codermobs:chicken" , obj_hen) +mobs:alias_mob ("codermobs:chook" , obj_hen) +mobs:alias_mob ("mobs:chicken" , obj_hen) +mobs:alias_mob ("mobs_animal:chicken" , obj_hen) + +-- =================================================================== +-- Egg throwing item + +local egg_GRAVITY = 9 +local egg_VELOCITY = 19 + +-- shoot egg +local mobs_shoot_egg = function (item, player, pointed_thing) + + local playerpos = player:getpos() + + minetest.sound_play("default_place_node_hard", { + pos = playerpos, + gain = 1.0, + max_hear_distance = 5, + }) + + local obj = minetest.add_entity({ + x = playerpos.x, + y = playerpos.y +1.5, + z = playerpos.z + }, obj_name_egg_entity) + + local ent = obj:get_luaentity() + local dir = player:get_look_dir() + + ent.velocity = egg_VELOCITY -- needed for api internal timing + ent.switch = 1 -- needed so that egg doesn't despawn straight away + + obj:setvelocity({ + x = dir.x * egg_VELOCITY, + y = dir.y * egg_VELOCITY, + z = dir.z * egg_VELOCITY + }) + + obj:setacceleration({ + x = dir.x * -3, + y = -egg_GRAVITY, + z = dir.z * -3 + }) + + -- pass player name to egg for chick ownership + local ent2 = obj:get_luaentity() + ent2.playername = player:get_player_name() + item:take_item() + return item +end + +-- =================================================================== +-- Egg. + +minetest.register_node (obj_name_egg, { + description = ucname .. " Egg", + inventory_image = msname_egg_img , + wield_image = msname_egg_img , + paramtype = "light", + walkable = false, + is_ground_content = true, + sunlight_propagates = true, + +-- This draws the new 3D chicken egg: +-- + drawtype = "mesh" , + mesh = "codermobs_chicken_egg.b3d" , + tiles = { "animal_materials_egg_ent_mesh.png" } , + selection_box = { + type = "fixed" , + fixed = { -0.12,-0.425,-0.12,0.12,-0.175,0.12 } , + } , + visual_scale = 0.12 , + + groups = {snappy = 2, dig_immediate = 3}, + + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, + { name = obj_name_egg, param2 = EGG_UNFERTILIZED }) + end + end, + + on_construct = function (pos) + minetest.get_node_timer (pos):start (codermobs_egg_time_delay) + end , + + on_use = mobs_shoot_egg , + + on_timer = function (pos, elapsed) + local self = minetest.get_node (pos) + local sp2 = self.param2 + + minetest.remove_node (pos) + + if sp2 ~= nil and sp2 == EGG_FERTILIZED then + local num = math.random (1, codermobs_egg_hatch_chance) + if num == 1 then + minetest.add_entity (pos, "codermobs:baby_chick") + end + end + end , +}) + +minetest.register_alias ("codermobs:egg" , obj_name_egg) +minetest.register_alias ("mobs:egg" , obj_name_egg) +minetest.register_alias ("egg" , obj_name_egg) + +-- =================================================================== +-- Egg entity + +mobs:register_arrow (obj_name_egg_entity, { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = { msname_egg_img } , + velocity = 6, + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 1}, + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 1}, + }, nil) + end, + + hit_node = function(self, pos, node) + local num = math.random(1, 10) + +-- RJK 191223: This code is disabled for now because it'll presently +-- crash if it's used. + + if false and num == 1 then + pos.y = pos.y + 1 + local nod = minetest.get_node_or_nil(pos) + + if not nod + or not minetest.registered_nodes[nod.name] + or minetest.registered_nodes[nod.name].walkable == true then + return + end + + local mob = minetest.add_entity (pos, obj_name) + local ent2 = mob:get_luaentity() + + mob:set_properties({ + textures = ent2.child_texture[1], + visual_size = { + x = ent2.base_size.x / 2, + y = ent2.base_size.y / 2 + }, + collisionbox = { + ent2.base_colbox[1] / 2, + ent2.base_colbox[2] / 2, + ent2.base_colbox[3] / 2, + ent2.base_colbox[4] / 2, + ent2.base_colbox[5] / 2, + ent2.base_colbox[6] / 2 + }, + }) + + ent2.child = true + ent2.tamed = true + ent2.owner = self.playername + end + end +}) + +-- =================================================================== +-- Fried egg. + +minetest.register_craftitem (obj_name_egg_fried, { + description = "Fried " .. ucname .. " Egg" , + inventory_image = msname_egg_fried_img , + on_use = minetest.item_eat (2) , +}) + +minetest.register_alias ("mobs:chicken_egg_fried", + obj_name_egg_fried) + +minetest.register_craft ({ + type = "cooking" , + recipe = obj_name_egg , + output = obj_name_egg_fried , +}) + +-- =================================================================== +-- Raw bird. +local dep_chicken_raw = nil +if minetest.registered_items["animal_materials:meat_chicken"] then + dep_chicken_raw = "animal_materials:meat_chicken" +elseif minetest.registered_items["animalmaterials:meat_chicken"] then + dep_chicken_raw = "animalmaterials:meat_chicken" +end +if not dep_chicken_raw then + minetest.register_craftitem (obj_name_raw, { + description = "Raw " .. ucname , + inventory_image = msname_raw_img , + + on_use = function (itemstack, player, pointed_thing) + local name = player:get_player_name() + local msg = name .. " ate raw " .. ucname .. ". Salmonella!" + minetest.chat_send_all (msg) + player:set_hp (player:get_hp() - 2) + end , + }) + + minetest.register_alias ("mobs:chicken_raw", obj_name_raw) +else + minetest.register_alias ("mobs:chicken_raw", dep_chicken_raw) + minetest.register_alias (obj_name_raw, dep_chicken_raw) +end + +-- =================================================================== +-- Cooked bird. + +local dep_chicken_cooked = nil +if minetest.registered_items["cooking:meat_chicken_cooked"] then + dep_chicken_cooked = "cooking:meat_chicken_cooked" +end + +if not dep_chicken_cooked then + minetest.register_craftitem (obj_name_cooked, { + description = "Cooked " .. ucname , + inventory_image = msname_cooked_img , + on_use = minetest.item_eat (6) , + }) + + minetest.register_alias ("mobs:chicken_cooked", + obj_name_cooked) +else + minetest.register_alias ("mobs:chicken_cooked", dep_chicken_cooked) + minetest.register_alias (obj_name_cooked, dep_chicken_cooked) +end + +minetest.register_craft ({ + type = "cooking" , + recipe = obj_name_raw , + output = obj_name_cooked , +}) + +-- =================================================================== +-- Chicken feather. + +minetest.register_craftitem ("codermobs:chicken_feather", { + description = "Feather" , + inventory_image = "codermobs_chicken_feather.png" , +}) + +minetest.register_alias ("mobs:chicken_feather", + "codermobs:chicken_feather") + +-- =================================================================== + +codermobs.log_done() + +-- =================================================================== +-- End of file. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/lott_spider.lua b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/lott_spider.lua new file mode 100644 index 0000000..af39ce4 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/lott_spider.lua @@ -0,0 +1,128 @@ +-- Giant Spider. Descended from LOTT version. + +-- =================================================================== + +local lcname = "lott_spider" +local ucname = "LOTT Spider" +local msname = "codermobs_" .. lcname +local obj_name = "codermobs:" .. lcname + +-- =================================================================== + +mobs_param = { + lcname = lcname , + ucname = ucname , + obj_name = obj_name , + + aoc = -1 , + spawn_chance = 120000 , + + day_mode = true , + min_light = 0 , + max_light = 30 , + min_height = -31000 , + max_height = 31000 , + + spawn_type = "npc" , + + spawn_nodes = { + "default:junglegrass" , + "default:jungleleaves" , + "default:jungletree" , + } , + + add_egg = true , + egg_image = "default_stone.png" , +} + +-- =================================================================== + +codermobs.adjust_param() + +-- =================================================================== + +minetest.register_craftitem (obj_name .. "_meat", { + description = "Cooked Spider", + inventory_image = msname .. "_meat.png", + on_use = minetest.item_eat (4), +}) + +minetest.register_craftitem (obj_name .. "_meat_raw", { + description = "Raw Spider", + inventory_image = msname .. "_meat_raw.png", +}) + +minetest.register_craft ({ + type = "cooking", + output = obj_name .. "_meat", + recipe = obj_name .. "_meat_raw", +}) + +mobs_param.core_param = { + type = mobs_param.spawn_type , + passive = false, + attacks_monsters = true, + hp_min = 15, + hp_max = 30, + collisionbox = {-0.9, -0.01, -0.7, 0.7, 0.6, 0.7}, + textures = { msname .. ".png"} , + visual_size = {x=7,y=7}, + visual = "mesh", + mesh = msname .. ".x", + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + armor = 200, + damage = 3, + stepheight = 1.2 , + jump_height = 0 , + jump = false , + + drops = { + { name = "farming:string" , + chance = 2, min = 1, max = 3 } , + { name = obj_name .. "_meat_raw" , + chance = 4, min = 1, max = 2 } , + } , + + light_resistant = true, + drawtype = "front", + water_damage = 5, + floats = 0, + runaway = true, + lava_damage = 5, + light_damage = 0, + on_rightclick = nil, + attack_type = "dogfight", + + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 1, + stand_end = 1, + walk_start = 20, + walk_end = 40, + run_start = 20, + run_end = 40, + punch_start = 50, + punch_end = 90, + }, + blood_texture = msname .. "_blood.png", + + sounds = { + war_cry = "codermobs_eerie" , + damage = "codermobs_damage_giant_exoskeleton" , + death = "codermobs_death_giant_bug" , + attack = "codermobs_use_giant_exoskeleton" , + }, +} + +-- =================================================================== + +codermobs.setup_mob() +mobs:alias_mob ("mobs_monster:spider" , obj_name) +codermobs.log_done() + +-- =================================================================== +-- End of file. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/oldcoder.txt b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/oldcoder.txt new file mode 100644 index 0000000..3a8d8b3 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/oldcoder.txt @@ -0,0 +1,19 @@ +Name: codermobs +Source: New mod using existing media files +License: See "LICENSE" + +---------------------------------------------------------------------- + +1. This is a new mod which implements a number of Final Minetest 3D +mobs. + +For general information, see the "_game" documentation, which covers +this mod and the associated modpack in detail. + +---------------------------------------------------------------------- + +2. The code is largely new, but it includes elements from existing +mods. The media files, in most cases, have been extracted from the +same or similar mods. + +For license information, see "LICENSE". diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/ostrich.lua b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/ostrich.lua new file mode 100644 index 0000000..259fa98 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/ostrich.lua @@ -0,0 +1,371 @@ +-- Ostrich. Descended from Sapier version. + +-- =================================================================== +-- Media license. Applies to model and associated texture. +-- +-- You may copy, use, modify or do nearly anything but remove this +-- copyright notice. Of course, you're not allowed to pretend you've +-- created or written the Sapier, Poikilos, or OldCoder pieces. +-- +-- CC-BY-SA 3.0. Attribution: Sapier, Poikilos, and OldCoder. + +-- =================================================================== + +local lcname = "ostrich" +local ucname = "Ostrich" +local msname = "codermobs_" .. lcname +local obj_name = "codermobs:" .. lcname + +-- =================================================================== + +mobs_param = { + lcname = lcname , + ucname = ucname , + obj_name = obj_name , + + aoc = -1 , + spawn_chance = 80000 , + + day_mode = true , + min_light = 14 , + max_light = 20 , + min_height = 0 , + max_height = 200 , + + spawn_type = "animal" , + + spawn_nodes = { + "default:dirt_with_dry_grass" , + "ethereal:mushroom_dirt" , + } , + + spawn_by = { + "group:dry_grass" , + "group:grass" , + "flowers:mushroom_brown" , + } , + + add_egg = true , + egg_image = "wool_pink.png" , +} + +-- =================================================================== + +codermobs.adjust_param() + +-- =================================================================== + +-- local mcname = "codermobs_chicken" +local mcname = "codermobs_ostrich" + +local msname_cooked = mcname .. "_cooked" +local msname_raw = mcname .. "_raw" + +local msname_img = mcname .. ".png" +local msname_cooked_img = msname_cooked .. ".png" +-- local msname_raw_img = msname_raw .. ".png" +local msname_raw_img = "animal_materials_ostrich_meat_raw.png" + +local msname_egg = mcname .. "_egg" +local msname_egg_fried = msname_egg .. "_fried" +-- local msname_egg_fried_img = "animal_materials_egg_big_fried.png" +-- ^ by Poikilos (no upstream) +-- local msname_egg_img = "animal_materials_egg_big.png" +-- ^ upstream name is animalmaterials_egg_big.png (brown, but real ostrich eggs are offwhite) +local msname_egg_fried_img = msname_egg_fried .. ".png" +local msname_egg_img = msname_egg .. ".png" + +local obj_name_cooked = obj_name .. "_cooked" +-- local obj_name_raw = obj_name .. "_raw" +-- ^ formerly codermobs:ostrich_raw (dup of animal_materials, see alias below) +local obj_name_raw = ":animal_materials:meat_ostrich" + +local obj_name_egg = obj_name .. "_egg" +local obj_name_egg_entity = obj_name_egg .. "_entity" +local obj_name_egg_fried = obj_name_egg .. "_fried" + +-- =================================================================== + +mobs_param.core_param = { + type = mobs_param.spawn_type , + makes_footstep_sound = true , + + armor = 200 , + attack_npcs = false , + attack_type = "dogfight" , + damage = 2 , + fear_height = 3 , + floats = 0 , + group_attack = true , + hp_max = 15 , + hp_min = 5 , + stepheight = 1.2 , + jump_height = 0 , + jump = false , + owner_loyal = true , + passive = false , + pushable = true , + reach = 2 , + run_velocity = 3 , + runaway = true , + type = "animal" , + view_range = 10 , + walk_velocity = 2 , + + lava_damage = 5 , + light_damage = 0 , + water_damage = 1 , + + collisionbox = { -0.50, -0.85, -0.50, 0.50, 0.60, 0.50 } , + mesh = "codermobs_ostrich.b3d" , + rotate = 270 , + textures = { "codermobs_ostrich_mesh.png" } , + visual = "mesh" , + + sounds = { + } , + + follow = { "default:apple", "farming:potato" } , + + drops = { + { + name="animal_materials:meat_ostrich", + chance=1, min=1, max=3 + } , + } , + + specific_attack = codermobs.make_mob_list ({ + "chicken", "bunny", + }) , + + + animation = { + speed_normal = 10 , + stand_start = 1 , + stand_end = 40 , + walk_start = 41 , + walk_end = 81 , + }, + + on_rightclick = function (self, clicker) + if mobs:feed_tame(self, clicker, 8, true, true) then return end + if mobs:protect(self, clicker) then return end + + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then + return + end + end, +} + +-- =================================================================== + +codermobs.setup_mob() + +-- =================================================================== +-- Egg-throwing item + +local egg_GRAVITY = 9 +local egg_VELOCITY = 19 + +-- Shoot egg +local mobs_shoot_egg = function (item, player, pointed_thing) + + local playerpos = player:getpos() + + minetest.sound_play ("default_place_node_hard", { + pos = playerpos, + gain = 1.0, + max_hear_distance = 5, + }) + + local obj = minetest.add_entity({ + x = playerpos.x, + y = playerpos.y +1.5, + z = playerpos.z + }, obj_name_egg_entity) + + local ent = obj:get_luaentity() + local dir = player:get_look_dir() + + ent.velocity = egg_VELOCITY -- needed for api internal timing + ent.switch = 1 -- needed so that egg doesn't despawn straight away + + obj:setvelocity({ + x = dir.x * egg_VELOCITY, + y = dir.y * egg_VELOCITY, + z = dir.z * egg_VELOCITY + }) + + obj:setacceleration({ + x = dir.x * -3, + y = -egg_GRAVITY, + z = dir.z * -3 + }) + + -- pass player name to egg for chick ownership + local ent2 = obj:get_luaentity() + ent2.playername = player:get_player_name() + item:take_item() + return item +end + +-- =================================================================== +-- Egg. + +minetest.register_node (obj_name_egg, { + description = ucname .. " Egg", + inventory_image = msname_egg_img , + wield_image = msname_egg_img , + paramtype = "light", + walkable = false, + is_ground_content = true, + sunlight_propagates = true, + + drawtype = "mesh" , + mesh = "animal-materials-egg.b3d" , + tiles = { "animal_materials_egg_ent_mesh.png" } , + visual_scale = 0.24 , + + selection_box = { + type = "fixed" , + fixed = { -0.25, -0.25, -0.25, 0.25, 0.25, 0.24 } , + } , + + groups = {snappy = 2, dig_immediate = 3}, + + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name = obj_name_egg, param2 = 1}) + end + end , + + on_use = mobs_shoot_egg , +}) + +-- =================================================================== +-- Egg entity. + +mobs:register_arrow (obj_name_egg_entity, { + visual = "sprite", + visual_size = {x=.5, y=.5}, + textures = { msname_egg_img } , + velocity = 6, + + hit_player = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 1}, + }, nil) + end, + + hit_mob = function(self, player) + player:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = 1}, + }, nil) + end, + + hit_node = function (self, pos, node) + local num = math.random (1, 10) + +-- RJK 191223: This code is disabled for now because it'll presently +-- crash if it's used. + + if false and num == 1 then + pos.y = pos.y + 1 + local nod = minetest.get_node_or_nil(pos) + + if not nod + or not minetest.registered_nodes[nod.name] + or minetest.registered_nodes[nod.name].walkable == true then + return + end + + local mob = minetest.add_entity (pos, obj_name) + local ent2 = mob:get_luaentity() + + mob:set_properties({ + textures = ent2.child_texture[1], + visual_size = { + x = ent2.base_size.x / 2, + y = ent2.base_size.y / 2 + }, + collisionbox = { + ent2.base_colbox[1] / 2, + ent2.base_colbox[2] / 2, + ent2.base_colbox[3] / 2, + ent2.base_colbox[4] / 2, + ent2.base_colbox[5] / 2, + ent2.base_colbox[6] / 2 + }, + }) + + ent2.child = true + ent2.tamed = true + ent2.owner = self.playername + end + end +}) + +-- =================================================================== +-- Fried egg. + +minetest.register_craftitem (obj_name_egg_fried, { + description = "Fried " .. ucname .. " Egg" , + inventory_image = msname_egg_fried_img , + on_use = minetest.item_eat (3) , +}) + +minetest.register_craft ({ + type = "cooking" , + recipe = obj_name_egg , + output = obj_name_egg_fried , +}) + +-- =================================================================== +-- Raw bird. +if not minetest.registered_items[obj_name_raw] then + minetest.register_craftitem (obj_name_raw, { + description = "Raw " .. ucname , + inventory_image = msname_raw_img , + + on_use = function (itemstack, player, pointed_thing) + local name = player:get_player_name() + local msg = name .. " ate raw " .. ucname .. ". Salmonella!" + minetest.chat_send_all (msg) + player:set_hp (player:get_hp() - 2) + end , + }) +end + +minetest.register_alias("codermobs:ostrich_raw", "animal_materials:meat_ostrich") +-- ^ only necessary for old versions of codermobs + +-- =================================================================== +-- Cooked bird. + +-- For the register_craftitem and register_craft calls below, +-- the cooking mod from the animals_modpack or animalmaterials modpacks +-- do the same as below except for with ostrich: +-- - raw craftitems are in the animalmaterials namespace, +-- - cooked versions are in the cooking namespace +-- - but cooking doesn't have ostrich + +minetest.register_craftitem (obj_name_cooked, { + description = "Cooked " .. ucname , + inventory_image = msname_cooked_img , + on_use = minetest.item_eat (6) , +}) + +minetest.register_craft ({ + type = "cooking" , + recipe = obj_name_raw , + output = obj_name_cooked , +}) + +-- =================================================================== + +codermobs.log_done() + +-- =================================================================== +-- End of file. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animal_materials_egg_big+ostrich.xcf b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animal_materials_egg_big+ostrich.xcf new file mode 100644 index 0000000000000000000000000000000000000000..a84ac29ca6e6b44fc950848b9407f3b2e8d6dee7 GIT binary patch literal 9297 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 OgDYldbi)5WUj8RWF%Xad literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animal_materials_egg_big_fried+ostrich.xcf b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animal_materials_egg_big_fried+ostrich.xcf new file mode 100644 index 0000000000000000000000000000000000000000..39356405d1d2e55b224ea6e595cd06f5d5960ba7 GIT binary patch literal 6658 zcmdT|O>7(25#INf%O6t|$tWAyt`TgT*0q7Uje(-a76{N=ffhax(m@BuKeC#{4rHZD zP6|rc5>p*o2-H=&7>0y`Auk1l5(20NidI#KC{56uNG`TuL_&mrVpyrTyRYB8CB=1N zz(s%*$r`h7=9_tM-y6-$8+vl;jW>r>M^x@*k<+zWL_GOH76H}o^bB1 z>r*qv)b&f(uH2*E2s{|*?@HgG^}pBSF(}_9zGw4NfDgt4+4Ua&TA#yc^r*LYKK~RQ zAimPa=h#`BH$+pjMUywu0e;wK4XXn1V>cU(7!clkY&V;YJ$tXwY^u<(Mg;I- z)3%#?cBt*xdxX0%kJ_v$U?Cczy>0^lR$|SV-6dOSod(w6_%1Clj8Vf#qzA_D10MlJ zZMR`J(^%NXKD~NhEsN2r=C-u5Y{G9ST8^DHc|D=O0wuw%xX1K183|rh+rJ-`n z4=qdeE0rP!Cn;fg*&Hun-z3F-T^th6G5QKl z%u2&XxW;`|8Y-v!L9M3xG8|;gvDcKCcuq-*VI?hwlo1hAMn&W)6jgL_4EiD1C6$C2 z!MqVAEKVw_m{a~hnP~KgN>}uismcGfY?1x{t!&|2^nBT}MI|`!M0zD&LI&PMy|NYg zDfs?lfFZ&Y$@rt9%&`TOQQl?^6~#iWCl%Hf4b+#t5DG>8ep2bS8@9ctw!J;n7_ZSz zDkwF3C<}Y4om504VT;CKOak-T4HOWvblX&9P;kJrwr8WnIS?RWJsY3&8n)V=V`uvN z=rB`7)~XilJHkY|?}m`2)tNW)!T6jf}&OcaF~7^{$h zdmS_GPjEX`6d@!%CbN!5S?@rAgk`JvvS(J+PGCDNmQ#@-Uk`O86N-{txU}?~E(Ce_9V?UrjZwf@$DaCf`R~K*2T)Axg z;^I43rj3_m|MYdb%IP|%>;B8;goe3+=h#mILf;R)oH%yjDLO#Me%;4|`7p?aFOUuY zl?sDIpfq59D%djoyN$MteFQl710S3g2zq?vDA)&~{slrk80Uv(XAtBF(FBqMw~~p_ zcB>TEU9%&D8W8s*8k`o0W_;%;iU%?L1!6cDz=yfkAbJsd2}C`Ldk!({mMCDmxt5Gp zK->>ia9SWtRRo@f0OSZnq5KS#5DdhDY0#|oOyL>@<%uPCi5&{ zh0_bqv%-_s_@eN-krjBv>tAU>uf{IcQ>}N1pg#a zXWQaVG|x8N!o~)NMR%ic=T0F3gl#(;+l2z(U5d~FT9!8ELKuN?fG%syg-Y)nh>m5Ajak;i6CGwb#GC|!Yr~>Z ztaFPLo(bkSDaO`u!|33;=GfS>sadHGhZ)wpy=+FUa3^fBb#1J>Zej`kVZvgjxE&p1 z>+bUUI)_Dfefjq7l!WP&Hj-%r^O6sU93o9p(%qNk|r;yw)BFX2JckzA^(kY>)1LK~>=$C(u;lvK`bIs0KIhVYM?TI4T;`MDY-Ui=)3@}7^UN~92g~dytT1>{Mi%#YZ$}DoD?&y~5;j=PrjO%kiH@a)eq-&dO#IG zRr+j;e1_@=1L?Ol@*7pZ5>-D;@wWOg@{urLza&O_=69?mKYx%Xct?f;CaxH)BR-TW?B)Vm-S@}F) zV|lhF#?uqA@oN+CWCoth^gOw!o@R^iWTx-QMShySA3A-w=zB8L_vGT~)9=HR@BfxV z=X)~K^JD=k4YQyr_@2!4Jh_-S{bB-emo^hw=;hkPguELWUG0HdL z$?cCmf+siKX?#0#FuJ-rzq-2lmkoGwb$)t!o{z>Px@oOi^YeU_&9hZ8n$E;VuVvuL tXSa^;y(m28!YLsxaCDC$MO-+J|N9dcbipsg6!G4$5bvciMlW1b{sT2$GRgn| literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animalmaterials_lamb_raw+cooked.xcf b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animalmaterials_lamb_raw+cooked.xcf new file mode 100644 index 0000000000000000000000000000000000000000..22e31bdb295d6789ef327ce6fea46a671eef6f2c GIT binary patch literal 4306 zcmcgu?Nb})wSRUcKoXz@ge6-h-bEm^yOLlfp+yoB0)Y|W7a{Rtv06c}-oStaTJdTp zcIa)d-OQvkjq6T3ljcLFnQ5Cz`{jPg*P9QS%yjx!WSZLdCMka5#aKNHxTQ09=Fa_c zAI;f4&-p!P&pFTeX`ju_FD+9WsVud|IUEQEbtNjuME%#ra?WQ4Ry>)g9-T41 zRw+O3_uvX`0Fmvozr6jjE)NsP zYrW}=t~sMqXY}ebdd(TV_KZ$|F2{R4sz8xr$j>*Q>TpA?vR;M(_m(sIYnmv)c4pw) zXC@TrvYh6Qe+c^PL4hI*4E#S%?g-sQ@1Ymt6GCisbSRmuL*FLGm*#FnhQmRx$2}BF z3UjsSzawMORBmy8aVejjo*d@8`;#?jAHO_wWofynT-#e+D<=Eto?Z?5tHKhxQP^B7 zt*xzZ-QL<*UoXaO-hdi?V+jcJ>#Nf0F|x6_b^FfdtlfLD3hiV3_1Sz$!b^W!TLq`v zTU&SDzCA_*v{yMeo?c#-))b|u>zi8}TX*hkz5R|KuR?zbjZdamR#v4_v3UE=Iyl|l z+Wxl%FII)V3C<)ISBh&TY5DEDvd7lO##TPjp+ety63Lb2qEuX2zI$ioEkHImrG?OW z6*}OBnNm^0SDs4wm8GSP^^NsHYD|M3wqShMMY^}DyGIKic&55_B@we zmUAgdD|6GaaO@6&zHf`o7Z&ox!orLgzw8UuqutJ#RBrxeVp0%>yJ;PI=D8M&jYebR z*Bz!t^c-_s9rk;C!+x^??el#z*GIbRE}#R8#~&uJyXdo%-d?>nHZm0MiBCaq$44?V zLq5*dN;Z={Bk}PR^fo-)H#!`0v~$i5Tf3dIdE$_=+t$>{Il6HEMVH6t>olwFE@&>M zGTL}=C+BkU!B8)R_IFg%HZ|H+>lufevvGiUg1CP_G;(b~V^+e(Hj*5}S@Cwv_0;3< z@9*s$7>_e*CA0}^qBV&|aKrrYJ4uwaAxjGg4OS7rj%(Cz}XV;a;KzJb3AB@j( zgxuRV+FNLrb=sZW#N@T>Lw!A7-w4mvKyUSyR+eF{)^=`kvTy9lKqwIKaTg$k$Bhir z&RSX4&b$2nVAvn%>2)?iZ`B^B%VvcXI_#an-l40b;oc!i1Ef3W_u1MR7Pr1=ce=wv z15-m2)#$&JHRM>waR?jdu)4eZqv2XuTpxDXS=NTP@7vh6w*I9hXs)uh*XOjdR-4V* zX1ZVutwVFGT!U`A&Bj_x%~X9|b3NLx4R|?@G2^DA^MneTYcQF}mKL*_tgSqUUNra| zjRes`sGzqOZ4-T-7W@J_R8g%i{4V;#No&Kyqv3&m&-etiHaa+)7;rLem(E`>crTBS zz6q@zxa=G0@v#<`p<661=UZLlHRuWEuw1lR+no-l)78nlJKj*!R=Kye7i|s~P@tXj z1-jiX-p3MDn;IQz-(WkO3fte>J6vAg;|cVKduy8&D)iFW*1;;lZg+Y7{%&8-^)b3e zQH2h0li9|y3fpdn+uQBqeWAXA@!1CGYm?dBW`#|$JH3O$!M=b$;EN@^jnLP_i>#Tk z;Sga)tnxO>jYebse!LIbP{+n(Lo7YxRFBk-41)LghG zTPtjb4z6n?Sc?uS&h58WMd)V*+vjz09ag%< zMAfTx@Mo>=?BsdQ+GaLiAS$7swM~~=8LN#oH>#kY)eg44K}R*Hp`VTB(QcPf?q{W; ziG{za+|N%@RrwsMF4rTXT#FjY)u^$oM(2)2h4f|BsjddQ=2&#FrUBO0gVdD?qy^ua zvJPqBIjZsnq$uA-f0p0#)TzjaT=hQ>Ntpew=c2sk|8g$MAt;d7XXpRtx%m35hw$=H z|MKL1e5K$j%V}Qff1H1(b{T`A{?o}Fp%JA1vJvfm`Lp-_{hj;wckaLY?$5rgL*IS5 z^VY`Ztz33~KAWB2-rmuo{rhh%EKVm972@IC!VlissX==?^K-MQcp_0H9!=lcu0~ko zAUY8fqfxbZl*nb(=tVptB!uY9a7-b-dS6nCN5ai?C3+T&$D^VsWQ2&I5T8l+Zi=Gx zQz@Q~S0F6-JQ@+iY*rAWQH5Auz(q`Y`BNbR*wbJks_H);zlC3RC>6*u&|U91tA^}R-jkG7%o1Jq=g%aL}Bss zPai&9UEMAMC`SWOAwHRjL=uVQd!K*t)qg&Gxc$McL|g#J?}D*dRunTckZR`U`yYOe zf3^R+PggUyWDr8e#H=XHLR6<@)v@p@pmviQ?k!bT;?l7hnA5 z{ReVJl_wxn0o#U)Pm|Nr($;T&@<0%R@hbEJ3dv?O@puFmF!4oly7=16_(n4IQMh9Sjupr=ZJc7lsDTPpju-KmX0HVdyX*{9`YSD8MDgjG2 zBUHre&8>um_6xIfMtxqB3qk7|a%B(tOg0_CCokWu`NkJf3-# z{{%?$Nq%Z}Gf zU@(!4!JuZ2OddawhR~3$q`^^1DwtP=t4ijG>JKt>~s6@ z*bf&|B#9Bg8Ysl);|W58lNf;eL)%-AKEg;~jf|uiC`qFs2$H0&a3m8Xum`v-?(FLFc)BMi)4&=r8tCDGHT0n;Fd0n) zYtnu%=agAPAF;kkV2$p;XrgGNQB5D2+#XL{A$DavS6&}BbPV}mbKmvn%Auhko=Q%onbhCX!1 zVtO6CgtYKD9R*&-OP3U_Ws8!2Ie1A%zSdGQ$SiOErrvM zbsS}CHG8}6NK;e6;7IEwaD-?8D(EL2I-SXENj~^s=iRBPk?A&*o&v}3v=qhDw5tPB zwQz419^gCst5T1pO$H$(BuP^pMhIJy7U@G}fU?KF{pa4yQg=0-ps6(R8c?f`JV6hobRbCyu>m5?k(S4m$8t#L>UV= zzj<2@T|-_Zu>S404xs<~2WIusvmKDd>pzkI3jqD_U1tvJrND4PeRTg4fZcHj6XCgn z|MQ-+Iyy(661gulpZOfJyorX6)Fo1v064z;UH{Y=&=22r03ZAPy}CVxyg7fVKfO{9 zMF&3n#vOSn0QE1wc3Hjxt0UM>0lhz=t{WX@>RbNY42-}3nTK1ig3Ro>lTRN~PamSD`)mPX zO4O2JZh|&Bxd@V445&Mf1+oRQpO&~UjViURDqGfKBNt(ri&wuZ(T+6_N zci!~={zv5Pd5?P?fB~&>4(mLltob~nUC?ggdQkd=) z)4h3#3qut`0|cW94ab{$4S?-qh#kvzHj)|urHmtHhN_|-i2`+;-LMoAP}GnVsTPr- z2!Y7VP7y?$OlBGV=}tHny>Q)PUT_5=%`8j|sq3Y4R>i$gw_BQ^c&!8x+!UCCO9V5c zT!?Y46*r9$B<&5xHK2Y@J%G*CE@oIYJcJ7_dHHY!k>>DW6s0oGm8;b#yO|^ji%|23 zKGDf-0MtMt?v77pKF_jnpb_av-@|g*QtPCBo~_j-;US^kz+wsG={$lvybP!rVk1og zqrJd};cmFgv!`L5r`+jgoO^xNTUtCs2ts&bu191??%rJ8tr`O0=@BB%g z3gET3-xoDw%*IflSfE(ISV3r!5GT@u5Mm&$Zjn~Eh^ZwtkvdBfn(orX+*5A(*$lk) z_WRO%M`Z!&1|h}^A4EdCL_)gqoi`n^y+N~j1!)?DfLsXC*F+8NVMQ2Hhv`(wH5?%V z5*vu%v6&@E;8S*@nYwe%YYO{ozq}_0{}q4m{ny{dGLz>LLjwE%5Vl+FmuclH|I;Y|L}4f6M(jRRl&={@;WH>Xbm`9uKbeBrI%9JKcT0M$NEw0_;7>O<5L8G6e%MrBi&;YcM`<2JcL>SDB6K%O8*}~yHRV?FE-?R90GFI|x$)l0 zbu~7hpON#G>s=7(HDApJ2d=fYjYDe9nOiOk6K#S3w1g5AhMOQPk%Z9l%nkCNlZ;AY zVzw%oYz$d&IBdw7wy(4P$TJIx(!W%G6qd9Fnbtd5$Fmy_%zP)12liF~z zF{n~{;-Gj(<_3CNlR8w@97OcIWze+-IN&r9)4>s^z;1(Z;=1O}?RY+^JJY#-O2O@o pM*$a{d0JoKjsJw#f2^)=_zMi_5hdR;sSE%B002ovPDHLkV1jAev?Krk literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_toxic_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_toxic_raw.png new file mode 100644 index 0000000000000000000000000000000000000000..64eda4ad2703e384641413f8115cfdee0f56e2c9 GIT binary patch literal 444 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 literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_chicken_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_chicken_raw.png new file mode 100644 index 0000000000000000000000000000000000000000..29852dc1a194b7d339ebd8b971ab8439c2adfaf3 GIT binary patch literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyuL68RTp1LBEQX^KTle=h0@01N z3ob044CDgQtqm)H=+UM%cUCRBv2->N9qy=qci|XBC4>P~d}HlgAbK``792rLgGjwR zwCmNey+Flp&mMVu_VANEn?GDS@%6^pFW1k!zjPdE{)O3npH3h7eD2uiYo{;IpYr9} z>1#`8K0mzU{rO`b&m4Vta681_FIP{0Jagpn?#&OjufM!``RgNlpX}Lkd*jOI2X?$a zaq!vx?f15>y|i@Nhm(h%?%Q@`O52m&n_eB=19beQX=wx+8o2fym*Ry<$0Y8DRjC%tOVv4EIh*H~xc#{{TfbOQ3H7TEPetbz zZ;i~|{6*=(j_Q3v&t8Y`s`9$*uUMDKZYVeJaN^`xgXEv9ZeMAdpx;-qUT9kFgE>39 zc2{lJ)2}!#&V3{4n9Mz~Ja?~^ZM*-S*w1=DVcPEHt`DsOss)y)%sG5fpxWGGomR}z zla3l3hYUVgN^<_nDVbuIo!C<(TX8|&y~#@Yuz;t-tYaRTKl%?_DKE>tvOvJYSNQk7 zgI{A8ZV2P(=-HAhG+X-kqX07@&Fn=Q8$Zu1KfNM*olmmzs#7206n0p>Svle1U!S=X zoEU64?!Ighs5~(J^wYx^{0j5g)L7R3|7X3Ak!Omt;{s_UB(`-8HmBzg?6j(e4($X2+VafWZ(Od_2iY z*7n-r@n(1fFji1dP*6}%P*CuHg4-^hPA?t(8$j}<5m4DK0!S+%i&p?+tov>_JM8vO z58Q6nKhFLB^Ot9-0Fx4I`1t%{AD>?j=iYw3cDX8motwt`<69xs{;(xPH7_hS3A&65 zDTRV-4&VTip%P4L(Dk!q95@sR5rUuhU@+=}|CBT=2 zXArT9O@PfFn;fGqQI0WI$ti#~;{AFZWrUuc7pm9<(D9tQ#A981sYQJTJ(8#ee1N^L zBVmd>GdTgR5L|V3V?!X>YS5JkwQx!eQ`ycA7gvyw7`-2(eppS#G|nsftTJUE0*caj zYK@;V1fG_~L&IS11&W8s71t4hR+!lnfa{5Ll68m-wSEX8p-LqLsbi#uX-Ekna~G42 z0xqDFt4M;*JA@QV>P+<93ed{e$Mc60QKh5+*ZIRhKf;qzfU1Hq%WXLrA!i)x`UeTR zb;wxiNQQt`2u@=k8+^In7=UEBI&Dgvi%UL=+DPcL2@BLastPm zr-c*}5i3_DNq|~J;Q=7|xoP^{Xhb31QVB4Q7^*{bB_TN@6aqTIf{n8gp}Us#=I3+M zbVIoSKyni)0Fp0a_qT5jpl)z6+uvPCSmJj7f`WpAf)M-zxVoQ+5oKOG00000NkvXX Hu0mjf(BE!Y literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_egg_big_fried.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_egg_big_fried.png new file mode 100644 index 0000000000000000000000000000000000000000..841c78d00024c3d58f54fc610857a008db467dec GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy#sNMdt_A1vr$&e_Z7W$ftz+k^ z`Hwd!oI1Sc*}>)qhdUpi+j#ZD*%uer-G6xR)!UaJKE40){qz6-|5J_}>H%tJED7=p zW^j0RBMr#mEbxddW?`AAT!+-u?pUa`)6yKfv-6vlt&-kF{C zt{ul&$9XtTL|;$!Pv{S@At1&gMk#_)go?r>jMTF;nvl-VbM5*~c_9QoKewtE zPcLD;V#Ja(5>S0&E`o|6#^6!9&hcQl%l&&jR$jfp)ju}nPy{|byQ(KoEOEM((z1q7 zd7=*(YieU_uyZZMS~NzYcc_nGER{)kFdA_E=6x2{me|<5E6+vXqm?yX>nyO?OgWZV zV&#Y)Oacls5`v@&Hfs<=Krjd(jTC7%2sYtiUh>;7zcatO%*Ks7`}~=MoWHkxR+r}H z$g-5Qs0fuKRv-p60iY3(zG;6M@~niSHExy}NTSgOgC#2Rd{XjHVSP#j1e`8 zG4(&AH;6!-5kVE(fc~v5>|BNi2E8urW(zGGGSh^@DC5ZvgWixU+xMP&+xBH(FqvW( zTO@OHnDogBRYg@Xu|i5m;sR2XG_BB(gh~{9{1}Z+2S1mxOJKUvp`VohD02G<$pxL^!dGYqrT2mbh}aE6+v1#lSEx z>23W6r#xa?nQ?m7$+9C<|Iy15rhz zub&DM>nuc7^2#&yo^d{AB968ytyY_Fzx!VP(>PwwQoVfnHBNO-(dZZW!eKR#poHl0 zAuz5gf+}7kJHsIpEod&axN>Lb#q0y`F0}QHw=R)*NOFS#%F)mr3ef`y!+V6GodBL!|&9z$(4(0d=M>xV``~{@A V72W#riJ<@h002ovPDHLkV1k>Y2mb&7 literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_lamb_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_lamb_raw.png new file mode 100644 index 0000000000000000000000000000000000000000..da127038a4ba4dc349664ce71da0a80e6ae69ad8 GIT binary patch literal 1248 zcmV<61Rwi}P)Piz!*6vsdFZ)bLP zXLs9WOaIV6Qn8X06A6?+tRy68q6ZBp4;+a%i8qg4JsM3s7;b9xpeB0upwSo-5)4wL zMVhpwrEHh|JKfpYnVtE0nC=p2S+>PQ54>b9GxL7$``-8a-tWOP`;Sf9&Cj1+ydZob zXu2+5(?i#F0F1bS+i+2~{xjkR?|pJf`quz_eDQ)P7K->@3kj$e%LHx{5egJF3LD7L zQHr84G(G}ADwE>bniZrEKw`h2r9M6QIGBDlgwsNG>yU0Aw16~ zJCN-PLhY9I!k_bqFrZm)AS*JST}P4SuGQKsRsgU!iX^icw3xPg3f?la0zkHO)PzA0 zgqWs5y%c4i=uh>e8PW7e4rCFk!sowT-Z9o=(@EqkOv^+ILWJv~7&>mbfn;ni{mg5# z?4KOlo}C`UUN6w{d@h`v5j_ETCp{o!OGh>hBrRfS-}n%IsY*u;W+<}?7vo;=FZ z%3T0*xqd1)Z*eaOA5>$9@^=LQV2$VSg`i%rBS8+PK~X4elz92{45TauhX)y(7^Ug^ z9lv6^%E8m8aDTZ>wb^=X_B#S_9G86~132YK=`l?uGj)KtuU}w4jBqu~4HC8-U)g$%t6}I)C@+SF&^C69T|A4UWtn z2jKdzS31>5P7VW5n7`BUd0fBmc_(ax*f%o31_8e3@!=QW?kVt|*77!pHZ5P?oPVm|&+M7~FYF(j;p|S--WIX|0000< KMNUMnLSTZ}|3hB@ literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_meat.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_meat.png new file mode 100644 index 0000000000000000000000000000000000000000..fc1c86ea8ce9393fef3868b8f1f37c90f85d1ce3 GIT binary patch literal 889 zcmV-<1BU#GP)Y}T7{`BWue`JC z*t<2GwV7G)@jgwRm zmmP&VBaR{f;wXl>f-v!u=8A=~WZfO!%`zT4Z}z)8zde;xdRmIxT)+Y1vZE(k$fUw( zV%U~VwAIKwM_Y}y8l^1dB%+zd46LCO*XRZjUw-($yRw1nH4pAJBN{Ry7SPQida^~K zPSJ~iJQW-jL$+HP#fjggvxbJu=*br0nden*z70V6)bhp0AGl{4`25pPTnAh|ig>lt z@rNqU0XQq+;YMGi9*`oVR;{9~Wo#gfw$N_Qyb{og1kxDVH{bH0h32#O-u#b=a5d;P z8nhEAhL-K>l!dYsj66`pYxqi|iJ_3E92G+V)Y8XmaYi=?aiYRszy5*~mGwb8(c{ZA z@Xgm>Ie=Rq-J%{rd08PA5lZ>=YNH`cxIeV(-2?pb_<%Ty>B-asX0w0&{Nd3)kNUqe z`g`jCqs`?84n~?)bT;B- zHly9$!5BxL3Lf_R{HYDga!heNp|tR&n`5um2i_3=7T7b01wIR@KurvR2-sJS8@WJR zOB_Y(_^LOkiJ>7QYH15u-J+9MeWMx;`1a?1aHU4HTf&(oh!Shxc`7&<8D!#N+FAQSE7&Cp_dDsHE83@XSmvfw9!Tzz1;c-7>O<5L8G6e%MrBi&;YcM`<2JcL>SDB6K%O8*}~yHRV?FE-?R90GFI|x$)l0 zbu~7hpON#G>s=7(HDApJ2d=fYjYDe9nOiOk6K#S3w1g5AhMOQPk%Z9l%nkCNlZ;AY zVzw%oYz$d&IBdw7wy(4P$TJIx(!W%G6qd9Fnbtd5$Fmy_%zP)12liF~z zF{n~{;-Gj(<_3CNlR8w@97OcIWze+-IN&r9)4>s^z;1(Z;=1O}?RY+^JJY#-O2O@o pM*$a{d0JoKjsJw#f2^)=_zMi_5hdR;sSE%B002ovPDHLkV1jAev?Krk literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_cooked.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_cooked.png new file mode 100644 index 0000000000000000000000000000000000000000..2582b3e5f7361cc8ef23c7fb4443119e0f77b300 GIT binary patch literal 1475 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 literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_egg_fried.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_egg_fried.png new file mode 100644 index 0000000000000000000000000000000000000000..7a69afab5bf9d0e627d7801f4acd7c91700f239f GIT binary patch literal 670 zcmV;P0%84$P)F=!J}7{`BimtNY& zw0RgQ5tC@4AX+ z062d6zS0qZ)ndU3uPtC3b8c`;)#)7=Vb|8^(QJNguAtW}AB+TQ1*0@G1_-^o;s#P< zXW6wi!s&6}`JLh$dNi9_^-m;$d(OdKmjJQCJ5O#Eoim#uvW!6lZ$oNW759p*OJ(*DJYu*VpGY@*l0Mz=$#*c4@-uICs5f6mwOJU^n zp_$9r^$_aD=K=tRVfY40N6nkWRE^TQyD+y+!s&7B=vYS~WCsMz5LG0SA*6Z#nVX({bK69Ey8Za#*<6GJWr<((-e>v^ehon3Xb-_z)tIBoY<$3(>Y|K9|L;l=)e$0MHkUbK~}13q z5=dspD6JzBNxpn|`)9z!hyK>PQugdkOwA~C)m4Cg0|#vLH!g*OHvj+t07*qoM6N<$ Ef=u~55&!@I literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_raw.png new file mode 100644 index 0000000000000000000000000000000000000000..55db890127c0d0ef17f43df4551641caf04de14c GIT binary patch literal 1091 zcmV-J1ibr+P)} z0Gw-d*f0P9010qNS#tmY3ljhU3ljkVnw%H_000McNliruo&Atc=g9i(o~^jF9e zSOu@^MQWzaa`6Q!x|U=;{s>^dvJ{tj!REWmpUTV?xOwTCvD4pQreYiT{~mz_=sxJ22()m#^nC`WQibP=lnQha104|JL}B(8h%lm3 zj)_%&eK}W8mGsc-ctI}{@Cg+xmh4m+m5qa$mi_Upl{ry3v;QdoH!oe209D;gk*wA_ zPpx%6Q}(k=h+(!CSOuBrTG@W*uM>MdZUaJO;HKW|OMx+iTWJ7RX(E&3y+2O2_({6w zigZ=o#P^2@x8?#6S_oK~hKcI6+ImF2RAAp9Vi+YHLJXq>q08<2_vY^cLzXIr~{|DM(le1w4BC?twFJ%DlhVQo!jbuyFz-H}5-@RP&! z)BskuHnhv%d`@d=DYKJz7vD&xX?Q4~zXA{2Z92QVxg04FBFx8usT=02TenX2m+iB) zuX)&RL;Kg~=Rh9&;^#Zs%b#4tZZvYW?#uuHbar=fd%fJP`wzZqq7tl002ov JPDHLkV1gB}^LzjR literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_pork_cooked.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_pork_cooked.png new file mode 100644 index 0000000000000000000000000000000000000000..6b4c0afc54231a7e1c61626f7fe4e5006481775f GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyW&u7Su0R?HQbWC(B4yjty{BYZ zH5F&fEDxL4Rk^3#XI)puj_&w1v%5~t$v?cLa`);5=Qea***p82M(0|fHpY@5zhDN3 zXE)M-9L@rd$YKTtZeb8+WSBKa0w~B{;_2(k{*+r#SkU_AtZ(T+p$(ocjv*GOpHA`= zI;_CMqIo;%;=2F!W=cC*^}na^O*wtnG~r25o%P?w&9)M0TkjR`6SkWF;hNOG$^7kC z_th3U+$sOTa?$U{y!WaZD;Ny&yC?j8D5dy{`C8MZ2{uYL;z}FdMz9LbVx1>?_ti!@ zLnro?OD4^k&cyJE$8$wlv_*om{JM2U%Pxd77ICYe^6z-Enjx2mlb@G!+h#?RfRI41 rlX`6?`CiVg`v05FCQsJ*KSNy9oAae(i}ZY;+ZjAv{an^LB{Ts5Vg!Qi literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_pork_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_pork_raw.png new file mode 100644 index 0000000000000000000000000000000000000000..91527d6fc33d6ca6795a2be84e2dd85cf6c78c4b GIT binary patch literal 960 zcmV;x13&zUP)~KXIIkef|^wxyDYSm@0`}N(E#w zHR_dJj_d{(U!Ui@kKTU?B6uF2r?S)J-d^I!ZV-?|7=;qszZD3}N&XeU&R1W10EVWb zTQvY|Ll^HyypTV}CB`maAsC4PFq~45LZb{VE^rYjt*`bE@W;1zz4)7N0T64LOogI& z4YOm{Q3%j^%}=TATOT!>$h)tuYGU>ePe@oehw)yM*VOf$F_(m z84-cR%p8Z>^Nw$wMiZk@63-_YKeY{;2Y$hsTaO5iC3w+ta9a+JZDD9C=H@1@ZZM`? z5D>xfH0^?Id*4evQ*dNAkdjGi#R8`KjKs_w^=j2GJUL3!Hj(6rpDtPU!5*l**z>^y zkr0@@0lG%u`x_s6A^FNzBY)XsR&A-?|{CWYDcz$2rkg3RYKcdg<(h@E*VcT-_j?%~G#cInee* z3IJkChS>ZS@ekY3F>C6n-k%tOc3T02C#S^R)eR&$!l)eW*c-{uiZ(Pf6{lgH$#_=) zv!;r$TIDUYpYEe9FA>SlVuyzTM80E6218Q?WV`aaop>jyE9JfG*Suuv719$E9Uiuh zD|#d_Z!?S>xR=?hO4WfHnkf07+8Fy*k72^rV0AB*zKm zaw6n=J7uDmE@M9Yo!!lcT>bK!p?+@9Q#aqce$4~8^v-*@Pbx3finwIlK;OpC1n^Ig iZaQnh4K&a|-Sijgn~pmz=27SX0000!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10B00b(#1%+8*xSQVxNkTR z+1uFx5m3;`(9qPx1jsfuF}1a^adUNbad!4&aI&I z-9=$@wrvBD!(QU)>&pI=U4Vf_$L<2tPoU5gPZ!4!i_>o}+~zx^AmAG4va)sFE$+RE zxqtufztY%ZrrB}+*k6k^DGbN{{f!Bl7u2x4!De~Gllj|LFy#kLyL3#SJ>U*Qg}@Gh zoKV(yfh(l~Ccd{HUHHy$Vb|-1ee7)qW&4sDG(=h7rB2>?exfL!%`%OMX{D;Jk8dts z?px7daN@|j#ar%)#S|ZNaZ6$Ex#{5N?D&8+wm`_e*X+7F(0!^Ut`Q|Ei6yC4$wjF^ ziowXh$WYh7T-VSn#K6GHz{JYLL>t5~_!GPk7%@m1a`RI%(<*Um=;f3A2-Lvf>FVdQ I&MBb@03%t;{s_UB(`-8HmBzg?6j(e4($X2+VafWZ(Od_2iY z*7n-r@n(1fFji1dP*6}%P*CuHg4-^hPA?t(8$j}<5m4DK0!S+%i&p?+tov>_JM8vO z58Q6nKhFLB^Ot9-0Fx4I`1t%{AD>?j=iYw3cDX8motwt`<69xs{;(xPH7_hS3A&65 zDTRV-4&VTip%P4L(Dk!q95@sR5rUuhU@+=}|CBT=2 zXArT9O@PfFn;fGqQI0WI$ti#~;{AFZWrUuc7pm9<(D9tQ#A981sYQJTJ(8#ee1N^L zBVmd>GdTgR5L|V3V?!X>YS5JkwQx!eQ`ycA7gvyw7`-2(eppS#G|nsftTJUE0*caj zYK@;V1fG_~L&IS11&W8s71t4hR+!lnfa{5Ll68m-wSEX8p-LqLsbi#uX-Ekna~G42 z0xqDFt4M;*JA@QV>P+<93ed{e$Mc60QKh5+*ZIRhKf;qzfU1Hq%WXLrA!i)x`UeTR zb;wxiNQQt`2u@=k8+^In7=UEBI&Dgvi%UL=+DPcL2@BLastPm zr-c*}5i3_DNq|~J;Q=7|xoP^{Xhb31QVB4Q7^*{bB_TN@6aqTIf{n8gp}Us#=I3+M zbVIoSKyni)0Fp0a_qT5jpl)z6+uvPCSmJj7f`WpAf)M-zxVoQ+5oKOG00000NkvXX Hu0mjf(BE!Y literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_inv.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..d88e61652304ba1c8fd54684ac9cc88ff521d916 GIT binary patch literal 432 zcmV;h0Z;ykP)K0#AOLrGOsTV-TzcVvh*I)tDA z0004WQchC0u?^|FGIFR5RGU-S2&Vz_-u$4!%9ZW>_RTg$_6^@7`)%mom?`NAz>f2 ztpO>*v0fp880000 64 then + fields.name = string.sub(fields.name, 1, 64) + end + + -- update texture + local self = tex_obj:get_luaentity() + + self.base_texture = {fields.name} + + tex_obj:set_properties({textures = {fields.name}}) + + -- reset external variable + tex_obj = nil + end +end) diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/license.txt b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/license.txt new file mode 100644 index 0000000..ace4627 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/license.txt @@ -0,0 +1,51 @@ +Copyright and license for new code and/or media not covered below: +(c) 2019 and CC BY-NC-SA 4.0 International: OldCoder (Robert Kiraly). + +---------------------------------------------------------------------- + +New Poikilos textures: + + mobs_damage_blood_big.png + mobs_damage_blood.png + mobs_damage_bug_big.png + mobs_damage_bug.png + mobs_damage_stone_big.png + mobs_damage_stone.png + mobs_damage_sweat_big.png + mobs_damage_sweat.png + +(c) 2019 and CC BY-SA 4.0 International: Poikilos. + +---------------------------------------------------------------------- + +Additional changes: + + mobs_chicken_egg.png + mobs_chicken_egg_overlay.png + +(c) 2016-2019 and MIT License: TenPlus1, Poikilos. + +---------------------------------------------------------------------- + +The MIT License (MIT) + +Copyright (c) 2016 TenPlus1 + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/oldcoder.txt b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/oldcoder.txt new file mode 100644 index 0000000..1232a54 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/oldcoder.txt @@ -0,0 +1,50 @@ +Name: mods +Source: For of upstream mod - Do not replace +License: See "license.txt" + +---------------------------------------------------------------------- + +1. This is a fork of an upstream mod. Don't attempt to update or re- +place it. + +To be documented. + +---------------------------------------------------------------------- + +2. Partial list of changes: + +* Multiple bug fixes related to old models that are rotated relative +to today's standard. + +* Bug fix related to behavior of mobs at the edge of cliffs. + +* Mobs that are sensitive to light can now optionally be configured to +burst into flames when light damage occurs. + +* Fix failure of API code to pass riding/driving parameters specified +by higher levels to riding/driving code. + +* Add support for more sophisticated approach to assessing mob densi- +ty. + +* Improve support for amphibious mobs. + +* Better TNT smoke texture. + +* Fix failure in riding/driving code to handle missing parameters. + +* Add support for steering both ground vehicles and aircraft using +the keyboard as well as the mouse. Note: These are separate features. + +* Talking mobs. Multiple languages are supported. + +* New damage-related textures by Poikilos: + +mobs_damage_blood_big.png +mobs_damage_blood.png +mobs_damage_stone_big.png +mobs_damage_stone.png +mobs_damage_sweat_big.png +mobs_damage_sweat.png + +* Add section to "license.txt" to cover new code and media. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/textures/mobs_meat.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/textures/mobs_meat.png new file mode 100644 index 0000000000000000000000000000000000000000..fc1c86ea8ce9393fef3868b8f1f37c90f85d1ce3 GIT binary patch literal 889 zcmV-<1BU#GP)Y}T7{`BWue`JC z*t<2GwV7G)@jgwRm zmmP&VBaR{f;wXl>f-v!u=8A=~WZfO!%`zT4Z}z)8zde;xdRmIxT)+Y1vZE(k$fUw( zV%U~VwAIKwM_Y}y8l^1dB%+zd46LCO*XRZjUw-($yRw1nH4pAJBN{Ry7SPQida^~K zPSJ~iJQW-jL$+HP#fjggvxbJu=*br0nden*z70V6)bhp0AGl{4`25pPTnAh|ig>lt z@rNqU0XQq+;YMGi9*`oVR;{9~Wo#gfw$N_Qyb{og1kxDVH{bH0h32#O-u#b=a5d;P z8nhEAhL-K>l!dYsj66`pYxqi|iJ_3E92G+V)Y8XmaYi=?aiYRszy5*~mGwb8(c{ZA z@Xgm>Ie=Rq-J%{rd08PA5lZ>=YNH`cxIeV(-2?pb_<%Ty>B-asX0w0&{Nd3)kNUqe z`g`jCqs`?84n~?)bT;B- zHly9$!5BxL3Lf_R{HYDga!heNp|tR&n`5um2i_3=7T7b01wIR@KurvR2-sJS8@WJR zOB_Y(_^LOkiJ>7QYH15u-J+9MeWMx;`1a?1aHU4HTf&(oh!Shxc`7&<8D!#N+FAQSE7&Cp_dDsHE83@XSmvfw9!Tzz1;c-7>O<5L8G6e%MrBi&;YcM`<2JcL>SDB6K%O8*}~yHRV?FE-?R90GFI|x$)l0 zbu~7hpON#G>s=7(HDApJ2d=fYjYDe9nOiOk6K#S3w1g5AhMOQPk%Z9l%nkCNlZ;AY zVzw%oYz$d&IBdw7wy(4P$TJIx(!W%G6qd9Fnbtd5$Fmy_%zP)12liF~z zF{n~{;-Gj(<_3CNlR8w@97OcIWze+-IN&r9)4>s^z;1(Z;=1O}?RY+^JJY#-O2O@o pM*$a{d0JoKjsJw#f2^)=_zMi_5hdR;sSE%B002ovPDHLkV1jAev?Krk literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/oldcoder.txt b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/oldcoder.txt new file mode 100644 index 0000000..1d6a449 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/oldcoder.txt @@ -0,0 +1,13 @@ +Name: codermobs +Source: New modpack mixing original and forked mods +License: See notes below + +---------------------------------------------------------------------- + +The full documentation for "codermobs" is presently merged into the +"_game" documentation. + +Media files are derived, in general, from older mods. The code mixes +old and new pieces. + +License files are present in the individual mod directories. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/LICENSE b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/LICENSE new file mode 100644 index 0000000..a3e35c4 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/LICENSE @@ -0,0 +1,28 @@ +Krupnov Pavel and TenPlus1 components: + +The MIT License (MIT) + +Copyright (c) 2014 Krupnov Pavel -- bugs, kpgmobs, pmobs +Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1 -- mobs_animal +Copyright (c) 2016 TenPlus1 -- mobs_monster and mobs_npc +Copyright (c) 2021 Poikilos -- whinny meats (redone from scratch at 32x32) + + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/init.lua b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/init.lua new file mode 100644 index 0000000..9165447 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/init.lua @@ -0,0 +1,19 @@ +dofile (minetest.get_modpath ("whinny").."/api.lua" ) +dofile (minetest.get_modpath ("whinny").."/horse.lua" ) + +minetest.register_craftitem ("whinny:meat", { + description = "Cooked Horsemeat", + inventory_image = "whinny_meat.png", + on_use = minetest.item_eat(4), +}) + +minetest.register_craftitem ("whinny:meat_raw", { + description = "Raw Horsemeat", + inventory_image = "whinny_meat_raw.png", +}) + +minetest.register_craft ({ + type = "cooking", + output = "whinny:meat", + recipe = "whinny:meat_raw", +}) diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/oldcoder.txt b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/oldcoder.txt new file mode 100644 index 0000000..7854b22 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/oldcoder.txt @@ -0,0 +1,7 @@ +Name: whinny +Source: Fork of an upstream mod (do not replace) +License: See "LICENSE" + +---------------------------------------------------------------------- + +To be documented. diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/projects/whinny_meat+raw.xcf b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/projects/whinny_meat+raw.xcf new file mode 100644 index 0000000000000000000000000000000000000000..014652f012a69c28641c36057c2c57127c22f73c GIT binary patch literal 3015 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 literal 0 HcmV?d00001 diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/textures/whinny_meat_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/textures/whinny_meat_raw.png new file mode 100644 index 0000000000000000000000000000000000000000..30085c1d869639145dd1daba11d1d38a063d942f GIT binary patch literal 1088 zcmV-G1i$-)x3m zu|*4luEez){{c5bH!iy`s2Ebjg$M}d^0AKbgKony`by!ZW0@mvV}{_*Eo0TDRet7~@KP|YFib3|l22d##kSR;el{X4_<#o7! zm-e7K^_F~E&qoP+>5Uc`Ey$sBuq-uKUhBbu`GMm>Jmk*%ALgf4VCSRH@{y+*LI>(Y z9_0p@trsW2xqr7ipGssp3Aqx1pFa3BPYW~3oP$8Ig<7K$9i*lY%y%+%;n zN)f5R+5mtTQ!q1p49Lb&TmoCc{GeG~0i!iC2wdpuJqIy1835OI_pa>xkF!0cNHOWarBbwY z#M&^{cn&>z--k&@;xsV7@9-(IvGe1ZllM#otn?^KY>cdF&D!MxRe*1xt{ke!XYF1=Ks3q@0hUiM6i-QQvkM0W^48$9mN z)1=5`q6iB?8@q&iocB+xf|&C)o$8-;G39XC5|>MooT6pjg+xH;H=bqNA{