allow players to change owners of their animals with sneak+place
This commit is contained in:
parent
8758ffbe26
commit
fb3c476907
@ -101,7 +101,11 @@ stepheight = 0.6,
|
||||
-- Monty Python tribute
|
||||
local item = clicker:get_wielded_item()
|
||||
|
||||
if item:get_name() == "mobs:lava_orb" then
|
||||
local name = clicker:get_player_name()
|
||||
if self.owner and name and self.owner == name and clicker:get_player_control().sneak then
|
||||
minetest.show_formspec(name, "mobs_farm_changeowner", "size[5,2]field[1,1;4,1;changeowner;Change Owner;]field_close_on_enter[changeowner;false]")
|
||||
mobs_farm.form[name] = self
|
||||
elseif item:get_name() == "mobs:lava_orb" then
|
||||
|
||||
if not mobs.is_creative(clicker:get_player_name()) then
|
||||
item:take_item()
|
||||
|
@ -115,7 +115,12 @@ mobs:register_mob("mobs_farm:chicken", {
|
||||
-- feed or tame
|
||||
if not self.tamed and mobs:feed_tame(self, clicker, 4, false, true) then return end
|
||||
if mobs:feed_tame(self, clicker, 20, true, false) then return end
|
||||
|
||||
|
||||
local name = clicker:get_player_name()
|
||||
if self.owner and name and self.owner == name and clicker:get_player_control().sneak then
|
||||
minetest.show_formspec(name, "mobs_farm_changeowner", "size[5,2]field[1,1;4,1;changeowner;Change Owner;]field_close_on_enter[changeowner;false]")
|
||||
mobs_farm.form[name] = self
|
||||
end
|
||||
--if mobs:protect(self, clicker) then return end
|
||||
--if mobs:capture_mob(self, clicker, 0, 5, 60, false, nil) then return end
|
||||
end,
|
||||
|
@ -129,10 +129,13 @@ mobs:register_mob("mobs_farm:cow", {
|
||||
--if mobs:capture_mob(self, clicker, 0, 5, 60, false, nil) then return end
|
||||
|
||||
local tool = clicker:get_wielded_item()
|
||||
local name = clicker:get_player_name()
|
||||
|
||||
-- milk cow with empty bucket
|
||||
if tool:get_name() == "bucket:bucket_empty" then
|
||||
local name = clicker:get_player_name()
|
||||
if self.owner and name and self.owner == name and clicker:get_player_control().sneak then
|
||||
minetest.show_formspec(name, "mobs_farm_changeowner", "size[5,2]field[1,1;4,1;changeowner;Change Owner;]field_close_on_enter[changeowner;false]")
|
||||
mobs_farm.form[name] = self
|
||||
elseif tool:get_name() == "bucket:bucket_empty" then
|
||||
|
||||
if self.gotten == true
|
||||
or self.child == true then
|
||||
|
@ -247,5 +247,19 @@ if mobs.custom_spawn_animal then
|
||||
dofile(path .. "spawn.lua")
|
||||
end
|
||||
|
||||
mobs_farm.form = {}
|
||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
--minetest.show_formspec(name, "mobs_farm_changeowner", "size[5,2]field[1,1;4,1;changeowner;Change Owner;]")
|
||||
if formname ~= "mobs_farm_changeowner" then return end
|
||||
local name = player:get_player_name()
|
||||
if not mobs_farm.form[name] then return true end
|
||||
if fields.quit then mobs_farm.form[name] = nil return true end
|
||||
if not mobs_farm.form[name].owner or mobs_farm.form[name].owner ~= name then return true end
|
||||
if not minetest.player_exists(fields.changeowner) then return true end
|
||||
mobs_farm.form[name].owner = fields.changeowner
|
||||
mobs_farm.form[name] = nil
|
||||
minetest.close_formspec(name, "mobs_farm_changeowner")
|
||||
end)
|
||||
|
||||
|
||||
print (S("[MOD] Mobs Redo Animals loaded"))
|
||||
|
@ -109,7 +109,11 @@ mobs:register_mob("mobs_farm:kitten", {
|
||||
--if mobs:capture_mob(self, clicker, 50, 50, 90, false, nil) then return end
|
||||
|
||||
-- by right-clicking owner can switch between staying and walking
|
||||
if self.owner and self.owner == clicker:get_player_name() then
|
||||
local name = clicker:get_player_name()
|
||||
if self.owner and name and self.owner == name and clicker:get_player_control().sneak then
|
||||
minetest.show_formspec(name, "mobs_farm_changeowner", "size[5,2]field[1,1;4,1;changeowner;Change Owner;]field_close_on_enter[changeowner;false]")
|
||||
mobs_farm.form[name] = self
|
||||
elseif self.owner and self.owner == clicker:get_player_name() then
|
||||
|
||||
if self.order ~= "stand" then
|
||||
self.order = "stand"
|
||||
|
@ -262,8 +262,11 @@ dog.on_rightclick = function(self, clicker)
|
||||
|
||||
--if mobs:protect(self, clicker) then return end
|
||||
--if item:get_name() ~= "" and mobs:capture_mob(self, clicker, 0, 2, 80, false, nil) then return end
|
||||
|
||||
if false and item:get_name() == "mobs:meat_raw" then
|
||||
local name = clicker:get_player_name()
|
||||
if self.owner and name and self.owner == name and clicker:get_player_control().sneak then
|
||||
minetest.show_formspec(name, "mobs_farm_changeowner", "size[5,2]field[1,1;4,1;changeowner;Change Owner;]field_close_on_enter[changeowner;false]")
|
||||
mobs_farm.form[name] = self
|
||||
elseif false and item:get_name() == "mobs:meat_raw" then
|
||||
-- Feed to increase health
|
||||
local hp = self.health
|
||||
local hp_add = 0
|
||||
|
Loading…
x
Reference in New Issue
Block a user