Mods update

master
daretmavi 2021-02-02 19:53:21 +01:00
parent 97987e0f4d
commit 2fe75209f1
449 changed files with 19023 additions and 11072 deletions

View File

@ -32,7 +32,7 @@ Mod: minetest_game/mods/wool
Mod: minetest_game/mods/xpanes Mod: minetest_game/mods/xpanes
origin https://github.com/sirrobzeroone/comboblock (fetch) origin https://github.com/sirrobzeroone/comboblock (fetch)
* master bf5d390 [origin/master: ahead 1] Translation update * master ac04448 [origin/master] Add Spanish and Russian
Mod: blocks_functions/comboblock Mod: blocks_functions/comboblock
origin git@github.com:Sokomine/bell.git (fetch) origin git@github.com:Sokomine/bell.git (fetch)
@ -64,7 +64,7 @@ origin git@github.com:minetest-mods/ts_doors.git (fetch)
Mod: buildings/ts_doors Mod: buildings/ts_doors
origin git@gitlab.com:daretmavi/bucket-lite.git (fetch) origin git@gitlab.com:daretmavi/bucket-lite.git (fetch)
* master 6b3c8a2 [origin/master] Update README.md * master 03a1ebf [origin/master] Merge branch 'devel' into 'master'
Mod: environment/bucket-lite Mod: environment/bucket-lite
origin https://github.com/minetest-mods/dynamic_liquid (fetch) origin https://github.com/minetest-mods/dynamic_liquid (fetch)
@ -72,13 +72,9 @@ origin https://github.com/minetest-mods/dynamic_liquid (fetch)
Mod: environment/dynamic_liquid Mod: environment/dynamic_liquid
origin https://notabug.org/tenplus1/farming (fetch) origin https://notabug.org/tenplus1/farming (fetch)
* master f7524e1 [origin/master] update recipes to use water/river-water buckets, also support for wooden bucket mod * master 79035d0 [origin/master] added extra compatibility for crops spawning on older v6 maps
Mod: flora/farming Mod: flora/farming
origin https://github.com/minetest-mods/craftguide.git (fetch)
* master b9e4d75 [origin/master] Force using MT 5.4 and up
Mod: gui/craftguide
origin https://repo.or.cz/minetest_hbarmor.git (fetch) origin https://repo.or.cz/minetest_hbarmor.git (fetch)
* master 93d994c [origin/master] Version 1.0.0 * master 93d994c [origin/master] Version 1.0.0
Mod: gui/minetest_hbarmor Mod: gui/minetest_hbarmor
@ -95,6 +91,10 @@ origin https://repo.or.cz/minetest_tt_base.git (fetch)
* master d560fac [origin/master] Version 1.0.0 * master d560fac [origin/master] Version 1.0.0
Mod: gui/minetest_tt_base Mod: gui/minetest_tt_base
origin https://github.com/minetest-mods/smart_inventory.git (fetch)
* master f790cc8 [origin/master] search items / groups in translated strings
Mod: gui/smart_inventory
origin https://github.com/appgurueu/cmdlib (fetch) origin https://github.com/appgurueu/cmdlib (fetch)
* master 2709571 [origin/master] Fix missing parameters error format * master 2709571 [origin/master] Fix missing parameters error format
Mod: lib_api/cmdlib Mod: lib_api/cmdlib
@ -108,15 +108,15 @@ origin https://repo.or.cz/minetest_tt.git (fetch)
Mod: lib_api/minetest_tt Mod: lib_api/minetest_tt
origin https://github.com/TheTermos/mobkit (fetch) origin https://github.com/TheTermos/mobkit (fetch)
* master 62eb92d [origin/master] Merge pull request #29 from ElCeejo/master * master ddea141 [origin/master] Merge pull request #33 from berengma/master
Mod: lib_api/mobkit Mod: lib_api/mobkit
origin https://notabug.org/tenplus1/mobs_redo (fetch) origin https://notabug.org/tenplus1/mobs_redo (fetch)
* master bf32a09 [origin/master] on_flop and air_damage added * master 10e4dd9 [origin/master] spawner spawns mob in it's own medium (air, water etc.)
Mod: lib_api/mobs_redo Mod: lib_api/mobs_redo
origin https://github.com/appgurueu/modlib (fetch) origin https://github.com/appgurueu/modlib (fetch)
* master 98c702e [origin/master] Remove builtin global strictness * master b9483fb [origin/master] Add objects_inside_- radius and area iterators
Mod: lib_api/modlib Mod: lib_api/modlib
origin git@github.com:runsy/rcbows.git (fetch) origin git@github.com:runsy/rcbows.git (fetch)
@ -128,11 +128,11 @@ origin git@github.com:minetest-mods/ts_workshop.git (fetch)
Mod: lib_api/ts_workshop Mod: lib_api/ts_workshop
origin https://github.com/berengma/aerotest (fetch) origin https://github.com/berengma/aerotest (fetch)
* master 65fd1d6 [origin/master] screenshot and opt depends * master c60a500 [origin/master] lagfree
Mod: mobs/aerotest Mod: mobs/aerotest
origin git@gitlab.com:daretmavi/pa-sources.git (fetch) origin git@gitlab.com:daretmavi/pa-sources.git (fetch)
* master de29d93 [origin/master] First Commit * master f1d1350 [origin/master: ahead 1] New dynamic liquid patch
Mod: mobs/goblins Mod: mobs/goblins
origin https://codeberg.org/Hamlet/mobs_ghost_redo (fetch) origin https://codeberg.org/Hamlet/mobs_ghost_redo (fetch)
@ -144,23 +144,24 @@ origin https://codeberg.org/Hamlet/mobs_humans (fetch)
Mod: mobs/mobs_humans Mod: mobs/mobs_humans
origin https://notabug.org/TenPlus1/mobs_monster.git (fetch) origin https://notabug.org/TenPlus1/mobs_monster.git (fetch)
* master 4018a5c [origin/master] Added spawn.lua check for custom mob spawns, example file included * master 9835105 [origin/master] fix typo in mod.conf
Mod: mobs/mobs_monster Mod: mobs/mobs_monster
origin https://github.com/runsy/petz (fetch) origin https://github.com/runsy/petz (fetch)
* master 019668d [origin/master] luacheck cleaned * master 2080c8f [origin/master] pony cimarron
Mod: mobs/petz Mod: mobs/petz
origin https://github.com/berengma/water_life (fetch) origin https://github.com/berengma/water_life (fetch)
* master a3a50ba [origin/master] Merge pull request #50 from berengma/dev * master 17c4289 [origin/master] Merge pull request #69 from berengma/staticIsTrue
Mod: mobs/water_life Mod: mobs/water_life
Mod: mobs/water_life_patch
origin https://github.com/minetest-mods/3d_armor (fetch) origin https://github.com/minetest-mods/3d_armor (fetch)
* master 713b0c8 [origin/master] Documentation and Screenshot Update (#26) * master e7abacc [origin/master] Add armor set and armor set bonus setting (#41)
Mod: player/3d_armor Mod: player/3d_armor
origin https://github.com/appgurueu/character_anim (fetch) origin https://github.com/appgurueu/character_anim (fetch)
* master 8eff762 [origin/master] Fix Readme header levels * master 34751e6 [origin/master] Fix global warnings if strictness is enabled
Mod: player/character_anim Mod: player/character_anim
origin https://github.com/minetest-mods/emote (fetch) origin https://github.com/minetest-mods/emote (fetch)
@ -176,11 +177,11 @@ origin https://github.com/minetest-mods/hbsprint/ (fetch)
Mod: player/hbsprint Mod: player/hbsprint
origin https://gitlab.com/4w/hunger_ng.git (fetch) origin https://gitlab.com/4w/hunger_ng.git (fetch)
* master 26ec823 [origin/master] update readme * master bd5dcad [origin/master] make hunger effects player attributes
Mod: player/hunger_ng Mod: player/hunger_ng
origin https://github.com/minetest-mods/skinsdb.git (fetch) origin https://github.com/minetest-mods/skinsdb.git (fetch)
* master 8048cb0 [origin/master] change default dependency to player_api * master da6905f [origin/master] Mention i3 support (#55)
Mod: player/skinsdb Mod: player/skinsdb
origin https://github.com/stujones11/wield3d.git (fetch) origin https://github.com/stujones11/wield3d.git (fetch)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
# textdomain: comboblock
Hmmmm... that wont work I can't mix glass slabs and none glass slabs=Hmmmm... eso no funcionará No puedo mezclar losas de vidrio y ninguna losa de vidrio
Hmmmm... The slab wont fit there, somethings in the way=Hmmmm... La losa no encaja allí, hay algo en el camino

View File

@ -0,0 +1,3 @@
# textdomain: comboblock
Hmmmm... that wont work I can't mix glass slabs and none glass slabs=Хмммм ... это не сработает, я не могу смешивать стеклянные плиты и никакие стеклянные плиты
Hmmmm... The slab wont fit there, somethings in the way=Хммм... Плита там не влезет, кое-что мешает

View File

@ -74,7 +74,7 @@ Issue 2 - If you rotate a comboblock with a screwdriver type tool (lots out ther
Big thanks to Pithy for writting the orginal mod and the help from various people on the Big thanks to Pithy for writting the orginal mod and the help from various people on the
MT forum boards even if they probably don't know they have helped: MT forum boards even if they probably don't know they have helped:
blert2112, Linuxdirk, Krock, Rubenwardy, Pampogokiraly, Joe7575, Sorcerykid blert2112, Linuxdirk, Krock, Rubenwardy, Pampogokiraly, Joe7575, Sorcerykid, Daretmavi
And of course the Coredevs and Celeron55 for designing/keeping the engine running And of course the Coredevs and Celeron55 for designing/keeping the engine running

View File

@ -1,8 +1,84 @@
-------------------------------------------------- --------------------------------------------------
Ver. 4.1 [12.12.2020] (Devel) Ver. 6.1 [24.01.2021]
BUG Fix: Lava as fuel for lava enabled buckets
BUG Fix: Buckets addet to dungeon_loot
--------------------------------------------------
Ver. 6.0 [23.01.2021]
Added group get_lava
- if get_lava=0 the bucket can not take lava
Default for wood, bronze, gold
- if get_lava=0 the bucket can not take lava
Default for stone, steel, mese, diamond, gold
Added Settings for getting lava
# Get lava with steel bucket
bucket_getlava_steel (Enable steel bucket) bool true
# Get lava with wood bucket
bucket_getlava_wood (Enable wood bucket) bool false
# Get lava with stone bucket
bucket_getlava_stone (Enable stone bucket) bool true
# Get lava with bronze bucket
bucket_getlava_bronze (Enable bronze bucket) bool false
# Get lava with mese bucket
bucket_getlava_mese (Enable mese bucket) bool true
# Get lava with diamond bucket
bucket_getlava_diamond (Enable diamond bucket) bool true
# Get lava with gold bucket
bucket_getlava_gold (Enable gold bucket) bool false
--------------------------------------------------
Ver. 5.1 [15.01.2021]
Switches for buckettypes are implemented:
# Enable steel bucket
bucket_material_steel (Enable steel bucket) bool true
# Enable wood bucket
bucket_material_wood (Enable wood bucket) bool true
# Enable stone bucket
bucket_material_stone (Enable stone bucket) bool true
# Enable bronze bucket
bucket_material_bronze (Enable bronze bucket) bool true
# Enable mese bucket
bucket_material_mese (Enable mese bucket) bool true
Enable diamond bucket
bucket_material_diamond (Enable diamond bucket) bool true
Enable gold bucket
bucket_material_gold (Enable gold bucket) bool true
# Default bucket type
# - do not disable defined type, or you get nothing with /giveme bucket
bucket_default_type (Bucket default type) enum steel steel,wood,stone,bronze,mese,diamond,gold
BUG fixed
- bucket return not working correctly is itemstack > 1
--------------------------------------------------
Ver. 5.0 [13.01.2021]
Added settings:
bucket_use_clasic_recipe - use clasic recipe for bucket if true
bucket_material_... - settings for allowed materials
Some code cleanup
Support for other mods defining bucket with own water
- all materials are supported
- like for water_life muddy water
- no special bucket water with reduces flowing is implemented (yet)
Bucket images are a little bit lighter
--------------------------------------------------
Ver. 4.1 [20.12.2020]
Added better support for dynamic liquid (patched) Added better support for dynamic liquid (patched)
- https://github.com/daretmavi/dynamic_liquid - https://github.com/daretmavi/dynamic_liquid
- checks if add_to_water_nodes is available
-------------------------------------------------- --------------------------------------------------
Ver. 4.0 [05.12.2020] Ver. 4.0 [05.12.2020]

View File

@ -14,14 +14,18 @@ Fork of **Minetest Game mod: bucket**
**Working with other mods:** **Working with other mods:**
**dynamic_liquid** - actually works, it creates obsidian easily (good enough) **dynamic_liquid** - actually works (good enough)
- If you want full support, some changes are needed: - If you want better support, some changes are needed:
- see my fork https://github.com/daretmavi/dynamic_liquid (no warranty, I just tried some changes) - see my fork https://github.com/daretmavi/dynamic_liquid (no warranty)
## Behavior
- water flowing from bucket is set to 1 block (default)
**Screenshots:** **Screenshots:**
This is default behavior: This is default water behavior:
![Image](screenshot_old_river_water.png) ![Image](screenshot_old_river_water.png)
![Image](screenshot_old_water.png) ![Image](screenshot_old_water.png)
@ -34,10 +38,119 @@ This mod changes it to just one block
![Image](screenshot_new.png) ![Image](screenshot_new.png)
Minetest: https://www.minetest.net/ Minetest: https://www.minetest.net/
Diferent bucket types: ## Diferent bucket types:
![Image](screenshot_buckets.png) ![Image](screenshot_buckets.png)
**Support for other mods bucket liquids:**
- like muddy water in water_life mod
- ![Image](screenshot_buckets_muddy_water_life.png)
-----
## Recipe
- can be changed with mod setting **bucket_use_clasic_recipe**
### Default "clasic" recipe:
![Image](screenshot_bucket_recipe_clasic.png)
`bucket_use_clasic_recipe = true`
- can conflict with other mods, like farming:Wooden Bowl - "Wood Empty Bucket" = "Wooden Bowl"
### NEW Recipe:
![Image](screenshot_bucket_recipe_new.png)
`bucket_use_clasic_recipe = false`
## Other Settings
**How far will water from bucket flow**
`bucket_water_flowing_range (Bucket water flowing range) int 1`
**How far will lava from bucket flow**
`bucket_lava_flowing_range (Bucket lava flowing range) int 1`
**Get liquid from flowing liquid**
`bucket_get_flowing (Flowing liwuid can be taken) bool true`
- If true, then liquid can be taken even from flowing one
- not only from source
**Default bucket type**
`bucket_default_type (Bucket default type) enum steel steel,wood,stone,bronze,mese,diamond,gold`
- do not disable defined type, or you get nothing with /giveme bucket
### Enabled buckettypes
**Enable steel bucket**
`bucket_material_steel (Enable steel bucket) bool true`
**Enable wood bucket**
`bucket_material_wood (Enable wood bucket) bool true`
**Enable stone bucket**
`bucket_material_stone (Enable stone bucket) bool true`
**Enable bronze bucket**
`bucket_material_bronze (Enable bronze bucket) bool true`
**Enable mese bucket**
`bucket_material_mese (Enable mese bucket) bool true`
**Enable diamond bucket**
`bucket_material_diamond (Enable diamond bucket) bool true`
**Enable gold bucket**
`bucket_material_gold (Enable gold bucket) bool true`
### Enable getting lava
**Get lava with steel bucket**
`bucket_getlava_steel (Enable steel bucket) bool true`
**Get lava with wood bucket**
`bucket_getlava_wood (Enable wood bucket) bool false`
**Get lava with stone bucket**
`bucket_getlava_stone (Enable stone bucket) bool true`
**Get lava with bronze bucket**
`bucket_getlava_bronze (Enable bronze bucket) bool false`
**Get lava with mese bucket**
`bucket_getlava_mese (Enable mese bucket) bool true`
**Get lava with diamond bucket**
`bucket_getlava_diamond (Enable diamond bucket) bool true`
**Get lava with gold bucket**
`bucket_getlava_gold (Enable gold bucket) bool false`
----- -----
**Minetest Game mod: bucket** **Minetest Game mod: bucket**

View File

@ -77,7 +77,13 @@ if minetest.get_modpath("dynamic_liquid") then
-- this new funktion is needed, because setting goups is not enough -- this new funktion is needed, because setting goups is not enough
-- not implemented in actrual version (12.12.2020) - musst be added, or use fork https://github.com/daretmavi/dynamic_liquid -- not implemented in actrual version (12.12.2020) - musst be added, or use fork https://github.com/daretmavi/dynamic_liquid
dynamic_liquid.add_to_water_nodes(Liquid_name.water.bucket_source, Liquid_name.water.bucket_flowing) -- check if add_to_water_nodes is in the mod dynamic_liquid available. _G is a global table on lua that stores every global function in it.
if _G["dynamic_liquid"]["add_to_water_nodes"] then
dynamic_liquid.add_to_water_nodes(Liquid_name.water.bucket_source, Liquid_name.water.bucket_flowing)
else
local Dyn_liq_error = S("Mod: dynamic_liquid is not changed. add_to_water_nodes function is missing! Lava colling will not work the same ways, as the default water-lava interaction works.")
minetest.log(Dyn_liq_error)
end
end end
minetest.register_node(Liquid_name.lava.bucket_source, lava_source_def) minetest.register_node(Liquid_name.lava.bucket_source, lava_source_def)

View File

@ -7,36 +7,102 @@ local S = minetest.get_translator("bucket")
-- bucket item definitions -- bucket item definitions
bucket = {} bucket = {}
bucket.material = "default:steel_ingot" bucket.empty = "bucket:bucket_empty" -- empty bucket name prefix
bucket.empty = "bucket:bucket_empty" bucket.water = "bucket:bucket_water_uni" -- water bucket name prefix
bucket.water = "bucket:bucket_water_uni" bucket.lava = "bucket:bucket_lava_uni" -- lava bucket name prefix
bucket.lava = "bucket:bucket_lava_uni" bucket.default = {} -- default bucket names
bucket.default_material = "steel" bucket.default_material = minetest.settings:get("bucket_default_type") or "steel" -- default material for bucket
bucket.liquids = {} bucket.liquids = {} -- all buckets for defined liquid
-- Bucket aliases - default bucket ist steel -- standard bucket recipe (like in minecraft)
minetest.register_alias("bucket", bucket.empty.."_"..bucket.default_material) -- conflicts "Wood Empty Bucket" with farming "Wooden Bowl"
minetest.register_alias("bucket_water", bucket.water.."_"..bucket.default_material) bucket.recipe_clasic ={
minetest.register_alias("bucket_lava", bucket.lava.."_"..bucket.default_material) {"MATERIAL", "", "MATERIAL"},
-- for compatibility witk old bucket mod {"", "MATERIAL", ""}
minetest.register_alias("bucket:bucket_empty", bucket.empty.."_"..bucket.default_material) }
minetest.register_alias("bucket:bucket_water", bucket.water.."_"..bucket.default_material) -- new recipe for bucket
minetest.register_alias("bucket:bucket_lava", bucket.lava.."_"..bucket.default_material) bucket.recipe_new ={
{"MATERIAL", "", "MATERIAL"},
{"MATERIAL", "", "MATERIAL"},
{"MATERIAL", "MATERIAL", "MATERIAL"}
}
-- define bucket liquids and Liquid_name -- define bucket liquids and Liquid_name
dofile(minetest.get_modpath("bucket") .. "/bucket_liquids.lua") dofile(minetest.get_modpath("bucket") .. "/bucket_liquids.lua")
--craft diferent types of bucket -- Read settinf in boolean and return integer
-- Used for get lava groups
local function Bool2Int_setting(settingtype, default_setting)
if minetest.settings:get_bool(settingtype, default_setting) then
return 1
else
return 0
end
end
-- craft diferent types of bucket
-- recipe can be anjustet for every material type
local craft_ingreds = { local craft_ingreds = {
wood = {"group:wood", "default_wood.png"}, wood = {"group:wood", "default_wood.png",
stone = {"group:stone", "default_stone.png"}, recipe = table.copy(bucket.recipe_clasic),
steel = {"default:steel_ingot", "default_steel_block.png"}, enabled = minetest.settings:get_bool("bucket_material_wood", true),
bronze = {"default:bronze_ingot", "default_bronze_block.png"}, groups = {tool = 1, get_lava = Bool2Int_setting("bucket_getlava_wood", false)}
mese = {"default:mese_crystal", "default_mese_block.png"}, },
diamond = {"default:diamond", "default_diamond_block.png"}, stone = {"group:stone", "default_stone.png",
gold = {"default:gold_ingot", "default_gold_block.png"} recipe = table.copy(bucket.recipe_clasic),
enabled = minetest.settings:get_bool("bucket_material_stone", true),
groups = {tool = 1, get_lava = Bool2Int_setting("bucket_getlava_stone", true)}
},
steel = {"default:steel_ingot", "default_steel_block.png",
recipe = table.copy(bucket.recipe_clasic),
enabled = minetest.settings:get_bool("bucket_material_steel", true),
groups = {tool = 1, get_lava = Bool2Int_setting("bucket_getlava_steel", true)}
},
bronze = {"default:bronze_ingot", "default_bronze_block.png",
recipe = table.copy(bucket.recipe_clasic),
enabled = minetest.settings:get_bool("bucket_material_bronze", true),
groups = {tool = 1, get_lava = Bool2Int_setting("bucket_getlava_bronze", false)}
},
mese = {"default:mese_crystal", "default_mese_block.png",
recipe = table.copy(bucket.recipe_clasic),
enabled = minetest.settings:get_bool("bucket_material_mese", true),
groups = {tool = 1, get_lava = Bool2Int_setting("bucket_getlava_mese", true)}
},
diamond = {"default:diamond", "default_diamond_block.png",
recipe = table.copy(bucket.recipe_clasic),
enabled = minetest.settings:get_bool("bucket_material_diamond", true),
groups = {tool = 1, get_lava = Bool2Int_setting("bucket_getlava_diamond", true)}
},
gold = {"default:gold_ingot", "default_gold_block.png",
recipe = table.copy(bucket.recipe_clasic),
enabled = minetest.settings:get_bool("bucket_material_gold", true),
groups = {tool = 1, get_lava = Bool2Int_setting("bucket_getlava_gold", false)}
}
} }
-- Default bucket names
bucket.default.empty = bucket.empty.."_"..bucket.default_material
bucket.default.water = bucket.water.."_"..bucket.default_material
bucket.default.lava = bucket.lava.."_"..bucket.default_material
-- Bucket aliases - default bucket ist steel
minetest.register_alias("bucket", bucket.default.empty)
minetest.register_alias("bucket_water", bucket.default.water)
minetest.register_alias("bucket_lava", bucket.default.lava)
-- for compatibility witk old bucket mod
minetest.register_alias("bucket:bucket_empty", bucket.default.empty)
minetest.register_alias("bucket:bucket_water", bucket.default.water)
minetest.register_alias("bucket:bucket_lava", bucket.default.lava)
-- set new recipe if enabled
local use_clasic_recipe = minetest.settings:get_bool("bucket_use_clasic_recipe", true)
if not use_clasic_recipe then
for idx, mat in pairs(craft_ingreds) do
craft_ingreds[idx].recipe = table.copy(bucket.recipe_new)
end
end
-- according to source (liquid type) assign bucket with "bucket" liquid -- according to source (liquid type) assign bucket with "bucket" liquid
-- with this you can override the mod setting -- with this you can override the mod setting
bucket.giving_back={ bucket.giving_back={
@ -54,30 +120,36 @@ bucket.giving_back={
-- load settingtypes -- load settingtypes
local get_flowing_liquid = minetest.settings:get_bool("bucket_get_flowing", true) local get_flowing_liquid = minetest.settings:get_bool("bucket_get_flowing", true)
-- craft empty bucket -- Function relpaces all "MATERIAL" with new/real material definition new_mat
minetest.register_craft({ local function replace_recipe_material(recipe_def, new_mat)
output = bucket.empty.." 1", local recipe_mat = table.copy(recipe_def)
recipe = { for r_row_idx, r_row in pairs(recipe_def) do
{bucket.material, "", bucket.material}, for r_idx, r_mat in pairs(r_row) do
{"", bucket.material, ""}, if r_mat=="MATERIAL" then
} recipe_mat[r_row_idx][r_idx]=new_mat
}) end
end
end
return recipe_mat
end
-- Register empty buckets crafting recipes
for name, mat in pairs(craft_ingreds) do for name, mat in pairs(craft_ingreds) do
-- replace "MATERIAL" with correct one
local bucket_recipe = replace_recipe_material(mat.recipe, mat[1])
-- register new empty bucket crafting recipe
minetest.register_craft({ minetest.register_craft({
output = "bucket:bucket_empty".."_"..name, output = "bucket:bucket_empty".."_"..name,
recipe = { recipe = table.copy(bucket_recipe)
{mat[1], "", mat[1]},
{"", mat[1], ""},
}
}) })
end end
-- for compatibility -- for compatibility
minetest.register_alias("bucket:bucket_empty", "bucket:bucket_empty_steel") minetest.register_alias("bucket:bucket_empty", "bucket:bucket_empty_steel")
-- protection - from original bucket mod
-- not analysed yet
local function check_protection(pos, name, text) local function check_protection(pos, name, text)
if minetest.is_protected(pos, name) then if minetest.is_protected(pos, name) then
minetest.log("action", (name ~= "" and name or "A mod") minetest.log("action", (name ~= "" and name or "A mod")
@ -91,16 +163,20 @@ local function check_protection(pos, name, text)
return false return false
end end
-- ============================================================================
-- Register a new liquid -- Register a new liquid
-- source = name of the source node -- source = name of the source node
-- flowing = name of the flowing node -- flowing = name of the flowing node
-- itemname = name of the new bucket item (or nil if liquid is not takeable) -- itemname = name of the new bucket item (or nil if liquid is not takeable)
-- inventory_image = texture of the new bucket item (ignored if itemname == nil) -- inventory_image = texture of the new bucket item (ignored if itemname == nil)
-- - this new bucket mod version defines is as table, e.g. {empty = "bucket_uni.png", materials = craft_ingreds, fill = "bucket_uni_lava.png"}
-- - if only one image is defined, then thi imege is used for liquid and bucket materials are from this mod
-- name = text description of the bucket item -- name = text description of the bucket item
-- groups = (optional) groups of the bucket item, for example {water_bucket = 1} -- groups = (optional) groups of the bucket item, for example {water_bucket = 1}
-- force_renew = (optional) bool. Force the liquid source to renew if it has a -- force_renew = (optional) bool. Force the liquid source to renew if it has a
-- source neighbour, even if defined as 'liquid_renewable = false'. -- source neighbour, even if defined as 'liquid_renewable = false'.
-- Needed to avoid creating holes in sloping rivers. -- Needed to avoid creating holes in sloping rivers.
-- giving_back = (NEW) defines the bucket to return
-- This function can be called from any mod (that depends on bucket). -- This function can be called from any mod (that depends on bucket).
local function register_full_bucket(source, flowing, itemname, inventory_image, name, local function register_full_bucket(source, flowing, itemname, inventory_image, name,
@ -163,8 +239,10 @@ local function register_full_bucket(source, flowing, itemname, inventory_image,
}) })
end end
-- Function to register new liquid in bucket
function bucket.register_liquid(source, flowing, itemname, inventory_image, name, function bucket.register_liquid(source, flowing, itemname, inventory_image, name,
groups, force_renew) groups, force_renew, giving_back)
bucket.liquids[source] = { bucket.liquids[source] = {
source = source, source = source,
flowing = flowing, flowing = flowing,
@ -174,129 +252,168 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name
bucket.liquids[flowing] = bucket.liquids[source] bucket.liquids[flowing] = bucket.liquids[source]
if itemname ~= nil then if itemname ~= nil then
local inv_images
if type(inventory_image) == "string" then if type(inventory_image) == "string" then
register_full_bucket(source, flowing, itemname, inventory_image, name, -- if only one image is defined (like from other mod)
groups, force_renew) -- material are from predefined craft_ingreds
-- fill/liquid image ist taken from the inventory_image
inv_images = {empty = "bucket_uni.png", materials = craft_ingreds, fill = "bucket_uni_fill.png"}
else else
bucket.liquids[source].itemname = {} -- if more images in table are defined = more materials
for mat_name, mat in pairs(inventory_image["materials"]) do -- suplied materials and images are used - has to be like in this mod defined
inv_images = inventory_image
end
bucket.liquids[source].itemname = {} -- all buckets for defined source
-- loop for all materials in inv_images
for mat_name, mat in pairs(inv_images["materials"]) do
if mat["enabled"] then
local Mat_name = mat_name:gsub("^%l", string.upper) local Mat_name = mat_name:gsub("^%l", string.upper)
local bucket_name = S(Mat_name.." "..name) local bucket_name = S(Mat_name.." "..name)
local bucket_itemname = itemname.."_"..mat_name local bucket_itemname = itemname.."_"..mat_name
giving_back = bucket.empty.."_"..mat_name
bucket.liquids[source].itemname[mat_name]=bucket_itemname bucket.liquids[source].itemname[mat_name]=bucket_itemname
local bucket_inv_image = mat[2].."^[resize:16x16".."^[colorize:#fff:30^bucket_uni.png^"..inventory_image["fill"].."^[noalpha^[makealpha:0,255,0"
-- different image creation ist defined for all material, or only liquid it in inventory_image
local bucket_inv_image
if type(inventory_image) == "string" then
-- inly one image was delivered - inventory_image = liquid
-- like from other mods
local bucket_fill_image = "("..inventory_image.."^[resize:16x16".."^[colorize:#fff:30^"..inv_images["fill"].."^[noalpha^[makealpha:0,255,0)"
bucket_inv_image = mat[2].."^[resize:16x16".."^[colorize:#fff:30^bucket_uni.png".."^[noalpha^[makealpha:0,255,0^"..bucket_fill_image
else
-- all images for bucket are defined
-- definition in this mod
bucket_inv_image = mat[2].."^[resize:16x16".."^[colorize:#fff:30^bucket_uni.png^"..inv_images["fill"].."^[noalpha^[makealpha:0,255,0"
end
register_full_bucket(source, flowing, bucket_itemname, bucket_inv_image, bucket_name, register_full_bucket(source, flowing, bucket_itemname, bucket_inv_image, bucket_name,
groups, force_renew, bucket.empty.."_"..mat_name) groups, force_renew, giving_back)
end end
end end
end end
end end
-- ============================================================================
-- Register Empty buckets -- Register Empty buckets
for mat_name, mat in pairs(craft_ingreds) do for mat_name, mat in pairs(craft_ingreds) do
-- Capitalise first character if mat["enabled"] then
local Name = mat_name:gsub("^%l", string.upper) -- Capitalise first character
-- register all empty buckets local Name = mat_name:gsub("^%l", string.upper)
minetest.register_craftitem(bucket.empty.."_"..mat_name, { -- register all empty buckets
description = S(Name.." ".."Empty Bucket"), local bucket_empty = bucket.empty.."_"..mat_name
--inventory_image = "bucket.png", minetest.register_craftitem(bucket_empty, {
-- inventory_image created from bucket_uni.png and defined material texture mat[2] (craft_ingreds) description = S(Name.." ".."Empty Bucket"),
inventory_image = mat[2].."^[resize:16x16".."^[colorize:#fff:30^bucket_uni.png^[noalpha^[makealpha:0,255,0", --inventory_image = "bucket.png",
groups = {tool = 1}, -- inventory_image created from bucket_uni.png and defined material texture mat[2] (craft_ingreds)
liquids_pointable = true, inventory_image = mat[2].."^[resize:16x16".."^[colorize:#fff:30^bucket_uni.png^[noalpha^[makealpha:0,255,0",
on_use = function(itemstack, user, pointed_thing) --groups = {tool = 1},
if pointed_thing.type == "object" then groups = mat["groups"],
pointed_thing.ref:punch(user, 1.0, { full_punch_interval=1.0 }, nil) liquids_pointable = true,
return user:get_wielded_item() on_use = function(itemstack, user, pointed_thing)
elseif pointed_thing.type ~= "node" then if pointed_thing.type == "object" then
-- do nothing if it's neither object nor node pointed_thing.ref:punch(user, 1.0, { full_punch_interval=1.0 }, nil)
return return user:get_wielded_item()
end elseif pointed_thing.type ~= "node" then
-- Check if pointing to a liquid source -- do nothing if it's neither object nor node
local node = minetest.get_node(pointed_thing.under) return
local liquiddef = bucket.liquids[node.name]
local item_count = user:get_wielded_item():get_count()
-- node.name == liquiddef.flowing return water even from flowing liquid
-- get_flowing_liquid - if this is enabled
if liquiddef ~= nil
and liquiddef.itemname ~= nil
and (node.name == liquiddef.source
or (node.name == liquiddef.flowing and get_flowing_liquid)) then
if check_protection(pointed_thing.under,
user:get_player_name(),
"take ".. node.name) then
return
end end
-- Check if pointing to a liquid source
-- find source for the flowing liquid local node = minetest.get_node(pointed_thing.under)
if node.name == liquiddef.flowing then local liquiddef = bucket.liquids[node.name]
-- source_dist max. distance from flowing node, if Nil, the max. = 8 is used local item_count = user:get_wielded_item():get_count()
local source_dist = tonumber(minetest.registered_nodes[liquiddef.flowing].liquid_range) or 8
-- Find source node position -- Check if is lava and if lava can be taken
local source_pos = minetest.find_node_near(pointed_thing.under, source_dist, liquiddef.source) -- position of the source node -- exit if it not allowed - group get_lava = 0
-- If found, then replace with flowing node local bucket_name = itemstack:get_name()
if source_pos ~= nil then if minetest.registered_nodes[node.name].groups.lava and minetest.get_item_group(bucket_name, "get_lava")==0 then
minetest.set_node(source_pos, {name = liquiddef.flowing}) return
else
-- if source not found, then do nothing
return
end
end end
-- node.name == liquiddef.flowing return water even from flowing liquid
-- get_flowing_liquid - if this is enabled
-- default set to return filled bucket if liquiddef ~= nil
local giving_back = bucket.giving_back[liquiddef.source] and liquiddef.itemname ~= nil
and (node.name == liquiddef.source
-- giving_back from original bucket or (node.name == liquiddef.flowing and get_flowing_liquid)) then
if giving_back == nil then if check_protection(pointed_thing.under,
if type(liquiddef.itemname) == "string" then user:get_player_name(),
giving_back = liquiddef.itemname "take ".. node.name) then
else return
giving_back = liquiddef.itemname[mat_name]
end
end
-- check if holding more than 1 empty bucket
if item_count > 1 then
-- if space in inventory add filled bucked, otherwise drop as item
local inv = user:get_inventory()
if inv:room_for_item("main", {name=giving_back}) then
inv:add_item("main", giving_back)
else
local pos = user:get_pos()
pos.y = math.floor(pos.y + 0.5)
minetest.add_item(pos, giving_back)
end end
-- set to return empty buckets minus 1 -- find source for the flowing liquid
giving_back = bucket.empty.." "..tostring(item_count-1) if node.name == liquiddef.flowing then
-- source_dist max. distance from flowing node, if Nil, the max. = 8 is used
local source_dist = tonumber(minetest.registered_nodes[liquiddef.flowing].liquid_range) or 8
-- Find source node position
local source_pos = minetest.find_node_near(pointed_thing.under, source_dist, liquiddef.source) -- position of the source node
-- If found, then replace with flowing node
if source_pos ~= nil then
minetest.set_node(source_pos, {name = liquiddef.flowing})
else
-- if source not found, then do nothing
return
end
end
end
-- force_renew requires a source neighbour -- default set to return filled bucket
local source_neighbor = false -- defined in this script
if liquiddef.force_renew then local giving_back = bucket.giving_back[liquiddef.source]
source_neighbor =
minetest.find_node_near(pointed_thing.under, 1, liquiddef.source)
end
if not (source_neighbor and liquiddef.force_renew) then
minetest.add_node(pointed_thing.under, {name = "air"})
end
return ItemStack(giving_back) -- giving_back from original bucket
else if giving_back == nil then
-- non-liquid nodes will have their on_punch triggered -- if type(liquiddef.itemname) == "string" then
local node_def = minetest.registered_nodes[node.name] -- giving_back = liquiddef.itemname
if node_def then -- else
node_def.on_punch(pointed_thing.under, node, user, pointed_thing) giving_back = liquiddef.itemname[mat_name]
-- end
end
-- check if holding more than 1 empty bucket
if item_count > 1 then
-- if space in inventory add filled bucked, otherwise drop as item
local inv = user:get_inventory()
if inv:room_for_item("main", {name=giving_back}) then
inv:add_item("main", giving_back)
else
local pos = user:get_pos()
pos.y = math.floor(pos.y + 0.5)
minetest.add_item(pos, giving_back)
end
-- set to return empty buckets minus 1
itemstack:take_item()
giving_back = itemstack
end
-- force_renew requires a source neighbour
local source_neighbor = false
if liquiddef.force_renew then
source_neighbor =
minetest.find_node_near(pointed_thing.under, 1, liquiddef.source)
end
if not (source_neighbor and liquiddef.force_renew) then
minetest.add_node(pointed_thing.under, {name = "air"})
end
return ItemStack(giving_back)
else
-- non-liquid nodes will have their on_punch triggered
local node_def = minetest.registered_nodes[node.name]
if node_def then
node_def.on_punch(pointed_thing.under, node, user, pointed_thing)
end
return user:get_wielded_item()
end end
return user:get_wielded_item() end,
end })
end, end
})
end end
-- original bucket - to take the original liquit sources -- original bucket - to take the original liquit sources
@ -362,23 +479,45 @@ bucket.register_liquid(
---- ----
minetest.register_craft({ -- Add lava as fuel
type = "fuel", for mat_name, mat in pairs(craft_ingreds) do
recipe = bucket.lava, local bucket_empty = bucket.empty.."_"..mat_name
burntime = 60, local bucket_lava = bucket.lava.."_"..mat_name
replacements = {{bucket.lava, bucket.empty}},
}) if mat["enabled"] and mat["groups"].get_lava==1 then
minetest.register_craft({
type = "fuel",
recipe = bucket_lava,
burntime = 60,
replacements = {{bucket_lava, bucket_empty}},
})
end
end
-- Register buckets as dungeon loot -- Register buckets as dungeon loot
if minetest.global_exists("dungeon_loot") then if minetest.global_exists("dungeon_loot") then
dungeon_loot.register({ for mat_name, mat in pairs(craft_ingreds) do
{name = bucket.empty, chance = 0.55}, local bucket_empty = bucket.empty.."_"..mat_name
-- water in deserts/ice or above ground, lava otherwise local bucket_lava = bucket.lava.."_"..mat_name
{name = bucket.water, chance = 0.45, local bucket_water = bucket.water.."_"..mat_name
types = {"sandstone", "desert", "ice"}},
{name = bucket.water, chance = 0.45, y = {0, 32768}, if mat["enabled"] then
types = {"normal"}}, -- water in deserts/ice or above ground, lava otherwise if enabled
{name = bucket.lava, chance = 0.45, y = {-32768, -1}, dungeon_loot.register({
types = {"normal"}}, {name = bucket_empty, chance = 0.55},
}) {name = bucket_water, chance = 0.45,
types = {"sandstone", "desert", "ice"}},
{name = bucket_water, chance = 0.45, y = {0, 32768},
types = {"normal"}},
})
if mat["groups"].get_lava==1 then
dungeon_loot.register({
{name = bucket_lava, chance = 0.45, y = {-32768, -1},
types = {"normal"}},
})
end
end
end
end end

View File

@ -28,3 +28,4 @@ Diamond Lava Bucket=Diamantové vedro s lávou
Gold Empty Bucket=Zlaté prázdne vedro Gold Empty Bucket=Zlaté prázdne vedro
Gold Water Bucket=Zlaté vedro s vodou Gold Water Bucket=Zlaté vedro s vodou
Gold Lava Bucket=Zlaté vedro s lávou Gold Lava Bucket=Zlaté vedro s lávou
Mod: dynamic_liquid is not changed. add_to_water_nodes function is missing! Lava colling will not work the same ways, as the default water-lava interaction works.=Rozšírenie dynamic_liquid nie je zmenené. Chýba funkcia add_to_water_nodes! Ochladzovanie lávy nebude fungovať rovnako, ako funguje štandardná interakcia voda-láva.

View File

@ -28,3 +28,4 @@ Diamond Lava Bucket=
Gold Empty Bucket= Gold Empty Bucket=
Gold Water Bucket= Gold Water Bucket=
Gold Lava Bucket= Gold Lava Bucket=
Mod: dynamic_liquid is not changed. add_to_water_nodes function is missing! Lava colling will not work the same ways, as the default water-lava interaction works.=

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -7,3 +7,55 @@ bucket_lava_flowing_range (Bucket lava flowing range) int 1
# If true, then liquid can be taken even from flowing one # If true, then liquid can be taken even from flowing one
# (not only from source) # (not only from source)
bucket_get_flowing (Flowing liwuid can be taken) bool true bucket_get_flowing (Flowing liwuid can be taken) bool true
# Use "clasic" bucket recipe
# - This can interfere with farming mod Wood Empty Bucket = Wooden Bowl
# + X + - + X +
# + - + X + - +
#
# NEW Recipe
# + X + - + X +
# + X + - + X +
# + X + X + X +
bucket_use_clasic_recipe (Use clasic recipe for bucket) bool true
# Enabled buckettypes
[Bucket types]
# Default bucket type
# - do not disable defined type, or you get nothing with /giveme bucket
bucket_default_type (Bucket default type) enum steel steel,wood,stone,bronze,mese,diamond,gold
# Enable steel bucket
bucket_material_steel (Enable steel bucket) bool true
# Enable wood bucket
bucket_material_wood (Enable wood bucket) bool true
# Enable stone bucket
bucket_material_stone (Enable stone bucket) bool true
# Enable bronze bucket
bucket_material_bronze (Enable bronze bucket) bool true
# Enable mese bucket
bucket_material_mese (Enable mese bucket) bool true
# Enable diamond bucket
bucket_material_diamond (Enable diamond bucket) bool true
# Enable gold bucket
bucket_material_gold (Enable gold bucket) bool true
# Enable getting lava with buckettypes
[Get lava types]
# Get lava with steel bucket
bucket_getlava_steel (Enable steel bucket) bool true
# Get lava with wood bucket
bucket_getlava_wood (Enable wood bucket) bool false
# Get lava with stone bucket
bucket_getlava_stone (Enable stone bucket) bool true
# Get lava with bronze bucket
bucket_getlava_bronze (Enable bronze bucket) bool false
# Get lava with mese bucket
bucket_getlava_mese (Enable mese bucket) bool true
# Get lava with diamond bucket
bucket_getlava_diamond (Enable diamond bucket) bool true
# Get lava with gold bucket
bucket_getlava_gold (Enable gold bucket) bool false

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

View File

@ -13,6 +13,7 @@ This mod works by adding your new plant to the {growing=1} group and numbering t
### Changelog: ### Changelog:
- 1.46 - Added min/max default light settings, added lettuce and blackberries with food items (thanks OgelGames), added soya and vanilla (thanks Felfa), added tofu
- 1.45 - Dirt and Hoes are more in line with default by using dry/wet/base, added cactus juice, added pasta, spaghetti, cabbage, korean bibimbap, code tidy - 1.45 - Dirt and Hoes are more in line with default by using dry/wet/base, added cactus juice, added pasta, spaghetti, cabbage, korean bibimbap, code tidy
options, onion soup added (thanks edcrypt), Added apple pie, added wild cotton to savanna options, onion soup added (thanks edcrypt), Added apple pie, added wild cotton to savanna
- 1.44 - Added 'farming_stage_length' in mod settings for speed of crop growth, also thanks to TheDarkTiger for translation updates - 1.44 - Added 'farming_stage_length' in mod settings for speed of crop growth, also thanks to TheDarkTiger for translation updates

View File

@ -108,8 +108,8 @@ minetest.register_node("farming:barley_7", table.copy(def))
farming.registered_plants["farming:barley"] = { farming.registered_plants["farming:barley"] = {
crop = "farming:barley", crop = "farming:barley",
seed = "farming:seed_barley", seed = "farming:seed_barley",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 7 steps = 7
} }

View File

@ -226,8 +226,8 @@ minetest.register_node("farming:beanpole_5", table.copy(def))
farming.registered_plants["farming:beans"] = { farming.registered_plants["farming:beans"] = {
crop = "farming:beanpole", crop = "farming:beanpole",
seed = "farming:beans", seed = "farming:beans",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 5 steps = 5
} }

View File

@ -86,7 +86,7 @@ minetest.register_node("farming:beetroot_5", table.copy(def))
farming.registered_plants["farming:beetroot"] = { farming.registered_plants["farming:beetroot"] = {
crop = "farming:beetroot", crop = "farming:beetroot",
seed = "farming:beetroot", seed = "farming:beetroot",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 5 steps = 5
} }

View File

@ -0,0 +1,62 @@
local S = farming.intllib
-- blackberries
minetest.register_craftitem("farming:blackberry", {
description = S("Blackberries"),
inventory_image = "farming_blackberry.png",
groups = {seed = 2, food_blackberries = 1, food_blackberry = 1,
food_berry = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:blackberry_1")
end,
on_use = minetest.item_eat(1),
})
local def = {
drawtype = "plantlike",
tiles = {"farming_blackberry_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:blackberry_1", table.copy(def))
-- stage 2
def.tiles = {"farming_blackberry_2.png"}
minetest.register_node("farming:blackberry_2", table.copy(def))
-- stage 3
def.tiles = {"farming_blackberry_3.png"}
minetest.register_node("farming:blackberry_3", table.copy(def))
-- stage 4
def.tiles = {"farming_blackberry_4.png"}
def.groups.growing = nil
def.drop = {
items = {
{items = {'farming:blackberry 2'}, rarity = 1},
{items = {'farming:blackberry'}, rarity = 2},
{items = {'farming:blackberry'}, rarity = 3},
}
}
minetest.register_node("farming:blackberry_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:blackberry"] = {
crop = "farming:blackberry",
seed = "farming:blackberry",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}

View File

@ -88,7 +88,7 @@ minetest.register_node("farming:blueberry_4", table.copy(def))
farming.registered_plants["farming:blueberries"] = { farming.registered_plants["farming:blueberries"] = {
crop = "farming:blueberry", crop = "farming:blueberry",
seed = "farming:blueberries", seed = "farming:blueberries",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 4 steps = 4
} }

View File

@ -53,8 +53,8 @@ def.tiles = {"farming_cabbage_6.png"}
def.groups.growing = nil def.groups.growing = nil
def.drop = { def.drop = {
max_items = 2, items = { max_items = 2, items = {
{items = {"farming:cabbage"}, rarity = 1}, {items = {"farming:cabbage 2"}, rarity = 1},
{items = {"farming:cabbage"}, rarity = 2} {items = {"farming:cabbage 1"}, rarity = 2}
} }
} }
minetest.register_node("farming:cabbage_6", table.copy(def)) minetest.register_node("farming:cabbage_6", table.copy(def))
@ -63,7 +63,7 @@ minetest.register_node("farming:cabbage_6", table.copy(def))
farming.registered_plants["farming:cabbage"] = { farming.registered_plants["farming:cabbage"] = {
crop = "farming:cabbage", crop = "farming:cabbage",
seed = "farming:cabbage", seed = "farming:cabbage",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 6 steps = 6
} }

View File

@ -118,7 +118,7 @@ minetest.register_node("farming:carrot_8", table.copy(def))
farming.registered_plants["farming:carrot"] = { farming.registered_plants["farming:carrot"] = {
crop = "farming:carrot", crop = "farming:carrot",
seed = "farming:carrot", seed = "farming:carrot",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 8 steps = 8
} }

View File

@ -95,7 +95,7 @@ minetest.register_node("farming:chili_8", table.copy(def))
farming.registered_plants["farming:chili_pepper"] = { farming.registered_plants["farming:chili_pepper"] = {
crop = "farming:chili", crop = "farming:chili",
seed = "farming:chili_pepper", seed = "farming:chili_pepper",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 8 steps = 8
} }

View File

@ -194,8 +194,8 @@ minetest.register_node("farming:cocoa_4", table.copy(def))
farming.registered_plants["farming:cocoa_beans"] = { farming.registered_plants["farming:cocoa_beans"] = {
crop = "farming:cocoa", crop = "farming:cocoa",
seed = "farming:cocoa_beans", seed = "farming:cocoa_beans",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 4 steps = 4
} }

View File

@ -106,7 +106,7 @@ minetest.register_node("farming:coffee_5", table.copy(def))
farming.registered_plants["farming:coffee"] = { farming.registered_plants["farming:coffee"] = {
crop = "farming:coffee", crop = "farming:coffee",
seed = "farming:coffee_beans", seed = "farming:coffee_beans",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 5 steps = 5
} }

View File

@ -153,7 +153,7 @@ minetest.register_node("farming:corn_8", table.copy(def))
farming.registered_plants["farming:corn"] = { farming.registered_plants["farming:corn"] = {
crop = "farming:corn", crop = "farming:corn",
seed = "farming:corn", seed = "farming:corn",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 8 steps = 8
} }

View File

@ -172,8 +172,8 @@ minetest.register_node("farming:cotton_8", table.copy(def))
farming.registered_plants["farming:cotton"] = { farming.registered_plants["farming:cotton"] = {
crop = "farming:cotton", crop = "farming:cotton",
seed = "farming:seed_cotton", seed = "farming:seed_cotton",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 8 steps = 8
} }

View File

@ -59,7 +59,7 @@ minetest.register_node("farming:cucumber_4", table.copy(def))
farming.registered_plants["farming:cucumber"] = { farming.registered_plants["farming:cucumber"] = {
crop = "farming:cucumber", crop = "farming:cucumber",
seed = "farming:cucumber", seed = "farming:cucumber",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 4 steps = 4
} }

View File

@ -129,7 +129,7 @@ minetest.register_node("farming:garlic_5", table.copy(def))
farming.registered_plants["farming:garlic"] = { farming.registered_plants["farming:garlic"] = {
crop = "farming:garlic", crop = "farming:garlic",
seed = "farming:garlic_clove", seed = "farming:garlic_clove",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 5 steps = 5
} }

View File

@ -233,8 +233,8 @@ minetest.register_node("farming:grapes_8", table.copy(def))
farming.registered_plants["farming:grapes"] = { farming.registered_plants["farming:grapes"] = {
crop = "farming:grapes", crop = "farming:grapes",
seed = "farming:grapes", seed = "farming:grapes",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 8 steps = 8
} }

View File

@ -256,7 +256,7 @@ minetest.register_node("farming:hemp_8", table.copy(def))
farming.registered_plants["farming:hemp"] = { farming.registered_plants["farming:hemp"] = {
crop = "farming:hemp", crop = "farming:hemp",
seed = "farming:seed_hemp", seed = "farming:seed_hemp",
minlight = 13, mminlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 8 steps = 8
} }

View File

@ -0,0 +1,63 @@
local S = farming.intllib
-- lettuce
minetest.register_craftitem("farming:lettuce", {
description = S("Lettuce"),
inventory_image = "farming_lettuce.png",
groups = {seed = 2, food_lettuce = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:lettuce_1")
end,
on_use = minetest.item_eat(2),
})
local def = {
drawtype = "plantlike",
tiles = {"farming_lettuce_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:lettuce_1", table.copy(def))
-- stage 2
def.tiles = {"farming_lettuce_2.png"}
minetest.register_node("farming:lettuce_2", table.copy(def))
-- stage 3
def.tiles = {"farming_lettuce_3.png"}
minetest.register_node("farming:lettuce_3", table.copy(def))
-- stage 4
def.tiles = {"farming_lettuce_4.png"}
minetest.register_node("farming:lettuce_4", table.copy(def))
-- stage 5
def.tiles = {"farming_lettuce_5.png"}
def.groups.growing = nil
def.drop = {
items = {
{items = {'farming:lettuce 2'}, rarity = 1},
{items = {'farming:lettuce 1'}, rarity = 2},
}
}
minetest.register_node("farming:lettuce_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:lettuce"] = {
crop = "farming:lettuce",
seed = "farming:lettuce",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}

View File

@ -88,7 +88,7 @@ minetest.register_node("farming:melon_8", table.copy(def))
farming.registered_plants["farming:melon"] = { farming.registered_plants["farming:melon"] = {
crop = "farming:melon", crop = "farming:melon",
seed = "farming:melon_slice", seed = "farming:melon_slice",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 8 steps = 8
} }

View File

@ -101,7 +101,7 @@ minetest.register_node("farming:mint_4", table.copy(def))
farming.registered_plants["farming:mint"] = { farming.registered_plants["farming:mint"] = {
crop = "farming:mint", crop = "farming:mint",
seed = "farming:seed_mint", seed = "farming:seed_mint",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 4 steps = 4
} }

View File

@ -90,7 +90,7 @@ minetest.register_node("farming:onion_5", table.copy(def))
farming.registered_plants["farming:onion"] = { farming.registered_plants["farming:onion"] = {
crop = "farming:onion", crop = "farming:onion",
seed = "farming:onion", seed = "farming:onion",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 5 steps = 5
} }

View File

@ -91,7 +91,7 @@ minetest.register_node("farming:pea_5", table.copy(def))
farming.registered_plants["farming:pea_pod"] = { farming.registered_plants["farming:pea_pod"] = {
crop = "farming:pea", crop = "farming:pea",
seed = "farming:pea_pod", seed = "farming:pea_pod",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 5 steps = 5
} }

View File

@ -19,16 +19,32 @@ minetest.register_craftitem("farming:peppercorn", {
-- green pepper -- green pepper
minetest.register_craftitem("farming:pepper", { minetest.register_craftitem("farming:pepper", {
description = S("Pepper"), description = S("Green Pepper"),
inventory_image = "crops_pepper.png", inventory_image = "crops_pepper.png",
on_use = minetest.item_eat(2), on_use = minetest.item_eat(2),
groups = {food_pepper = 1, flammable = 3} groups = {food_pepper = 1, flammable = 3}
}) })
-- yellow pepper
minetest.register_craftitem("farming:pepper_yellow", {
description = S("Yellow Pepper"),
inventory_image = "crops_pepper_yellow.png",
on_use = minetest.item_eat(3),
groups = {food_pepper = 1, flammable = 3},
})
-- red pepper
minetest.register_craftitem("farming:pepper_red", {
description = S("Red Pepper"),
inventory_image = "crops_pepper_red.png",
on_use = minetest.item_eat(4),
groups = {food_pepper = 1, flammable = 3},
})
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "farming:peppercorn", output = "farming:peppercorn",
recipe = {"farming:pepper"} recipe = {"group:food_pepper"}
}) })
-- ground pepper -- ground pepper
@ -93,11 +109,10 @@ minetest.register_node("farming:pepper_3", table.copy(def))
def.tiles = {"crops_pepper_plant_4.png"} def.tiles = {"crops_pepper_plant_4.png"}
minetest.register_node("farming:pepper_4", table.copy(def)) minetest.register_node("farming:pepper_4", table.copy(def))
-- stage 5 -- stage 5 (green pepper)
def.tiles = {"crops_pepper_plant_5.png"} def.tiles = {"crops_pepper_plant_5.png"}
def.groups.growing = 0
def.drop = { def.drop = {
items = { max_items = 2, items = {
{items = {"farming:pepper 2"}, rarity = 1}, {items = {"farming:pepper 2"}, rarity = 1},
{items = {"farming:pepper"}, rarity = 2}, {items = {"farming:pepper"}, rarity = 2},
{items = {"farming:pepper"}, rarity = 3} {items = {"farming:pepper"}, rarity = 3}
@ -105,11 +120,34 @@ def.drop = {
} }
minetest.register_node("farming:pepper_5", table.copy(def)) minetest.register_node("farming:pepper_5", table.copy(def))
-- stage 6 (yellow pepper)
def.tiles = {"crops_pepper_plant_6.png"}
def.drop = {
max_items = 2, items = {
{items = {'farming:pepper_yellow 2'}, rarity = 1},
{items = {'farming:pepper_yellow'}, rarity = 2},
{items = {'farming:pepper_yellow'}, rarity = 3},
}
}
minetest.register_node("farming:pepper_6", table.copy(def))
-- stage 7 (red pepper)
def.tiles = {"crops_pepper_plant_7.png"}
def.groups.growing = nil
def.drop = {
max_items = 2, items = {
{items = {'farming:pepper_red 2'}, rarity = 1},
{items = {'farming:pepper_red'}, rarity = 2},
{items = {'farming:pepper_red'}, rarity = 3},
}
}
minetest.register_node("farming:pepper_7", table.copy(def))
-- add to registered_plants -- add to registered_plants
farming.registered_plants["farming:pepper"] = { farming.registered_plants["farming:pepper"] = {
crop = "farming:pepper", crop = "farming:pepper",
seed = "farming:peppercorn", seed = "farming:peppercorn",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 5 steps = 5
} }

View File

@ -135,7 +135,7 @@ minetest.register_node("farming:pineapple_8", table.copy(def))
farming.registered_plants["farming:pineapple"] = { farming.registered_plants["farming:pineapple"] = {
crop = "farming:pineapple", crop = "farming:pineapple",
seed = "farming:pineapple_top", seed = "farming:pineapple_top",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 8 steps = 8
} }

View File

@ -106,7 +106,7 @@ minetest.register_node("farming:potato_4", table.copy(def))
farming.registered_plants["farming:potato"] = { farming.registered_plants["farming:potato"] = {
crop = "farming:potato", crop = "farming:potato",
seed = "farming:potato", seed = "farming:potato",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 4 steps = 4
} }

View File

@ -200,7 +200,7 @@ minetest.register_alias("farming:pumpkin", "farming:pumpkin_8")
farming.registered_plants["farming:pumpkin"] = { farming.registered_plants["farming:pumpkin"] = {
crop = "farming:pumpkin", crop = "farming:pumpkin",
seed = "farming:pumpkin_slice", seed = "farming:pumpkin_slice",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 8 steps = 8
} }

View File

@ -74,7 +74,7 @@ minetest.register_node("farming:raspberry_4", table.copy(def))
farming.registered_plants["farming:raspberries"] = { farming.registered_plants["farming:raspberries"] = {
crop = "farming:raspberry", crop = "farming:raspberry",
seed = "farming:raspberries", seed = "farming:raspberries",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 4 steps = 4
} }

View File

@ -71,7 +71,7 @@ minetest.register_node("farming:rhubarb_3", table.copy(def))
farming.registered_plants["farming:rhubarb"] = { farming.registered_plants["farming:rhubarb"] = {
crop = "farming:rhubarb", crop = "farming:rhubarb",
seed = "farming:rhubarb", seed = "farming:rhubarb",
minlight = 13, minlight = 10,
maxlight = 15, maxlight = 12,
steps = 3 steps = 3
} }

View File

@ -0,0 +1,171 @@
local S = farming.intllib
-- soy pod
minetest.register_craftitem("farming:soy_pod", {
description = S("Soy Pod"),
inventory_image = "farming_soy_pod.png",
groups = {seed = 2, food_soy_pod = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:soy_1")
end
})
minetest.register_craftitem("farming:soy_beans", {
description = S("Soy Beans"),
inventory_image = "farming_soy_beans.png",
groups = {food_soy = 1, flammable = 2},
on_use = minetest.item_eat(1)
})
minetest.register_craft({
type = "shapeless",
output = "farming:soy_beans",
recipe = {"farming:soy_pod"}
})
-- soy milk
minetest.register_node("farming:soy_milk", {
description = S("Soy Milk"),
drawtype = "plantlike",
tiles = {"farming_soy_milk_glass.png"},
inventory_image = "farming_soy_milk_glass.png",
wield_image = "farming_soy_milk_glass.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
},
on_use = minetest.item_eat(2, "vessels:drinking_glass"),
groups = {
vessel = 1, food_milk_glass = 1, dig_immediate = 3,
attached_node = 1, drink = 1
},
sounds = default.node_sound_glass_defaults()
})
minetest.register_craft( {
type = "shapeless",
output = "farming:soy_milk",
recipe = {
"group:food_soy", "group:food_soy", "group:food_soy",
"farming:vanilla_extract", "bucket:bucket_water", "vessels:drinking_glass"
},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty"},
{"farming:vanilla_extract", "vessels:glass_bottle"}
}
})
-- tofu
minetest.register_craftitem("farming:tofu", {
description = S("Tofu"),
inventory_image = "farming_tofu.png",
groups = {food_tofu = 1, food_meat_raw = 1, flammable = 2},
on_use = minetest.item_eat(3)
})
minetest.register_craft({
output = "farming:tofu",
type = "shapeless",
recipe = {
"farming:baking_tray", "group:food_soy", "group:food_soy",
"group:food_soy", "group:food_soy", "group:food_soy",
},
replacements = {{"farming:baking_tray", "farming:baking_tray"}}
})
-- cooked tofu
minetest.register_craftitem("farming:tofu_cooked", {
description = S("Cooked Tofu"),
inventory_image = "farming_tofu_cooked.png",
groups = {food_meat = 1, flammable = 2},
on_use = minetest.item_eat(6)
})
minetest.register_craft({
type = "cooking",
output = "farming:tofu_cooked",
recipe = "farming:tofu",
cooktime = 5
})
-- crop definition
local def = {
drawtype = "plantlike",
tiles = {"farming_soy_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:soy_1", table.copy(def))
-- stage 2
def.tiles = {"farming_soy_2.png"}
minetest.register_node("farming:soy_2", table.copy(def))
-- stage 3
def.tiles = {"farming_soy_3.png"}
minetest.register_node("farming:soy_3", table.copy(def))
-- stage 4
def.tiles = {"farming_soy_4.png"}
minetest.register_node("farming:soy_4", table.copy(def))
-- stage 5
def.tiles = {"farming_soy_5.png"}
def.drop = {
max_items = 1, items = {
{items = {'farming:soy_pod'}, rarity = 1},
}
}
minetest.register_node("farming:soy_5", table.copy(def))
-- stage 6
def.tiles = {"farming_soy_6.png"}
def.drop = {
max_items = 3, items = {
{items = {'farming:soy_pod'}, rarity = 1},
{items = {'farming:soy_pod'}, rarity = 2},
{items = {'farming:soy_pod'}, rarity = 3},
}
}
minetest.register_node("farming:soy_6", table.copy(def))
-- stage 7
def.tiles = {"farming_soy_7.png"}
def.groups.growing = nil
def.drop = {
max_items = 5, items = {
{items = {'farming:soy_pod'}, rarity = 1},
{items = {'farming:soy_pod'}, rarity = 2},
{items = {'farming:soy_pod'}, rarity = 3},
{items = {'farming:soy_pod'}, rarity = 4},
{items = {'farming:soy_pod'}, rarity = 5}
}
}
minetest.register_node("farming:soy_7", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:soy_pod"] = {
crop = "farming:soy",
seed = "farming:soy_pod",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 7
}

View File

@ -83,7 +83,7 @@ minetest.register_node("farming:tomato_8", table.copy(def))
farming.registered_plants["farming:tomato"] = { farming.registered_plants["farming:tomato"] = {
crop = "farming:tomato", crop = "farming:tomato",
seed = "farming:tomato", seed = "farming:tomato",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 8 steps = 8
} }

View File

@ -0,0 +1,122 @@
local S = farming.intllib
-- vanilla
minetest.register_craftitem("farming:vanilla", {
description = S("Vanilla"),
inventory_image = "farming_vanilla.png",
groups = {seed = 2, food_vanilla = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:vanilla_1")
end,
on_use = minetest.item_eat(1),
})
-- crop definition
local def = {
drawtype = "plantlike",
tiles = {"farming_vanilla_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
}
-- vanilla extract
minetest.register_node("farming:vanilla_extract", {
description = S("Vanilla Extract"),
drawtype = "plantlike",
tiles = {"farming_vanilla_extract.png"},
inventory_image = "farming_vanilla_extract.png",
wield_image = "farming_vanilla_extract.png",
paramtype = "light",
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_craft( {
output = "farming:vanilla_extract",
recipe = {
{ "group:food_vanilla", "group:food_vanilla", "group:food_vanilla"},
{ "group:food_vanilla", "farming:bottle_ethanol", "bucket:bucket_water"},
},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty"},
}
})
minetest.register_craft({
type = "fuel",
recipe = "farming:vanilla_extract",
burntime = 25,
replacements = {{ "farming:vanilla_extract", "vessels:glass_bottle" }}
})
-- stage 1
minetest.register_node("farming:vanilla_1", table.copy(def))
-- stage 2
def.tiles = {"farming_vanilla_2.png"}
minetest.register_node("farming:vanilla_2", table.copy(def))
-- stage 3
def.tiles = {"farming_vanilla_3.png"}
minetest.register_node("farming:vanilla_3", table.copy(def))
-- stage 4
def.tiles = {"farming_vanilla_4.png"}
minetest.register_node("farming:vanilla_4", table.copy(def))
-- stage 5
def.tiles = {"farming_vanilla_5.png"}
minetest.register_node("farming:vanilla_5", table.copy(def))
-- stage 6
def.tiles = {"farming_vanilla_6.png"}
def.visual_scale = 1.9
minetest.register_node("farming:vanilla_6", table.copy(def))
-- stage 7
def.tiles = {"farming_vanilla_7.png"}
def.drop = {
items = {
{items = {'farming:vanilla'}, rarity = 1},
{items = {'farming:vanilla'}, rarity = 2},
{items = {'farming:vanilla'}, rarity = 3}
}
}
minetest.register_node("farming:vanilla_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_vanilla_8.png"}
def.groups.growing = nil
def.drop = {
items = {
{items = {'farming:vanilla 2'}, rarity = 1},
{items = {'farming:vanilla 2'}, rarity = 2},
{items = {'farming:vanilla 2'}, rarity = 2},
{items = {'farming:vanilla 2'}, rarity = 3}
}
}
minetest.register_node("farming:vanilla_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:vanilla"] = {
crop = "farming:vanilla",
seed = "farming:vanilla",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}

View File

@ -234,8 +234,8 @@ minetest.register_node("farming:wheat_8", table.copy(def))
farming.registered_plants["farming:wheat"] = { farming.registered_plants["farming:wheat"] = {
crop = "farming:wheat", crop = "farming:wheat",
seed = "farming:seed_wheat", seed = "farming:seed_wheat",
minlight = 13, minlight = farming.min_light,
maxlight = 15, maxlight = farming.max_light,
steps = 8 steps = 8
} }

View File

@ -31,7 +31,15 @@ farming.peas = 0.001
farming.beetroot = 0.001 farming.beetroot = 0.001
farming.mint = 0.005 farming.mint = 0.005
farming.cabbage = 0.001 farming.cabbage = 0.001
farming.blackberry = 0.002
farming.lettuce = 0.001
farming.soy = 0.001
farming.vanilla = 0.001
farming.grains = true -- true or false only farming.grains = true -- true or false only
-- default rarety of crops on map (higher number = more crops) -- default rarety of crops on map (higher number = more crops)
farming.rarety = 0.002 farming.rarety = 0.002
-- default minimum and maximum light levels crops need to grow
farming.min_light = 12
farming.max_light = 15

View File

@ -181,44 +181,18 @@ minetest.register_craftitem("farming:porridge", {
on_use = minetest.item_eat(6, "farming:bowl") on_use = minetest.item_eat(6, "farming:bowl")
}) })
minetest.after(0, function() minetest.register_craft({
type = "shapeless",
local fluid = "group:water_bucket" output = "farming:porridge",
local fluid_return = { recipe = {
{"group:water_bucket", "bucket:bucket_empty"}, "group:food_oats", "group:food_oats", "group:food_oats",
{"group:water_bucket_wooden", "bucket:bucket_empty"} "group:food_oats", "group:food_bowl", "group:food_milk_glass"
},
replacements = {
{"mobs:glass_milk", "vessels:drinking_glass"},
{"farming:soy_milk", "vessels:drinking_glass"}
} }
})
if minetest.get_modpath("mobs") and mobs and mobs.mod == "redo" then
fluid = "group:food_milk"
fluid_return = {
{"mobs:bucket_milk", "bucket:bucket_empty"}
}
else
minetest.register_craft({
type = "shapeless",
output = "farming:porridge",
recipe = {
"group:food_oats", "group:food_oats", "group:food_oats",
"group:food_oats", "group:food_bowl", "group:water_bucket_wooden"
},
replacements = fluid_return
})
end
minetest.register_craft({
type = "shapeless",
output = "farming:porridge",
recipe = {
"group:food_oats", "group:food_oats", "group:food_oats",
"group:food_oats", "group:food_bowl", fluid
},
replacements = fluid_return
})
if minetest.get_modpath("bucket_wooden") then
end
end)
--= Jaffa Cake --= Jaffa Cake
@ -373,3 +347,57 @@ minetest.register_craft({
replacements = {{"group:food_skillet", "farming:skillet"}} replacements = {{"group:food_skillet", "farming:skillet"}}
}) })
end end
-- Burger
minetest.register_craftitem("farming:burger", {
description = S("Burger"),
inventory_image = "farming_burger.png",
on_use = minetest.item_eat(16),
})
minetest.register_craft({
type = "shapeless",
output = "farming:burger",
recipe = {
"farming:bread", "group:food_meat", "group:food_cheese",
"group:food_tomato", "group:food_cucumber", "group:food_onion",
"group:food_lettuce"
}
})
-- Salad
minetest.register_craftitem("farming:salad", {
description = S("Salad"),
inventory_image = "farming_salad.png",
on_use = minetest.item_eat(8, "farming:bowl")
})
minetest.register_craft({
output = "farming:salad",
type = "shapeless",
recipe = {
"group:food_bowl", "group:food_tomato", "group:food_cucumber",
"group:food_lettuce", "group:food_oil"
},
})
-- Triple Berry Smoothie
minetest.register_craftitem("farming:smoothie_berry", {
description = S("Triple Berry Smoothie"),
inventory_image = "farming_berry_smoothie.png",
on_use = minetest.item_eat(6, "vessels:drinking_glass"),
groups = {vessel = 1, drink = 1}
})
minetest.register_craft({
output = "farming:smoothie_berry",
type = "shapeless",
recipe = {
"group:food_raspberries", "group:food_blackberries",
"group:food_strawberry", "group:food_banana",
"vessels:drinking_glass"
}
})

View File

@ -481,7 +481,7 @@ if minetest.get_modpath("moreores") then
{"", "", "group:stick"} {"", "", "group:stick"}
} }
}) })
--[[
farming.register_hoe(":moreores:hoe_silver", { farming.register_hoe(":moreores:hoe_silver", {
description = S("%s Hoe"):format(S("Silver")), description = S("%s Hoe"):format(S("Silver")),
inventory_image = "moreores_tool_silverhoe.png", inventory_image = "moreores_tool_silverhoe.png",
@ -510,5 +510,5 @@ if minetest.get_modpath("moreores") then
minetest.override_item("moreores:hoe_mithril", { minetest.override_item("moreores:hoe_mithril", {
original_description = desc, original_description = desc,
description = toolranks.create_description(desc)}) description = toolranks.create_description(desc)})
end end]]
end end

View File

@ -7,13 +7,15 @@
farming = { farming = {
mod = "redo", mod = "redo",
version = "20200702", version = "20201213",
path = minetest.get_modpath("farming"), path = minetest.get_modpath("farming"),
select = { select = {
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5} fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
}, },
registered_plants = {} registered_plants = {},
min_light = 12,
max_light = 15
} }
@ -332,9 +334,8 @@ function farming.plant_growth_timer(pos, elapsed, node_name)
return true return true
end end
local MIN_LIGHT = minetest.registered_nodes[node_name].minlight or 12 local MIN_LIGHT = minetest.registered_nodes[node_name].minlight or farming.min_light
local MAX_LIGHT = minetest.registered_nodes[node_name].maxlight or 15 local MAX_LIGHT = minetest.registered_nodes[node_name].maxlight or farming.max_light
--print ("---", MIN_LIGHT, MAX_LIGHT)
if max_growth == 1 or lambda < 2.0 then if max_growth == 1 or lambda < 2.0 then
@ -628,6 +629,10 @@ farming.peas = 0.001
farming.beetroot = 0.001 farming.beetroot = 0.001
farming.mint = 0.005 farming.mint = 0.005
farming.cabbage = 0.001 farming.cabbage = 0.001
farming.blackberry = 0.002
farming.soy = 0.001
farming.vanilla = 0.001
farming.lettuce = 0.001
farming.grains = true farming.grains = true
farming.rarety = 0.002 farming.rarety = 0.002
@ -694,6 +699,10 @@ ddoo("chili.lua", farming.chili)
ddoo("ryeoatrice.lua", farming.grains) ddoo("ryeoatrice.lua", farming.grains)
ddoo("mint.lua", farming.mint) ddoo("mint.lua", farming.mint)
ddoo("cabbage.lua", farming.cabbage) ddoo("cabbage.lua", farming.cabbage)
ddoo("blackberry.lua", farming.blackberry)
ddoo("soy.lua", farming.soy)
ddoo("vanilla.lua", farming.vanilla)
ddoo("lettuce.lua", farming.lettuce)
dofile(farming.path .. "/food.lua") dofile(farming.path .. "/food.lua")
dofile(farming.path .. "/mapgen.lua") dofile(farming.path .. "/mapgen.lua")

View File

@ -128,6 +128,7 @@ Created by TenPlus1 (CC BY 3.0)
farming_rhubarb.png farming_rhubarb.png
farming_rhubarb_pie.png farming_rhubarb_pie.png
farming_hemp*.png farming_hemp*.png
farming_tofu*.png
Created by ademant (CC-BY-3.0) Created by ademant (CC-BY-3.0)
farming_rye*.png farming_rye*.png
@ -142,3 +143,15 @@ Created by VanessaE and edited by SpaghettiToastBook (CC0):
Created by mDiyo (Natura), modified by TenPlus1 (License: CC BY-SA 3.0): Created by mDiyo (Natura), modified by TenPlus1 (License: CC BY-SA 3.0):
farming_barley.png farming_barley.png
Created by OgelGames (CC BY-SA 4.0)
farming_berry_smoothie.png
farming_cactus_juice.png
farming_salad.png
Created by Felfa (CC0)
farming_blackberry*.png
farming_lettuce*.png
farming_burger.png
farming_soy*.png
farming_vanilla*.png

View File

@ -1,94 +1,94 @@
# textdomain:farming # textdomain:farming
#%s Hoe= %s Hoe=%s Hacke
Apple Donut=Apfeldonut Apple Donut=Apfeldonut
#Apple Pie= Apple Pie=Apfelkuchen
Baked Potato=Ofenkartoffel Baked Potato=Ofenkartoffel
#Baking Tray= Baking Tray=Kuchenblech
#Banana= Banana=Banane
#Banana Leaves= Banana Leaves=Bananenblatt
Bar of Dark Chocolate=Tafel Zartbitterschokolade Bar of Dark Chocolate=Tafel Zartbitterschokolade
Barley=Gerste Barley=Gerste
Barley Seed=Gerstenkörner Barley Seed=Gerstenkörner
Bean Pole (place on soil before planting beans)=Bohnenstange (vor dem Pflanzen der Bohnen auf den\nAckerboden stellen) Bean Pole (place on soil before planting beans)=Bohnenstange (vor dem Pflanzen der Bohnen auf den\nAckerboden stellen)
#Beetroot= Beetroot=Rote Beete
#Beetroot Soup= Beetroot Soup=Rote Beete Suppe
#Bibimbap= Bibimbap=Bibimbap
Wild Blueberries=Wilde Blaubeeren Wild Blueberries=Wilde Blaubeeren
Blueberry Muffin=Blaubeermuffin Blueberry Muffin=Blaubeermuffin
#Blueberry Pie= Blueberry Pie=Blaubeerkuchen
Bottle of Ethanol=Flasche Ethanol Bottle of Ethanol=Flasche Ethanol
Bottle of Hemp Oil=Flasche mit Hanföl Bottle of Hemp Oil=Flasche mit Hanföl
#Bowl of Chili= Bowl of Chili=Chili Schale
Bread=Brot Bread=Brot
Bronze Hoe=Bronzehacke Bronze Hoe=Bronzehacke
#Cabbage= Cabbage=Salat
#Cactus Juice= Cactus Juice=Kaktussaft
Carrot=Möhre Carrot=Möhre
#Carrot Juice= Carrot Juice=Möhrensaft
#Chili Pepper= Chili Pepper=Chili
#Chocolate Block= Chocolate Block=Schokoladenstück
Chocolate Donut=Schokodonut Chocolate Donut=Schokodonut
Cocoa Beans=Kakaobohne Cocoa Beans=Kakaobohne
Coffee Beans=Kaffeebohnen Coffee Beans=Kaffeebohnen
Cookie=Keks Cookie=Keks
#Cooking Pot= Cooking Pot=Kochtopf
Corn=Mais Corn=Mais
Corn on the Cob=Maiskolben Corn on the Cob=Maiskolben
#Cornstarch= Cornstarch=Speisestärke
Cotton=Baumwolle Cotton=Baumwolle
Cotton Seed=Baumwollsamen Cotton Seed=Baumwollsamen
Cucumber=Gurke Cucumber=Gurke
#Cucumber and Potato Salad= Cucumber and Potato Salad=Gurken und Tomatensalat
Cup of Coffee=Tasse Kaffee Cup of Coffee=Tasse Kaffee
#Cutting Board= Cutting Board=Schneidebrett
Diamond Hoe=Diamanthacke Diamond Hoe=Diamanthacke
Donut=Donut Donut=Donut
Flour=Mehl Flour=Mehl
#Garlic= Garlic=Knoblauch
#Garlic Braid= Garlic Braid=Knoblauchzopf
#Garlic Bread= Garlic Bread=Knoblauchbrot
#Garlic clove= Garlic clove=Knoblauchzehe
#Glass Mixing Bowl= Glass Mixing Bowl=Glasschlüssel
Golden Carrot=Goldene Möhre Golden Carrot=Goldene Möhre
Grapes=Weintrauben Grapes=Weintrauben
Green Beans=Grüne Bohnen Green Beans=Grüne Bohnen
#Ground Pepper= Ground Pepper=Gemahlener Pfeffer
#Hemp Block= Hemp Block=Hanfblock
Hemp Fibre=Hanffaser Hemp Fibre=Hanffaser
Hemp Leaf=Hanfblatt Hemp Leaf=Hanfblatt
Hemp Rope=Hanfseil Hemp Rope=Hanfseil
Hemp Seed=Hanfsamen Hemp Seed=Hanfsamen
Hoe=Hacke Hoe=Hacke
#Hoe Bomb (use or throw on grassy areas to hoe land)= Hoe Bomb (use or throw on grassy areas to hoe land)=Hackbombe (Auf Grasland werfen oder benutzen)
Jack 'O Lantern (punch to turn on and off)=Kürbislaterne (Punch zum Ein- und Ausschalten) Jack 'O Lantern (punch to turn on and off)=Kürbislaterne (Punch zum Ein- und Ausschalten)
#Jaffa Cake= Jaffa Cake=Jaffa-Torte
#Juicer= Juicer=Entsafter
Melon=Melone Melon=Melone
Melon Slice=Melonenscheibe Melon Slice=Melonenscheibe
Mese Hoe=Mesehacke Mese Hoe=Mesehacke
#Mint Leaf= Mint Leaf=Minzblatt
#Mint Seeds= Mint Seeds=Minzsamen
#Mint Tea= Mint Tea=Minztee
#Mithril Scythe (Right-click to harvest and replant crops)= Mithril Scythe (Right-click to harvest and replant crops)=Mithril-Sense (Rechts-Klick zum Ernten und Wiedereinpflanzen)
#Mortar and Pestle= Mortar and Pestle=Mörser und Stößel
#Multigrain Bread= Multigrain Bread=Mehrkornbrot
#Multigrain Flour= Multigrain Flour=Mehrkornmehl
#Oat seed= Oat seed=Hafersamen
#Oats= Oats=Hafer
#Onion= Onion=Zwiebel
#Onion Soup= Onion Soup=Zwiebelsuppe
#Orange= Orange=Apfelsine
#Pasta= Pasta=Pasta
#Pea Pod= Pea Pod=Erbsenschote
#Pea Soup= Pea Soup=Erbsensuppe
#Peas= Peas=Erbsen
#Pepper= Pepper=Pfeffer
#Peppercorn= Peppercorn=Pfefferkorn
#Pineapple= Pineapple=Ananas
#Pineapple Juice= Pineapple Juice=Ananassaft
#Pineapple Ring= Pineapple Ring=Ananasscheibe
#Pineapple Top= Pineapple Top=Ananasdeckel
#Porridge= Porridge=Brei
Potato=Kartoffel Potato=Kartoffel
Pumpkin=Kürbis Pumpkin=Kürbis
Pumpkin Bread=Kürbisbrot Pumpkin Bread=Kürbisbrot
@ -98,37 +98,37 @@ Raspberries=Himbeeren
Raspberry Smoothie=Himbeersmoothie Raspberry Smoothie=Himbeersmoothie
Rhubarb=Rhabarber Rhubarb=Rhabarber
Rhubarb Pie=Rhabarberkuchen Rhubarb Pie=Rhabarberkuchen
#Rice= Rice=Reis
#Rice Bread= Rice Bread=Reiswaffel
#Rice Flour= Rice Flour=Reismehl
#Rice grains= Rice grains=Reissaat
#Rose Water= Rose Water=Rosenwasser
#Rye= Rye=Roggen
#Rye seed= Rye seed=Roggensaat
#Salt= Salt=Salz
#Saucepan= Saucepan=Kasserolle
#Savanna Soil= Savanna Soil=Savannaerde
#Scarecrow Bottom= Scarecrow Bottom=Vogelscheuchengestell
Seed=Saatgut Seed=Saatgut
#Skillet= Skillet=Bratpfanne
#Sliced Bread= Sliced Bread=Geschnittenes Brot
Soil=Ackerboden Soil=Ackerboden
#Spaghetti= Spaghetti=Spaghetti
Steel Hoe=Stahlhacke Steel Hoe=Stahlhacke
Stone Hoe=Steinhacke Stone Hoe=Steinhacke
Straw=Stroh Straw=Stroh
#Strawberry= Strawberry=Erdbeere
#String= String=Faden
Sugar=Zucker Sugar=Zucker
#Toast= Toast=Toast
#Toast Sandwich= Toast Sandwich=Toast Sandwich
Tomato=Tomate Tomato=Tomate
Trellis (place on soil before planting grapes)=Spalier (vor dem Pflanzen der Weintrauben auf den\nAckerboden stellen) Trellis (place on soil before planting grapes)=Spalier (vor dem Pflanzen der Weintrauben auf den\nAckerboden stellen)
#Turkish Delight= Turkish Delight=Lokum
#Wet Savanna Soil= Wet Savanna Soil=Feuchte Savannaerde
Wet Soil=Bewässerter Ackerboden Wet Soil=Bewässerter Ackerboden
Wheat=Weizen Wheat=Weizen
Wheat Seed=Weizenkörner Wheat Seed=Weizenkörner
#Wild Cotton= Wild Cotton=Wilde Baumwolle
#Wooden Bowl= Wooden Bowl=Holzschale
Wooden Hoe=Holzhacke Wooden Hoe=Holzhacke

View File

@ -1,3 +1,8 @@
-- what mapgen are we using
local mg_name = minetest.get_mapgen_setting("mg_name")
-- temp vars
local tmp1, tmp2, tmp3
-- decoration function -- decoration function
local function register_plant(name, min, max, spawnon, spawnby, num, rarety) local function register_plant(name, min, max, spawnon, spawnby, num, rarety)
@ -35,9 +40,6 @@ end
register_plant("potato_3", 15, 40, nil, "", -1, farming.potato) register_plant("potato_3", 15, 40, nil, "", -1, farming.potato)
register_plant("tomato_7", 5, 20, nil, "", -1, farming.tomato) register_plant("tomato_7", 5, 20, nil, "", -1, farming.tomato)
register_plant("corn_7", 12, 22, nil, "", -1, farming.corn) register_plant("corn_7", 12, 22, nil, "", -1, farming.corn)
register_plant("coffee_5", 20, 45, {"default:dirt_with_dry_grass",
"default:dirt_with_rainforest_litter",
"default:dry_dirt_with_dry_grass"}, "", -1, farming.coffee)
register_plant("raspberry_4", 3, 10, nil, "", -1, farming.raspberry) register_plant("raspberry_4", 3, 10, nil, "", -1, farming.raspberry)
register_plant("rhubarb_3", 3, 15, nil, "", -1, farming.rhubarb) register_plant("rhubarb_3", 3, 15, nil, "", -1, farming.rhubarb)
register_plant("blueberry_4", 3, 10, nil, "", -1, farming.blueberry) register_plant("blueberry_4", 3, 10, nil, "", -1, farming.blueberry)
@ -47,17 +49,24 @@ register_plant("onion_5", 5, 22, nil, "", -1, farming.onion)
register_plant("garlic_5", 3, 30, nil, "group:tree", 1, farming.garlic) register_plant("garlic_5", 3, 30, nil, "group:tree", 1, farming.garlic)
register_plant("pea_5", 25, 50, nil, "", -1, farming.peas) register_plant("pea_5", 25, 50, nil, "", -1, farming.peas)
register_plant("beetroot_5", 1, 15, nil, "", -1, farming.beetroot) register_plant("beetroot_5", 1, 15, nil, "", -1, farming.beetroot)
register_plant("mint_4", 1, 75, {"default:dirt_with_grass",
"default:dirt_with_coniferous_litter"}, "group:water", 1, farming.mint)
register_plant("cabbage_6", 2, 10, nil, "", -1, farming.cabbage) register_plant("cabbage_6", 2, 10, nil, "", -1, farming.cabbage)
register_plant("lettuce_5", 5, 30, nil, "", -1, farming.lettuce)
register_plant("blackberry_4", 3, 10, nil, "", -1, farming.blackberry)
register_plant("vanilla_7", 5, 35, nil, "", -1, farming.vanilla)
register_plant("mint_4", 1, 75, {
"default:dirt_with_grass", "default:dirt_with_coniferous_litter"},
"group:water", 1, farming.mint)
if minetest.get_mapgen_setting("mg_name") == "v6" then -- v6 mapgen compatibility for specific crops
if mg_name == "v6" then
register_plant("carrot_8", 1, 30, nil, "group:water", 1, farming.carrot) register_plant("carrot_8", 1, 30, nil, "group:water", 1, farming.carrot)
register_plant("cucumber_4", 1, 20, nil, "group:water", 1, farming.cucumber) register_plant("cucumber_4", 1, 20, nil, "group:water", 1, farming.cucumber)
register_plant("melon_8", 1, 20, nil, "group:water", 1, farming.melon) register_plant("melon_8", 1, 20, nil, "group:water", 1, farming.melon)
register_plant("pumpkin_8", 1, 20, nil, "group:water", 1, farming.pumpkin) register_plant("pumpkin_8", 1, 20, nil, "group:water", 1, farming.pumpkin)
register_plant("coffee_5", 20, 45, nil, "", -1, farming.coffee)
register_plant("soy_6", 20, 50, nil, "", -1, farming.soy)
else else
-- v7 maps have a beach so plants growing near water is limited to 6 high -- v7 maps have a beach so plants growing near water is limited to 6 high
register_plant("carrot_8", 1, 15, nil, "", -1, farming.carrot) register_plant("carrot_8", 1, 15, nil, "", -1, farming.carrot)
@ -65,8 +74,15 @@ else
register_plant("melon_8", 1, 6, {"default:dirt_with_dry_grass", register_plant("melon_8", 1, 6, {"default:dirt_with_dry_grass",
"default:dirt_with_rainforest_litter"}, "", -1, farming.melon) "default:dirt_with_rainforest_litter"}, "", -1, farming.melon)
register_plant("pumpkin_8", 1, 6, nil, "", -1, farming.pumpkin) register_plant("pumpkin_8", 1, 6, nil, "", -1, farming.pumpkin)
register_plant("coffee_5", 20, 45, {"default:dirt_with_dry_grass",
"default:dirt_with_rainforest_litter",
"default:dry_dirt_with_dry_grass"}, "", -1, farming.coffee)
register_plant("soy_6", 20, 50, {"default:dirt_with_dry_grass",
"default:dirt_with_rainforest_litter",
"default:dry_dirt_with_dry_grass"}, "", -1, farming.soy)
end end
if farming.hemp then if farming.hemp then
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
@ -88,6 +104,7 @@ minetest.register_decoration({
}) })
end end
if farming.chili then if farming.chili then
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
@ -109,10 +126,18 @@ minetest.register_decoration({
}) })
end end
if farming.pepper then if farming.pepper then
local tmp1 = {"default:dirt_with_rainforest_litter"} -- v7
if mg_name == "v6" then
tmp1 = {"default:dirt_with_grass"} -- v6
end
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"default:dirt_with_rainforest_litter"}, place_on = tmp1,
sidelen = 16, sidelen = 16,
noise_params = { noise_params = {
offset = 0, offset = 0,
@ -124,16 +149,28 @@ minetest.register_decoration({
}, },
y_min = 5, y_min = 5,
y_max = 35, y_max = 35,
decoration = {"farming:pepper_5"}, decoration = {"farming:pepper_5", "farming:pepper_6", "farming:pepper_7"},
spawn_by = "group:tree", spawn_by = "group:tree",
num_spawn_by = 1 num_spawn_by = 1
}) })
end end
if farming.pineapple then if farming.pineapple then
tmp1 = {"default:dirt_with_dry_grass", "default:dry_dirt_with_dry_grass"}
tmp2 = nil
tmp3 = -1
if mg_name == "v6" then
tmp1 = {"default:dirt_with_grass"}
tmp2 = "default:desert_sand"
tmp3 = 1
end
minetest.register_decoration({ minetest.register_decoration({
deco_type = "simple", deco_type = "simple",
place_on = {"default:dirt_with_dry_grass", "default:dry_dirt_with_dry_grass"}, place_on = tmp1,
sidelen = 16, sidelen = 16,
noise_params = { noise_params = {
offset = 0, offset = 0,
@ -145,14 +182,24 @@ minetest.register_decoration({
}, },
y_min = 18, y_min = 18,
y_max = 30, y_max = 30,
decoration = {"farming:pineapple_8"} decoration = {"farming:pineapple_8"},
spawn_by = tmp2,
num_spawn_by = tmp3
}) })
end end
tmp1 = {"default:dry_dirt_with_dry_grass"}
tmp2 = {"savanna"}
if mg_name == "v6" then
tmp1 = {"default:dirt_with_grass"}
tmp2 = {"jungle"}
end
minetest.register_decoration({ minetest.register_decoration({
name = "farming:cotton_wild", name = "farming:cotton_wild",
deco_type = "simple", deco_type = "simple",
place_on = {"default:dry_dirt_with_dry_grass"}, place_on = tmp1,
sidelen = 16, sidelen = 16,
noise_params = { noise_params = {
offset = -0.1, offset = -0.1,
@ -162,7 +209,7 @@ minetest.register_decoration({
octaves = 3, octaves = 3,
persist = 0.7 persist = 0.7
}, },
biomes = {"savanna"}, biomes = tmp2,
y_max = 31000, y_max = 31000,
y_min = 1, y_min = 1,
decoration = "farming:cotton_wild" decoration = "farming:cotton_wild"

View File

@ -1 +1,4 @@
name = farming name = farming
depends = default
optional_depends = stairs, intllib, lucky_block, toolranks
description = Adds many plants and food to Minetest

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

Some files were not shown because too many files have changed in this diff Show More