forked from mtcontrib/maidroid
Merge pull request #144 from tacigar/tacigar/farming_v0.4.15
Fix bug for farming in v0.4.15 Close #143
This commit is contained in:
commit
9185079c8b
@ -211,6 +211,25 @@ function maidroid.maidroid.change_direction_randomly(self)
|
||||
self:set_yaw_by_direction(direction)
|
||||
end
|
||||
|
||||
-- maidroid.maidroid.update_infotext updates the infotext of the maidroid.
|
||||
function maidroid.maidroid.update_infotext(self)
|
||||
local infotext = ""
|
||||
local core_name = self:get_core_name()
|
||||
|
||||
if core_name ~= "" then
|
||||
if self.pause then
|
||||
infotext = infotext .. "this maidroid is paused\n"
|
||||
else
|
||||
infotext = infotext .. "this maidroid is active\n"
|
||||
end
|
||||
infotext = infotext .. "[Core] : " .. core_name .. "\n"
|
||||
else
|
||||
infotext = infotext .. "this maidroid is inactive\n[Core] : None\n"
|
||||
end
|
||||
infotext = infotext .. "[Owner] : " .. self.owner_name
|
||||
self.object:set_properties{infotext = infotext}
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
-- maidroid.manufacturing_data represents a table that contains manufacturing data.
|
||||
@ -324,6 +343,8 @@ function maidroid.register_egg(egg_name, def)
|
||||
new_maidroid:get_luaentity():set_yaw_by_direction(
|
||||
vector.subtract(user:getpos(), new_maidroid:getpos())
|
||||
)
|
||||
new_maidroid:get_luaentity().owner_name = user:get_player_name()
|
||||
new_maidroid:get_luaentity():update_infotext()
|
||||
|
||||
itemstack:take_item()
|
||||
return itemstack
|
||||
@ -342,23 +363,6 @@ function maidroid.register_maidroid(product_name, def)
|
||||
maidroid.manufacturing_data[product_name] = 0
|
||||
end
|
||||
|
||||
local function update_infotext(self)
|
||||
local core_name = self:get_core_name()
|
||||
if core_name ~= "" then
|
||||
local infotext = ""
|
||||
if self.pause then
|
||||
infotext = infotext .. "this maidroid is paused\n"
|
||||
else
|
||||
infotext = infotext .. "this maidroid is active\n"
|
||||
end
|
||||
infotext = infotext .. "[Core] : " .. core_name
|
||||
|
||||
self.object:set_properties{infotext = infotext}
|
||||
return
|
||||
end
|
||||
self.object:set_properties{infotext = "this maidroid is inactive"}
|
||||
end
|
||||
|
||||
-- create_inventory creates a new inventory, and returns it.
|
||||
local function create_inventory(self)
|
||||
self.inventory_name = self.product_name .. "_" .. tostring(self.manufacturing_number)
|
||||
@ -369,7 +373,7 @@ function maidroid.register_maidroid(product_name, def)
|
||||
local core = maidroid.registered_cores[core_name]
|
||||
core.on_start(self)
|
||||
|
||||
update_infotext(self)
|
||||
self:update_infotext()
|
||||
end
|
||||
end,
|
||||
|
||||
@ -391,7 +395,7 @@ function maidroid.register_maidroid(product_name, def)
|
||||
local core = maidroid.registered_cores[core_name]
|
||||
core.on_stop(self)
|
||||
|
||||
update_infotext(self)
|
||||
self:update_infotext()
|
||||
end
|
||||
end,
|
||||
|
||||
@ -442,6 +446,7 @@ function maidroid.register_maidroid(product_name, def)
|
||||
self.product_name = data["product_name"]
|
||||
self.manufacturing_number = data["manufacturing_number"]
|
||||
self.nametag = data["nametag"]
|
||||
self.owner_name = data["owner_name"]
|
||||
|
||||
local inventory = create_inventory(self)
|
||||
for list_name, list in pairs(data["inventory"]) do
|
||||
@ -449,7 +454,7 @@ function maidroid.register_maidroid(product_name, def)
|
||||
end
|
||||
end
|
||||
|
||||
update_infotext(self)
|
||||
self:update_infotext()
|
||||
|
||||
self.object:set_nametag_attributes{
|
||||
text = self.nametag
|
||||
@ -471,6 +476,7 @@ function maidroid.register_maidroid(product_name, def)
|
||||
["product_name"] = self.product_name,
|
||||
["manufacturing_number"] = self.manufacturing_number,
|
||||
["nametag"] = self.nametag,
|
||||
["owner_name"] = self.owner_name,
|
||||
["inventory"] = {},
|
||||
}
|
||||
|
||||
@ -511,6 +517,11 @@ function maidroid.register_maidroid(product_name, def)
|
||||
|
||||
-- on_step is a callback function that is called every delta times.
|
||||
local function on_step(self, dtime)
|
||||
-- if owner didn't login, the maidroid does nothing.
|
||||
if not minetest.get_player_by_name(self.owner_name) then
|
||||
return
|
||||
end
|
||||
|
||||
-- pickup surrounding item.
|
||||
pickup_item(self)
|
||||
|
||||
@ -545,7 +556,7 @@ function maidroid.register_maidroid(product_name, def)
|
||||
end
|
||||
end
|
||||
|
||||
update_infotext(self)
|
||||
self:update_infotext()
|
||||
end
|
||||
|
||||
-- register a definition of a new maidroid.
|
||||
@ -569,6 +580,7 @@ function maidroid.register_maidroid(product_name, def)
|
||||
pause = false,
|
||||
product_name = "",
|
||||
manufacturing_number = -1,
|
||||
owner_name = "",
|
||||
|
||||
-- callback methods.
|
||||
on_activate = on_activate,
|
||||
@ -594,6 +606,7 @@ function maidroid.register_maidroid(product_name, def)
|
||||
has_item_in_main = maidroid.maidroid.has_item_in_main,
|
||||
change_direction = maidroid.maidroid.change_direction,
|
||||
change_direction_randomly = maidroid.maidroid.change_direction_randomly,
|
||||
update_infotext = maidroid.maidroid.update_infotext,
|
||||
})
|
||||
|
||||
-- register maidroid egg.
|
||||
|
@ -241,7 +241,14 @@ plant = function(self, dtime)
|
||||
if is_plantable_place(self.destination) then
|
||||
local stack = self:get_wield_item_stack()
|
||||
local itemname = stack:get_name()
|
||||
minetest.add_node(self.destination, {name = itemname, param2 = 1})
|
||||
|
||||
local pointed_thing = {
|
||||
type = "node",
|
||||
under = vector.add(self.destination, {x = 0, y = -1, z = 0}),
|
||||
above = self.destination,
|
||||
}
|
||||
farming.place_seed(stack, minetest.get_player_by_name(self.owner_name), pointed_thing, stack:get_name())
|
||||
|
||||
stack:take_item(1)
|
||||
self:set_wield_item_stack(stack)
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user