swamp water buckets and trying to fix npc taming
This commit is contained in:
parent
b1bb5c0c59
commit
1bf80dc6b6
@ -777,6 +777,39 @@ minetest.register_craftitem(
|
|||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem(
|
||||||
|
"default:bucket_swamp_water",
|
||||||
|
{
|
||||||
|
description = "Swamp Water Bucket",
|
||||||
|
inventory_image = "default_bucket_swamp_water.png",
|
||||||
|
stack_max = 1,
|
||||||
|
wield_scale = {x=1,y=1,z=2},
|
||||||
|
liquids_pointable = true,
|
||||||
|
on_place = function(itemstack, user, pointed_thing)
|
||||||
|
if pointed_thing.type ~= "node" then return end
|
||||||
|
|
||||||
|
itemstack:take_item()
|
||||||
|
|
||||||
|
local inv=user:get_inventory()
|
||||||
|
|
||||||
|
if inv:room_for_item("main", {name="default:bucket"}) then
|
||||||
|
inv:add_item("main", "default:bucket")
|
||||||
|
else
|
||||||
|
local pos = user:getpos()
|
||||||
|
pos.y = math.floor(pos.y + 0.5)
|
||||||
|
minetest.add_item(pos, "default:bucket")
|
||||||
|
end
|
||||||
|
|
||||||
|
local pos = pointed_thing.above
|
||||||
|
if minetest.registered_nodes[minetest.get_node(pointed_thing.under).name].buildable_to then
|
||||||
|
pos=pointed_thing.under
|
||||||
|
end
|
||||||
|
minetest.add_node(pos, {name = "default:swamp_water_source"})
|
||||||
|
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_craftitem(
|
minetest.register_craftitem(
|
||||||
"default:bucket",
|
"default:bucket",
|
||||||
{
|
{
|
||||||
@ -817,6 +850,20 @@ minetest.register_craftitem(
|
|||||||
minetest.add_item(pos, "default:bucket_river_water")
|
minetest.add_item(pos, "default:bucket_river_water")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
minetest.remove_node(pointed_thing.under)
|
||||||
|
elseif nodename == "default:swamp_water_source" then
|
||||||
|
itemstack:take_item()
|
||||||
|
|
||||||
|
local inv=user:get_inventory()
|
||||||
|
|
||||||
|
if inv:room_for_item("main", {name="default:bucket_swamp_water"}) then
|
||||||
|
inv:add_item("main", "default:bucket_swamp_water")
|
||||||
|
else
|
||||||
|
local pos = user:getpos()
|
||||||
|
pos.y = math.floor(pos.y + 0.5)
|
||||||
|
minetest.add_item(pos, "default:bucket_swamp_water")
|
||||||
|
end
|
||||||
|
|
||||||
minetest.remove_node(pointed_thing.under)
|
minetest.remove_node(pointed_thing.under)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
BIN
mods/default/textures/default_bucket_swamp_water.png
Normal file
BIN
mods/default/textures/default_bucket_swamp_water.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 420 B |
BIN
mods/default/textures/default_bucket_swamp_water.xcf
Normal file
BIN
mods/default/textures/default_bucket_swamp_water.xcf
Normal file
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 437 B After Width: | Height: | Size: 419 B |
@ -200,6 +200,8 @@ function gold.trade(trade, trade_type, player)
|
|||||||
|
|
||||||
item:set_metadata(minetest.serialize(meta))
|
item:set_metadata(minetest.serialize(meta))
|
||||||
player:set_wielded_item(item)
|
player:set_wielded_item(item)
|
||||||
|
|
||||||
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_on_player_receive_fields(
|
minetest.register_on_player_receive_fields(
|
||||||
|
@ -682,13 +682,8 @@ function mobs:register_mob(name, def)
|
|||||||
self.object:setyaw(yaw)
|
self.object:setyaw(yaw)
|
||||||
|
|
||||||
-- anyone but standing npc's can move along
|
-- anyone but standing npc's can move along
|
||||||
if dist > 2
|
if dist > 2 and self.order ~= "stand" then
|
||||||
and self.order ~= "stand" then
|
if (self.jump and self.get_velocity(self) <= 0.5 and self.object:getvelocity().y == 0) or (self.object:getvelocity().y == 0 and self.jump_chance > 0) then
|
||||||
if (self.jump
|
|
||||||
and self.get_velocity(self) <= 0.5
|
|
||||||
and self.object:getvelocity().y == 0)
|
|
||||||
or (self.object:getvelocity().y == 0
|
|
||||||
and self.jump_chance > 0) then
|
|
||||||
self.direction = {
|
self.direction = {
|
||||||
x = math.sin(yaw) * -1,
|
x = math.sin(yaw) * -1,
|
||||||
y = -20,
|
y = -20,
|
||||||
|
Binary file not shown.
@ -89,11 +89,15 @@ for _, npc_type in pairs(npc_types) do
|
|||||||
clicker:set_wielded_item(item)
|
clicker:set_wielded_item(item)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- right clicking trades, sneak+rightclick if owner changes order
|
-- right clicking with trading book trades, else changes order if tame
|
||||||
-- trading is done in the gold mod
|
-- trading is done in the gold mod
|
||||||
else
|
else
|
||||||
-- if owner switch between follow and stand
|
-- if owner switch between follow and stand
|
||||||
if clicker:get_player_control().sneak then
|
if not self.npc_trade then
|
||||||
|
self.npc_trade = util.choice_element(gold.trades[self.npc_type], gold.pr)
|
||||||
|
end
|
||||||
|
|
||||||
|
if not gold.trade(self.npc_trade, self.npc_type, clicker) then
|
||||||
if self.owner and self.owner == clicker:get_player_name() then
|
if self.owner and self.owner == clicker:get_player_name() then
|
||||||
if self.order == "follow" then
|
if self.order == "follow" then
|
||||||
self.order = "stand"
|
self.order = "stand"
|
||||||
@ -101,16 +105,6 @@ for _, npc_type in pairs(npc_types) do
|
|||||||
self.order = "follow"
|
self.order = "follow"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
|
||||||
-- if not self.npc_type then
|
|
||||||
-- self.npc_type = util.choice_element(npc_types, gold.pr)
|
|
||||||
-- end
|
|
||||||
|
|
||||||
if not self.npc_trade then
|
|
||||||
self.npc_trade = util.choice_element(gold.trades[self.npc_type], gold.pr)
|
|
||||||
end
|
|
||||||
|
|
||||||
gold.trade(self.npc_trade, self.npc_type, clicker)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user