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 0000000..fc1c86e Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/textures/mobs_meat.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/textures/mobs_meat_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/textures/mobs_meat_raw.png new file mode 100644 index 0000000..7486c2c Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/coderfood/unified_foods/textures/mobs_meat_raw.png differ 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 0000000..a84ac29 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animal_materials_egg_big+ostrich.xcf differ 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 0000000..3935640 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animal_materials_egg_big_fried+ostrich.xcf differ 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 0000000..22e31bd Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/projects/animalmaterials_lamb_raw+cooked.xcf differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/rat_better.lua b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/rat_better.lua new file mode 100644 index 0000000..fb3627d --- /dev/null +++ b/Bucket_Game-branches/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 = "Better Rat" +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-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_egg_big.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_egg_big.png new file mode 100644 index 0000000..6cc40b2 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_egg_big.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_raw.png new file mode 100644 index 0000000..7486c2c Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_raw.png differ 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 0000000..64eda4a Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_toxic_raw.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_undead_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_undead_raw.png new file mode 100644 index 0000000..d0017ec Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_meat_undead_raw.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_pork_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_pork_raw.png new file mode 100644 index 0000000..91527d6 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/animal_materials_pork_raw.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_chicken_cooked.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_chicken_cooked.png new file mode 100644 index 0000000..b20c783 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_chicken_cooked.png differ 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 0000000..29852dc Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_chicken_raw.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_cooked_rat.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_cooked_rat.png new file mode 100644 index 0000000..45948a9 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_cooked_rat.png differ 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 0000000..841c78d Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_egg_big_fried.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_lamb_cooked.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_lamb_cooked.png new file mode 100644 index 0000000..c28b4b0 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_lamb_cooked.png differ 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 0000000..da12703 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_lamb_raw.png differ 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 0000000..fc1c86e Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_meat.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_meat_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_meat_raw.png new file mode 100644 index 0000000..7486c2c Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_meat_raw.png differ 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 0000000..2582b3e Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_cooked.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_egg.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_egg.png new file mode 100644 index 0000000..90a7833 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_egg.png differ 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 0000000..7a69afa Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_egg_fried.png differ 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 0000000..55db890 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_ostrich_raw.png differ 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 0000000..6b4c0af Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_pork_cooked.png differ 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 0000000..91527d6 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_pork_raw.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_better_inv.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_better_inv.png new file mode 100644 index 0000000..570a49e Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_better_inv.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_cooked.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_cooked.png new file mode 100644 index 0000000..45948a9 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_cooked.png differ 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 0000000..d88e616 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/textures/codermobs_rat_inv.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/warthog.lua b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/warthog.lua new file mode 100644 index 0000000..df39461 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/codermobs/warthog.lua @@ -0,0 +1,164 @@ +-- 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 +local dep_pork_raw = nil +if minetest.registered_items["animal_materials:meat_pork"] then + dep_pork_raw = "animal_materials:meat_pork" +elseif minetest.registered_items["animalmaterials:meat_pork"] then + dep_pork_raw = "animalmaterials:meat_pork" +end +if not dep_pork_raw then + 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}, + }) +else + minetest.register_alias("mobs:pork_raw", dep_pork_raw) +end + +-- 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-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/crafts.lua b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/crafts.lua new file mode 100644 index 0000000..cab4e63 --- /dev/null +++ b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/crafts.lua @@ -0,0 +1,345 @@ + +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}, +}) + + +local dep_meat_raw = nil +if minetest.registered_items["animal_materials:meat_raw"] then + dep_meat_raw = "animal_materials:meat_raw" +elseif minetest.registered_items["animalmaterials:meat_raw"] then + dep_meat_raw = "animalmaterials:meat_raw" +end + +if not dep_meat_raw then + -- 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}, + }) +else + minetest.register_alias("mobs:meat_raw", dep_meat_raw) +end + +local dep_meat_cooked = nil +if minetest.registered_items["cooking:meat_cooked"] then + dep_meat_cooked = "cooking:meat_cooked" +end + +if not dep_meat_cooked then + -- 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}, + }) +else + minetest.register_alias("mobs:meat", dep_meat_cooked) +end + +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-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 0000000..fc1c86e Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/textures/mobs_meat.png differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/textures/mobs_meat_raw.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/textures/mobs_meat_raw.png new file mode 100644 index 0000000..7486c2c Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/mobs/textures/mobs_meat_raw.png differ 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 0000000..014652f Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/projects/whinny_meat+raw.xcf differ diff --git a/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/textures/whinny_meat.png b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/textures/whinny_meat.png new file mode 100644 index 0000000..6e6a069 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/textures/whinny_meat.png differ 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 0000000..30085c1 Binary files /dev/null and b/Bucket_Game-branches/distinguish_meats-vs-211114a/mods/codermobs/whinny/textures/whinny_meat_raw.png differ