From d928b7d795e26e4af16ce2ea8b31e9535d19bc84 Mon Sep 17 00:00:00 2001 From: runs Date: Fri, 18 Oct 2019 16:00:51 +0200 Subject: [PATCH] fixes --- petz/api/api.lua | 2 +- petz/api/api_bees.lua | 18 +++++++++++++++++- petz/init.lua | 10 ++++------ petz/locale/petz.es.tr | 2 ++ petz/misc/behaviours.lua | 10 ++++------ petz/misc/brains.lua | 18 ++++++++++++++---- 6 files changed, 42 insertions(+), 18 deletions(-) diff --git a/petz/api/api.lua b/petz/api/api.lua index 6385ac7..903049a 100644 --- a/petz/api/api.lua +++ b/petz/api/api.lua @@ -30,4 +30,4 @@ assert(loadfile(modpath .. "/api/api_silk.lua"))(modpath, S) assert(loadfile(modpath .. "/api/api_sleep.lua"))(modpath, S) assert(loadfile(modpath .. "/api/api_env_damage.lua"))(modpath, S) assert(loadfile(modpath .. "/api/api_on_step.lua"))(modpath, S) ---assert(loadfile(modpath .. "/api/api_bees.lua"))(modpath, S) +assert(loadfile(modpath .. "/api/api_bees.lua"))(modpath, S) diff --git a/petz/api/api_bees.lua b/petz/api/api_bees.lua index b953abe..9df010c 100644 --- a/petz/api/api_bees.lua +++ b/petz/api/api_bees.lua @@ -1,5 +1,18 @@ local modpath, S = ... +petz.set_infotext_behive = function(meta, honey_count, bee_count) + meta:set_string("infotext", S("Honey")..": "..tostring(honey_count) .." | "..S("Bees")..": "..tostring(bee_count)) +end + +petz.behive_exists = function(self) + if self.behive and minetest.get_node_or_nil(self.behive).name == "petz:beehive" then + return true + else + self.behive = nil + return false + end +end + petz.spawn_bee_pos = function(pos) --Check a pos close to a behive to spawn a bee local pos_1 = { x = pos.x - 1, @@ -44,7 +57,10 @@ minetest.register_node("petz:beehive", { local bee = minetest.add_entity(spawn_bee_pos, "petz:bee") local bee_entity = bee:get_luaentity() bee_entity.behive = mobkit.remember(bee_entity, "behive", pos) - meta:set_int("bee_count", bee_count - 1) + bee_count = bee_count - 1 + meta:set_int("bee_count", bee_count) + local honey_count = meta:get_int("honey_count") or 0 + petz.set_infotext_behive(meta, honey_count, bee_count) end end end diff --git a/petz/init.lua b/petz/init.lua index 237b09f..9f0f3e8 100644 --- a/petz/init.lua +++ b/petz/init.lua @@ -55,10 +55,8 @@ petz.file_exists = function(name) end for i = 1, #petz.petz_list do --load all the petz.lua files - if petz.settings[petz.petz_list[i].."_spawn"] then - local file_name = modpath .. "/petz/"..petz.petz_list[i].."_"..petz.settings.type_api..".lua" - if petz.file_exists(file_name) then - assert(loadfile(file_name))(S) - end - end + local file_name = modpath .. "/petz/"..petz.petz_list[i].."_"..petz.settings.type_api..".lua" + if petz.file_exists(file_name) then + assert(loadfile(file_name))(S) + end end diff --git a/petz/locale/petz.es.tr b/petz/locale/petz.es.tr index 8a918a0..fe6f5e9 100644 --- a/petz/locale/petz.es.tr +++ b/petz/locale/petz.es.tr @@ -6,6 +6,7 @@ Beaver Fur=Piel de castor Beaver Oil=Aceite de castor Beaver=Castor Bee=Abeja +Bees=Abejas Beehive=Colmena Beef=Carne de ternera Beef Steak=Filete de ternera @@ -52,6 +53,7 @@ Hairbrush= Cepillo para pelo has abandoned you!!!=te ha abandonado!!! has been captured=ha sido capturado has starved to death!!!=ha muerto de hambre!!! +Honey=Miel Hungry=Hambriento Infertile=Estéril It breeds with=Se cría con diff --git a/petz/misc/behaviours.lua b/petz/misc/behaviours.lua index 5bb4080..2533d87 100644 --- a/petz/misc/behaviours.lua +++ b/petz/misc/behaviours.lua @@ -390,7 +390,7 @@ function petz.bee_brain(self) local player = mobkit.get_nearby_player(self) --search for flowers - if prty < 6 and not(self.pollen) then + if prty < 6 and not(self.pollen) and petz.behive_exists(self) then local view_range = self.view_range local nearby_flowers = minetest.find_nodes_in_area( {x = pos.x - view_range, y = pos.y - 1, z = pos.z - view_range}, @@ -403,11 +403,9 @@ function petz.bee_brain(self) end --search for the bee behive - if prty < 4 and self.pollen == true then - if self.behive and minetest.get_node_or_nil(self.behive) then ---if behive defined and exits in the pos - if vector.distance(pos, self.behive) <= 12 then - mobkit.hq_gotobehive(self, 4) - end + if prty < 4 and self.pollen == true and petz.behive_exists(self) then + if vector.distance(pos, self.behive) <= 12 then + mobkit.hq_gotobehive(self, 4) end end diff --git a/petz/misc/brains.lua b/petz/misc/brains.lua index f3545be..7064924 100644 --- a/petz/misc/brains.lua +++ b/petz/misc/brains.lua @@ -1,3 +1,5 @@ +local modpath, S = ... + -- -- FLY BRAIN -- @@ -355,10 +357,18 @@ function mobkit.lq_search_behive(self) local func = function(self) local tpos = self.behive if mobkit.drive_to_pos(self, tpos, 2.5, 6.28, 0.3) then - self.object:remove() - local meta = minetest.get_meta(tpos) - local bee_count = meta:get_int("bee_count") or 0 - meta:set_int("bee_count", bee_count + 1) + if petz.behive_exists(self) then + self.object:remove() + local meta = minetest.get_meta(tpos) + local bee_count = meta:get_int("bee_count") or 0 + bee_count = bee_count + 1 + meta:set_int("bee_count", bee_count) + local honey_count = meta:get_int("honey_count") or 0 + honey_count = honey_count + 1 + meta:set_int("honey_count", honey_count) + petz.set_infotext_behive(meta, honey_count, bee_count) + end + self.pollen = false end end mobkit.queue_low(self, func)