big_update
6
git-push
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
mv -f config-file ../config-file
|
||||
git add .
|
||||
git commit -m "$1"
|
||||
git push
|
||||
mv -f ../config-file config-file
|
|
@ -11,13 +11,11 @@ git clone --depth 1 --branch master https://github.com/minetest-mods/mywalls.git
|
|||
git clone --depth 1 --branch master https://github.com/minetest-mods/xdecor.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/vehicle_mash.git
|
||||
# for lib_mount exists branch called rotation_fix, lib_mount is needed for vehicle_mash
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/lib_mount.git
|
||||
git clone --depth 1 --branch master https://github.com/Panquesito7/lib_mount.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/workbench.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/ts_furniture.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/playeranim.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/skinsdb.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/castle_masonry.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/mob-engine.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/letters.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/ts_doors.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/trash_can.git
|
||||
|
@ -25,7 +23,6 @@ git clone --depth 1 --branch master https://github.com/minetest-mods/throwing_ar
|
|||
git clone --depth 1 --branch master https://github.com/minetest-mods/throwing.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/stained_glass.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/xban2.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/ropes.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/drinks.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/jukebox.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/carpets.git
|
||||
|
@ -33,7 +30,6 @@ git clone --depth 1 --branch master https://github.com/minetest-mods/chat2.git
|
|||
git clone --depth 1 --branch master https://github.com/minetest-mods/mymillwork.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/signs_api.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/crops.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/computer.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/mtfoods.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/mysheetmetal.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/ts_workshop.git
|
||||
|
@ -49,14 +45,65 @@ git clone --depth 1 --branch master https://github.com/minetest-mods/mymasonhamm
|
|||
git clone --depth 1 --branch master https://github.com/minetest-mods/mywoodslopes.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/display_api.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/font_api.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/trees_lib.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/intllib.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/more_chests.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/flowerpot.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/cloud_items.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/compost.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/death_compass.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/smartfs.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/unifieddyes.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/basic_materials.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/trees_lib.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/biome_lib.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/moretrees.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/intllib.git
|
||||
git clone --depth 1 --branch master https://github.com/bas080/vines.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/homedecor_modpack.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/signs_lib.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/currency.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/plantlife_modpack.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/new_campfire.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/coloredwood.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/basic_signs.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/roads.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/blox.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/plasticbox.git
|
||||
git clone --depth 1 --branch master https://gitlab.com/VanessaE/charcoal.git
|
||||
git clone --depth 1 --branch master https://github.com/Sokomine/windmill.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/farming.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/protector.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/playerplus.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_npc.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_redo.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_water.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_monster.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_animal.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mob_horse.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/bows.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/builtin_item.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/bonemeal.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/stamina.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/wine.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/bees.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/wool.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/regrow.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/ambience.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/bakedclay.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/stairs.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/anvils.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/carts.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/doors.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/pie.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/castle.git
|
||||
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_sky.git
|
||||
git clone --depth 1 --branch master https://github.com/Uberi/Minetest-WorldEdit.git
|
||||
git clone --depth 1 --branch master https://github.com/minetest-mods/realchess.git
|
||||
git clone --depth 1 --branch master https://github.com/Grizzly-Adam/BBQ.git
|
||||
git clone --depth 1 --branch master git://cheapiesystems.com/mail
|
||||
rm */.git -rf
|
||||
rm */.gitignore -f
|
||||
rm */.gitattributes -f
|
||||
rm */.github -rf
|
||||
|
||||
#update skins-db
|
||||
cd skinsdb/updater
|
||||
python3 update_skins.py
|
||||
|
|
223
mods-list
|
@ -1,64 +1,179 @@
|
|||
load_mod_interact = false
|
||||
load_mod_wieldview = true
|
||||
load_mod_shields = true
|
||||
load_mod_3d_armor_ui = true
|
||||
load_mod_3d_armor = true
|
||||
load_mod_3d_armor_sfinv = true
|
||||
load_mod_3d_armor_ip = true
|
||||
load_mod_3d_armor_stand = true
|
||||
load_mod_unified_inventory = true
|
||||
load_mod_xdecor = true
|
||||
load_mod_xban2 = true
|
||||
load_mod_workbench = true
|
||||
load_mod_wool = true
|
||||
load_mod_wine = true
|
||||
load_mod_vehicle_mash = true
|
||||
load_mod_unifieddyes = true
|
||||
load_mod_unifiedbricks = true
|
||||
load_mod_ts_workshop = true
|
||||
load_mod_ts_paper = true
|
||||
load_mod_moreores = true
|
||||
load_mod_throwing_arrows = true
|
||||
load_mod_drinks = true
|
||||
load_mod_carpets = true
|
||||
load_mod_enchanting = true
|
||||
load_mod_ghost = true
|
||||
load_mod_computer = true
|
||||
load_mod_castle_masonry = true
|
||||
load_mod_mymillwork = true
|
||||
load_mod_stained_glass = true
|
||||
load_mod_jukebox = true
|
||||
load_mod_crops = true
|
||||
load_mod_mysheetmetal = true
|
||||
load_mod_mywoodslopes = true
|
||||
load_mod_throwing = true
|
||||
load_mod_letters = true
|
||||
load_mod_lib_mount = true
|
||||
load_mod_moreblocks = true
|
||||
load_mod_chicken = true
|
||||
load_mod_creatures = true
|
||||
load_mod_oerrki = true
|
||||
load_mod_mycorners = true
|
||||
load_mod_zombie = true
|
||||
load_mod_mtfoods = true
|
||||
load_mod_chat2 = true
|
||||
load_mod_mydeck = true
|
||||
load_mod_mywalls = true
|
||||
load_mod_mymasonhammer = true
|
||||
load_mod_mypaths = true
|
||||
load_mod_trash_can = true
|
||||
load_mod_myroofs = true
|
||||
load_mod_ropes = true
|
||||
load_mod_playeranim = true
|
||||
load_mod_signs_api = true
|
||||
load_mod_sheep = true
|
||||
load_mod_skinsdb = true
|
||||
load_mod_stargate = true
|
||||
load_mod_workbench = true
|
||||
load_mod_unified_inventory = true
|
||||
load_mod_ts_furniture = true
|
||||
load_mod_ts_doors = true
|
||||
load_mod_unifieddyes = true
|
||||
load_mod_font_api = true
|
||||
load_mod_display_api = true
|
||||
load_mod_basic_materials = true
|
||||
load_mod_trash_can = true
|
||||
load_mod_throwing_arrows = true
|
||||
load_mod_throwing = true
|
||||
load_mod_stamina = true
|
||||
load_mod_stairs = true
|
||||
load_mod_stained_glass = true
|
||||
load_mod_smartfs = true
|
||||
load_mod_streetspoles = true
|
||||
load_mod_streetsmod = true
|
||||
load_mod_streetsconcrete = true
|
||||
load_mod_streetlamps = true
|
||||
load_mod_steelsupport = true
|
||||
load_mod_roadsigns = true
|
||||
load_mod_emergencyphone = true
|
||||
load_mod_delineator = true
|
||||
load_mod_constructionarea = true
|
||||
load_mod_asphalt = true
|
||||
load_mod_regrow = true
|
||||
load_mod_realchess = true
|
||||
load_mod_protector = true
|
||||
load_mod_playerplus = true
|
||||
load_mod_playeranim = true
|
||||
load_mod_ts_workshop = true
|
||||
load_mod_woodsoils = true
|
||||
load_mod_trunks = true
|
||||
load_mod_poisonivy = true
|
||||
load_mod_ferns = true
|
||||
load_mod_homedecor_books = true
|
||||
load_mod_homedecor_bathroom = true
|
||||
load_mod_homedecor_fences = true
|
||||
load_mod_fake_fire = true
|
||||
load_mod_mobs_turtles = true
|
||||
load_mod_mobs_jellyfish = true
|
||||
load_mod_homedecor_3d_extras = true
|
||||
load_mod_homedecor_seating = true
|
||||
load_mod_compost = true
|
||||
load_mod_homedecor_foyer = true
|
||||
load_mod_mydeck = true
|
||||
load_mod_doors = true
|
||||
load_mod_nature_classic = true
|
||||
load_mod_mob_horse = true
|
||||
load_mod_homedecor_pictures_and_paintings = true
|
||||
load_mod_lavalamp = true
|
||||
load_mod_mobs_monster = true
|
||||
load_mod_currency = true
|
||||
load_mod_cloud_items = true
|
||||
load_mod_castle = true
|
||||
load_mod_homedecor_wardrobe = true
|
||||
load_mod_infrastructure = true
|
||||
load_mod_3d_armor_sfinv = true
|
||||
load_mod_dryplants = true
|
||||
load_mod_3d_armor = true
|
||||
load_mod_cavestuff = true
|
||||
load_mod_bonemeal = true
|
||||
load_mod_trees_lib = true
|
||||
load_mod_biome_lib = true
|
||||
load_mod_moretrees = true
|
||||
load_mod_building_blocks = true
|
||||
load_mod_streetsawards = true
|
||||
load_mod_mypaths = true
|
||||
load_mod_manholes = true
|
||||
load_mod_asphaltstairs = true
|
||||
load_mod_basic_materials = true
|
||||
load_mod_bushes = true
|
||||
load_mod_drinks = true
|
||||
load_mod_3d_armor_ui = true
|
||||
load_mod_enchanting = true
|
||||
load_mod_shields = true
|
||||
load_mod_3d_armor_ip = true
|
||||
load_mod_homedecor_misc = true
|
||||
load_mod_coloredwood = true
|
||||
load_mod_chat2 = true
|
||||
load_mod_mobs_fish = true
|
||||
load_mod_windmill = true
|
||||
load_mod_carpets = true
|
||||
load_mod_streetshotfix = true
|
||||
load_mod_moreores = true
|
||||
load_mod_signs_lib = true
|
||||
load_mod_flowers_plus = true
|
||||
load_mod_worldedit_commands = true
|
||||
load_mod_death_compass = true
|
||||
load_mod_wieldview = true
|
||||
load_mod_font_api = true
|
||||
load_mod_mobs_sharks = true
|
||||
load_mod_vines = true
|
||||
load_mod_worldedit_gui = true
|
||||
load_mod_display_api = true
|
||||
load_mod_intllib = true
|
||||
load_mod_blox = true
|
||||
load_mod_homedecor_bedroom = true
|
||||
load_mod_mywalls = true
|
||||
load_mod_worldedit_brush = true
|
||||
load_mod_carts = true
|
||||
load_mod_homedecor_clocks = true
|
||||
load_mod_mobs_bat = true
|
||||
load_mod_mywoodslopes = true
|
||||
load_mod_worldedit_shortcommands = true
|
||||
load_mod_molehills = true
|
||||
load_mod_moreblocks = true
|
||||
load_mod_anvils = true
|
||||
load_mod_homedecor_gastronomy = true
|
||||
load_mod_bakedclay = true
|
||||
load_mod_youngtrees = true
|
||||
load_mod_biome_lib = true
|
||||
load_mod_basic_signs = true
|
||||
load_mod_lib_mount = true
|
||||
load_mod_ambience = true
|
||||
load_mod_bees = true
|
||||
load_mod_homedecor_windows_and_treatments = true
|
||||
load_mod_farming = true
|
||||
load_mod_homedecor_furniture_medieval = true
|
||||
load_mod_homedecor_common = true
|
||||
load_mod_mobs_animal = true
|
||||
load_mod_homedecor_doors_and_gates = true
|
||||
load_mod_homedecor_electrical = true
|
||||
load_mod_mobs_crocs = true
|
||||
load_mod_junglegrass = true
|
||||
load_mod_3d_armor_stand = true
|
||||
load_mod_homedecor_exterior = true
|
||||
load_mod_builtin_item = true
|
||||
load_mod_homedecor_furniture = true
|
||||
load_mod_labels = true
|
||||
load_mod_homedecor_electronics = true
|
||||
load_mod_homedecor_kitchen = true
|
||||
load_mod_homedecor_lighting = true
|
||||
load_mod_charcoal = true
|
||||
load_mod_homedecor_roofing = true
|
||||
load_mod_ts_paper = true
|
||||
load_mod_signs_api = true
|
||||
load_mod_homedecor_tables = true
|
||||
load_mod_homedecor_trash_cans = true
|
||||
load_mod_stargate = true
|
||||
load_mod_homedecor_office = true
|
||||
load_mod_homedecor_laundry = true
|
||||
load_mod_inbox = true
|
||||
load_mod_itemframes = true
|
||||
load_mod_flowerpot = true
|
||||
load_mod_mobs_npc = true
|
||||
load_mod_plasmascreen = true
|
||||
load_mod_jukebox = true
|
||||
load_mod_trafficlight = true
|
||||
load_mod_letters = true
|
||||
load_mod_worldedit = true
|
||||
load_mod_mail = true
|
||||
load_mod_plasticbox = true
|
||||
load_mod_mobs_birds = true
|
||||
load_mod_mobs = true
|
||||
load_mod_mobs_butterfly = true
|
||||
load_mod_concretestairs = true
|
||||
load_mod_crops = true
|
||||
load_mod_more_chests = true
|
||||
load_mod_homedecor_climate_control = true
|
||||
load_mod_moretrees = true
|
||||
load_mod_mtfoods = true
|
||||
load_mod_mycorners = true
|
||||
load_mod_bbq = true
|
||||
load_mod_mymasonhammer = true
|
||||
load_mod_computer = true
|
||||
load_mod_mymillwork = true
|
||||
load_mod_bows = true
|
||||
load_mod_3dmushrooms = true
|
||||
load_mod_skinsdb = true
|
||||
load_mod_mysheetmetal = true
|
||||
load_mod_new_campfire = true
|
||||
load_mod_myroofs = true
|
||||
load_mod_pie = true
|
||||
load_mod_homedecor_cobweb = true
|
||||
load_mod_along_shore = true
|
||||
load_mod_bushes_classic = true
|
||||
|
|
28
mods/BBQ/LICENSE
Normal file
|
@ -0,0 +1,28 @@
|
|||
BBQ add-on for Minetest
|
||||
by Grizzly Adam
|
||||
|
||||
Source code (lua):
|
||||
(C) Grizzly Adam
|
||||
LGPL-2.1+
|
||||
|
||||
|
||||
All Textures:
|
||||
(C) Grizzly Adam
|
||||
CC-BY-SA-3.0
|
||||
|
||||
bbq_potato.png, bbq_tomato.png, and bbq_corn.png
|
||||
(C) Auke Kok <sofar@foo-projects.org>
|
||||
CC-BY-SA-3.0
|
||||
|
||||
Sounds:
|
||||
- bbq_sizzle.ogg by Shanecantly *01-23-2018 EDITED TO SHORTEN & FADE OUT*
|
||||
https://freesound.org/people/shaynecantly/sounds/131553/
|
||||
CC-BY-3.0
|
||||
|
||||
- bbq_grill_brush.ogg by NSDAP *01-24-2018 EDITED TO SHORTEN*
|
||||
https://freesound.org/people/NSDAP/sounds/397639/
|
||||
CC-BY-3.0
|
||||
|
||||
- bbq_basting.ogg by j1987 *01-24-2018 EDITED TO SHORTEN*
|
||||
https://freesound.org/people/j1987/sounds/106395/
|
||||
CC-BY-3.0
|
141
mods/BBQ/README.md
Normal file
|
@ -0,0 +1,141 @@
|
|||
Your Dad's BBQ Mod
|
||||
---For Minetest---
|
||||
v1.22 by Grizzly Adam
|
||||
|
||||
https://forum.minetest.net/viewtopic.php?f=9&t=19324
|
||||
|
||||
https://github.com/Grizzly-Adam/BBQ
|
||||
|
||||
Goals
|
||||
-----
|
||||
-Expanding the cooking & food options in Minetest
|
||||
-Add working smoker and grill to Minetest
|
||||
-Utilize under-used items, such as vessels, vessel shelf, and mushrooms
|
||||
-Be compatible with and expand on Mobs-Redo and it's Animals pack
|
||||
-Be compatible with Rubenwardy's Food Mod
|
||||
-Be compatible with Auke Kok's Crops Mod
|
||||
-Be compatible with Farming-Redo Mod
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
For more information about what is in this pack, check the file: description.txt
|
||||
|
||||
New In This Version
|
||||
-------------------
|
||||
Changed food group names to meet the new Ruben Standard.
|
||||
|
||||
New In Version 1.21
|
||||
-------------------
|
||||
Fixed "shadow" texture bug.
|
||||
Fixed wood pile bug, where items could not be placed in woodpile.
|
||||
Wood Pile can now store trees, wood planks, *wood slabs, *wood stairs, and sticks.
|
||||
|
||||
New In Version 1.20
|
||||
-------------------
|
||||
Name changed to Your Dad's BBQ Mod.
|
||||
Added a new smoker, renamed old smoker "Propane Grill."
|
||||
Grills, propane, bags of charcoal, and beer no longer kill grass.
|
||||
Added spatula, basting brush, and grill brush. All three play sounds when used with any of the grills while they are active.
|
||||
Removed mutton (Mobs-Redo has offically added mutton).
|
||||
Hotdog and hamburger meats must now be crafted, cooked, and combined with bread to make finished product.
|
||||
bucket:bucket_milk can now be placed in the vessel shelf.
|
||||
Added support for xdecor:honey.
|
||||
Removed all dependences except default.
|
||||
Revamped some older recipes to include tomato sauce, garlic clove, and onion.
|
||||
Added a wood pile for each type of wood in the default game.
|
||||
Converted all food recipes to shapeless.
|
||||
|
||||
|
||||
New Items:
|
||||
Smoker
|
||||
Chimney Smoke (Place on top of a chimney)
|
||||
Wood Pile
|
||||
Acacia Wood Pile
|
||||
Aspen Wood Pile
|
||||
Junglewood Wood Pile
|
||||
Pine Wood Pile
|
||||
Spatula
|
||||
Basting Brush
|
||||
Grill Brush
|
||||
Hamburger Patty (Raw and Cooked)
|
||||
Hotdog (Raw and Cooked)
|
||||
Pulled Pork Sandwich
|
||||
London Broil (Raw and Cooked)
|
||||
Stuffed Porkchop (Raw and Cooked)
|
||||
Garlic
|
||||
Garlic Clove
|
||||
Garlic Braid
|
||||
Onion
|
||||
|
||||
|
||||
New In Version 1.12
|
||||
-------------------
|
||||
Adjusted food items to make output of recipes equivalent to the foods used.
|
||||
Replaced beef textures.
|
||||
Updated license.
|
||||
|
||||
|
||||
New In Version 1.11
|
||||
-------------------
|
||||
Adjusted Kettle Grill fire animation
|
||||
Fixed Kettle Grill crafting recipe.
|
||||
|
||||
New In Version 1.1
|
||||
-------------------
|
||||
New Items:
|
||||
Kettle Gril
|
||||
Lump Charcoal (fuel)
|
||||
Charcoal Briquettes (fuel)
|
||||
Bag O' Charcoal (fuel)
|
||||
Propane (fuel)
|
||||
Sawdust
|
||||
Foil
|
||||
|
||||
Paprika
|
||||
Molasses (byproduct of Sugar)
|
||||
Steak sauce
|
||||
Vinegar
|
||||
Vinegar Mother
|
||||
|
||||
Beer
|
||||
Cheese Steak
|
||||
Pizza
|
||||
Grilled Tomato
|
||||
Brisket
|
||||
Corned Beef
|
||||
Veggie Kebabs
|
||||
Lamb Kebabs
|
||||
Smoked Pepper
|
||||
Grilled Corn
|
||||
Stuffed Mushroom
|
||||
Portabella Steaks
|
||||
Pickled peppers
|
||||
Veggie Packets
|
||||
Corn
|
||||
Potato
|
||||
|
||||
|
||||
New In Version 1.02
|
||||
-------------------
|
||||
Bug Fix: All Colours of Sheep Now Drop Mutton
|
||||
|
||||
Added support for Farming Redo
|
||||
Improved support for Crops
|
||||
|
||||
New Items:
|
||||
Wood Pile (can store trees, wood planks, and sticks)
|
||||
Smoker Blue Print (wall hanging)
|
||||
Yeast (Can be found when harvesting grass and jungle grass)
|
||||
Bacon Cheeseburger
|
||||
|
||||
|
||||
Updated Textures:
|
||||
Raw Mutton
|
||||
Cooked Mutton
|
||||
Raw Leg of Lamb
|
||||
Cooked Leg of Lamb
|
||||
Sugar
|
||||
Brine
|
||||
Hotdog
|
||||
Hamburger
|
707
mods/BBQ/cooking.lua
Normal file
|
@ -0,0 +1,707 @@
|
|||
--------------
|
||||
--ITEM RECIPES
|
||||
--------------
|
||||
|
||||
--Smoker Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:smoker",
|
||||
recipe = {
|
||||
{"", "", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "group:wood", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "", "default:steel_ingot"}
|
||||
}
|
||||
})
|
||||
|
||||
--Kettle Grill Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:kettle_grill",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "bbq:charcoal_lump", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "bbq:charcoal_lump", "default:steel_ingot"},
|
||||
{"", "default:steel_ingot", ""}
|
||||
}
|
||||
})
|
||||
|
||||
--Propane Grill Pro Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:propane_grill_pro",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "default:glass", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "bbq:propane", "default:steel_ingot"},
|
||||
{"", "default:steel_ingot", ""}
|
||||
}
|
||||
})
|
||||
|
||||
--Propane Grill Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:propane_grill",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "default:glass", "default:steel_ingot"},
|
||||
{"", "bbq:propane", ""},
|
||||
{"", "default:steel_ingot", ""}
|
||||
}
|
||||
})
|
||||
|
||||
--Chimeny Smoke Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:chimney_smoke",
|
||||
recipe = {
|
||||
{"", "group:wood", ""},
|
||||
{"", "group:wood", ""},
|
||||
{"", "default:torch", ""}
|
||||
}
|
||||
})
|
||||
|
||||
--Beef Map Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:beef_map",
|
||||
recipe = {
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
{"group:wood", "mobs:leather", "group:wood"},
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
}
|
||||
})
|
||||
|
||||
--Smoker Blueprint Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:smoker_blueprint",
|
||||
recipe = {
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
{"group:wood", "dye:blue", "group:wood"},
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
}
|
||||
})
|
||||
|
||||
--Spatula Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:spatula",
|
||||
recipe = {
|
||||
{"", "default:tin_ingot", ""},
|
||||
{"", "default:tin_ingot", ""},
|
||||
{"", "default:stick", ""}
|
||||
}
|
||||
})
|
||||
|
||||
--Basting Brush Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:basting_brush",
|
||||
recipe = {
|
||||
{"", "farming:cotton", ""},
|
||||
{"", "default:tin_ingot", ""},
|
||||
{"", "default:stick", ""}
|
||||
}
|
||||
})
|
||||
|
||||
--Grill Brush Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:grill_brush",
|
||||
recipe = {
|
||||
{"", "default:tin_ingot", "farming:cotton"},
|
||||
{"", "default:tin_ingot", ""},
|
||||
{"", "default:stick", ""}
|
||||
}
|
||||
})
|
||||
|
||||
--Foil Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:foil",
|
||||
recipe = {
|
||||
{"", "", ""},
|
||||
{"", "", ""},
|
||||
{"default:tin_ingot", "default:tin_ingot", "default:tin_ingot"}
|
||||
}
|
||||
})
|
||||
|
||||
--Propane Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:propane",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "default:torch", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}
|
||||
}
|
||||
})
|
||||
|
||||
--Charcoal Bag Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:charcoal_bag",
|
||||
recipe = {
|
||||
{"bbq:charcoal_briquette", "bbq:charcoal_briquette", "bbq:charcoal_briquette"},
|
||||
{"bbq:charcoal_briquette", "bbq:charcoal_briquette", "bbq:charcoal_briquette"},
|
||||
{"bbq:charcoal_briquette", "bbq:charcoal_briquette", "bbq:charcoal_briquette"}
|
||||
}
|
||||
})
|
||||
|
||||
--Charcoal Briquette Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:charcoal_briquette",
|
||||
recipe = {
|
||||
{"", "bbq:sawdust", ""},
|
||||
{"bbq:sawdust", "bbq:charcoal_lump", "bbq:sawdust"},
|
||||
{"", "bbq:sawdust", ""}
|
||||
}
|
||||
})
|
||||
|
||||
--Charcoal Lump Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:charcoal_lump",
|
||||
type = "shapeless",
|
||||
recipe = {"group:tree", "default:torch"}
|
||||
})
|
||||
|
||||
--Sawdust Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:sawdust",
|
||||
type = "shapeless",
|
||||
recipe = {"default:stick"},
|
||||
|
||||
})
|
||||
|
||||
|
||||
--------------
|
||||
--FOOD RECIPES
|
||||
--------------
|
||||
|
||||
--Beer Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:beer",
|
||||
type = "shapeless",
|
||||
recipe = {"bucket:bucket_water", "bbq:yeast", "farming:wheat", "group:food_sugar", "vessels:drinking_glass"},
|
||||
replacements = {{"bucket:bucket_water","bucket:bucket_empty"}},
|
||||
})
|
||||
|
||||
--Vinegar Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:vinegar",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_vinegarmother", "group:food_sugar", "bucket:bucket_water"},
|
||||
replacements = {{"bucket:bucket_water","bucket:bucket_empty"}},
|
||||
})
|
||||
|
||||
--Lamb Kebab Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:lamb_kebab_raw 4",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_pepper", "mobs:mutton_raw", "default:stick", "flowers:mushroom_brown", "group:food_onion"}
|
||||
})
|
||||
|
||||
--Rack of Lamb Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:rack_lamb_raw 2",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:bbq_sauce", "mobs:mutton_raw", "mobs:mutton_raw"}
|
||||
})
|
||||
|
||||
--Leg of Lamb Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:leg_lamb_raw 2",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_garlic_clove", "mobs:mutton_raw", "mobs:mutton_raw"}
|
||||
})
|
||||
|
||||
--Ham Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:ham_raw 2",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:brine", "mobs:pork_raw", "group:food_honey"}
|
||||
})
|
||||
|
||||
--Pickled Peppers Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:pickled_peppers",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_peppercorn", "group:food_pepper", "bbq:brine"}
|
||||
})
|
||||
|
||||
--BBQ Chicken Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:bbq_chicken_raw 3",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:bbq_sauce", "mobs:chicken_raw", "bbq:paprika"}
|
||||
})
|
||||
|
||||
--BBQ Beef Ribs Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:bbq_beef_ribs_raw 2",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:bbq_sauce", "bbq:beef_raw", "group:food_pepper_ground"}
|
||||
})
|
||||
|
||||
--Corned Beef Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:corned_beef_raw",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_peppercorn", "bbq:beef_raw","bbq:brine",}
|
||||
})
|
||||
|
||||
--BBQ Brisket Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:brisket_raw 2",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:bbq_sauce", "bbq:molasses", "bbq:beef_raw", "group:food_garlic_clove"}
|
||||
})
|
||||
|
||||
--Hot Wings Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:hot_wings_raw 3",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:hot_sauce", "mobs:chicken_raw", "bbq:paprika"}
|
||||
})
|
||||
|
||||
|
||||
--Cheese Steak Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:cheese_steak 2",
|
||||
type = "shapeless",
|
||||
recipe = {"farming:bread", "group:food_pepper", "bbq:beef", "group:food_cheese", "group:food_onion"}
|
||||
})
|
||||
|
||||
--Bacon Cheeseburger Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:bacon_cheeseburger 3",
|
||||
type = "shapeless",
|
||||
recipe = {"farming:bread", "bbq:bacon", "bbq:hamburger_patty", "group:food_cheese"}
|
||||
})
|
||||
|
||||
--Hamburger Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:hamburger 2",
|
||||
type = "shapeless",
|
||||
recipe = {"farming:bread", "bbq:hamburger_patty"}
|
||||
})
|
||||
|
||||
--Hamburger Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:hamburger_patty_raw",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:beef_raw"}
|
||||
})
|
||||
|
||||
--Hotdog Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:hotdog 2",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:hotdog_cooked", "farming:bread"}
|
||||
})
|
||||
|
||||
--Hotdog Raw Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:hotdog_raw",
|
||||
type = "shapeless",
|
||||
recipe = {"mobs:pork_raw", "mobs:chicken_raw", "bbq:sawdust"}
|
||||
})
|
||||
|
||||
--Pulled Pork Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:pulled_pork 2",
|
||||
type = "shapeless",
|
||||
recipe = {"mobs:pork_cooked", "farming:bread", "bbq:bbq_sauce"}
|
||||
})
|
||||
|
||||
--Grilled Pizza Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:grilled_pizza_raw 3",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_cheese", "group:food_pepper", "bbq:grilled_tomato", "flowers:mushroom_brown", "group:food_salt", "farming:wheat", "bbq:yeast"}
|
||||
})
|
||||
|
||||
--Bacon Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:bacon_raw 2",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:liquid_smoke", "bbq:brine", "mobs:pork_raw"}
|
||||
})
|
||||
|
||||
--London Broil Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:london_broil_raw 2",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:bacon", "group:food_garlic_clove", "bbq:beef_raw"}
|
||||
})
|
||||
|
||||
--Beef Jerky Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:beef_jerky_raw 3",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:liquid_smoke", "bbq:brine", "bbq:beef_raw"}
|
||||
})
|
||||
|
||||
--Pepper Steak Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:pepper_steak_raw",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_pepper_ground", "bbq:beef_raw", "group:food_pepper_ground"}
|
||||
})
|
||||
|
||||
--Stuffed Chop Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:stuffed_chop_raw 3",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_onion", "farming:bread", "flowers:mushroom_brown", "mobs:pork_raw", "default:apple"}
|
||||
})
|
||||
|
||||
--Stuffed Mushroom Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:stuffed_mushroom_raw 2",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_tomato", "farming:bread", "flowers:mushroom_brown"}
|
||||
})
|
||||
|
||||
--Veggie Kebab Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:veggie_kebab_raw 2",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_pepper", "group:food_potato", "group:food_tomato", "flowers:mushroom_brown", "default:stick"}
|
||||
})
|
||||
|
||||
--Veggie Packet Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:veggie_packet_raw 2",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_pepper_ground", "group:food_tomato", "group:food_potato", "group:food_corn", "bbq:foil"}
|
||||
})
|
||||
|
||||
--Portebello Steak Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:portebello_steak_raw",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_pepper_ground", "bbq:steak_sauce", "flowers:mushroom_brown"}
|
||||
})
|
||||
|
||||
--Stuffed Pepper Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:stuffed_pepper_raw 3",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_cheese", "farming:bread", "group:food_pepper"}
|
||||
})
|
||||
|
||||
--Grilled Corn Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:grilled_corn_raw 2",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_cheese", "bbq:paprika", "group:food_corn"}
|
||||
})
|
||||
|
||||
---------------------
|
||||
--Spices, Sauces, Etc
|
||||
---------------------
|
||||
--Tomato Sauce Craft Recipe
|
||||
if minetest.registered_items["crops:tomato"] ~= nil then
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "bbq:tomato_sauce",
|
||||
recipe = { "group:food_tomato" },
|
||||
replacements = {{"group:food_tomato","crops:tomato_seed"}}
|
||||
})
|
||||
else
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "bbq:tomato_sauce",
|
||||
recipe = { "group:food_tomato" },
|
||||
})
|
||||
end
|
||||
|
||||
--Paprika Craft Recipe
|
||||
minetest.register_craft( {
|
||||
output = "bbq:paprika",
|
||||
-- type = "shapeless",
|
||||
recipe = {
|
||||
{'bbq:smoked_pepper'},
|
||||
},
|
||||
})
|
||||
|
||||
--Garlic Clove Craft Recipe
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "bbq:garlic_clove 9",
|
||||
recipe = { "group:food_garlic" }
|
||||
})
|
||||
|
||||
--Garlic Braid Craft Recipe
|
||||
minetest.register_craft({
|
||||
output = "bbq:garlic_braid",
|
||||
recipe = {
|
||||
{"group:food_garlic", "group:food_garlic", "group:food_garlic"},
|
||||
{"group:food_garlic", "group:food_garlic", "group:food_garlic"},
|
||||
{"group:food_garlic", "group:food_garlic", "group:food_garlic"}
|
||||
}
|
||||
})
|
||||
|
||||
--Garlic Craft Recipe
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "bbq:garlic 9",
|
||||
recipe = { "group:food_garlic_braid" }
|
||||
})
|
||||
|
||||
--Brine
|
||||
minetest.register_craft( {
|
||||
output = "bbq:brine",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_salt", "group:food_sugar", "bucket:bucket_water", "vessels:drinking_glass"},
|
||||
replacements = {{"bucket:bucket_water","bucket:bucket_empty"}},
|
||||
})
|
||||
|
||||
--Steak Sauce
|
||||
minetest.register_craft( {
|
||||
output = "bbq:steak_sauce",
|
||||
type = "shapeless",
|
||||
recipe = {"flowers:mushroom_brown", "bbq:vinegar", "bbq:hot_sauce", "vessels:glass_bottle"},
|
||||
replacements = {{"bbq:vinegar","bbq:vinegar_mother"}},
|
||||
})
|
||||
|
||||
--Liquid Smoke
|
||||
minetest.register_craft( {
|
||||
output = "bbq:liquid_smoke",
|
||||
type = "shapeless",
|
||||
recipe = {"vessels:glass_bottle", "default:torch"}
|
||||
})
|
||||
|
||||
--Sugar
|
||||
minetest.register_craft( {
|
||||
output = "bbq:sugar",
|
||||
-- type = "shapeless",
|
||||
recipe = {
|
||||
{'default:papyrus'},
|
||||
},
|
||||
replacements = {{"default:papyrus","bbq:molasses"}},
|
||||
})
|
||||
|
||||
--Hot Sauce
|
||||
minetest.register_craft( {
|
||||
output = "bbq:hot_sauce",
|
||||
type = "shapeless",
|
||||
recipe = {"group:food_pepper_ground", "bucket:bucket_water", "bbq:paprika", "vessels:glass_bottle"},
|
||||
replacements = {{"bucket:bucket_water","bucket:bucket_empty"}},
|
||||
})
|
||||
|
||||
--BBQ Sauce
|
||||
minetest.register_craft( {
|
||||
output = "bbq:bbq_sauce",
|
||||
type = "shapeless",
|
||||
recipe = {"bbq:molasses", "group:food_sugar", "group:food_tomato_sauce", "bbq:liquid_smoke", "bbq:vinegar"},
|
||||
replacements = {{"bbq:vinegar","bbq:vinegar_mother"}},
|
||||
})
|
||||
|
||||
|
||||
---------
|
||||
--COOKING
|
||||
---------
|
||||
|
||||
--Sea Salt Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:sea_salt",
|
||||
recipe = "bucket:bucket_water",
|
||||
replacements = {{"bucket:bucket_water","bucket:bucket_empty"}},
|
||||
cooktime = 8,
|
||||
})
|
||||
|
||||
--Hamburger Patty Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:hamburger_patty",
|
||||
recipe = "bbq:hamburger_patty_raw",
|
||||
cooktime = 5,
|
||||
})
|
||||
|
||||
--Hotdog Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:hotdog_cooked",
|
||||
recipe = "bbq:hotdog_raw",
|
||||
cooktime = 5,
|
||||
})
|
||||
|
||||
--Beef Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:beef",
|
||||
recipe = "bbq:beef_raw",
|
||||
cooktime = 5,
|
||||
})
|
||||
|
||||
--Beef Jerky Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:beef_jerky",
|
||||
recipe = "bbq:beef_jerky_raw",
|
||||
cooktime = 12,
|
||||
})
|
||||
|
||||
--Veggie Kebab Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:veggie_kebab",
|
||||
recipe = "bbq:veggie_kebab_raw",
|
||||
cooktime = 8,
|
||||
})
|
||||
|
||||
--Veggie Packet Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:veggie_packet",
|
||||
recipe = "bbq:veggie_packet_raw",
|
||||
cooktime = 8,
|
||||
})
|
||||
|
||||
--Stuffed Mushroom Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:stuffed_mushroom",
|
||||
recipe = "bbq:stuffed_mushroom_raw",
|
||||
cooktime = 6,
|
||||
})
|
||||
|
||||
--Stuffed Chop Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:stuffed_chop",
|
||||
recipe = "bbq:stuffed_chop_raw",
|
||||
cooktime = 8,
|
||||
})
|
||||
|
||||
--Portebello Steak Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:portebello_steak",
|
||||
recipe = "bbq:portebello_steak_raw",
|
||||
cooktime = 6,
|
||||
})
|
||||
|
||||
--Pepper Steak Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:pepper_steak",
|
||||
recipe = "bbq:pepper_steak_raw",
|
||||
cooktime = 6,
|
||||
})
|
||||
|
||||
--Smoked Pepper Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:smoked_pepper",
|
||||
recipe = "group:food_pepper",
|
||||
cooktime = 9,
|
||||
})
|
||||
|
||||
--Grilled Pizza
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:grilled_pizza",
|
||||
recipe = "bbq:grilled_pizza_raw",
|
||||
cooktime = 5,
|
||||
})
|
||||
|
||||
--Bacon Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:bacon",
|
||||
recipe = "bbq:bacon_raw",
|
||||
cooktime = 5,
|
||||
})
|
||||
|
||||
--London Broil Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:london_broil",
|
||||
recipe = "bbq:london_broil_raw",
|
||||
cooktime = 6,
|
||||
})
|
||||
|
||||
--Hot Wings Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:hot_wings",
|
||||
recipe = "bbq:hot_wings_raw",
|
||||
cooktime = 7,
|
||||
})
|
||||
|
||||
--BBQ Beef Ribs Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:bbq_beef_ribs",
|
||||
recipe = "bbq:bbq_beef_ribs_raw",
|
||||
cooktime = 15,
|
||||
})
|
||||
|
||||
--Corned Beef Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:corned_beef",
|
||||
recipe = "bbq:corned_beef_raw",
|
||||
cooktime = 15,
|
||||
})
|
||||
|
||||
--BBQ Brisket Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:brisket",
|
||||
recipe = "bbq:brisket_raw",
|
||||
cooktime = 15,
|
||||
})
|
||||
|
||||
--BBQ Chicken Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:bbq_chicken",
|
||||
recipe = "bbq:bbq_chicken_raw",
|
||||
cooktime = 10,
|
||||
})
|
||||
|
||||
--Ham
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:ham",
|
||||
recipe = "bbq:ham_raw",
|
||||
cooktime = 10,
|
||||
})
|
||||
|
||||
--Lamb Kebab
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:lamb_kebab",
|
||||
recipe = "bbq:lamb_kebab_raw",
|
||||
cooktime = 10,
|
||||
})
|
||||
|
||||
--Leg of Lamb
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:leg_lamb",
|
||||
recipe = "bbq:leg_lamb_raw",
|
||||
cooktime = 10,
|
||||
})
|
||||
|
||||
--Rack of Lamb
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:rack_lamb",
|
||||
recipe = "bbq:rack_lamb_raw",
|
||||
cooktime = 10,
|
||||
})
|
||||
|
||||
--Stuffed Pepper Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:stuffed_pepper",
|
||||
recipe = "bbq:stuffed_pepper_raw",
|
||||
cooktime = 4,
|
||||
})
|
||||
|
||||
--Grilled Tomato Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:grilled_tomato",
|
||||
recipe = "group:food_tomato",
|
||||
cooktime = 4,
|
||||
})
|
||||
|
||||
--Grilled Corn Cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bbq:grilled_corn",
|
||||
recipe = "bbq:grilled_corn_raw",
|
||||
cooktime = 4,
|
||||
})
|
919
mods/BBQ/crafts.lua
Normal file
|
@ -0,0 +1,919 @@
|
|||
-- Kettle Grill
|
||||
minetest.register_node("bbq:kettle_grill", {
|
||||
description = ("Kettle Grill"),
|
||||
inventory_image = "bbq_kettle_grill.png",
|
||||
wield_image = "bbq_kettle_grill.png",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_kettle_grill.png"},
|
||||
groups = {grill=1, vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
})
|
||||
|
||||
-- Sawdust
|
||||
minetest.register_node("bbq:sawdust", {
|
||||
description = ("Saw Dust"),
|
||||
inventory_image = "bbq_sawdust.png",
|
||||
wield_image = "bbq_sawdust.png",
|
||||
drawtype = "plantlike",
|
||||
tiles = {
|
||||
"bbq_sawdust.png",
|
||||
},
|
||||
groups = {choppy=3, oddly_breakable_by_hand=2, flammable=3},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Chimeny Smoke
|
||||
minetest.register_node("bbq:chimney_smoke", {
|
||||
description = ("Chimney Smoke"),
|
||||
inventory_image = "bbq_chimney_smoke.png",
|
||||
wield_image = "bbq_chimney_smoke.png",
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
tiles = {
|
||||
{
|
||||
image = "bbq_chimney_smoke_animation.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
|
||||
groups = {dig_immediate = 3, attached_node = 1},
|
||||
})
|
||||
|
||||
-- Foil
|
||||
minetest.register_craftitem("bbq:foil", {
|
||||
description = ("Foil"),
|
||||
inventory_image = "bbq_foil.png",
|
||||
wield_image = "bbq_foil.png",
|
||||
})
|
||||
|
||||
-- Charocal Briquette
|
||||
minetest.register_craftitem("bbq:charcoal_briquette", {
|
||||
description = ("Charcoal Briquette"),
|
||||
inventory_image = "bbq_charcoal_briquette.png",
|
||||
wield_image = "bbq_charcoal_briquette.png",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "bbq:charcoal_briquette",
|
||||
burntime = 10,
|
||||
})
|
||||
|
||||
-- Charocal Lump
|
||||
minetest.register_craftitem("bbq:charcoal_lump", {
|
||||
description = ("Charcoal Lump"),
|
||||
inventory_image = "bbq_charcoal_lump.png",
|
||||
wield_image = "bbq_charcoal_lump.png",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "bbq:charcoal_lump",
|
||||
burntime = 25,
|
||||
})
|
||||
|
||||
-- Charcoal Bag
|
||||
minetest.register_node("bbq:charcoal_bag", {
|
||||
description = ("Bag o' Charcoal"),
|
||||
inventory_image = "bbq_charcoal_bag.png",
|
||||
wield_image = "bbq_charcoal_bag.png",
|
||||
drawtype = "plantlike",
|
||||
sunlight_propagates = true,
|
||||
tiles = {
|
||||
"bbq_charcoal_bag_top.png", "bbq_charcoal_bag_top.png",
|
||||
"bbq_charcoal_bag_side.png", "bbq_charcoal_bag_side.png",
|
||||
"bbq_charcoal_bag_back.png", "bbq_charcoal_bag.png",
|
||||
},
|
||||
groups = {dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.21, -0.5, -0.1, 0.21, 0.22, 0.1},
|
||||
{-0.235, 0.22, -0.025, 0.235, 0.25, 0.025},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "bbq:charcoal_bag",
|
||||
burntime = 150,
|
||||
})
|
||||
|
||||
-- Propane
|
||||
minetest.register_node("bbq:propane", {
|
||||
description = ("Propane"),
|
||||
inventory_image = "bbq_propane.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
wield_image = "bbq_propane.png",
|
||||
drawtype = "plantlike",
|
||||
sunlight_propagates = true,
|
||||
tiles = {"bbq_propane.png"},
|
||||
groups = {explody = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "bbq:propane",
|
||||
burntime = 500,
|
||||
})
|
||||
|
||||
-- Beer
|
||||
minetest.register_node("bbq:beer", {
|
||||
description = ("Beer"),
|
||||
inventory_image = "bbq_beer.png",
|
||||
wield_image = "bbq_beer.png",
|
||||
drawtype = "plantlike",
|
||||
sunlight_propagates = true,
|
||||
tiles = {
|
||||
"bbq_beer_top.png", "bbq_beer_top.png^[transformFy",
|
||||
"bbq_beer.png", "bbq_beer.png",
|
||||
"bbq_beer.png", "bbq_beer.png^[transformFx",
|
||||
},
|
||||
groups = {dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.18, -0.5, -0.18, 0.18, 0.3, 0.18},
|
||||
{-0.3, -0.25, -0.06, -0.18, 0.18, 0.06},
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
on_use = minetest.item_eat(6),
|
||||
})
|
||||
|
||||
-- Vinegar
|
||||
minetest.register_node("bbq:vinegar", {
|
||||
description = ("Vinegar"),
|
||||
inventory_image = "bbq_vinegar.png",
|
||||
wield_image = "bbq_vinegar.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_vinegar.png"},
|
||||
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
-- Vinegar Mother
|
||||
minetest.register_node("bbq:vinegar_mother", {
|
||||
description = ("Vinegar Mother"),
|
||||
inventory_image = "bbq_vinegar_mother.png",
|
||||
wield_image = "bbq_vinegar_mother.png",
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
tiles = {"bbq_vinegar_mother.png"},
|
||||
groups = {food_vinegarmother=1, vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
-- Veggie Kebab
|
||||
minetest.register_craftitem("bbq:veggie_kebab", {
|
||||
description = ("Veggie Kebab"),
|
||||
inventory_image = "bbq_veggie_kebab.png",
|
||||
on_use = minetest.item_eat(8),
|
||||
})
|
||||
|
||||
-- Veggie Kebab Raw
|
||||
minetest.register_craftitem("bbq:veggie_kebab_raw", {
|
||||
description = ("Veggie Kebab Raw"),
|
||||
inventory_image = "bbq_veggie_kebab_raw.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
-- Veggie Packet
|
||||
minetest.register_craftitem("bbq:veggie_packet", {
|
||||
description = ("Veggie Packet"),
|
||||
inventory_image = "bbq_veggie_packet.png",
|
||||
on_use = minetest.item_eat(5),
|
||||
})
|
||||
|
||||
-- Veggie Packet Raw
|
||||
minetest.register_craftitem("bbq:veggie_packet_raw", {
|
||||
description = ("Veggie Packet Raw"),
|
||||
inventory_image = "bbq_veggie_packet_raw.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
-- Stuffed Mushroom
|
||||
minetest.register_craftitem("bbq:stuffed_mushroom", {
|
||||
description = ("Stuffed Mushroom"),
|
||||
inventory_image = "bbq_stuffed_mushroom.png",
|
||||
on_use = minetest.item_eat(9),
|
||||
})
|
||||
|
||||
-- Stuffed Mushroom Raw
|
||||
minetest.register_craftitem("bbq:stuffed_mushroom_raw", {
|
||||
description = ("Stuffed Mushroom Raw"),
|
||||
inventory_image = "bbq_stuffed_mushroom_raw.png",
|
||||
on_use = minetest.item_eat(5),
|
||||
})
|
||||
|
||||
-- Portebello Steak_Raw
|
||||
minetest.register_craftitem("bbq:portebello_steak_raw", {
|
||||
description = ("Portebello Steak Raw"),
|
||||
inventory_image = "bbq_portebello_steak_raw.png",
|
||||
on_use = minetest.item_eat(5),
|
||||
})
|
||||
|
||||
-- Portebello Steak
|
||||
minetest.register_craftitem("bbq:portebello_steak", {
|
||||
description = ("Portebello Steak"),
|
||||
inventory_image = "bbq_portebello_steak.png",
|
||||
on_use = minetest.item_eat(9),
|
||||
})
|
||||
|
||||
-- Lamb Kebab
|
||||
minetest.register_craftitem("bbq:lamb_kebab", {
|
||||
description = ("Lamb Kebab"),
|
||||
inventory_image = "bbq_lamb_kebab.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
-- Lamb Kebab Raw
|
||||
minetest.register_craftitem("bbq:lamb_kebab_raw", {
|
||||
description = ("Lamb Kebab Raw"),
|
||||
inventory_image = "bbq_lamb_kebab_raw.png",
|
||||
on_use = minetest.item_eat(2),
|
||||
})
|
||||
|
||||
-- Rack of Lamb
|
||||
minetest.register_craftitem("bbq:rack_lamb", {
|
||||
description = ("Rack of Lamb"),
|
||||
inventory_image = "bbq_rack_lamb.png",
|
||||
on_use = minetest.item_eat(10),
|
||||
})
|
||||
|
||||
-- Rack of Lamb Raw
|
||||
minetest.register_craftitem("bbq:rack_lamb_raw", {
|
||||
description = ("Rack of Lamb Raw"),
|
||||
inventory_image = "bbq_rack_lamb_raw.png",
|
||||
on_use = minetest.item_eat(5),
|
||||
})
|
||||
|
||||
-- Leg of Lamb
|
||||
minetest.register_craftitem("bbq:leg_lamb", {
|
||||
description = ("Leg of Lamb"),
|
||||
inventory_image = "bbq_leg_lamb.png",
|
||||
on_use = minetest.item_eat(9),
|
||||
})
|
||||
|
||||
-- Leg of Lamb Raw
|
||||
minetest.register_craftitem("bbq:leg_lamb_raw", {
|
||||
description = ("Leg of Lamb Raw"),
|
||||
inventory_image = "bbq_leg_lamb_raw.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
-- Ham
|
||||
minetest.register_craftitem("bbq:ham", {
|
||||
description = ("Ham"),
|
||||
inventory_image = "bbq_ham.png",
|
||||
on_use = minetest.item_eat(9),
|
||||
})
|
||||
|
||||
-- Ham Raw
|
||||
minetest.register_craftitem("bbq:ham_raw", {
|
||||
description = ("Ham Raw"),
|
||||
inventory_image = "bbq_ham_raw.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
-- BBQ Chicken
|
||||
minetest.register_craftitem("bbq:bbq_chicken", {
|
||||
description = ("BBQ Chicken"),
|
||||
inventory_image = "bbq_bbq_chicken.png",
|
||||
on_use = minetest.item_eat(8),
|
||||
})
|
||||
|
||||
-- BBQ Chicken Raw
|
||||
minetest.register_craftitem("bbq:bbq_chicken_raw", {
|
||||
description = ("BBQ Chicken Raw"),
|
||||
inventory_image = "bbq_bbq_chicken_raw.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
-- Corned Beef Raw
|
||||
minetest.register_craftitem("bbq:corned_beef_raw", {
|
||||
description = ("Corned Beef Raw"),
|
||||
inventory_image = "bbq_corned_beef_raw.png",
|
||||
on_use = minetest.item_eat(5),
|
||||
})
|
||||
|
||||
-- Corned Beef
|
||||
minetest.register_craftitem("bbq:corned_beef", {
|
||||
description = ("Corned Beef"),
|
||||
inventory_image = "bbq_corned_beef.png",
|
||||
on_use = minetest.item_eat(10),
|
||||
})
|
||||
|
||||
-- BBQ Brisket
|
||||
minetest.register_craftitem("bbq:brisket", {
|
||||
description = ("BBQ Brisket"),
|
||||
inventory_image = "bbq_brisket.png",
|
||||
on_use = minetest.item_eat(9),
|
||||
})
|
||||
|
||||
-- BBQ Brisket Raw
|
||||
minetest.register_craftitem("bbq:brisket_raw", {
|
||||
description = ("BBQ Brisket Raw"),
|
||||
inventory_image = "bbq_brisket_raw.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
-- BBQ Beef Ribs
|
||||
minetest.register_craftitem("bbq:bbq_beef_ribs", {
|
||||
description = ("BBQ Ribs"),
|
||||
inventory_image = "bbq_beef_ribs.png",
|
||||
on_use = minetest.item_eat(9),
|
||||
})
|
||||
|
||||
-- BBQ Beef Ribs Raw
|
||||
minetest.register_craftitem("bbq:bbq_beef_ribs_raw", {
|
||||
description = ("BBQ Ribs Raw"),
|
||||
inventory_image = "bbq_beef_ribs_raw.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
-- Hot Wings Raw
|
||||
minetest.register_craftitem("bbq:hot_wings_raw", {
|
||||
description = ("Hot Wings Raw"),
|
||||
inventory_image = "bbq_hot_wings_raw.png",
|
||||
on_use = minetest.item_eat(3),
|
||||
})
|
||||
|
||||
-- Hot Wings
|
||||
minetest.register_craftitem("bbq:hot_wings", {
|
||||
description = ("Hot Wings"),
|
||||
inventory_image = "bbq_hot_wings.png",
|
||||
on_use = minetest.item_eat(8),
|
||||
})
|
||||
|
||||
-- Bacon Cheeseburger
|
||||
minetest.register_craftitem("bbq:bacon_cheeseburger", {
|
||||
description = ("Bacon Cheeseburger"),
|
||||
inventory_image = "bbq_bacon_cheeseburger.png",
|
||||
on_use = minetest.item_eat(9),
|
||||
})
|
||||
|
||||
-- Cheese Steak
|
||||
minetest.register_craftitem("bbq:cheese_steak", {
|
||||
description = ("Cheese Steak"),
|
||||
inventory_image = "bbq_cheese_steak.png",
|
||||
on_use = minetest.item_eat(8),
|
||||
})
|
||||
|
||||
-- Hamburger
|
||||
minetest.register_craftitem("bbq:hamburger", {
|
||||
description = ("Hamburger"),
|
||||
inventory_image = "bbq_hamburger.png",
|
||||
on_use = minetest.item_eat(9),
|
||||
})
|
||||
|
||||
-- Hamburger Patty
|
||||
minetest.register_craftitem("bbq:hamburger_patty", {
|
||||
description = ("Hamburger Patty"),
|
||||
inventory_image = "bbq_hamburger_patty.png",
|
||||
on_use = minetest.item_eat(8),
|
||||
})
|
||||
|
||||
-- Hamburger Patty Raw
|
||||
minetest.register_craftitem("bbq:hamburger_patty_raw", {
|
||||
description = ("Hamburger Patty Raw"),
|
||||
inventory_image = "bbq_hamburger_patty_raw.png",
|
||||
on_use = minetest.item_eat(3),
|
||||
})
|
||||
|
||||
-- Hot Dog
|
||||
minetest.register_craftitem("bbq:hotdog", {
|
||||
description = ("Hot Dog"),
|
||||
inventory_image = "bbq_hotdog.png",
|
||||
on_use = minetest.item_eat(8),
|
||||
})
|
||||
|
||||
-- Hotdog Raw
|
||||
minetest.register_craftitem("bbq:hotdog_cooked", {
|
||||
description = ("Hotdog Cooked"),
|
||||
inventory_image = "bbq_hotdog_cooked.png",
|
||||
on_use = minetest.item_eat(7),
|
||||
})
|
||||
|
||||
-- Hotdog Raw
|
||||
minetest.register_craftitem("bbq:hotdog_raw", {
|
||||
description = ("Hotdog Raw"),
|
||||
inventory_image = "bbq_hotdog_raw.png",
|
||||
on_use = minetest.item_eat(3),
|
||||
})
|
||||
|
||||
-- Pulled Pork
|
||||
minetest.register_craftitem("bbq:pulled_pork", {
|
||||
description = ("Pulled Pork"),
|
||||
inventory_image = "bbq_pulled_pork.png",
|
||||
on_use = minetest.item_eat(8),
|
||||
})
|
||||
|
||||
-- Grilled Pizza Raw
|
||||
minetest.register_craftitem("bbq:grilled_pizza_raw", {
|
||||
description = ("Grilled Pizza Raw"),
|
||||
inventory_image = "bbq_grilled_pizza_raw.png",
|
||||
on_use = minetest.item_eat(5),
|
||||
})
|
||||
|
||||
-- Grilled Pizza
|
||||
minetest.register_craftitem("bbq:grilled_pizza", {
|
||||
description = ("Grilled Pizza"),
|
||||
inventory_image = "bbq_grilled_pizza.png",
|
||||
on_use = minetest.item_eat(8),
|
||||
})
|
||||
|
||||
-- Raw Beef Jerky
|
||||
minetest.register_craftitem("bbq:beef_jerky_raw", {
|
||||
description = ("Beef Jerky Raw"),
|
||||
inventory_image = "bbq_beef_jerky_raw.png",
|
||||
on_use = minetest.item_eat(2),
|
||||
})
|
||||
|
||||
-- Beef Jerky
|
||||
minetest.register_craftitem("bbq:beef_jerky", {
|
||||
description = ("Beef Jerky"),
|
||||
inventory_image = "bbq_beef_jerky.png",
|
||||
on_use = minetest.item_eat(5),
|
||||
})
|
||||
|
||||
-- Raw Pepper Steak
|
||||
minetest.register_craftitem("bbq:pepper_steak_raw", {
|
||||
description = ("Pepper Steak Raw"),
|
||||
inventory_image = "bbq_pepper_steak_raw.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
-- Pepper Steak
|
||||
minetest.register_craftitem("bbq:pepper_steak", {
|
||||
description = ("Pepper Steak"),
|
||||
inventory_image = "bbq_pepper_steak.png",
|
||||
on_use = minetest.item_eat(10),
|
||||
})
|
||||
|
||||
-- Raw Bacon
|
||||
minetest.register_craftitem("bbq:bacon_raw", {
|
||||
description = ("Bacon Raw"),
|
||||
inventory_image = "bbq_bacon_raw.png",
|
||||
on_use = minetest.item_eat(3),
|
||||
})
|
||||
|
||||
-- Bacon
|
||||
minetest.register_craftitem("bbq:bacon", {
|
||||
description = ("Bacon"),
|
||||
inventory_image = "bbq_bacon.png",
|
||||
on_use = minetest.item_eat(7),
|
||||
})
|
||||
|
||||
-- London Broil Raw
|
||||
minetest.register_craftitem("bbq:london_broil_raw", {
|
||||
description = ("London Broil Raw"),
|
||||
inventory_image = "bbq_london_broil_raw.png",
|
||||
on_use = minetest.item_eat(3),
|
||||
})
|
||||
|
||||
-- London Broil
|
||||
minetest.register_craftitem("bbq:london_broil", {
|
||||
description = ("London Broil"),
|
||||
inventory_image = "bbq_london_broil.png",
|
||||
on_use = minetest.item_eat(7),
|
||||
})
|
||||
|
||||
-- Stuffed Chop Raw
|
||||
minetest.register_craftitem("bbq:stuffed_chop_raw", {
|
||||
description = ("Stuffed Chop Raw"),
|
||||
inventory_image = "bbq_stuffed_chop_raw.png",
|
||||
on_use = minetest.item_eat(3),
|
||||
})
|
||||
|
||||
-- Stuffed Chop
|
||||
minetest.register_craftitem("bbq:stuffed_chop", {
|
||||
description = ("Stuffed Chop"),
|
||||
inventory_image = "bbq_stuffed_chop.png",
|
||||
on_use = minetest.item_eat(8),
|
||||
})
|
||||
|
||||
-- Stuffed Pepper
|
||||
minetest.register_craftitem("bbq:stuffed_pepper", {
|
||||
description = ("Stuffed Pepper"),
|
||||
inventory_image = "bbq_stuffed_pepper.png",
|
||||
on_use = minetest.item_eat(9),
|
||||
})
|
||||
|
||||
-- Stuffed Pepper Raw
|
||||
minetest.register_craftitem("bbq:stuffed_pepper_raw", {
|
||||
description = ("Stuffed Pepper Raw"),
|
||||
inventory_image = "bbq_stuffed_pepper_raw.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
--Smoked Pepper
|
||||
minetest.register_craftitem("bbq:smoked_pepper", {
|
||||
description = ("Smoked Pepper"),
|
||||
inventory_image = "bbq_smoked_pepper.png",
|
||||
on_use = minetest.item_eat(5),
|
||||
})
|
||||
|
||||
--Tomato Sauce
|
||||
minetest.register_craftitem("bbq:tomato_sauce", {
|
||||
description = ("Tomato Sauce"),
|
||||
inventory_image = "bbq_tomato_sauce.png",
|
||||
groups = { food_tomato_sauce=1, vessel=1 },
|
||||
on_use = minetest.item_eat(2)
|
||||
})
|
||||
|
||||
--Grilled Tomato
|
||||
minetest.register_craftitem("bbq:grilled_tomato", {
|
||||
description = ("Grilled Tomato"),
|
||||
inventory_image = "bbq_grilled_tomato.png",
|
||||
on_use = minetest.item_eat(5),
|
||||
})
|
||||
|
||||
--Grilled Corn
|
||||
minetest.register_craftitem("bbq:grilled_corn", {
|
||||
description = ("Grilled Corn"),
|
||||
inventory_image = "bbq_grilled_corn.png",
|
||||
on_use = minetest.item_eat(8),
|
||||
})
|
||||
|
||||
--Grilled Corn Raw
|
||||
minetest.register_craftitem("bbq:grilled_corn_raw", {
|
||||
description = ("Grilled Corn Raw"),
|
||||
inventory_image = "bbq_grilled_corn_raw.png",
|
||||
on_use = minetest.item_eat(5),
|
||||
})
|
||||
|
||||
--Paprika
|
||||
minetest.register_node("bbq:paprika", {
|
||||
description = ("Smoked Paprika"),
|
||||
inventory_image = "bbq_paprika.png",
|
||||
wield_image = "bbq_paprika.png",
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
tiles = {"bbq_paprika.png"},
|
||||
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
-- Sea Salt
|
||||
minetest.register_node("bbq:sea_salt", {
|
||||
description = ("Sea Salt"),
|
||||
inventory_image = "bbq_sea_salt.png",
|
||||
wield_image = "bbq_sea_salt.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_sea_salt.png"},
|
||||
groups = {food_salt=1, vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
-- Brine
|
||||
minetest.register_node("bbq:brine", {
|
||||
description = ("Brine"),
|
||||
inventory_image = "bbq_brine.png",
|
||||
wield_image = "bbq_brine.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_brine.png"},
|
||||
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
-- Pickled Peppers
|
||||
minetest.register_node("bbq:pickled_peppers", {
|
||||
description = ("Pickled Peppers"),
|
||||
inventory_image = "bbq_pickled_peppers.png",
|
||||
wield_image = "bbq_pickled_peppers.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_pickled_peppers.png"},
|
||||
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
on_use = minetest.item_eat(5),
|
||||
})
|
||||
|
||||
-- Steak Sauce
|
||||
minetest.register_node("bbq:steak_sauce", {
|
||||
description = ("Steak Sauce"),
|
||||
inventory_image = "bbq_steak_sauce.png",
|
||||
wield_image = "bbq_steak_sauce.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_steak_sauce.png"},
|
||||
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
-- Liquid Smoke
|
||||
minetest.register_node("bbq:liquid_smoke", {
|
||||
description = ("Liquid Smoke"),
|
||||
inventory_image = "bbq_liquid_smoke.png",
|
||||
wield_image = "bbq_liquid_smoke.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_liquid_smoke.png"},
|
||||
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
-- Sugar
|
||||
minetest.register_node("bbq:sugar", {
|
||||
description = ("Sugar"),
|
||||
inventory_image = "bbq_sugar.png",
|
||||
wield_image = "bbq_sugar.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_sugar.png"},
|
||||
groups = {vessel = 1, food_sugar=1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
on_use = minetest.item_eat(2),
|
||||
})
|
||||
|
||||
-- Molasses
|
||||
minetest.register_node("bbq:molasses", {
|
||||
description = ("Molasses"),
|
||||
inventory_image = "bbq_molasses.png",
|
||||
wield_image = "bbq_molasses.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_molasses.png"},
|
||||
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
-- Hot Sauce
|
||||
minetest.register_node("bbq:hot_sauce", {
|
||||
description = ("Hot Sauce"),
|
||||
inventory_image = "bbq_hot_sauce.png",
|
||||
wield_image = "bbq_hot_sauce.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_hot_sauce.png"},
|
||||
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
-- BBQ Sauce
|
||||
minetest.register_node("bbq:bbq_sauce", {
|
||||
description = ("BBQ Sauce"),
|
||||
inventory_image = "bbq_bbq_sauce.png",
|
||||
wield_image = "bbq_bbq_sauce.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_bbq_sauce.png"},
|
||||
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("bbq:beef_map", {
|
||||
description = "Beef Map",
|
||||
inventory_image = "bbq_cow_map.png",
|
||||
tiles = {
|
||||
"default_junglewood.png", "default_junglewood.png",
|
||||
"default_junglewood.png", "default_junglewood.png",
|
||||
"default_junglewood.png", "bbq_cow_map.png",
|
||||
},
|
||||
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, 0.4, 0.5, 0.5, 0.5},
|
||||
|
||||
},
|
||||
},
|
||||
groups = {choppy=3, oddly_breakable_by_hand=2, flammable=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("bbq:smoker_blueprint", {
|
||||
description = "Smoker Blueprint",
|
||||
inventory_image = "bbq_smoker_blueprint.png",
|
||||
tiles = {
|
||||
"default_pine_wood.png", "default_pine_wood.png",
|
||||
"default_pine_wood.png", "default_pine_wood.png",
|
||||
"default_pine_wood.png", "bbq_smoker_blueprint.png",
|
||||
},
|
||||
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, 0.4, 0.5, 0.5, 0.5},
|
||||
|
||||
},
|
||||
},
|
||||
groups = {choppy=3, oddly_breakable_by_hand=2, flammable=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
-- Yeast
|
||||
minetest.register_node("bbq:yeast", {
|
||||
description = ("Yeast"),
|
||||
inventory_image = "bbq_yeast.png",
|
||||
wield_image = "bbq_yeast.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"bbq_yeast.png"},
|
||||
groups = {food_vinegarmother=1, vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
-------------------
|
||||
--Animal Drop Meats
|
||||
-------------------
|
||||
|
||||
-- Raw Beef
|
||||
minetest.register_craftitem("bbq:beef_raw", {
|
||||
description = ("Raw Beef"),
|
||||
inventory_image = "bbq_beef_raw.png",
|
||||
on_use = minetest.item_eat(3),
|
||||
})
|
||||
|
||||
-- Cooked Beef
|
||||
minetest.register_craftitem("bbq:beef", {
|
||||
description = ("Beef"),
|
||||
inventory_image = "bbq_beef_cooked.png",
|
||||
on_use = minetest.item_eat(8),
|
||||
})
|
||||
|
||||
------------
|
||||
--Utensils--
|
||||
------------
|
||||
|
||||
local cold_grills = {
|
||||
"bbq:kettle_grill",
|
||||
"bbq:propane_grill",
|
||||
"bbq:propane_grill_pro",
|
||||
"bbq:smoker",
|
||||
}
|
||||
|
||||
local hot_grills = {
|
||||
"bbq:kettle_grill_active",
|
||||
"bbq:propane_grill_active",
|
||||
"bbq:propane_grill_pro_active",
|
||||
"bbq:smoker_active",
|
||||
}
|
||||
|
||||
local function on_use_play_sound(sound, use_on_cold)
|
||||
return function(itemstack, placer, pointed_thing)
|
||||
if not pointed_thing or pointed_thing.type ~= "node" then return end
|
||||
local under_pos = pointed_thing.under
|
||||
local under_node_name = minetest.get_node(under_pos).name
|
||||
for _, grill_name in ipairs(hot_grills) do
|
||||
if under_node_name == grill_name then
|
||||
minetest.sound_play(sound, { pos = under_pos, max_hear_distance = 10 })
|
||||
return
|
||||
end
|
||||
end
|
||||
if use_on_cold then
|
||||
for _, grill_name in ipairs(cold_grills) do
|
||||
if under_node_name == grill_name then
|
||||
minetest.sound_play(sound, { pos = under_pos, max_hear_distance = 10 })
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--Spatula
|
||||
minetest.register_node("bbq:spatula", {
|
||||
description = ("Spatula"),
|
||||
inventory_image = "bbq_spatula.png",
|
||||
wield_image = "bbq_spatula.png",
|
||||
groups = {dig_immediate = 3, cracky=1, oddly_breakable_by_hand=1},
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
tiles = {
|
||||
"bbq_spatula_tile.png", "bbq_spatula_tile.png",
|
||||
"bbq_spatula_tile.png", "bbq_spatula_tile.png",
|
||||
"bbq_spatula_tile.png", "bbq_spatula_tile.png",
|
||||
},
|
||||
groups = {vessel = 1, dig_immediate = 3},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.15, -0.45, 0.5, 0.125, -.218, 0.45,},
|
||||
{-0.105, -0.218, 0.5, 0.085, -0.19, 0.45,},
|
||||
{-0.0625, -0.19, 0.5, 0.03125, .5, 0.45,},
|
||||
-- {-0.15, -0.45, 0.5, 0.125, -.1, 0.45,},
|
||||
},
|
||||
},
|
||||
on_use = on_use_play_sound("bbq_sizzle"),
|
||||
})
|
||||
|
||||
--Basting Brush
|
||||
minetest.register_node("bbq:basting_brush", {
|
||||
description = ("Basting Brush"),
|
||||
inventory_image = "bbq_basting_brush.png",
|
||||
wield_image = "bbq_basting_brush.png",
|
||||
groups = {dig_immediate = 3, cracky=1, oddly_breakable_by_hand=1},
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
tiles = {
|
||||
"bbq_basting_brush_hang.png", "bbq_basting_brush_hang.png",
|
||||
"bbq_basting_brush_hang.png", "bbq_basting_brush_hang.png",
|
||||
"bbq_basting_brush_hang.png", "bbq_basting_brush_hang.png",
|
||||
},
|
||||
groups = {vessel = 1, dig_immediate = 3},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.085, -0.45, 0.5, 0.085, -.2525, 0.45,},
|
||||
{-0.0625, -0.2525, 0.5, 0.0625, -.218, 0.45,},
|
||||
{-0.03, -0.218, 0.5, 0.03, 0.0 , 0.45,},
|
||||
{-0.0625, 0.0, 0.5, 0.0625, 0.465, 0.45,},
|
||||
{-0.03, .465, 0.5, 0.03, .5, 0.45,},
|
||||
},
|
||||
},
|
||||
on_use = on_use_play_sound("bbq_basting"),
|
||||
})
|
||||
|
||||
--Grill Brush
|
||||
minetest.register_node("bbq:grill_brush", {
|
||||
description = ("Grill Brush"),
|
||||
inventory_image = "bbq_grill_brush.png",
|
||||
wield_image = "bbq_grill_brush.png",
|
||||
groups = {dig_immediate = 3, cracky=1, oddly_breakable_by_hand=1},
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
tiles = {
|
||||
"bbq_grill_brush_hang_top.png", "bbq_grill_brush_hang.png",
|
||||
"bbq_grill_brush_hang.png", "bbq_grill_brush_hang.png",
|
||||
"bbq_grill_brush_hang.png", "bbq_grill_brush_hang.png",
|
||||
},
|
||||
groups = {vessel = 1, dig_immediate = 3},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.12, -0.5, 0.49, 0.12, -.467, 0.48,},
|
||||
{-0.15, -0.467, 0.5, 0.15, -.2225, 0.45,},
|
||||
{-0.125, -0.44, 0.5, 0.125, -.25, 0.35,},
|
||||
{-0.03, -0.2225, 0.5, 0.03, 0.13, 0.45,},
|
||||
{-0.0625, 0.13 , 0.5, 0.0625, 0.485, 0.45,},
|
||||
{-0.03, .485, 0.5, 0.03, .5, 0.45,},
|
||||
},
|
||||
},
|
||||
on_use = on_use_play_sound("bbq_grill_brush", true),
|
||||
})
|
10
mods/BBQ/depends.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
default
|
||||
bucket?
|
||||
mobs?
|
||||
mobs_animal?
|
||||
craft_guide?
|
||||
food?
|
||||
crops?
|
||||
vessels?
|
||||
farming?
|
||||
xdecor?
|
84
mods/BBQ/description.txt
Normal file
|
@ -0,0 +1,84 @@
|
|||
Your Dad's BBQ Mod
|
||||
---For Minetest---
|
||||
|
||||
Cause Mobs-Redo cows to drop beef.
|
||||
|
||||
Play's nice with Crops, Food, and Farming Redo addons. Can use potatos, corn, tomatos, chili peppers, cheese, sugar, and honey from Crops, Food, Farming Redo, Mobs-Redo and xDecor add-ons. Also compatible with Crops Plus, my expansion of the Crops add-on (adds peppers, peppercorns, and ground pepper to the Crops add-on, all are present in this addon but without the actual pepper plant).
|
||||
|
||||
Upgrades the BTUs of wood and wood planks in a realistic way when used in furnaces (including the smoker). Allows trees, planks, wooden slabs, wooden stairs, and sticks to be stored in woodpile.
|
||||
Adds propane and charcoal fuels.
|
||||
|
||||
All spices and sauces can be placed on the vessels shelf. Also added support for placing the bucket in the vessels shelf.
|
||||
|
||||
Adds the following items:
|
||||
|
||||
Smoker
|
||||
Kettle Grill
|
||||
Propane Grill
|
||||
Beef Map (Wall Hanging)
|
||||
Smoker Blueprint (Wall Hanging)
|
||||
Lump Charcoal (fuel)
|
||||
Charcoal Briquettes (fuel)
|
||||
Bag O' Charcoal (fuel)
|
||||
Propane (fuel)
|
||||
Sawdust
|
||||
Foil
|
||||
Chimney Smoke (Place on top of a chimney)
|
||||
|
||||
Wood Pile
|
||||
Acaica Wood Pile
|
||||
Aspen Wood Pile
|
||||
Junglewood Wood Pile
|
||||
Pine Wood Pile
|
||||
|
||||
Spatula
|
||||
Basting Brush
|
||||
Grill Brush
|
||||
|
||||
Paprika
|
||||
Sea Salt
|
||||
Sugar
|
||||
Molasses (byproduct of Sugar)
|
||||
Yeast (Can be found when harvesting grass and jungle grass)
|
||||
|
||||
Brine
|
||||
Liquid Smoke
|
||||
Hot suace
|
||||
BBQ Sauce
|
||||
Steak sauce
|
||||
Vinegar
|
||||
Vinegar Mother
|
||||
|
||||
Beef (Raw & Cooked)
|
||||
Rack of Lamb (Raw & Cooked)
|
||||
Leg of Lamb (Raw & Cooked)
|
||||
Ham (Raw & Cooked)
|
||||
BBQ Chicken (Raw & Cooked)
|
||||
BBQ Beef Ribs (Raw & Cooked)
|
||||
Hot Wings (Raw & Cooked)
|
||||
Hamburger
|
||||
Hamburger Patty (Raw and Cooked)
|
||||
Bacon Cheeseburger
|
||||
Hot Dog
|
||||
Hotdog (Raw and Cooked)
|
||||
Pulled Pork Sandwich
|
||||
London Broil (Raw and Cooked)
|
||||
Stuffed Porkchop (Raw and Cooked)
|
||||
Beef Jerky (Raw & Cooked)
|
||||
Pepper Steak (Raw & Cooked)
|
||||
Bacon (Raw & Cooked)
|
||||
Stuffed Pepper
|
||||
Beer
|
||||
Cheese Steak (Raw & Cooked)
|
||||
Grilled Pizza (Raw & Cooked)
|
||||
Grilled Tomato
|
||||
Brisket (Raw & Cooked)
|
||||
Corned Beef (Raw & Cooked)
|
||||
Veggie Kebabs (Raw & Cooked)
|
||||
Lamb Kebabs (Raw & Cooked)
|
||||
Smoked Pepper (Raw & Cooked)
|
||||
Grilled Corn (Raw & Cooked)
|
||||
Stuffed Mushroom (Raw & Cooked)
|
||||
Portebello Steaks (Raw & Cooked)
|
||||
Pickled peppers
|
||||
Veggie Packets (Raw & Cooked)
|
8
mods/BBQ/init.lua
Normal file
|
@ -0,0 +1,8 @@
|
|||
dofile(minetest.get_modpath("bbq").."/cooking.lua")
|
||||
dofile(minetest.get_modpath("bbq").."/crafts.lua")
|
||||
dofile(minetest.get_modpath("bbq").."/kettle.lua")
|
||||
dofile(minetest.get_modpath("bbq").."/propane_grill.lua")
|
||||
dofile(minetest.get_modpath("bbq").."/propane_grill_pro.lua")
|
||||
dofile(minetest.get_modpath("bbq").."/smoker.lua")
|
||||
dofile(minetest.get_modpath("bbq").."/overrides.lua")
|
||||
dofile(minetest.get_modpath("bbq").."/woodpile.lua")
|
495
mods/BBQ/kettle.lua
Normal file
|
@ -0,0 +1,495 @@
|
|||
|
||||
--
|
||||
-- Formspecs
|
||||
--
|
||||
|
||||
function default.get_smoker_active_formspec(fuel_percent, item_percent)
|
||||
return "size[8,8.5]"..
|
||||
default.gui_bg..
|
||||
default.gui_bg_img..
|
||||
default.gui_slots..
|
||||
"list[context;src;2.75,0.5;1,1;]"..
|
||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||
"image[2.75,1.5;1,1;bbq_kettle_grill_fire_bg.png^[lowpart:"..
|
||||
(100-fuel_percent)..":bbq_kettle_grill_fire_fg.png]"..
|
||||
"image[3.75,1.5;1,1;gui_smoker_arrow_bg.png^[lowpart:"..
|
||||
(item_percent)..":gui_smoker_arrow_fg.png^[transformR270]"..
|
||||
"list[context;dst;4.8,0.5;3,3;]"..
|
||||
"list[current_player;main;0,4.25;8,1;]"..
|
||||
"list[current_player;main;0,5.5;8,3;8]"..
|
||||
"listring[context;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;fuel]"..
|
||||
"listring[current_player;main]"..
|
||||
default.get_hotbar_bg(0, 4.25)
|
||||
end
|
||||
|
||||
function default.get_smoker_inactive_formspec()
|
||||
return "size[8,8.5]"..
|
||||
default.gui_bg..
|
||||
default.gui_bg_img..
|
||||
default.gui_slots..
|
||||
"list[context;src;2.75,0.5;1,1;]"..
|
||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||
"image[2.75,1.5;1,1;bbq_kettle_grill_fire_bg.png]"..
|
||||
"image[3.75,1.5;1,1;gui_smoker_arrow_bg.png^[transformR270]"..
|
||||
"list[context;dst;4.8,0.5;3,3;]"..
|
||||
"list[current_player;main;0,4.25;8,1;]"..
|
||||
"list[current_player;main;0,5.5;8,3;8]"..
|
||||
"listring[context;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;fuel]"..
|
||||
"listring[current_player;main]"..
|
||||
default.get_hotbar_bg(0, 4.25)
|
||||
end
|
||||
|
||||
--
|
||||
-- Node callback functions that are the same for active and inactive smoker
|
||||
--
|
||||
|
||||
local function can_dig(pos, player)
|
||||
local meta = minetest.get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src")
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_put(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if listname == "fuel" then
|
||||
if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then
|
||||
if inv:is_empty("src") then
|
||||
meta:set_string("infotext", "smoker is empty")
|
||||
end
|
||||
return stack:get_count()
|
||||
else
|
||||
return 0
|
||||
end
|
||||
elseif listname == "src" then
|
||||
return stack:get_count()
|
||||
elseif listname == "dst" then
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local stack = inv:get_stack(from_list, from_index)
|
||||
return allow_metadata_inventory_put(pos, to_list, to_index, stack, player)
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_take(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end
|
||||
|
||||
local function swap_node(pos, name)
|
||||
local node = minetest.get_node(pos)
|
||||
if node.name == name then
|
||||
return
|
||||
end
|
||||
node.name = name
|
||||
minetest.swap_node(pos, node)
|
||||
end
|
||||
|
||||
local function smoker_node_timer(pos, elapsed)
|
||||
--
|
||||
-- Inizialize metadata
|
||||
--
|
||||
local meta = minetest.get_meta(pos)
|
||||
local fuel_time = meta:get_float("fuel_time") or 0
|
||||
local src_time = meta:get_float("src_time") or 0
|
||||
local fuel_totaltime = meta:get_float("fuel_totaltime") or 0
|
||||
|
||||
local inv = meta:get_inventory()
|
||||
local srclist, fuellist
|
||||
|
||||
local cookable, cooked
|
||||
local fuel
|
||||
|
||||
local update = true
|
||||
while elapsed > 0 and update do
|
||||
update = false
|
||||
|
||||
srclist = inv:get_list("src")
|
||||
fuellist = inv:get_list("fuel")
|
||||
|
||||
--
|
||||
-- Cooking
|
||||
--
|
||||
|
||||
-- Check if we have cookable content
|
||||
local aftercooked
|
||||
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
|
||||
cookable = cooked.time ~= 0
|
||||
|
||||
local el = math.min(elapsed, fuel_totaltime - fuel_time)
|
||||
|
||||
|
||||
if cookable then -- fuel lasts long enough, adjust el to cooking duration
|
||||
el = math.min(el, cooked.time - src_time)
|
||||
end
|
||||
|
||||
-- Check if we have enough fuel to burn
|
||||
if fuel_time < fuel_totaltime then
|
||||
-- The smoker is currently active and has enough fuel
|
||||
fuel_time = fuel_time + el
|
||||
-- If there is a cookable item then check if it is ready yet
|
||||
if cookable then
|
||||
src_time = src_time + el
|
||||
if src_time >= cooked.time then
|
||||
-- Place result in dst list if possible
|
||||
if inv:room_for_item("dst", cooked.item) then
|
||||
inv:add_item("dst", cooked.item)
|
||||
inv:set_stack("src", 1, aftercooked.items[1])
|
||||
src_time = src_time - cooked.time
|
||||
update = true
|
||||
end
|
||||
else
|
||||
-- Item could not be cooked: probably missing fuel
|
||||
update = true
|
||||
end
|
||||
end
|
||||
else
|
||||
-- smoker ran out of fuel
|
||||
if cookable then
|
||||
-- We need to get new fuel
|
||||
local afterfuel
|
||||
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
|
||||
|
||||
if fuel.time == 0 then
|
||||
-- No valid fuel in fuel list
|
||||
fuel_totaltime = 0
|
||||
src_time = 0
|
||||
else
|
||||
-- Take fuel from fuel list
|
||||
inv:set_stack("fuel", 1, afterfuel.items[1])
|
||||
update = true
|
||||
fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time)
|
||||
end
|
||||
else
|
||||
-- We don't need to get new fuel since there is no cookable item
|
||||
fuel_totaltime = 0
|
||||
src_time = 0
|
||||
end
|
||||
fuel_time = 0
|
||||
end
|
||||
|
||||
elapsed = elapsed - el
|
||||
end
|
||||
|
||||
if fuel and fuel_totaltime > fuel.time then
|
||||
fuel_totaltime = fuel.time
|
||||
end
|
||||
if srclist[1]:is_empty() then
|
||||
src_time = 0
|
||||
end
|
||||
|
||||
--
|
||||
-- Update formspec, infotext and node
|
||||
--
|
||||
local formspec
|
||||
local item_state
|
||||
local item_percent = 0
|
||||
if cookable then
|
||||
item_percent = math.floor(src_time / cooked.time * 100)
|
||||
if item_percent > 100 then
|
||||
item_state = "100% (output full)"
|
||||
else
|
||||
item_state = item_percent .. "%"
|
||||
end
|
||||
else
|
||||
if srclist[1]:is_empty() then
|
||||
item_state = "Empty"
|
||||
else
|
||||
item_state = "Not cookable"
|
||||
end
|
||||
end
|
||||
|
||||
local fuel_state = "Empty"
|
||||
local active = "inactive"
|
||||
local result = false
|
||||
|
||||
if fuel_totaltime ~= 0 then
|
||||
active = "active"
|
||||
local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100)
|
||||
fuel_state = fuel_percent .. "%"
|
||||
formspec = default.get_smoker_active_formspec(fuel_percent, item_percent)
|
||||
swap_node(pos, "bbq:kettle_grill_active")
|
||||
-- make sure timer restarts automatically
|
||||
result = true
|
||||
else
|
||||
if not fuellist[1]:is_empty() then
|
||||
fuel_state = "0%"
|
||||
end
|
||||
formspec = default.get_smoker_inactive_formspec()
|
||||
swap_node(pos, "bbq:kettle_grill")
|
||||
-- stop timer on the inactive smoker
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end
|
||||
|
||||
local infotext = "smoker " .. active .. "\n(Item: " .. item_state ..
|
||||
"; Fuel: " .. fuel_state .. ")"
|
||||
|
||||
--
|
||||
-- Set meta values
|
||||
--
|
||||
meta:set_float("fuel_totaltime", fuel_totaltime)
|
||||
meta:set_float("fuel_time", fuel_time)
|
||||
meta:set_float("src_time", src_time)
|
||||
meta:set_string("formspec", formspec)
|
||||
meta:set_string("infotext", infotext)
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
-------------------
|
||||
-- Node definitions
|
||||
-------------------
|
||||
|
||||
minetest.register_node("bbq:kettle_grill", {
|
||||
description = "Kettle Grill",
|
||||
inventory_image = "bbq_kettle_grill_inv.png",
|
||||
wield_image = "bbq_kettle_grill_inv.png",
|
||||
|
||||
tiles = {
|
||||
"bbq_kettle_grill_ext_top.png", "bbq_kettle_grill_ext_top.png",
|
||||
"bbq_kettle_grill_ext.png", "bbq_kettle_grill_ext.png",
|
||||
"bbq_kettle_grill_ext.png", "bbq_kettle_grill_ext.png",
|
||||
},
|
||||
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, -0.3, 0.5}, -- main body
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
groups = {cracky=2},
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
|
||||
|
||||
can_dig = can_dig,
|
||||
|
||||
on_timer = smoker_node_timer,
|
||||
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec", default.get_smoker_inactive_formspec())
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size('src', 1)
|
||||
inv:set_size('fuel', 1 )
|
||||
inv:set_size('dst', 9)
|
||||
end,
|
||||
|
||||
on_metadata_inventory_move = function(pos)
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos)
|
||||
-- start timer function, it will sort out whether smoker can burn or not.
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
end,
|
||||
on_blast = function(pos)
|
||||
local drops = {}
|
||||
default.get_inventory_drops(pos, "src", drops)
|
||||
default.get_inventory_drops(pos, "fuel", drops)
|
||||
default.get_inventory_drops(pos, "dst", drops)
|
||||
drops[#drops+1] = "bbq:kettle_grill"
|
||||
minetest.remove_node(pos)
|
||||
return drops
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
|
||||
|
||||
after_place_node = function(pos, placer)
|
||||
minetest.set_node({x = pos.x, y = pos.y, z = pos.z},{name = "bbq:kettle_grill_base", param2=minetest.dir_to_facedir(placer:get_look_dir())});
|
||||
minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z},{name = "bbq:kettle_grill", param2=minetest.dir_to_facedir(placer:get_look_dir())});
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "bbq:kettle_grill_base" then
|
||||
minetest.set_node({x = pos.x, y = pos.y - 1, z = pos.z},{name = "air"}) end
|
||||
end,
|
||||
|
||||
})
|
||||
|
||||
minetest.register_node("bbq:kettle_grill_active", {
|
||||
description = "Kettle Grill Active",
|
||||
inventory_image = "bbq_kettle_grill_inv.png",
|
||||
wield_image = "bbq_kettle_grill_inv.png",
|
||||
|
||||
tiles = {
|
||||
"bbq_kettle_grill_ext_top_ani.png", "bbq_kettle_grill_ext_top.png",
|
||||
"bbq_kettle_grill_ext_ani.png", "bbq_kettle_grill_ext_ani.png",
|
||||
"bbq_kettle_grill_ext_ani.png", "bbq_kettle_grill_ext_ani.png",
|
||||
},
|
||||
|
||||
tiles = {
|
||||
"bbq_kettle_grill_ext_top_ani.png", "bbq_kettle_grill_ext_top.png",
|
||||
|
||||
{
|
||||
image = "bbq_kettle_grill_ext_ani.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
image = "bbq_kettle_grill_ext_ani.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
image = "bbq_kettle_grill_ext_ani.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
image = "bbq_kettle_grill_ext_ani.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, -- main body
|
||||
{-0.18, -0.3, -0.0, 0.18, .4, 0.0}, -- smoke
|
||||
{-0.0, -0.3, -0.18, 0.0, .4, 0.18}, -- smoke
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
groups = {cracky=2, not_in_creative_inventory=1},
|
||||
drop = "bbq:kettle_grill",
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
on_timer = smoker_node_timer,
|
||||
|
||||
can_dig = can_dig,
|
||||
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
|
||||
after_place_node = function(pos, placer)
|
||||
minetest.set_node({x = pos.x, y = pos.y, z = pos.z},{name = "bbq:kettle_grill_base", param2=minetest.dir_to_facedir(placer:get_look_dir())});
|
||||
minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z},{name = "bbq:kettle_grill", param2=minetest.dir_to_facedir(placer:get_look_dir())});
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "bbq:kettle_grill_base" then
|
||||
minetest.set_node({x = pos.x, y = pos.y - 1, z = pos.z},{name = "air"}) end
|
||||
end,
|
||||
|
||||
})
|
||||
|
||||
minetest.register_node("bbq:kettle_grill_base", {
|
||||
description = "Kettle Grill Base",
|
||||
|
||||
tiles = {
|
||||
"bbq_kettle_top.png", "bbq_kettle_bottom.png^[transformFY",
|
||||
"bbq_kettle.png^[transformFX", "bbq_kettle.png",
|
||||
"bbq_kettle_side.png", "bbq_kettle_side.png",
|
||||
},
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.45, 0.4, -0.45, 0.45, 0.5, 0.45}, -- main body
|
||||
{-0.4, 0.313, -0.4, 0.4, 0.5, 0.4}, -- main body
|
||||
{-0.1, 0.1, -0.05, 0.05, 0.5, 0.05}, -- catch can
|
||||
{-0.342, -0.5, -0.35, -0.292, 0.5, -0.30}, -- leg
|
||||
{-0.342, -0.5, 0.35, -0.292, 0.5, 0.30}, -- leg
|
||||
{0.342, -0.5, -0.35, 0.292, 0.5, -0.30}, -- leg
|
||||
{0.342, -0.5, 0.35, 0.292, 0.5, 0.30}, -- leg
|
||||
{-0.342, -0.3, -0.35, 0.35, -0.35, -0.30}, -- cross support
|
||||
{-0.342, -0.3, 0.35, 0.30, -0.35, 0.30}, -- cross support
|
||||
{0.342, -0.3, -0.35, 0.30, -0.35, 0.35}, -- cross support
|
||||
{-0.342, -0.3, -0.35, -0.30, -0.35, 0.35}, -- cross support
|
||||
{-0.30, -0.315, -0.2, 0.30, -0.335, -0.18}, -- grid
|
||||
{-0.30, -0.315, 0.2, 0.30, -0.335, 0.18}, -- grid
|
||||
{-0.30, -0.315, -0.06, 0.30, -0.335, -0.08}, -- grid
|
||||
{-0.30, -0.315, 0.06, 0.30, -0.335, 0.08}, -- grid
|
||||
{-0.2, -0.315, 0.30, -0.18, -0.335, -0.30}, -- grid
|
||||
{0.2, -0.315, 0.30, 0.18, -0.335, -0.30}, -- grid
|
||||
{-0.06, -0.315, 0.30, -0.08, -0.335, -0.30}, -- grid
|
||||
{0.06, -0.315, 0.30, 0.08, -0.335, -0.30}, -- grid
|
||||
|
||||
{-0.468, -0.5, -0.425, -0.35, -0.25, -0.225}, -- wheel
|
||||
{-0.468, -0.475, -0.45, -0.35, -0.275, -0.20}, -- wheel
|
||||
{-0.475, -0.375, -0.345, -0.415, -0.345, -0.315}, -- bolt
|
||||
|
||||
{0.45, -0.5, -0.425, 0.35, -0.25, -0.225}, -- wheel
|
||||
{0.45, -0.475, -0.45, 0.35, -0.275, -0.20}, -- wheel
|
||||
{0.475, -0.375, -0.345, 0.415, -0.345, -0.315}, -- bolt
|
||||
|
||||
{-0.29, -0.5, 0.36, -0.36, -0.4375, 0.29}, -- foot
|
||||
{0.29, -0.5, 0.36, 0.36, -0.4375, 0.29}, -- foot
|
||||
|
||||
-- {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- main body
|
||||
},
|
||||
},
|
||||
groups = {cracky=2, not_in_creative_inventory=1},
|
||||
drop = "bbq:kettle_grill",
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z},{name = "air"})
|
||||
end,
|
||||
|
||||
after_place_node = function(pos, placer)
|
||||
minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z},{name = "bbq:kettle_grill", param2=minetest.dir_to_facedir(placer:get_look_dir())});
|
||||
|
||||
end,
|
||||
|
||||
})
|
1
mods/BBQ/mod.conf
Normal file
|
@ -0,0 +1 @@
|
|||
name = bbq
|
181
mods/BBQ/overrides.lua
Normal file
|
@ -0,0 +1,181 @@
|
|||
---------
|
||||
--ALIASES
|
||||
---------
|
||||
minetest.register_alias("bbq:mutton_raw", "mobs:mutton_raw")
|
||||
minetest.register_alias("bbq:mutton", "mobs:mutton_cooked")
|
||||
minetest.register_alias("bbq:wood_pile", "bbq:woodpile_aspen")
|
||||
|
||||
--------------------------
|
||||
--COMPATIBILITY WITH CROPS
|
||||
--------------------------
|
||||
|
||||
if minetest.registered_items["crops:tomato"] ~= nil then
|
||||
minetest.override_item("crops:tomato", {
|
||||
groups = {food_tomato=1},
|
||||
})
|
||||
end
|
||||
|
||||
if minetest.registered_items["crops:pepper"] ~= nil then
|
||||
minetest.override_item("crops:pepper", {
|
||||
groups = {food_pepper=1},
|
||||
})
|
||||
end
|
||||
|
||||
if minetest.registered_items["crops:peppercorn"] ~= nil then
|
||||
minetest.override_item("crops:peppercorn", {
|
||||
groups = {food_peppercorn=1},
|
||||
})
|
||||
end
|
||||
|
||||
if minetest.registered_items["crops:corn_cob"] ~= nil then
|
||||
minetest.override_item("crops:corn_cob", {
|
||||
groups = {food_corn=1},
|
||||
})
|
||||
end
|
||||
|
||||
if minetest.registered_items["crops:potato"] ~= nil then
|
||||
minetest.override_item("crops:potato", {
|
||||
groups = {food_potato=1},
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
--------------------xdecor-----------------------------
|
||||
|
||||
if minetest.registered_items["xdecor:honey"] ~= nil then
|
||||
minetest.override_item("xdecor:honey", {
|
||||
groups = {food_sugar=1, food_honey=1},
|
||||
})
|
||||
end
|
||||
|
||||
---------------------------------
|
||||
--UPGRADE MEAT DROPS IN MOBS REDO
|
||||
---------------------------------
|
||||
if minetest.registered_items["mobs_animal:cow"] ~= nil then
|
||||
local def = minetest.registered_entities["mobs_animal:cow"]
|
||||
assert(def, "mobs:cow not found")
|
||||
def.drops = {
|
||||
{name = "bbq:beef_raw", chance = 1, min = 1, max = 3},
|
||||
{name = "mobs:leather", chance = 1, min = 1, max = 2},
|
||||
}
|
||||
end
|
||||
|
||||
-------------------------------
|
||||
--MAKE YEAST NATURALLY OCCURING
|
||||
-------------------------------
|
||||
|
||||
for i = 1, 5 do
|
||||
minetest.override_item("default:grass_"..i, {drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{items = {'farming:seed_wheat'},rarity = 5},
|
||||
{items = {'bbq:yeast'},rarity = 8},
|
||||
{items = {'default:grass_1'}},
|
||||
}
|
||||
}})
|
||||
end
|
||||
|
||||
minetest.override_item("default:junglegrass", {drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{items = {'farming:seed_cotton'},rarity = 8},
|
||||
{items = {'bbq:yeast'},rarity = 8},
|
||||
{items = {'default:junglegrass'}},
|
||||
}
|
||||
}})
|
||||
|
||||
-----------------------------------------------
|
||||
--MAKE VESSEL TYPE ITEMS WORK WITH VESSEL SHELF
|
||||
-----------------------------------------------
|
||||
if minetest.registered_items["bucket:bucket_empty"] ~= nil then
|
||||
minetest.override_item("bucket:bucket_empty", {
|
||||
groups = {vessel=1},
|
||||
})
|
||||
|
||||
minetest.override_item("bucket:bucket_water", {
|
||||
groups = {vessel=1},
|
||||
})
|
||||
|
||||
minetest.override_item("bucket:bucket_river_water", {
|
||||
groups = {vessel=1},
|
||||
})
|
||||
|
||||
minetest.override_item("bucket:bucket_lava", {
|
||||
groups = {vessel=1},
|
||||
})
|
||||
end
|
||||
|
||||
if minetest.registered_items["mobs:bucket_milk"] ~= nil then
|
||||
minetest.override_item("mobs:bucket_milk", {
|
||||
groups = {vessel=1},
|
||||
})
|
||||
end
|
||||
|
||||
----------------------
|
||||
--UPGRADING WOOD FUELS
|
||||
----------------------
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:junglewood",
|
||||
burntime = 100,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:acacia_wood",
|
||||
burntime = 92,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:wood",
|
||||
burntime = 85,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:pine_wood",
|
||||
burntime = 75,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:aspen_wood",
|
||||
burntime = 65,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "stairs:slab_junglewood",
|
||||
burntime = 12,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "stairs:slab_acacia_wood",
|
||||
burntime = 11,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "stairs:slab_wood",
|
||||
burntime = 10,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "stairs:slab_pine_wood",
|
||||
burntime = 8,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "stairs:slab_aspen_wood",
|
||||
burntime = 7,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:stick",
|
||||
burntime = 2,
|
||||
})
|
389
mods/BBQ/propane_grill.lua
Normal file
|
@ -0,0 +1,389 @@
|
|||
|
||||
--
|
||||
-- Formspecs
|
||||
--
|
||||
|
||||
function default.get_propane_grill_active_formspec(fuel_percent, item_percent)
|
||||
return "size[8,8.5]"..
|
||||
default.gui_bg..
|
||||
default.gui_bg_img..
|
||||
default.gui_slots..
|
||||
"list[context;src;2.75,0.5;1,1;]"..
|
||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||
"image[2.75,1.5;1,1;bbq_smoker_fire_bg.png^[lowpart:"..
|
||||
(100-fuel_percent)..":bbq_smoker_fire_fg.png]"..
|
||||
"image[3.75,1.5;1,1;gui_smoker_arrow_bg.png^[lowpart:"..
|
||||
(item_percent)..":gui_smoker_arrow_fg.png^[transformR270]"..
|
||||
"list[context;dst;4.8,0.5;3,3;]"..
|
||||
"list[current_player;main;0,4.25;8,1;]"..
|
||||
"list[current_player;main;0,5.5;8,3;8]"..
|
||||
"listring[context;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;fuel]"..
|
||||
"listring[current_player;main]"..
|
||||
default.get_hotbar_bg(0, 4.25)
|
||||
end
|
||||
|
||||
function default.get_propane_grill_inactive_formspec()
|
||||
return "size[8,8.5]"..
|
||||
default.gui_bg..
|
||||
default.gui_bg_img..
|
||||
default.gui_slots..
|
||||
"list[context;src;2.75,0.5;1,1;]"..
|
||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||
"image[2.75,1.5;1,1;bbq_smoker_fire_bg.png]"..
|
||||
"image[3.75,1.5;1,1;gui_smoker_arrow_bg.png^[transformR270]"..
|
||||
"list[context;dst;4.8,0.5;3,3;]"..
|
||||
"list[current_player;main;0,4.25;8,1;]"..
|
||||
"list[current_player;main;0,5.5;8,3;8]"..
|
||||
"listring[context;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;fuel]"..
|
||||
"listring[current_player;main]"..
|
||||
default.get_hotbar_bg(0, 4.25)
|
||||
end
|
||||
|
||||
--
|
||||
-- Node callback functions that are the same for active and inactive propane_grill
|
||||
--
|
||||
|
||||
local function can_dig(pos, player)
|
||||
local meta = minetest.get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src")
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_put(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if listname == "fuel" then
|
||||
if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then
|
||||
if inv:is_empty("src") then
|
||||
meta:set_string("infotext", "propane_grill is empty")
|
||||
end
|
||||
return stack:get_count()
|
||||
else
|
||||
return 0
|
||||
end
|
||||
elseif listname == "src" then
|
||||
return stack:get_count()
|
||||
elseif listname == "dst" then
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local stack = inv:get_stack(from_list, from_index)
|
||||
return allow_metadata_inventory_put(pos, to_list, to_index, stack, player)
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_take(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end
|
||||
|
||||
local function swap_node(pos, name)
|
||||
local node = minetest.get_node(pos)
|
||||
if node.name == name then
|
||||
return
|
||||
end
|
||||
node.name = name
|
||||
minetest.swap_node(pos, node)
|
||||
end
|
||||
|
||||
local function propane_grill_node_timer(pos, elapsed)
|
||||
--
|
||||
-- Inizialize metadata
|
||||
--
|
||||
local meta = minetest.get_meta(pos)
|
||||
local fuel_time = meta:get_float("fuel_time") or 0
|
||||
local src_time = meta:get_float("src_time") or 0
|
||||
local fuel_totaltime = meta:get_float("fuel_totaltime") or 0
|
||||
|
||||
local inv = meta:get_inventory()
|
||||
local srclist, fuellist
|
||||
|
||||
local cookable, cooked
|
||||
local fuel
|
||||
|
||||
local update = true
|
||||
while elapsed > 0 and update do
|
||||
update = false
|
||||
|
||||
srclist = inv:get_list("src")
|
||||
fuellist = inv:get_list("fuel")
|
||||
|
||||
--
|
||||
-- Cooking
|
||||
--
|
||||
|
||||
-- Check if we have cookable content
|
||||
local aftercooked
|
||||
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
|
||||
cookable = cooked.time ~= 0
|
||||
|
||||
local el = math.min(elapsed, fuel_totaltime - fuel_time)
|
||||
|
||||
|
||||
if cookable then -- fuel lasts long enough, adjust el to cooking duration
|
||||
el = math.min(el, cooked.time - src_time)
|
||||
end
|
||||
|
||||
-- Check if we have enough fuel to burn
|
||||
if fuel_time < fuel_totaltime then
|
||||
-- The propane_grill is currently active and has enough fuel
|
||||
fuel_time = fuel_time + el
|
||||
-- If there is a cookable item then check if it is ready yet
|
||||
if cookable then
|
||||
src_time = src_time + el
|
||||
if src_time >= cooked.time then
|
||||
-- Place result in dst list if possible
|
||||
if inv:room_for_item("dst", cooked.item) then
|
||||
inv:add_item("dst", cooked.item)
|
||||
inv:set_stack("src", 1, aftercooked.items[1])
|
||||
src_time = src_time - cooked.time
|
||||
update = true
|
||||
end
|
||||
else
|
||||
-- Item could not be cooked: probably missing fuel
|
||||
update = true
|
||||
end
|
||||
end
|
||||
else
|
||||
-- propane_grill ran out of fuel
|
||||
if cookable then
|
||||
-- We need to get new fuel
|
||||
local afterfuel
|
||||
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
|
||||
|
||||
if fuel.time == 0 then
|
||||
-- No valid fuel in fuel list
|
||||
fuel_totaltime = 0
|
||||
src_time = 0
|
||||
else
|
||||
-- Take fuel from fuel list
|
||||
inv:set_stack("fuel", 1, afterfuel.items[1])
|
||||
update = true
|
||||
fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time)
|
||||
end
|
||||
else
|
||||
-- We don't need to get new fuel since there is no cookable item
|
||||
fuel_totaltime = 0
|
||||
src_time = 0
|
||||
end
|
||||
fuel_time = 0
|
||||
end
|
||||
|
||||
elapsed = elapsed - el
|
||||
end
|
||||
|
||||
if fuel and fuel_totaltime > fuel.time then
|
||||
fuel_totaltime = fuel.time
|
||||
end
|
||||
if srclist[1]:is_empty() then
|
||||
src_time = 0
|
||||
end
|
||||
|
||||
--
|
||||
-- Update formspec, infotext and node
|
||||
--
|
||||
local formspec
|
||||
local item_state
|
||||
local item_percent = 0
|
||||
if cookable then
|
||||
item_percent = math.floor(src_time / cooked.time * 100)
|
||||
if item_percent > 100 then
|
||||
item_state = "100% (output full)"
|
||||
else
|
||||
item_state = item_percent .. "%"
|
||||
end
|
||||
else
|
||||
if srclist[1]:is_empty() then
|
||||
item_state = "Empty"
|
||||
else
|
||||
item_state = "Not cookable"
|
||||
end
|
||||
end
|
||||
|
||||
local fuel_state = "Empty"
|
||||
local active = "inactive"
|
||||
local result = false
|
||||
|
||||
if fuel_totaltime ~= 0 then
|
||||
active = "active"
|
||||
local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100)
|
||||
fuel_state = fuel_percent .. "%"
|
||||
formspec = default.get_propane_grill_active_formspec(fuel_percent, item_percent)
|
||||
swap_node(pos, "bbq:propane_grill_active")
|
||||
-- make sure timer restarts automatically
|
||||
result = true
|
||||
else
|
||||
if not fuellist[1]:is_empty() then
|
||||
fuel_state = "0%"
|
||||
end
|
||||
formspec = default.get_propane_grill_inactive_formspec()
|
||||
swap_node(pos, "bbq:propane_grill")
|
||||
-- stop timer on the inactive propane_grill
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end
|
||||
|
||||
local infotext = "propane_grill " .. active .. "\n(Item: " .. item_state ..
|
||||
"; Fuel: " .. fuel_state .. ")"
|
||||
|
||||
--
|
||||
-- Set meta values
|
||||
--
|
||||
meta:set_float("fuel_totaltime", fuel_totaltime)
|
||||
meta:set_float("fuel_time", fuel_time)
|
||||
meta:set_float("src_time", src_time)
|
||||
meta:set_string("formspec", formspec)
|
||||
meta:set_string("infotext", infotext)
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
-------------------
|
||||
-- Node definitions
|
||||
-------------------
|
||||
|
||||
minetest.register_node("bbq:propane_grill", {
|
||||
description = "Propane Grill",
|
||||
tiles = {
|
||||
"bbq_propane_grill_top.png", "bbq_propane_grill_bottom.png",
|
||||
"bbq_propane_grill_side.png", "bbq_propane_grill_side.png",
|
||||
"bbq_propane_grill_back.png", "bbq_propane_grill_front.png",
|
||||
},
|
||||
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.25, 0.5}, -- main body
|
||||
{-0.5, 0.25, -0.5, 0.5, 0.68, 0.5}, -- top
|
||||
},
|
||||
},
|
||||
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky=2},
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
|
||||
can_dig = can_dig,
|
||||
|
||||
on_timer = propane_grill_node_timer,
|
||||
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec", default.get_propane_grill_inactive_formspec())
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size('src', 1)
|
||||
inv:set_size('fuel', 1 )
|
||||
inv:set_size('dst', 9)
|
||||
end,
|
||||
|
||||
on_metadata_inventory_move = function(pos)
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos)
|
||||
-- start timer function, it will sort out whether propane_grill can burn or not.
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
end,
|
||||
on_blast = function(pos)
|
||||
local drops = {}
|
||||
default.get_inventory_drops(pos, "src", drops)
|
||||
default.get_inventory_drops(pos, "fuel", drops)
|
||||
default.get_inventory_drops(pos, "dst", drops)
|
||||
drops[#drops+1] = "bbq:propane_grill"
|
||||
minetest.remove_node(pos)
|
||||
return drops
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
})
|
||||
|
||||
minetest.register_node("bbq:propane_grill_active", {
|
||||
description = "Propane Grill",
|
||||
|
||||
|
||||
|
||||
tiles = {
|
||||
"bbq_propane_grill_top.png", "bbq_propane_grill_bottom.png",
|
||||
|
||||
{
|
||||
image = "bbq_propane_grill_side_active.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
image = "bbq_propane_grill_side_active.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
|
||||
"bbq_propane_grill_back.png",
|
||||
{
|
||||
image = "bbq_propane_grill_front_active.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.25, 0.5}, -- main body
|
||||
{-0.5, 0.25, -0.5, 0.5, 0.68, 0.5}, -- top
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
sunlight_propagates = true,
|
||||
drop = "bbq:propane_grill",
|
||||
groups = {cracky=2, not_in_creative_inventory=1},
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_timer = propane_grill_node_timer,
|
||||
|
||||
can_dig = can_dig,
|
||||
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
})
|
391
mods/BBQ/propane_grill_pro.lua
Normal file
|
@ -0,0 +1,391 @@
|
|||
|
||||
--
|
||||
-- Formspecs
|
||||
--
|
||||
|
||||
function default.get_propane_grill_pro_active_formspec(fuel_percent, item_percent)
|
||||
return "size[8,8.5]"..
|
||||
default.gui_bg..
|
||||
default.gui_bg_img..
|
||||
default.gui_slots..
|
||||
"list[context;src;2.75,0.5;1,1;]"..
|
||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||
"image[2.75,1.5;1,1;bbq_smoker_fire_bg.png^[lowpart:"..
|
||||
(100-fuel_percent)..":bbq_smoker_fire_fg.png]"..
|
||||
"image[3.75,1.5;1,1;gui_smoker_arrow_bg.png^[lowpart:"..
|
||||
(item_percent)..":gui_smoker_arrow_fg.png^[transformR270]"..
|
||||
"list[context;dst;4.8,0.5;3,3;]"..
|
||||
"list[current_player;main;0,4.25;8,1;]"..
|
||||
"list[current_player;main;0,5.5;8,3;8]"..
|
||||
"listring[context;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;fuel]"..
|
||||
"listring[current_player;main]"..
|
||||
default.get_hotbar_bg(0, 4.25)
|
||||
end
|
||||
|
||||
function default.get_propane_grill_pro_inactive_formspec()
|
||||
return "size[8,8.5]"..
|
||||
default.gui_bg..
|
||||
default.gui_bg_img..
|
||||
default.gui_slots..
|
||||
"list[context;src;2.75,0.5;1,1;]"..
|
||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||
"image[2.75,1.5;1,1;bbq_smoker_fire_bg.png]"..
|
||||
"image[3.75,1.5;1,1;gui_smoker_arrow_bg.png^[transformR270]"..
|
||||
"list[context;dst;4.8,0.5;3,3;]"..
|
||||
"list[current_player;main;0,4.25;8,1;]"..
|
||||
"list[current_player;main;0,5.5;8,3;8]"..
|
||||
"listring[context;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;fuel]"..
|
||||
"listring[current_player;main]"..
|
||||
default.get_hotbar_bg(0, 4.25)
|
||||
end
|
||||
|
||||
--
|
||||
-- Node callback functions that are the same for active and inactive propane_grill_pro
|
||||
--
|
||||
|
||||
local function can_dig(pos, player)
|
||||
local meta = minetest.get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src")
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_put(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if listname == "fuel" then
|
||||
if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then
|
||||
if inv:is_empty("src") then
|
||||
meta:set_string("infotext", "propane_grill_pro is empty")
|
||||
end
|
||||
return stack:get_count()
|
||||
else
|
||||
return 0
|
||||
end
|
||||
elseif listname == "src" then
|
||||
return stack:get_count()
|
||||
elseif listname == "dst" then
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local stack = inv:get_stack(from_list, from_index)
|
||||
return allow_metadata_inventory_put(pos, to_list, to_index, stack, player)
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_take(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end
|
||||
|
||||
local function swap_node(pos, name)
|
||||
local node = minetest.get_node(pos)
|
||||
if node.name == name then
|
||||
return
|
||||
end
|
||||
node.name = name
|
||||
minetest.swap_node(pos, node)
|
||||
end
|
||||
|
||||
local function propane_grill_pro_node_timer(pos, elapsed)
|
||||
--
|
||||
-- Inizialize metadata
|
||||
--
|
||||
local meta = minetest.get_meta(pos)
|
||||
local fuel_time = meta:get_float("fuel_time") or 0
|
||||
local src_time = meta:get_float("src_time") or 0
|
||||
local fuel_totaltime = meta:get_float("fuel_totaltime") or 0
|
||||
|
||||
local inv = meta:get_inventory()
|
||||
local srclist, fuellist
|
||||
|
||||
local cookable, cooked
|
||||
local fuel
|
||||
|
||||
local update = true
|
||||
while elapsed > 0 and update do
|
||||
update = false
|
||||
|
||||
srclist = inv:get_list("src")
|
||||
fuellist = inv:get_list("fuel")
|
||||
|
||||
--
|
||||
-- Cooking
|
||||
--
|
||||
|
||||
-- Check if we have cookable content
|
||||
local aftercooked
|
||||
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
|
||||
cookable = cooked.time ~= 0
|
||||
|
||||
local el = math.min(elapsed, fuel_totaltime - fuel_time)
|
||||
|
||||
|
||||
if cookable then -- fuel lasts long enough, adjust el to cooking duration
|
||||
el = math.min(el, cooked.time - src_time)
|
||||
end
|
||||
|
||||
-- Check if we have enough fuel to burn
|
||||
if fuel_time < fuel_totaltime then
|
||||
-- The propane_grill_pro is currently active and has enough fuel
|
||||
fuel_time = fuel_time + el
|
||||
-- If there is a cookable item then check if it is ready yet
|
||||
if cookable then
|
||||
src_time = src_time + el
|
||||
if src_time >= cooked.time then
|
||||
-- Place result in dst list if possible
|
||||
if inv:room_for_item("dst", cooked.item) then
|
||||
inv:add_item("dst", cooked.item)
|
||||
inv:set_stack("src", 1, aftercooked.items[1])
|
||||
src_time = src_time - cooked.time
|
||||
update = true
|
||||
end
|
||||
else
|
||||
-- Item could not be cooked: probably missing fuel
|
||||
update = true
|
||||
end
|
||||
end
|
||||
else
|
||||
-- propane_grill_pro ran out of fuel
|
||||
if cookable then
|
||||
-- We need to get new fuel
|
||||
local afterfuel
|
||||
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
|
||||
|
||||
if fuel.time == 0 then
|
||||
-- No valid fuel in fuel list
|
||||
fuel_totaltime = 0
|
||||
src_time = 0
|
||||
else
|
||||
-- Take fuel from fuel list
|
||||
inv:set_stack("fuel", 1, afterfuel.items[1])
|
||||
update = true
|
||||
fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time)
|
||||
end
|
||||
else
|
||||
-- We don't need to get new fuel since there is no cookable item
|
||||
fuel_totaltime = 0
|
||||
src_time = 0
|
||||
end
|
||||
fuel_time = 0
|
||||
end
|
||||
|
||||
elapsed = elapsed - el
|
||||
end
|
||||
|
||||
if fuel and fuel_totaltime > fuel.time then
|
||||
fuel_totaltime = fuel.time
|
||||
end
|
||||
if srclist[1]:is_empty() then
|
||||
src_time = 0
|
||||
end
|
||||
|
||||
--
|
||||
-- Update formspec, infotext and node
|
||||
--
|
||||
local formspec
|
||||
local item_state
|
||||
local item_percent = 0
|
||||
if cookable then
|
||||
item_percent = math.floor(src_time / cooked.time * 100)
|
||||
if item_percent > 100 then
|
||||
item_state = "100% (output full)"
|
||||
else
|
||||
item_state = item_percent .. "%"
|
||||
end
|
||||
else
|
||||
if srclist[1]:is_empty() then
|
||||
item_state = "Empty"
|
||||
else
|
||||
item_state = "Not cookable"
|
||||
end
|
||||
end
|
||||
|
||||
local fuel_state = "Empty"
|
||||
local active = "inactive"
|
||||
local result = false
|
||||
|
||||
if fuel_totaltime ~= 0 then
|
||||
active = "active"
|
||||
local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100)
|
||||
fuel_state = fuel_percent .. "%"
|
||||
formspec = default.get_propane_grill_pro_active_formspec(fuel_percent, item_percent)
|
||||
swap_node(pos, "bbq:propane_grill_pro_active")
|
||||
-- make sure timer restarts automatically
|
||||
result = true
|
||||
else
|
||||
if not fuellist[1]:is_empty() then
|
||||
fuel_state = "0%"
|
||||
end
|
||||
formspec = default.get_propane_grill_pro_inactive_formspec()
|
||||
swap_node(pos, "bbq:propane_grill_pro")
|
||||
-- stop timer on the inactive propane_grill_pro
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end
|
||||
|
||||
local infotext = "propane_grill_pro " .. active .. "\n(Item: " .. item_state ..
|
||||
"; Fuel: " .. fuel_state .. ")"
|
||||
|
||||
--
|
||||
-- Set meta values
|
||||
--
|
||||
meta:set_float("fuel_totaltime", fuel_totaltime)
|
||||
meta:set_float("fuel_time", fuel_time)
|
||||
meta:set_float("src_time", src_time)
|
||||
meta:set_string("formspec", formspec)
|
||||
meta:set_string("infotext", infotext)
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
-------------------
|
||||
-- Node definitions
|
||||
-------------------
|
||||
|
||||
minetest.register_node("bbq:propane_grill_pro", {
|
||||
description = "Propane Grill Pro",
|
||||
tiles = {
|
||||
"bbq_propane_grill_top.png", "bbq_propane_grill_bottom.png",
|
||||
"bbq_propane_grill_side.png", "bbq_propane_grill_side.png",
|
||||
"bbq_propane_grill_back.png", "bbq_propane_grill_front.png",
|
||||
},
|
||||
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-1, 0.2, -0.5, 1, 0.25, 0.5},-- wings
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.25, 0.5}, -- main body
|
||||
{-0.5, 0.25, -0.5, 0.5, 0.68, 0.5}, -- top
|
||||
},
|
||||
},
|
||||
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky=2},
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
|
||||
can_dig = can_dig,
|
||||
|
||||
on_timer = propane_grill_pro_node_timer,
|
||||
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec", default.get_propane_grill_pro_inactive_formspec())
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size('src', 1)
|
||||
inv:set_size('fuel', 1 )
|
||||
inv:set_size('dst', 9)
|
||||
end,
|
||||
|
||||
on_metadata_inventory_move = function(pos)
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos)
|
||||
-- start timer function, it will sort out whether propane_grill_pro can burn or not.
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
end,
|
||||
on_blast = function(pos)
|
||||
local drops = {}
|
||||
default.get_inventory_drops(pos, "src", drops)
|
||||
default.get_inventory_drops(pos, "fuel", drops)
|
||||
default.get_inventory_drops(pos, "dst", drops)
|
||||
drops[#drops+1] = "bbq:propane_grill_pro"
|
||||
minetest.remove_node(pos)
|
||||
return drops
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
})
|
||||
|
||||
minetest.register_node("bbq:propane_grill_pro_active", {
|
||||
description = "Propane Grill Pro",
|
||||
|
||||
|
||||
|
||||
tiles = {
|
||||
"bbq_propane_grill_top.png", "bbq_propane_grill_bottom.png",
|
||||
|
||||
{
|
||||
image = "bbq_propane_grill_side_active.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
image = "bbq_propane_grill_side_active.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
|
||||
"bbq_propane_grill_back.png",
|
||||
{
|
||||
image = "bbq_propane_grill_front_active.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-1, 0.2, -0.5, 1, 0.25, 0.5},-- wings
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.25, 0.5}, -- main body
|
||||
{-0.5, 0.25, -0.5, 0.5, 0.68, 0.5}, -- top
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
sunlight_propagates = true,
|
||||
drop = "bbq:propane_grill_pro",
|
||||
groups = {cracky=2, not_in_creative_inventory=1},
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_timer = propane_grill_pro_node_timer,
|
||||
|
||||
can_dig = can_dig,
|
||||
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
})
|
BIN
mods/BBQ/screenshot1.png
Normal file
After Width: | Height: | Size: 499 KiB |
BIN
mods/BBQ/screenshot2.png
Normal file
After Width: | Height: | Size: 503 KiB |
427
mods/BBQ/smoker.lua
Normal file
|
@ -0,0 +1,427 @@
|
|||
|
||||
--
|
||||
-- Formspecs
|
||||
--
|
||||
|
||||
function default.get_smoker_active_formspec(fuel_percent, item_percent)
|
||||
return "size[8,8.5]"..
|
||||
default.gui_bg..
|
||||
default.gui_bg_img..
|
||||
default.gui_slots..
|
||||
"list[context;src;2.75,0.5;1,1;]"..
|
||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||
"image[2.75,1.5;1,1;bbq_smoker_fire_bg.png^[lowpart:"..
|
||||
(100-fuel_percent)..":bbq_smoker_fire_fg.png]"..
|
||||
"image[3.75,1.5;1,1;gui_smoker_arrow_bg.png^[lowpart:"..
|
||||
(item_percent)..":gui_smoker_arrow_fg.png^[transformR270]"..
|
||||
"list[context;dst;4.8,0.5;3,3;]"..
|
||||
"list[current_player;main;0,4.25;8,1;]"..
|
||||
"list[current_player;main;0,5.5;8,3;8]"..
|
||||
"listring[context;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;fuel]"..
|
||||
"listring[current_player;main]"..
|
||||
default.get_hotbar_bg(0, 4.25)
|
||||
end
|
||||
|
||||
function default.get_smoker_inactive_formspec()
|
||||
return "size[8,8.5]"..
|
||||
default.gui_bg..
|
||||
default.gui_bg_img..
|
||||
default.gui_slots..
|
||||
"list[context;src;2.75,0.5;1,1;]"..
|
||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||
"image[2.75,1.5;1,1;bbq_smoker_fire_bg.png]"..
|
||||
"image[3.75,1.5;1,1;gui_smoker_arrow_bg.png^[transformR270]"..
|
||||
"list[context;dst;4.8,0.5;3,3;]"..
|
||||
"list[current_player;main;0,4.25;8,1;]"..
|
||||
"list[current_player;main;0,5.5;8,3;8]"..
|
||||
"listring[context;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;fuel]"..
|
||||
"listring[current_player;main]"..
|
||||
default.get_hotbar_bg(0, 4.25)
|
||||
end
|
||||
|
||||
--
|
||||
-- Node callback functions that are the same for active and inactive smoker
|
||||
--
|
||||
|
||||
local function can_dig(pos, player)
|
||||
local meta = minetest.get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src")
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_put(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if listname == "fuel" then
|
||||
if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then
|
||||
if inv:is_empty("src") then
|
||||
meta:set_string("infotext", "smoker is empty")
|
||||
end
|
||||
return stack:get_count()
|
||||
else
|
||||
return 0
|
||||
end
|
||||
elseif listname == "src" then
|
||||
return stack:get_count()
|
||||
elseif listname == "dst" then
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local stack = inv:get_stack(from_list, from_index)
|
||||
return allow_metadata_inventory_put(pos, to_list, to_index, stack, player)
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_take(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end
|
||||
|
||||
local function swap_node(pos, name)
|
||||
local node = minetest.get_node(pos)
|
||||
if node.name == name then
|
||||
return
|
||||
end
|
||||
node.name = name
|
||||
minetest.swap_node(pos, node)
|
||||
end
|
||||
|
||||
local function smoker_node_timer(pos, elapsed)
|
||||
--
|
||||
-- Inizialize metadata
|
||||
--
|
||||
local meta = minetest.get_meta(pos)
|
||||
local fuel_time = meta:get_float("fuel_time") or 0
|
||||
local src_time = meta:get_float("src_time") or 0
|
||||
local fuel_totaltime = meta:get_float("fuel_totaltime") or 0
|
||||
|
||||
local inv = meta:get_inventory()
|
||||
local srclist, fuellist
|
||||
|
||||
local cookable, cooked
|
||||
local fuel
|
||||
|
||||
local update = true
|
||||
while elapsed > 0 and update do
|
||||
update = false
|
||||
|
||||
srclist = inv:get_list("src")
|
||||
fuellist = inv:get_list("fuel")
|
||||
|
||||
--
|
||||
-- Cooking
|
||||
--
|
||||
|
||||
-- Check if we have cookable content
|
||||
local aftercooked
|
||||
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
|
||||
cookable = cooked.time ~= 0
|
||||
|
||||
local el = math.min(elapsed, fuel_totaltime - fuel_time)
|
||||
|
||||
|
||||
if cookable then -- fuel lasts long enough, adjust el to cooking duration
|
||||
el = math.min(el, cooked.time - src_time)
|
||||
end
|
||||
|
||||
-- Check if we have enough fuel to burn
|
||||
if fuel_time < fuel_totaltime then
|
||||
-- The smoker is currently active and has enough fuel
|
||||
fuel_time = fuel_time + el
|
||||
-- If there is a cookable item then check if it is ready yet
|
||||
if cookable then
|
||||
src_time = src_time + el
|
||||
if src_time >= cooked.time then
|
||||
-- Place result in dst list if possible
|
||||
if inv:room_for_item("dst", cooked.item) then
|
||||
inv:add_item("dst", cooked.item)
|
||||
inv:set_stack("src", 1, aftercooked.items[1])
|
||||
src_time = src_time - cooked.time
|
||||
update = true
|
||||
end
|
||||
else
|
||||
-- Item could not be cooked: probably missing fuel
|
||||
update = true
|
||||
end
|
||||
end
|
||||
else
|
||||
-- smoker ran out of fuel
|
||||
if cookable then
|
||||
-- We need to get new fuel
|
||||
local afterfuel
|
||||
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
|
||||
|
||||
if fuel.time == 0 then
|
||||
-- No valid fuel in fuel list
|
||||
fuel_totaltime = 0
|
||||
src_time = 0
|
||||
else
|
||||
-- Take fuel from fuel list
|
||||
inv:set_stack("fuel", 1, afterfuel.items[1])
|
||||
update = true
|
||||
fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time)
|
||||
end
|
||||
else
|
||||
-- We don't need to get new fuel since there is no cookable item
|
||||
fuel_totaltime = 0
|
||||
src_time = 0
|
||||
end
|
||||
fuel_time = 0
|
||||
end
|
||||
|
||||
elapsed = elapsed - el
|
||||
end
|
||||
|
||||
if fuel and fuel_totaltime > fuel.time then
|
||||
fuel_totaltime = fuel.time
|
||||
end
|
||||
if srclist[1]:is_empty() then
|
||||
src_time = 0
|
||||
end
|
||||
|
||||
--
|
||||
-- Update formspec, infotext and node
|
||||
--
|
||||
local formspec
|
||||
local item_state
|
||||
local item_percent = 0
|
||||
if cookable then
|
||||
item_percent = math.floor(src_time / cooked.time * 100)
|
||||
if item_percent > 100 then
|
||||
item_state = "100% (output full)"
|
||||
else
|
||||
item_state = item_percent .. "%"
|
||||
end
|
||||
else
|
||||
if srclist[1]:is_empty() then
|
||||
item_state = "Empty"
|
||||
else
|
||||
item_state = "Not cookable"
|
||||
end
|
||||
end
|
||||
|
||||
local fuel_state = "Empty"
|
||||
local active = "inactive"
|
||||
local result = false
|
||||
|
||||
if fuel_totaltime ~= 0 then
|
||||
active = "active"
|
||||
local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100)
|
||||
fuel_state = fuel_percent .. "%"
|
||||
formspec = default.get_smoker_active_formspec(fuel_percent, item_percent)
|
||||
swap_node(pos, "bbq:smoker_active")
|
||||
-- make sure timer restarts automatically
|
||||
result = true
|
||||
else
|
||||
if not fuellist[1]:is_empty() then
|
||||
fuel_state = "0%"
|
||||
end
|
||||
formspec = default.get_smoker_inactive_formspec()
|
||||
swap_node(pos, "bbq:smoker")
|
||||
-- stop timer on the inactive smoker
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end
|
||||
|
||||
local infotext = "smoker " .. active .. "\n(Item: " .. item_state ..
|
||||
"; Fuel: " .. fuel_state .. ")"
|
||||
|
||||
--
|
||||
-- Set meta values
|
||||
--
|
||||
meta:set_float("fuel_totaltime", fuel_totaltime)
|
||||
meta:set_float("fuel_time", fuel_time)
|
||||
meta:set_float("src_time", src_time)
|
||||
meta:set_string("formspec", formspec)
|
||||
meta:set_string("infotext", infotext)
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
-------------------
|
||||
-- Node definitions
|
||||
-------------------
|
||||
|
||||
minetest.register_node("bbq:smoker", {
|
||||
description = "Smoker",
|
||||
tiles = {
|
||||
"bbq_smoker_texture_bottom.png", --top
|
||||
"bbq_smoker_texture_bottom.png^[transformFY", --bottom
|
||||
"bbq_smoker_texture_side.png", --right side
|
||||
"bbq_smoker_texture_side.png^[transformFX", --left side
|
||||
"bbq_smoker_texture_back.png", --back
|
||||
"bbq_smoker_texture.png", --front
|
||||
},
|
||||
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-1.5, -0.03, -0.3, -1.0, 0.35, 0.093},-- smokebox
|
||||
{-1.0, -0.08, -0.5, 0.5, 0.6, 0.435 }, -- main body
|
||||
{-0.375, 0.095, -.52, -0.16, 0.155, -0.54}, -- main handle
|
||||
{-1.37, 0.095, -.32, -1.16, 0.155, -0.34}, -- smokebox handle
|
||||
{-0.345, 0.115, -.5, -0.325, 0.135, -0.55}, -- left handle bolt
|
||||
{-0.21, 0.115, -.5, -0.19, 0.135, -0.55}, -- right handle bolt
|
||||
{-1.32, 0.115, -.35, -1.34, 0.135, -0.3}, -- left smokebox handle bolt
|
||||
{-1.19, 0.115, -.35, -1.21, 0.135, -0.3}, -- right smokebox handle bolt
|
||||
{0.5, 0.18, .10, 0.99, 0.30, 0.22}, -- chimney x
|
||||
{0.87, 0.18, .10, 0.99, .62, 0.22}, -- chimney y
|
||||
-- {0.93, 0.62, .10, 0.93, .9, 0.22}, -- chimney smoke
|
||||
-- {0.87, 0.62, .16, 0.99, .9, 0.16}, -- chimney smoke
|
||||
{-0.8, -0.5, -0.3, -0.9, -0.08, -0.4}, -- front leftleg
|
||||
{0.3, -0.5, -0.3, 0.4, -0.08, -0.4}, -- front right leg
|
||||
{-0.8, -0.5, 0.3, -0.9, -0.08, 0.4}, -- front leftleg
|
||||
{0.3, -0.5, 0.3, 0.4, -0.08, 0.4}, -- front right leg
|
||||
},
|
||||
},
|
||||
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky=2},
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
|
||||
can_dig = can_dig,
|
||||
|
||||
on_timer = smoker_node_timer,
|
||||
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec", default.get_smoker_inactive_formspec())
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size('src', 1)
|
||||
inv:set_size('fuel', 1 )
|
||||
inv:set_size('dst', 9)
|
||||
end,
|
||||
|
||||
on_metadata_inventory_move = function(pos)
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos)
|
||||
-- start timer function, it will sort out whether smoker can burn or not.
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
end,
|
||||
on_blast = function(pos)
|
||||
local drops = {}
|
||||
default.get_inventory_drops(pos, "src", drops)
|
||||
default.get_inventory_drops(pos, "fuel", drops)
|
||||
default.get_inventory_drops(pos, "dst", drops)
|
||||
drops[#drops+1] = "bbq:smoker"
|
||||
minetest.remove_node(pos)
|
||||
return drops
|
||||
end,
|
||||
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
})
|
||||
|
||||
minetest.register_node("bbq:smoker_active", {
|
||||
description = "smoker",
|
||||
|
||||
|
||||
|
||||
tiles = {
|
||||
"bbq_smoker_texture_bottom.png", --top
|
||||
"bbq_smoker_texture_bottom.png^[transformFY", --bottom
|
||||
{
|
||||
image = "bbq_smoker_texture_side_animated.png", --right side
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
{
|
||||
image = "bbq_smoker_texture_side_animated.png^[transformFX", --left side
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
image = "bbq_smoker_texture_back_animated.png", --back
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
{
|
||||
image = "bbq_smoker_texture_animated.png", --front
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-1.5, -0.03, -0.3, -1.0, 0.35, 0.093},-- smokebox
|
||||
{-1.0, -0.08, -0.5, 0.5, 0.6, 0.435 }, -- main body
|
||||
{-0.375, 0.095, -.52, -0.16, 0.155, -0.54}, -- main handle
|
||||
{-1.37, 0.095, -.32, -1.16, 0.155, -0.34}, -- smokebox handle
|
||||
{-0.345, 0.115, -.5, -0.325, 0.135, -0.55}, -- left handle bolt
|
||||
{-0.21, 0.115, -.5, -0.19, 0.135, -0.55}, -- right handle bolt
|
||||
{-1.32, 0.115, -.35, -1.34, 0.135, -0.3}, -- left smokebox handle bolt
|
||||
{-1.19, 0.115, -.35, -1.21, 0.135, -0.3}, -- right smokebox handle bolt
|
||||
{0.5, 0.18, .10, 0.99, 0.30, 0.22}, -- chimney x
|
||||
{0.87, 0.18, .10, 0.99, .62, 0.22}, -- chimney y
|
||||
{0.93, 0.62, .10, 0.93, .9, 0.22}, -- chimney smoke
|
||||
{0.87, 0.62, .16, 0.99, .9, 0.16}, -- chimney smoke
|
||||
{-0.8, -0.5, -0.3, -0.9, -0.08, -0.4}, -- front leftleg
|
||||
{0.3, -0.5, -0.3, 0.4, -0.08, -0.4}, -- front right leg
|
||||
{-0.8, -0.5, 0.3, -0.9, -0.08, 0.4}, -- front leftleg
|
||||
{0.3, -0.5, 0.3, 0.4, -0.08, 0.4}, -- front right leg
|
||||
},
|
||||
},
|
||||
|
||||
sunlight_propagates = true,
|
||||
drop = "bbq:smoker",
|
||||
groups = {cracky=2, not_in_creative_inventory=1},
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_timer = smoker_node_timer,
|
||||
|
||||
can_dig = can_dig,
|
||||
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
})
|
BIN
mods/BBQ/sounds/bbq_basting.ogg
Normal file
BIN
mods/BBQ/sounds/bbq_grill_brush.ogg
Normal file
BIN
mods/BBQ/sounds/bbq_sizzle.ogg
Normal file
BIN
mods/BBQ/textures/bbq_bacon.png
Normal file
After Width: | Height: | Size: 514 B |
BIN
mods/BBQ/textures/bbq_bacon_cheeseburger.png
Normal file
After Width: | Height: | Size: 737 B |
BIN
mods/BBQ/textures/bbq_bacon_raw.png
Normal file
After Width: | Height: | Size: 530 B |
BIN
mods/BBQ/textures/bbq_basting_brush.png
Normal file
After Width: | Height: | Size: 653 B |
BIN
mods/BBQ/textures/bbq_basting_brush_hang.png
Normal file
After Width: | Height: | Size: 819 B |
BIN
mods/BBQ/textures/bbq_bbq_chicken.png
Normal file
After Width: | Height: | Size: 492 B |
BIN
mods/BBQ/textures/bbq_bbq_chicken_raw.png
Normal file
After Width: | Height: | Size: 566 B |
BIN
mods/BBQ/textures/bbq_bbq_sauce.png
Normal file
After Width: | Height: | Size: 246 B |
BIN
mods/BBQ/textures/bbq_beef_cooked.png
Normal file
After Width: | Height: | Size: 611 B |
BIN
mods/BBQ/textures/bbq_beef_jerky.png
Normal file
After Width: | Height: | Size: 725 B |
BIN
mods/BBQ/textures/bbq_beef_jerky_raw.png
Normal file
After Width: | Height: | Size: 715 B |
BIN
mods/BBQ/textures/bbq_beef_raw.png
Normal file
After Width: | Height: | Size: 667 B |
BIN
mods/BBQ/textures/bbq_beef_ribs.png
Normal file
After Width: | Height: | Size: 869 B |
BIN
mods/BBQ/textures/bbq_beef_ribs_raw.png
Normal file
After Width: | Height: | Size: 868 B |
BIN
mods/BBQ/textures/bbq_beer.png
Normal file
After Width: | Height: | Size: 540 B |
BIN
mods/BBQ/textures/bbq_beer_back.png
Normal file
After Width: | Height: | Size: 518 B |
BIN
mods/BBQ/textures/bbq_beer_top.png
Normal file
After Width: | Height: | Size: 194 B |
BIN
mods/BBQ/textures/bbq_brine.png
Normal file
After Width: | Height: | Size: 367 B |
BIN
mods/BBQ/textures/bbq_brisket.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
mods/BBQ/textures/bbq_brisket_raw.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
mods/BBQ/textures/bbq_charcoal_bag.png
Normal file
After Width: | Height: | Size: 871 B |
BIN
mods/BBQ/textures/bbq_charcoal_bag_back.png
Normal file
After Width: | Height: | Size: 538 B |
BIN
mods/BBQ/textures/bbq_charcoal_bag_side.png
Normal file
After Width: | Height: | Size: 275 B |
BIN
mods/BBQ/textures/bbq_charcoal_bag_top.png
Normal file
After Width: | Height: | Size: 144 B |
BIN
mods/BBQ/textures/bbq_charcoal_briquette.png
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
mods/BBQ/textures/bbq_charcoal_lump.png
Normal file
After Width: | Height: | Size: 577 B |
BIN
mods/BBQ/textures/bbq_cheese_steak.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
mods/BBQ/textures/bbq_chimney_smoke.png
Normal file
After Width: | Height: | Size: 236 B |
BIN
mods/BBQ/textures/bbq_chimney_smoke_animation.png
Normal file
After Width: | Height: | Size: 408 B |
BIN
mods/BBQ/textures/bbq_chrome.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
mods/BBQ/textures/bbq_chrome_bottom.png
Normal file
After Width: | Height: | Size: 739 B |
BIN
mods/BBQ/textures/bbq_chrome_side.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
mods/BBQ/textures/bbq_chrome_top.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
mods/BBQ/textures/bbq_corn.png
Normal file
After Width: | Height: | Size: 261 B |
BIN
mods/BBQ/textures/bbq_corned_beef.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
mods/BBQ/textures/bbq_corned_beef_raw.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
mods/BBQ/textures/bbq_cow_map.jpg
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
mods/BBQ/textures/bbq_cow_map.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
mods/BBQ/textures/bbq_foil.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
mods/BBQ/textures/bbq_garlic.png
Normal file
After Width: | Height: | Size: 725 B |
BIN
mods/BBQ/textures/bbq_garlic_braid.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
mods/BBQ/textures/bbq_garlic_braid_side.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
mods/BBQ/textures/bbq_garlic_clove.png
Normal file
After Width: | Height: | Size: 605 B |
BIN
mods/BBQ/textures/bbq_grill_brush.png
Normal file
After Width: | Height: | Size: 306 B |
BIN
mods/BBQ/textures/bbq_grill_brush_hang.png
Normal file
After Width: | Height: | Size: 424 B |
BIN
mods/BBQ/textures/bbq_grill_brush_hang_top.png
Normal file
After Width: | Height: | Size: 419 B |
BIN
mods/BBQ/textures/bbq_grilled_corn.png
Normal file
After Width: | Height: | Size: 664 B |
BIN
mods/BBQ/textures/bbq_grilled_corn_raw.png
Normal file
After Width: | Height: | Size: 477 B |
BIN
mods/BBQ/textures/bbq_grilled_pizza.png
Normal file
After Width: | Height: | Size: 1,006 B |
BIN
mods/BBQ/textures/bbq_grilled_pizza_raw.png
Normal file
After Width: | Height: | Size: 1,008 B |
BIN
mods/BBQ/textures/bbq_grilled_tomato.png
Normal file
After Width: | Height: | Size: 969 B |
BIN
mods/BBQ/textures/bbq_ham.png
Normal file
After Width: | Height: | Size: 835 B |
BIN
mods/BBQ/textures/bbq_ham_raw.png
Normal file
After Width: | Height: | Size: 794 B |
BIN
mods/BBQ/textures/bbq_hamburger.png
Normal file
After Width: | Height: | Size: 763 B |
BIN
mods/BBQ/textures/bbq_hamburger_patty.png
Normal file
After Width: | Height: | Size: 797 B |
BIN
mods/BBQ/textures/bbq_hamburger_patty_raw.png
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
mods/BBQ/textures/bbq_hot_sauce.png
Normal file
After Width: | Height: | Size: 369 B |
BIN
mods/BBQ/textures/bbq_hot_wings.png
Normal file
After Width: | Height: | Size: 755 B |
BIN
mods/BBQ/textures/bbq_hot_wings_raw.png
Normal file
After Width: | Height: | Size: 701 B |
BIN
mods/BBQ/textures/bbq_hotdog.png
Normal file
After Width: | Height: | Size: 697 B |
BIN
mods/BBQ/textures/bbq_hotdog_cooked.png
Normal file
After Width: | Height: | Size: 372 B |
BIN
mods/BBQ/textures/bbq_hotdog_raw.png
Normal file
After Width: | Height: | Size: 372 B |
BIN
mods/BBQ/textures/bbq_kettle.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
mods/BBQ/textures/bbq_kettle_bottom.png
Normal file
After Width: | Height: | Size: 739 B |
BIN
mods/BBQ/textures/bbq_kettle_grill_active.png
Normal file
After Width: | Height: | Size: 281 B |
BIN
mods/BBQ/textures/bbq_kettle_grill_base.png
Normal file
After Width: | Height: | Size: 293 B |
BIN
mods/BBQ/textures/bbq_kettle_grill_ext.png
Normal file
After Width: | Height: | Size: 646 B |
BIN
mods/BBQ/textures/bbq_kettle_grill_ext_ani.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
mods/BBQ/textures/bbq_kettle_grill_ext_top.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
mods/BBQ/textures/bbq_kettle_grill_ext_top_ani.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
mods/BBQ/textures/bbq_kettle_grill_inv.png
Normal file
After Width: | Height: | Size: 327 B |
BIN
mods/BBQ/textures/bbq_kettle_grill_lid.png
Normal file
After Width: | Height: | Size: 281 B |
BIN
mods/BBQ/textures/bbq_kettle_side.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
mods/BBQ/textures/bbq_kettle_top.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
mods/BBQ/textures/bbq_lamb_kebab.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
mods/BBQ/textures/bbq_lamb_kebab_raw.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
mods/BBQ/textures/bbq_leg_lamb.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
mods/BBQ/textures/bbq_leg_lamb_raw.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
mods/BBQ/textures/bbq_liquid_smoke.png
Normal file
After Width: | Height: | Size: 387 B |