now bees can produce combs in apiary and the combtype depends on the active gene of the bee
This commit is contained in:
parent
b909d5e8a0
commit
c772d18e71
@ -121,14 +121,6 @@ local function apiary_node_timer(pos,elapsed)
|
|||||||
can_live = is_queen --these two event are disjoint (there are no queen & princess)
|
can_live = is_queen --these two event are disjoint (there are no queen & princess)
|
||||||
actionable = can_breed or can_live
|
actionable = can_breed or can_live
|
||||||
|
|
||||||
|
|
||||||
--if can_breed then -- adjust el to action duration
|
|
||||||
-- el = math.min(el, breedtime - src_time)
|
|
||||||
--end
|
|
||||||
--if can_live then -- adjust el to action duration
|
|
||||||
-- el = math.min(el, lifetime - src_time)
|
|
||||||
--end
|
|
||||||
|
|
||||||
local el = elapsed
|
local el = elapsed
|
||||||
--if actionable check if things are ready
|
--if actionable check if things are ready
|
||||||
if actionable then
|
if actionable then
|
||||||
@ -137,6 +129,15 @@ local function apiary_node_timer(pos,elapsed)
|
|||||||
el = math.min(el, needed_time - src_time)
|
el = math.min(el, needed_time - src_time)
|
||||||
src_time = src_time + el
|
src_time = src_time + el
|
||||||
|
|
||||||
|
if can_live then --chance to drop honeycomb
|
||||||
|
local drops = forestry_bees.calculate_drop(monarchlist[1]:get_meta():get_string("active_gene"))
|
||||||
|
if (not (next(drops) == nil)) and inv:get_size("dst") - forestry_bees.stacks_in_inv(inv,"dst") >= #drops then
|
||||||
|
for _,drop in pairs(drops) do
|
||||||
|
inv:add_item("dst",drop)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if src_time >= needed_time then
|
if src_time >= needed_time then
|
||||||
--if possible act accordingly to breed or live
|
--if possible act accordingly to breed or live
|
||||||
if can_breed then
|
if can_breed then
|
||||||
|
15
forestry_bees/bee_drops.lua
Normal file
15
forestry_bees/bee_drops.lua
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
forestry_bees.bee_drops = {}
|
||||||
|
|
||||||
|
local function register_drop(bee_type, drop_name, basechance)
|
||||||
|
if forestry_bees.bee_drops[bee_type] == nil then
|
||||||
|
forestry_bees.bee_drops[bee_type] = {}
|
||||||
|
end
|
||||||
|
forestry_bees.bee_drops[bee_type][drop_name] = basechance
|
||||||
|
end
|
||||||
|
|
||||||
|
register_drop("forest", "forestry_bees:honey_comb", 0.3)
|
||||||
|
register_drop("meadow", "forestry_bees:honey_comb", 0.3)
|
||||||
|
register_drop("common", "forestry_bees:honey_comb", 0.35)
|
||||||
|
register_drop("cultivated", "forestry_bees:honey_comb", 0.4)
|
||||||
|
register_drop("noble", "forestry_bees:dripping_comb", 0.2)
|
||||||
|
register_drop("diligent", "forestry_bees:stringy_comb", 0.2)
|
@ -5,6 +5,17 @@ function forestry_bees.Bee(bee_type,active_gene,inactive_gene)
|
|||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function forestry_bees.calculate_drop(bee_type) --later we will take as input also the bee_prod_speed and the item_modifier (for frames)
|
||||||
|
local possible_drops = forestry_bees.bee_drops[bee_type] --this gets us a table
|
||||||
|
local out_table = {}
|
||||||
|
for drop,chance in pairs(possible_drops) do
|
||||||
|
if math.random() < chance then
|
||||||
|
table.insert(out_table,ItemStack(drop))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return out_table
|
||||||
|
end
|
||||||
|
|
||||||
function forestry_bees.bee_name(bee_type,active_gene)
|
function forestry_bees.bee_name(bee_type,active_gene)
|
||||||
return "forestry_bees:"..active_gene.."_"..bee_type
|
return "forestry_bees:"..active_gene.."_"..bee_type
|
||||||
end
|
end
|
||||||
|
@ -3,5 +3,6 @@ forestry_bees = {}
|
|||||||
|
|
||||||
dofile(minetest.get_modpath("forestry_bees") .. "/helper.lua")
|
dofile(minetest.get_modpath("forestry_bees") .. "/helper.lua")
|
||||||
dofile(minetest.get_modpath("forestry_bees") .. "/register.lua")
|
dofile(minetest.get_modpath("forestry_bees") .. "/register.lua")
|
||||||
|
dofile(minetest.get_modpath("forestry_bees") .. "/bee_drops.lua")
|
||||||
dofile(minetest.get_modpath("forestry_bees") .. "/mutations.lua")
|
dofile(minetest.get_modpath("forestry_bees") .. "/mutations.lua")
|
||||||
dofile(minetest.get_modpath("forestry_bees") .. "/apiary.lua")
|
dofile(minetest.get_modpath("forestry_bees") .. "/apiary.lua")
|
||||||
|
@ -112,5 +112,15 @@ register_bee("diligent","#ffdc16","#c219ec")
|
|||||||
minetest.register_craftitem("forestry_bees:honey_comb", {
|
minetest.register_craftitem("forestry_bees:honey_comb", {
|
||||||
description = "Honey Comb",
|
description = "Honey Comb",
|
||||||
groups = {comb = 1},
|
groups = {comb = 1},
|
||||||
inventory_image = "(bee_combs.0.png^[colorize:Yellow:100)^(bee_combs.1.png^[colorize:Yellow:120)"
|
inventory_image = "(bee_combs.0.png^[colorize:#ffa12b:155)^(bee_combs.1.png^[colorize:#e8d56a:255)"
|
||||||
|
})
|
||||||
|
minetest.register_craftitem("forestry_bees:dripping_comb", {
|
||||||
|
description = "Dripping Comb",
|
||||||
|
groups = {comb = 1},
|
||||||
|
inventory_image = "(bee_combs.0.png^[colorize:#ffff00:155)^(bee_combs.1.png^[colorize:#dc7613:255)"
|
||||||
|
})
|
||||||
|
minetest.register_craftitem("forestry_bees:stringy_comb", {
|
||||||
|
description = "Stringy Comb",
|
||||||
|
groups = {comb = 1},
|
||||||
|
inventory_image = "(bee_combs.0.png^[colorize:#bda93e:155)^(bee_combs.1.png^[colorize:#c8be67:255)"
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user