first commit

This commit is contained in:
runs 2019-03-06 13:57:23 +01:00
parent cc8cb42ac9
commit e9011d775a
148 changed files with 2409 additions and 0 deletions

3
LICENSE.md Normal file
View File

@ -0,0 +1,3 @@
Models, icons and textures by runs.
License: GPLv3

275
api.lua Normal file
View File

@ -0,0 +1,275 @@
local S = ...
petz = {}
petz.register_cubic = function(node_name, fixed, tiles)
minetest.register_node(node_name, {
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = fixed,
},
tiles = tiles,
paramtype = "light",
paramtype2 = "facedir",
groups = {not_in_creative_inventory = 1},
})
end
petz.settings = {}
petz.settings.mesh = nil
petz.settings.visual_size = {}
petz.settings.rotate = 0
--
--Form Dialog
--
--Context
petz.pet = {} -- A table of pet["owner_name"]="owner_name"
petz.create_form = function(player_name, pet_name)
local pet = petz.pet[player_name]
if pet.affinity == nil then
pet.affinity = 0
end
local form_pet_orders
if petz.settings.tamagochi_mode == true then
form_pet_orders =
"size[5,5;]"..
"image[0,0;1,1;petz_spawnegg_"..pet_name..".png]"..
"label[1,0;".. S("Orders").."]"..
"image[3,1;1,1;petz_affinity_heart.png]"..
"label[4,1;".. tostring(pet.affinity).."%]"..
"image[3,2;1,1;petz_pet_bowl_inv.png]"
local hungry_label = ""
if pet.fed == false then
hungry_label = "Hungry"
else
hungry_label = "Saciated"
end
form_pet_orders = form_pet_orders .. "label[4,2;"..S(hungry_label).."]"
else
form_pet_orders =
"size[3,5;]"..
"image[1,0;1,1;petz_spawnegg_"..pet_name..".png]"
end
form_pet_orders = form_pet_orders..
"button_exit[0,1;3,1;btn_followme;"..S("Follow me").."]"..
"button_exit[0,2;3,1;btn_standhere;"..S("Stand here").."]"..
"button_exit[0,3;3,1;btn_ownthing;"..S("Do your own thing").."]"..
"button_exit[1,4;1,1;btn_close;"..S("Close").."]"
return form_pet_orders
end
minetest.register_on_player_receive_fields(function(player, formname, fields)
if (formname ~= "petz:form_orders") then
return false
end
local pet = petz.pet[player:get_player_name()]
if pet == nil then -- if pet dies after her formspec opened
return false
end
--brewing.magic_sound("to_player", player, "brewing_select")
if fields.btn_followme then
pet.type = "npc"
pet.order = "follow"
elseif fields.btn_standhere then
pet.type = "animal"
pet.order = "stand"
elseif fields.btn_ownthing then
pet.type = "animal"
pet.order = ""
pet.state = "walk"
end
return true
end)
--
-- Increase/Descrease the pet affinity
--
petz.set_affinity = function(self, increase, amount)
local new_affinitty
if increase == true then
new_affinitty = self.affinity + amount
else
new_affinitty = self.affinity - amount
end
if new_affinitty > 100 then
new_affinitty = 100
elseif new_affinitty <0 then
new_affinitty = 0
end
self.affinity = new_affinitty
end
--
--The Timer for the Tamagochi Mode
petz.timer = function(self, pet_name)
minetest.after(petz.settings.tamagochi_check_time, function(self, pet_name)
if not(self.object== nil) then
local pos = self.object:get_pos()
if not(pos == nil) then --important for if the pet dies
local pos_below = {
x = pos.x,
y = pos.y - 1.5,
z = pos.z,
}
local node = minetest.get_node_or_nil(pos_below)
--minetest.chat_send_player(self.owner, petz.settings.tamagochi_safe_node)
if node and (node.name == petz.settings.tamagochi_safe_node) then
self.init_timer = true
return
end
else --if the pos is nil, it means that the pet died before 'minetest.after_effect'
self.init_timer = false --so no more timer
return
end
--Decrease affinitty always a bit amount because the pet lost some affinitty
petz.set_affinity(self, false, 10)
--Decrease health if pet has not fed
if self.fed == false then
local current_health = self.health
new_health = current_health - petz.settings.tamagochi_hunger_damage
if new_health>=0 then
self.health = new_health
petz.set_affinity(self, false, 33)
else
self.health = 0
end
end
--If the pet has not brushed
if self.brushed == false then
petz.set_affinity(self, false, 20)
end
--Reset the variables
self.fed = false
self.brushed = false
--If the pet starves to death
if self.health == 0 then
minetest.chat_send_player(self.owner, S("Your").. " "..pet_name.." "..S("has starved to death!!!"))
self.init_timer = false -- no more timing
--I the pet get bored of you
elseif self.affinity == 0 then
minetest.chat_send_player(self.owner, S("Your").." "..pet_name.." "..S("has abandoned you!!!"))
self.owner = "" --the pet abandon you
self.init_timer = false -- no more timing
--Else reinit the timer, to check again in the future
else
self.init_timer = true
end
end
end, self, pet_name)
self.init_timer = false --the timer is reinited in the minetest.after function
end
--
--Mobs Redo Events
--
petz.on_rightclick = function(self, clicker, pet_name)
if not(clicker:is_player()) then
return false
end
local player_name = clicker:get_player_name()
local wielded_item = clicker:get_wielded_item()
local wielded_item_name= wielded_item:get_name()
--If brushing
if wielded_item_name == "petz:hairbrush" then
if (self.owner ~= player_name) then
return
end
if petz.settings.tamagochi_mode == true and self.brushed == false then
petz.set_affinity(self, true, 5)
self.brushed = true
elseif petz.settings.tamagochi_mode == true and self.brushed == true then
minetest.chat_send_player(self.owner, S("Your").." "..pet_name.." "..S("had already been brushed."))
end
petz.do_sound_effect("object", self.object, "petz_brushing")
petz.do_particles_effect(self.object, self.object:get_pos(), "star")
--If feeded
elseif mobs:feed_tame(self, clicker, 5, false, true) then
if petz.settings.tamagochi_mode == true and self.fed == false then
petz.set_affinity(self, true, 5)
self.fed = true
end
petz.do_sound_effect("object", self.object, "petz_"..pet_name.."_moaning")
petz.do_particles_effect(self.object, self.object:get_pos(), "heart")
elseif (wielded_item_name == "mobs:lasso") or (wielded_item_name == "mobs:net") then
if mobs:capture_mob(self, clicker, 0, 100, 100, true, nil) then
minetest.chat_send_player(self.owner, S("Your").." "..pet_name.." "..S("has been captured."))
end
--Else open the Form
else
petz.pet[player_name]= self
minetest.show_formspec(player_name, "petz:form_orders", petz.create_form(player_name, pet_name))
end
end
petz.on_die = function(self, pos)
petz.pet[self.owner]= nil
end
petz.do_punch = function (self, hitter, time_from_last_punch, tool_capabilities, direction)
if petz.settings.tamagochi_mode == true then
if self.owner == hitter:get_player_name() then
if self.affinity == nil then
self.affinity = 0
end
self.affinity = self.affinity - 20
end
end
end
--
--Effects
--
petz.do_particles_effect = function(obj, pos, particle_type)
local minpos
minpos = {
x = pos.x,
y = pos.y,
z = pos.z
}
local maxpos
maxpos = {
x = minpos.x+0.4,
y = minpos.y-0.5,
z = minpos.z+0.4
}
local texture_name
local particles_amount
if particle_type == "star" then
texture_name = "petz_star_particle.png"
particles_amount = 20
elseif particle_type == "heart" then
texture_name = "petz_affinity_heart.png"
particles_amount = 10
end
minetest.add_particlespawner({
--attached = obj,
amount = particles_amount,
time = 1.5,
minpos = minpos,
maxpos = maxpos,
--minvel = {x=1, y=0, z=1},
--maxvel = {x=1, y=0, z=1},
--minacc = {x=1, y=0, z=1},
--maxacc = {x=1, y=0, z=1},
minexptime = 1,
maxexptime = 1,
minsize = 1.0,
maxsize = 1.5,
collisiondetection = false,
vertical = false,
texture = texture_name,
glow = 14
})
end
petz.do_sound_effect = function(dest, dest_name, soundfile)
minetest.sound_play(soundfile, {dest = dest_name, gain = 0.4})
end

148
calf.lua Normal file
View File

@ -0,0 +1,148 @@
--
--CALF
--
petz = {}
local tiles = {
"petz_calf_top.png",
"petz_calf_bottom.png",
"petz_calf_right.png",
"petz_calf_left.png",
"petz_calf_back.png",
"petz_calf_front.png"
}
local tiles2 = {
"petz_calf2_top.png",
"petz_calf2_bottom.png",
"petz_calf2_right.png",
"petz_calf2_left.png",
"petz_calf2_back.png",
"petz_calf2_front.png"
}
local fixed = {
{-0.125, -0.5, 0.125, -0.0625, -0.375, 0.1875}, -- back_right_leg
{-0.125, -0.5, -0.125, -0.0625, -0.375, -0.0625}, -- front_right_leg
{0, -0.5, -0.125, 0.0625, -0.375, -0.0625}, -- front_left_leg
{0, -0.5, 0.125, 0.0625, -0.375, 0.1875}, -- back_left_leg
{-0.125, -0.375, -0.125, 0.0625, -0.1875, 0.1875}, -- body
{-0.125, -0.25, -0.1875, 0.0625, -0.0625001, -1.63913e-07}, -- head
{-0.0625, -0.3125, 0.1875, 1.11759e-08, -0.1875, 0.25}, -- tail
{0.0625, -0.125, -0.125, 0.125, -1.86265e-08, -0.0625}, -- left_horn
{-0.1875, -0.125, -0.125, -0.125, 1.49012e-08, -0.0625}, -- right_horn
}
minetest.register_node("petz:calf_block", {
tiles =tiles,
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = fixed,
}
})
minetest.register_node("petz:calf_block2", {
tiles =tiles2,
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = fixed,
}
})
mobs:register_mob("petz:calf", {
type = "animal",
passive = false,
gotten = false,
attack_type = "dogfight",
attack_npcs = false,
reach = 2,
damage = 4,
hp_min = 5,
hp_max = 20,
armor = 200,
collisionbox = {-0.6, -1.725, -0.5, 0.6, -0.15, 0.5},
visual = "wielditem",
visual_size = {x = 2.3, y = 2.3},
rotate = 180,
textures = {{"petz:calf_block2"}, {"petz:calf_block"}},
makes_footstep_sound = true,
walk_velocity = 0.35,
run_velocity = 0.5,
jump = false,
pushable = true,
drops = {
{name = "mobs:meat_raw",
chance = 1,
min = 1,
max = 3,},
{name = "mobs:leather",
chance = 1,
min = 1,
max = 2,}
},
drawtype = "front",
water_damage = 2,
lava_damage = 5,
light_damage = 0,
sounds = {
random = "petz_cow",
},
follow = {"farming:wheat", "default:grass_1"},
view_range = 8,
replace_rate = 10,
replace_what = {
{"group:grass", "air", 0},
{"default:dirt_with_grass", "default:dirt", -1}
},
fear_height = 2,
on_rightclick = function(self, clicker)
-- feed or tame
if mobs:feed_tame(self, clicker, 8, true, true) then
-- if fed 7x wheat or grass then cow can be milked again
if self.food and self.food > 6 then
self.gotten = false
end
return
end
if mobs:protect(self, clicker) 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
if self.child == true then
return
end
if self.gotten == true then
minetest.sound_play("petz_calfy",{pos=pos, max_hear_distance=3, gain=0.5, loop=false})
return
end
local inv = clicker:get_inventory()
tool:take_item()
clicker:set_wielded_item(tool)
if inv:room_for_item("main", {name = "petz:bucket_milk"}) then
clicker:get_inventory():add_item("main", "petz:bucket_milk")
else
local pos = self.object:get_pos()
pos.y = pos.y + 0.5
minetest.add_item(pos, {name = "petz:bucket_milk"})
end
self.gotten = true -- milked
return
end
end,
on_replace = function(self, pos, oldnode, newnode)
self.food = (self.food or 0) + 1
-- if cow replaces 6x grass then it can be milked again
if self.food >= 6 then
self.food = 0
self.gotten = false
end
end,
})

74
chicken.lua Normal file
View File

@ -0,0 +1,74 @@
--
--CHICKEN
--
minetest.register_node("petz:chicken_block", {
tiles = {
"petz_chicken_top.png",
"petz_chicken_bottom.png",
"petz_chicken_right.png",
"petz_chicken_left.png",
"petz_chicken_back.png",
"petz_chicken_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {not_in_creative_inventory = 1},
node_box = {
type = "fixed",
fixed = {
{-0.125, -0.5, -0.0625, -0.0625, -0.4375, 7.45058e-09}, -- right_leg
{0, -0.5, -0.0625, 0.0625, -0.4375, 1.86265e-08}, -- left_leg
{-0.125, -0.4375, -0.125, 0.0625, -0.25, 0.0625}, -- body
{-0.0625, -0.3125, 0.0625, 9.31323e-09, -0.25, 0.125}, -- tail
{-0.0625, -0.25, -0.1875, 1.11759e-08, -0.1875, -0.125}, -- beak
{-0.0625, -0.125, -0.125, -3.72529e-09, -0.0625, -0.0625}, -- crest
{-0.125, -0.25, -0.125, 0.0625, -0.125, 9.68575e-08}, -- head
{0.0625, -0.3125, -0.0625, 0.125, -0.25, 0.0625}, -- left_wing_top
{0.0625, -0.375, -0.0625, 0.125, -0.3125, 0}, -- left_wing_bottom
{-0.1875, -0.3125, -0.0625, -0.125, -0.25, 0.0625}, -- right_wing_top
{-0.1875, -0.375, -0.0625, -0.125, -0.3125, 0}, -- right_wing_bottom
}
}
})
mobs:register_mob("petz:chicken", {
type = "animal",
rotate = 180,
damage = 8,
hp_min = 4,
hp_max = 8,
armor = 200,
visual = "wielditem",
visual_size = {x=1.0, y=1.0},
textures = {"petz:chicken_block"},
collisionbox = {-0.2, -0.75, -0.2, 0.2, -0.125, 0.2},
makes_footstep_sound = false,
walk_velocity = 0.75,
run_velocity = 1,
runaway = true,
pushable = true,
jump = true,
drops = {
{name = "mobs:meat_raw",
chance = 1,
min = 1,
max = 1,},
},
water_damage = 2,
lava_damage = 6,
light_damage = 0,
sounds = {
random = "petz_chicken",
},
animation = {
speed_normal = 15,
speed_run = 15,
stand_start = 0,
stand_end = 80,
walk_start = 81,
walk_end = 100,
},
view_range = 4,
fear_height = 3,
})

105
ducky.lua Normal file
View File

@ -0,0 +1,105 @@
--
--DUCKY
--
minetest.register_node("petz:ducky_block", {
tiles = {
"petz_ducky_top.png",
"petz_ducky_bottom.png",
"petz_ducky_right.png",
"petz_ducky_left.png",
"petz_ducky_back.png",
"petz_ducky_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {not_in_creative_inventory = 1},
node_box = {
type = "fixed",
fixed = {
{-0.125, -0.5, -0.0625, -0.0625, -0.4375, 7.45058e-09}, -- right_leg
{0, -0.5, -0.0625, 0.0625, -0.4375, 1.86265e-08}, -- left_leg
{-0.125, -0.4375, -0.125, 0.0625, -0.25, 0.0625}, -- body
{-0.125, -0.3125, 0.0625, 0.0625, -0.25, 0.125}, -- tail_top
{-0.125, -0.25, -0.1875, 0.0625, -0.1875, -0.125}, -- beak
{-0.125, -0.25, -0.125, 0.0625, -0.0625, 9.68575e-08}, -- head
{0.0625, -0.3125, -0.0625, 0.125, -0.25, 0.0625}, -- left_wing_top
{0.0625, -0.375, -0.0625, 0.125, -0.3125, 0}, -- left_wing_bottom
{-0.1875, -0.3125, -0.0625, -0.125, -0.25, 0.0625}, -- right_wing_top
{-0.1875, -0.375, -0.0625, -0.125, -0.3125, 0}, -- right_wing_bottom
{-0.0625, -0.375, 0.0625, -3.35276e-08, -0.3125, 0.125}, -- tail_bottom
}
}
})
minetest.register_node("petz:ducky_block2", {
tiles = {
"petz_ducky2_top.png",
"petz_ducky2_bottom.png",
"petz_ducky2_right.png",
"petz_ducky2_left.png",
"petz_ducky2_back.png",
"petz_ducky2_front.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = {not_in_creative_inventory = 1},
node_box = {
type = "fixed",
fixed = {
{-0.125, -0.5, -0.0625, -0.0625, -0.4375, 7.45058e-09}, -- right_leg
{0, -0.5, -0.0625, 0.0625, -0.4375, 1.86265e-08}, -- left_leg
{-0.125, -0.4375, -0.125, 0.0625, -0.25, 0.0625}, -- body
{-0.125, -0.3125, 0.0625, 0.0625, -0.25, 0.125}, -- tail_top
{-0.125, -0.25, -0.1875, 0.0625, -0.1875, -0.125}, -- beak
{-0.125, -0.25, -0.125, 0.0625, -0.0625, 9.68575e-08}, -- head
{0.0625, -0.3125, -0.0625, 0.125, -0.25, 0.0625}, -- left_wing_top
{0.0625, -0.375, -0.0625, 0.125, -0.3125, 0}, -- left_wing_bottom
{-0.1875, -0.3125, -0.0625, -0.125, -0.25, 0.0625}, -- right_wing_top
{-0.1875, -0.375, -0.0625, -0.125, -0.3125, 0}, -- right_wing_bottom
{-0.0625, -0.375, 0.0625, -3.35276e-08, -0.3125, 0.125}, -- tail_bottom
}
}
})
mobs:register_mob("petz:ducky", {
type = "animal",
rotate = 180,
damage = 8,
hp_min = 4,
hp_max = 8,
armor = 200,
visual = "wielditem",
visual_size = {x=1.0, y=1.0},
textures = {{"petz:ducky_block2"}, {"petz:ducky_block"}},
collisionbox = {-0.2, -0.75, -0.2, 0.2, -0.125, 0.2},
makes_footstep_sound = false,
walk_velocity = 0.75,
run_velocity = 1,
runaway = true,
pushable = true,
jump = true,
drops = {
{name = "mobs:meat_raw",
chance = 1,
min = 1,
max = 1,},
},
water_damage = 2,
lava_damage = 6,
light_damage = 0,
sounds = {
random = "petz_ducky",
},
animation = {
speed_normal = 15,
speed_run = 15,
stand_start = 0,
stand_end = 80,
walk_start = 81,
walk_end = 100,
},
view_range = 4,
fear_height = 3,
})

74
init.lua Normal file
View File

@ -0,0 +1,74 @@
--
-- petz
-- License:GPL3
--
local modname = "petz"
local modpath = minetest.get_modpath(modname)
-- internationalization boilerplate
local S = minetest.get_translator(minetest.get_current_modname())
assert(loadfile(modpath .. "/api.lua"))(S)
assert(loadfile(modpath .. "/settings.lua"))(modpath, S) --Load the settings
assert(loadfile(modpath .. "/nodes.lua"))(modpath, S) --Load the nodes
if petz.settings.kitty_spawn then
assert(loadfile(modpath .. "/kitty_"..petz.settings.type_api..".lua"))(S)
mobs:register_egg("petz:kitty", S("Kitty"), "petz_spawnegg_kitty.png", 0)
mobs:spawn({
name = "petz:kitty",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:leaves"},
min_light = 3,
max_light = 5,
interval = 90,
chance = 900,
min_height = 1,
max_height = 300,
day_toggle = false,
})
end
--Pet Hairbrush
if petz.settings.tamagochi_mode then
minetest.register_craftitem("petz:hairbrush", {
description = S("Hairbrush"),
inventory_image = "petz_hairbrush.png",
wield_image = "petz_hairbrush.png"
})
minetest.register_craft({
type = "shaped",
output = "petz:hairbrush",
recipe = {
{"", "", ""},
{"", "default:stick", "farming:string"},
{"default:stick", "", ""},
}
})
end
if petz.settings.puppy_spawn then
assert(loadfile(modpath .. "/puppy_"..petz.settings.type_api..".lua"))(S)
mobs:register_egg("petz:puppy", S("Puppy"), "petz_spawnegg_puppy.png", 0)
mobs:spawn({
name = "petz:puppy",
nodes = {"default:dirt_with_grass"},
neighbors = {"group:leaves"},
min_light = 3,
max_light = 5,
interval = 90,
chance = 900,
min_height = 1,
max_height = 300,
day_toggle = false,
})
end

70
kitty_mobkit.lua Normal file
View File

@ -0,0 +1,70 @@
--
--KITTY
--
local TYPE_MODEL, Visual, VisualSize, Mesh, Rotate, Textures, CollisionBox = ...
if TYPE_MODEL == "cubic" then
minetest.register_node("petz:kitty_block", {
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.125, -0.5, 0.0625, -0.0625, -0.375, 0.125}, -- back_right_leg
{-0.125, -0.5, -0.1875, -0.0625, -0.375, -0.125}, -- front_right_leg
{0, -0.5, -0.1875, 0.0625, -0.375, -0.125}, -- front_left_leg
{0, -0.5, 0.0625, 0.0625, -0.375, 0.125}, -- back_left_leg
{-0.125, -0.375, -0.1875, 0.0625, -0.25, 0.125}, -- body
{-0.125, -0.3125, -0.3125, 0.0625, -0.125, -0.125}, -- head
{-0.0625, -0.3125, 0.125, 0.0, -0.25, 0.1875}, -- top_tail
{-0.125, -0.125, -0.25, -0.0625, -0.0625, -0.1875}, -- right_ear
{-0.0625, -0.375, 0.1875, 0.0, -0.3125, 0.3125}, -- bottom_tail
{0, -0.125, -0.25, 0.0625, -0.0625, -0.1875}, -- left_ear
},
},
tiles = {
"petz_kitty_top.png",
"petz_kitty_bottom.png",
"petz_kitty_right.png",
"petz_kitty_left.png",
"petz_kitty_back.png",
"petz_kitty_front.png"
},
paramtype = "light",
paramtype2 = "facedir",
groups = {not_in_creative_inventory = 1},
})
Textures= {"petz:kitty_block"}
CollisionBox = {-0.35, -0.75, -0.28, 0.35, -0.125, 0.28}
else
Mesh = 'petz_kitty.b3d'
Textures= {"petz_kitty.png"}
CollisionBox = {-0.35, -0.5, -0.28, 0.35, -0.125, 0.28}
end
minetest.register_entity("petz:kitty", {
-- common props
physical = true,
rotate = Rotate,
damage = 8,
hp_min = 4,
hp_max = 8,
armor = 200,
affinitty = 100,
--stepheight = 1,
collide_with_objects = true,
collisionbox = CollisionBox,
visual = Visual,
mesh = Mesh,
textures = Textures,
visual_size = VisualSize,
on_step = mobkit.stepfunc, -- required
on_activate = mobkit.actfunc, -- required
-- api props
springiness=0,
walk_speed = 1,
jump_height = 5,
brainfunc = function(self) -- dumbest brain possible
if mobkit.is_queue_empty_high(self) then mobkit.hq_roam(self) end
end
})

115
kitty_mobs_redo.lua Normal file
View File

@ -0,0 +1,115 @@
--
--KITTY
--
local S = ...
local pet_name = "kitty"
local mesh = nil
local textures = {}
local collisionbox = {}
if petz.settings.type_model == "cubic" then
local node_name = "petz:"..pet_name.."_block"
fixed = {
{-0.125, -0.5, 0.0625, -0.0625, -0.375, 0.125}, -- back_right_leg
{-0.125, -0.5, -0.1875, -0.0625, -0.375, -0.125}, -- front_right_leg
{0, -0.5, -0.1875, 0.0625, -0.375, -0.125}, -- front_left_leg
{0, -0.5, 0.0625, 0.0625, -0.375, 0.125}, -- back_left_leg
{-0.125, -0.375, -0.1875, 0.0625, -0.25, 0.125}, -- body
{-0.125, -0.3125, -0.3125, 0.0625, -0.125, -0.125}, -- head
{-0.0625, -0.3125, 0.125, 0.0, -0.25, 0.1875}, -- top_tail
{-0.125, -0.125, -0.25, -0.0625, -0.0625, -0.1875}, -- right_ear
{-0.0625, -0.375, 0.1875, 0.0, -0.3125, 0.3125}, -- bottom_tail
{0, -0.125, -0.25, 0.0625, -0.0625, -0.1875}, -- left_ear
}
tiles = {
"petz_kitty_top.png",
"petz_kitty_bottom.png",
"petz_kitty_right.png",
"petz_kitty_left.png",
"petz_kitty_back.png",
"petz_kitty_front.png"
}
petz.register_cubic(node_name, fixed, tiles)
textures= {"petz:kitty_block"}
collisionbox = {-0.35, -0.75, -0.28, 0.35, -0.125, 0.28}
else
mesh = 'petz_kitty.b3d'
textures= {{"petz_kitty.png"}, {"petz_kitty2.png"}, {"petz_kitty3.png"}}
collisionbox = {-0.35, -0.75, -0.28, 0.35, -0.3125, 0.28}
end
mobs:register_mob("petz:"..pet_name, {
type = "animal",
rotate = petz.settings.rotate,
damage = 8,
hp_min = 4,
hp_max = 8,
init_timer = true,
armor = 200,
visual = petz.settings.visual,
visual_size = petz.settings.visual_size,
mesh = mesh,
textures = textures,
collisionbox = collisionbox,
makes_footstep_sound = false,
walk_velocity = 0.75,
run_velocity = 1,
runaway = true,
pushable = true,
jump = true,
follow = petz.settings.kitty_follow,
drops = {
{name = "mobs:meat_raw",
chance = 1,
min = 1,
max = 1,},
},
stay_near= {
nodes = "petz:pet_bowl",
chance = 1,
},
water_damage = 2,
lava_damage = 6,
light_damage = 0,
sounds = {
random = "petz_kitty_meow",
},
animation = {
speed_normal = 15, walk_start = 1, walk_end = 12,
speed_run = 25, run_start = 13, run_end = 25,
stand_start = 26, stand_end = 45,
stand2_start = 46, stand2_end = 58,
stand3_start = 59, stand3_end = 80,
},
view_range = 4,
fear_height = 3,
do_punch = function (self, hitter, time_from_last_punch, tool_capabilities, direction)
petz.do_punch(self, hitter, time_from_last_punch, tool_capabilities, direction)
end,
on_die = function(self, pos)
petz.on_die(self, pos)
end,
on_rightclick = function(self, clicker)
petz.on_rightclick(self, clicker, pet_name)
end,
on_step = function(self, dtime)
petz.on_step(self, dtime)
end,
after_activate = function(self, staticdata, def, dtime)
self.init_timer = true
end,
do_custom = function(self, dtime)
if not self.custom_vars_set then
self.custom_vars_set = 0
self.affinity = 100
self.init_timer = true
self.fed= false
self.brushed = false
end
if petz.settings.tamagochi_mode == true and self.init_timer == true then
petz.timer(self, pet_name)
end
end,
})

154
lamb.lua Normal file
View File

@ -0,0 +1,154 @@
--
--LAMB
--
minetest.register_node("petz:lamb_block", {
tiles = {
"petz_lamb_top.png",
"petz_lamb_bottom.png",
"petz_lamb_right.png",
"petz_lamb_left.png",
"petz_lamb_back.png",
"petz_lamb_front.png"
},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.125, -0.5, 0.0625, -0.0625, -0.375, 0.125}, -- back_right_leg
{-0.125, -0.5, -0.125, -0.0625, -0.375, -0.0625}, -- front_right_leg
{0, -0.5, -0.125, 0.0625, -0.375, -0.0625}, -- front_left_leg
{0, -0.5, 0.0625, 0.0625, -0.375, 0.125}, -- back_left_leg
{-0.125, -0.375, -0.125, 0.0625, -0.25, 0.125}, -- body
{-0.125, -0.3125, -0.25, 0.0625, -0.125, -0.0625}, -- head
{-0.0625, -0.3125, 0.125, 1.11759e-08, -0.25, 0.1875}, -- tail
{-0.1875, -0.1875, -0.1875, -0.125, -0.125, -0.125}, -- right_ear
{0.0625, -0.1875, -0.1875, 0.125, -0.125, -0.125}, -- left_ear
}
}
})
minetest.register_node("petz:lamb_shaved", {
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.125, -0.5, 0.0625, -0.0625, -0.375, 0.125}, -- back_right_leg
{-0.125, -0.5, -0.125, -0.0625, -0.375, -0.0625}, -- front_right_leg
{0, -0.5, -0.125, 0.0625, -0.375, -0.0625}, -- front_left_leg
{0, -0.5, 0.0625, 0.0625, -0.375, 0.125}, -- back_left_leg
{-0.125, -0.375, -0.125, 0.0625, -0.25, 0.125}, -- body
{-0.125, -0.3125, -0.25, 0.0625, -0.125, -0.0625}, -- head
{-0.0625, -0.3125, 0.125, 1.11759e-08, -0.25, 0.1875}, -- tail
{-0.1875, -0.1875, -0.1875, -0.125, -0.125, -0.125}, -- right_ear
{0.0625, -0.1875, -0.1875, 0.125, -0.125, -0.125}, -- left_ear
},
},
tiles = {
"petz_lamb_shaved_top.png",
"petz_lamb_shaved_bottom.png",
"petz_lamb_shaved_right.png",
"petz_lamb_shaved_left.png",
"petz_lamb_shaved_back.png",
"petz_lamb_shaved_front.png"
},
groups = {not_in_creative_inventory = 1},
})
mobs:register_mob("petz:lamb", {
type = "animal",
passive = true,
hp_min = 4,
hp_max = 8,
armor = 200,
collisionbox = {-0.25, -1.3125, -0.25, 0.25, -0.25, 0.25},
visual = "wielditem",
visual_size = {x=1.75, y=1.75},
textures = {"petz:lamb_block"},
--gotten_texture = {"petz:lamb_shaved"},
rotate = 180,
makes_footstep_sound = false,
walk_velocity = 0.1,
run_velocity = 0.75,
runaway = true,
pushable = true,
jump = false,
drops = {
{name = "mobs:meat_raw",
chance = 1,
min = 1,
max = 1,},
},
drawtype = "front",
water_damage = 2,
lava_damage = 6,
light_damage = 0,
sounds = {
random = "petz_lamb",
},
animation = {
speed_normal = 15,
speed_run = 15,
stand_start = 0,
stand_end = 80,
walk_start = 81,
walk_end = 100,
},
follow = {"farming:wheat", "default:grass_1"},
view_range = 4,
replace_rate = 10,
replace_what = {
{"group:grass", "air", -1},
{"default:dirt_with_grass", "default:dirt", -2}
},
fear_height = 3,
on_replace = function(self, pos, oldnode, newnode)
self.food = (self.food or 0) + 1
-- if lamb replaces 8x grass then it regrows wool
if self.food >= 8 then
self.food = 0
self.gotten = false
self.object:set_properties({
textures = {"petz:lamb_block"},
})
end
end,
on_rightclick = function(self, clicker)
tool = clicker:get_wielded_item():get_name()
--are we feeding?
if mobs:feed_tame(self, clicker, 8, true, true) then
--if fed 7x grass or wheat then lamb regrows wool
if self.food and self.food > 6 then
self.gotten = false
self.object:set_properties({
textures = {"petz:lamb_block"},
})
end
return
end
if mobs:protect(self, clicker) then return end
if mobs:capture_mob(self, clicker, "petz:lamb") then return end
if tool == "mobs:shears" and clicker:get_inventory() and not self.empty then
self.empty = true
clicker:get_inventory():add_item("main", "wool:white")
minetest.sound_play("petz_lamb_hurt",{pos=pos, max_hear_distance=3, gain=0.5, loop=false})
self.object:set_properties({
textures = {"petz:lamb_shaved"},
})
end
end
})

18
locale/petz.es.tr Normal file
View File

@ -0,0 +1,18 @@
# textdomain: petz
Kitty=Gatito
Puppy=Cachorrito
Calf=Ternera
Lamb=Cordero
Piggy=Cerdito
Chicken=Pollo
Ducky=Patito
Panda=Oso panda
Pet Bowl=Bol de mascota
Follow me=Sígueme
Stand here=Espera aquí
Do your own thing=Anda a tu bola
Close=Cerrar
Your=Tu
has starved to death!!!=ha muerto de hambre!!!
has abandoned you!!!=te ha abandonado!!!
had already been brushed.=ya había sido cepillado.

BIN
logo.xcf Normal file

Binary file not shown.

3
mod.conf Normal file
View File

@ -0,0 +1,3 @@
name = petz
description = Cute mobs for Minetest
depends = default, mobs, stairs, dye

BIN
models/petz_ducky.b3d Normal file

Binary file not shown.

BIN
models/petz_ducky.blend Normal file

Binary file not shown.

169
models/petz_ducky.obj Normal file
View File

@ -0,0 +1,169 @@
mtllib petz_ducky.mtl
o converted_out
v 0.125 -0.5 -0.0625
v 0.125 -0.5 7.45058e-09
v 0.125 -0.4375 7.45058e-09
v 0.125 -0.4375 -0.0625
v 0.0625 -0.5 -0.0625
v 0.0625 -0.5 7.45058e-09
v 0.0625 -0.4375 7.45058e-09
v 0.0625 -0.4375 -0.0625
v -0 -0.5 -0.0625
v -0 -0.5 1.86265e-08
v -0 -0.4375 1.86265e-08
v -0 -0.4375 -0.0625
v -0.0625 -0.5 -0.0625
v -0.0625 -0.5 1.86265e-08
v -0.0625 -0.4375 1.86265e-08
v -0.0625 -0.4375 -0.0625
v 0.125 -0.4375 -0.125
v 0.125 -0.4375 0.0625
v 0.125 -0.25 0.0625
v 0.125 -0.25 -0.125
v -0.0625 -0.4375 -0.125
v -0.0625 -0.4375 0.0625
v -0.0625 -0.25 0.0625
v -0.0625 -0.25 -0.125
v 0.125 -0.3125 0.0625
v 0.125 -0.3125 0.125
v 0.125 -0.25 0.125
v 0.125 -0.25 0.0625
v -0.0625 -0.3125 0.0625
v -0.0625 -0.3125 0.125
v -0.0625 -0.25 0.125
v -0.0625 -0.25 0.0625
v 0.125 -0.25 -0.1875
v 0.125 -0.25 -0.125
v 0.125 -0.1875 -0.125
v 0.125 -0.1875 -0.1875
v -0.0625 -0.25 -0.1875
v -0.0625 -0.25 -0.125
v -0.0625 -0.1875 -0.125
v -0.0625 -0.1875 -0.1875
v 0.125 -0.25 -0.125
v 0.125 -0.25 9.68575e-08
v 0.125 -0.0625 9.68575e-08
v 0.125 -0.0625 -0.125
v -0.0625 -0.25 -0.125
v -0.0625 -0.25 9.68575e-08
v -0.0625 -0.0625 9.68575e-08
v -0.0625 -0.0625 -0.125
v -0.0625 -0.3125 -0.0625
v -0.0625 -0.3125 0.0625
v -0.0625 -0.25 0.0625
v -0.0625 -0.25 -0.0625
v -0.125 -0.3125 -0.0625
v -0.125 -0.3125 0.0625
v -0.125 -0.25 0.0625
v -0.125 -0.25 -0.0625
v -0.0625 -0.375 -0.0625
v -0.0625 -0.375 0
v -0.0625 -0.3125 0
v -0.0625 -0.3125 -0.0625
v -0.125 -0.375 -0.0625
v -0.125 -0.375 0
v -0.125 -0.3125 0
v -0.125 -0.3125 -0.0625
v 0.1875 -0.3125 -0.0625
v 0.1875 -0.3125 0.0625
v 0.1875 -0.25 0.0625
v 0.1875 -0.25 -0.0625
v 0.125 -0.3125 -0.0625
v 0.125 -0.3125 0.0625
v 0.125 -0.25 0.0625
v 0.125 -0.25 -0.0625
v 0.1875 -0.375 -0.0625
v 0.1875 -0.375 0
v 0.1875 -0.3125 0
v 0.1875 -0.3125 -0.0625
v 0.125 -0.375 -0.0625
v 0.125 -0.375 0
v 0.125 -0.3125 0
v 0.125 -0.3125 -0.0625
v 0.0625 -0.375 0.0625
v 0.0625 -0.375 0.125
v 0.0625 -0.3125 0.125
v 0.0625 -0.3125 0.0625
v 3.35276e-08 -0.375 0.0625
v 3.35276e-08 -0.375 0.125
v 3.35276e-08 -0.3125 0.125
v 3.35276e-08 -0.3125 0.0625
usemtl none
s off
g right_leg
f 1 2 3 4
f 5 6 7 8
f 1 4 8 5
f 2 3 7 6
f 1 2 6 5
f 4 3 7 8
g left_leg
f 9 10 11 12
f 13 14 15 16
f 9 12 16 13
f 10 11 15 14
f 9 10 14 13
f 12 11 15 16
g body
f 17 18 19 20
f 21 22 23 24
f 17 20 24 21
f 18 19 23 22
f 17 18 22 21
f 20 19 23 24
g tail_top
f 25 26 27 28
f 29 30 31 32
f 25 28 32 29
f 26 27 31 30
f 25 26 30 29
f 28 27 31 32
g beak
f 33 34 35 36
f 37 38 39 40
f 33 36 40 37
f 34 35 39 38
f 33 34 38 37
f 36 35 39 40
g head
f 41 42 43 44
f 45 46 47 48
f 41 44 48 45
f 42 43 47 46
f 41 42 46 45
f 44 43 47 48
g left_wing_top
f 49 50 51 52
f 53 54 55 56
f 49 52 56 53
f 50 51 55 54
f 49 50 54 53
f 52 51 55 56
g left_wing_bottom
f 57 58 59 60
f 61 62 63 64
f 57 60 64 61
f 58 59 63 62
f 57 58 62 61
f 60 59 63 64
g right_wing_top
f 65 66 67 68
f 69 70 71 72
f 65 68 72 69
f 66 67 71 70
f 65 66 70 69
f 68 67 71 72
g right_wing_bottom
f 73 74 75 76
f 77 78 79 80
f 73 76 80 77
f 74 75 79 78
f 73 74 78 77
f 76 75 79 80
g tail_bottom
f 81 82 83 84
f 85 86 87 88
f 81 84 88 85
f 82 83 87 86
f 81 82 86 85
f 84 83 87 88

BIN
models/petz_kitty.b3d Normal file

Binary file not shown.

BIN
models/petz_kitty.blend Normal file

Binary file not shown.

BIN
models/petz_kitty.blend1 Normal file

Binary file not shown.

154
models/petz_kitty.obj Normal file
View File

@ -0,0 +1,154 @@
mtllib pets_kitty.mtl
o converted_out
v 0.125 -0.5 0.0625
v 0.125 -0.5 0.125
v 0.125 -0.375 0.125
v 0.125 -0.375 0.0625
v 0.0625 -0.5 0.0625
v 0.0625 -0.5 0.125
v 0.0625 -0.375 0.125
v 0.0625 -0.375 0.0625
v 0.125 -0.5 -0.1875
v 0.125 -0.5 -0.125
v 0.125 -0.375 -0.125
v 0.125 -0.375 -0.1875
v 0.0625 -0.5 -0.1875
v 0.0625 -0.5 -0.125
v 0.0625 -0.375 -0.125
v 0.0625 -0.375 -0.1875
v -0 -0.5 -0.1875
v -0 -0.5 -0.125
v -0 -0.375 -0.125
v -0 -0.375 -0.1875
v -0.0625 -0.5 -0.1875
v -0.0625 -0.5 -0.125
v -0.0625 -0.375 -0.125
v -0.0625 -0.375 -0.1875
v -0 -0.5 0.0625
v -0 -0.5 0.125
v -0 -0.375 0.125
v -0 -0.375 0.0625
v -0.0625 -0.5 0.0625
v -0.0625 -0.5 0.125
v -0.0625 -0.375 0.125
v -0.0625 -0.375 0.0625
v 0.125 -0.375 -0.1875
v 0.125 -0.375 0.125
v 0.125 -0.25 0.125
v 0.125 -0.25 -0.1875
v -0.0625 -0.375 -0.1875
v -0.0625 -0.375 0.125
v -0.0625 -0.25 0.125
v -0.0625 -0.25 -0.1875
v 0.125 -0.3125 -0.3125
v 0.125 -0.3125 -0.125
v 0.125 -0.125 -0.125
v 0.125 -0.125 -0.3125
v -0.0625 -0.3125 -0.3125
v -0.0625 -0.3125 -0.125
v -0.0625 -0.125 -0.125
v -0.0625 -0.125 -0.3125
v 0.0625 -0.3125 0.125
v 0.0625 -0.3125 0.1875
v 0.0625 -0.25 0.1875
v 0.0625 -0.25 0.125
v -1.11759e-08 -0.3125 0.125
v -1.11759e-08 -0.3125 0.1875
v -1.11759e-08 -0.25 0.1875
v -1.11759e-08 -0.25 0.125
v 0.125 -0.125 -0.25
v 0.125 -0.125 -0.1875
v 0.125 -0.0625 -0.1875
v 0.125 -0.0625 -0.25
v 0.0625 -0.125 -0.25
v 0.0625 -0.125 -0.1875
v 0.0625 -0.0625 -0.1875
v 0.0625 -0.0625 -0.25
v 0.0625 -0.375 0.1875
v 0.0625 -0.375 0.3125
v 0.0625 -0.3125 0.3125
v 0.0625 -0.3125 0.1875
v 3.72529e-09 -0.375 0.1875
v 3.72529e-09 -0.375 0.3125
v 3.72529e-09 -0.3125 0.3125
v 3.72529e-09 -0.3125 0.1875
v -0 -0.125 -0.25
v -0 -0.125 -0.1875
v -0 -0.0625 -0.1875
v -0 -0.0625 -0.25
v -0.0625 -0.125 -0.25
v -0.0625 -0.125 -0.1875
v -0.0625 -0.0625 -0.1875
v -0.0625 -0.0625 -0.25
usemtl none
s off
g back_right_leg
f 1 2 3 4
f 5 6 7 8
f 1 4 8 5
f 2 3 7 6
f 1 2 6 5
f 4 3 7 8
g front_right_leg
f 9 10 11 12
f 13 14 15 16
f 9 12 16 13
f 10 11 15 14
f 9 10 14 13
f 12 11 15 16
g front_left_leg
f 17 18 19 20
f 21 22 23 24
f 17 20 24 21
f 18 19 23 22
f 17 18 22 21
f 20 19 23 24
g back_left_leg
f 25 26 27 28
f 29 30 31 32
f 25 28 32 29
f 26 27 31 30
f 25 26 30 29
f 28 27 31 32
g body
f 33 34 35 36
f 37 38 39 40
f 33 36 40 37
f 34 35 39 38
f 33 34 38 37
f 36 35 39 40
g head
f 41 42 43 44
f 45 46 47 48
f 41 44 48 45
f 42 43 47 46
f 41 42 46 45
f 44 43 47 48
g top_tail
f 49 50 51 52
f 53 54 55 56
f 49 52 56 53
f 50 51 55 54
f 49 50 54 53
f 52 51 55 56
g right_ear
f 57 58 59 60
f 61 62 63 64
f 57 60 64 61
f 58 59 63 62
f 57 58 62 61
f 60 59 63 64
g bottom_tail
f 65 66 67 68
f 69 70 71 72
f 65 68 72 69
f 66 67 71 70
f 65 66 70 69
f 68 67 71 72
g left_ear
f 73 74 75 76
f 77 78 79 80
f 73 76 80 77
f 74 75 79 78
f 73 74 78 77
f 76 75 79 80

BIN
models/petz_lamb.b3d Normal file

Binary file not shown.

BIN
models/petz_lamb.blend Normal file

Binary file not shown.

139
models/petz_lamb.obj Normal file
View File

@ -0,0 +1,139 @@
mtllib petz_lamb.mtl
o converted_out
v 0.125 -0.5 0.0625
v 0.125 -0.5 0.125
v 0.125 -0.375 0.125
v 0.125 -0.375 0.0625
v 0.0625 -0.5 0.0625
v 0.0625 -0.5 0.125
v 0.0625 -0.375 0.125
v 0.0625 -0.375 0.0625
v 0.125 -0.5 -0.125
v 0.125 -0.5 -0.0625
v 0.125 -0.375 -0.0625
v 0.125 -0.375 -0.125
v 0.0625 -0.5 -0.125
v 0.0625 -0.5 -0.0625
v 0.0625 -0.375 -0.0625
v 0.0625 -0.375 -0.125
v -0 -0.5 -0.125
v -0 -0.5 -0.0625
v -0 -0.375 -0.0625
v -0 -0.375 -0.125
v -0.0625 -0.5 -0.125
v -0.0625 -0.5 -0.0625
v -0.0625 -0.375 -0.0625
v -0.0625 -0.375 -0.125
v -0 -0.5 0.0625
v -0 -0.5 0.125
v -0 -0.375 0.125
v -0 -0.375 0.0625
v -0.0625 -0.5 0.0625
v -0.0625 -0.5 0.125
v -0.0625 -0.375 0.125
v -0.0625 -0.375 0.0625
v 0.125 -0.375 -0.125
v 0.125 -0.375 0.125
v 0.125 -0.25 0.125
v 0.125 -0.25 -0.125
v -0.0625 -0.375 -0.125
v -0.0625 -0.375 0.125
v -0.0625 -0.25 0.125
v -0.0625 -0.25 -0.125
v 0.125 -0.3125 -0.25
v 0.125 -0.3125 -0.0625
v 0.125 -0.125 -0.0625
v 0.125 -0.125 -0.25
v -0.0625 -0.3125 -0.25
v -0.0625 -0.3125 -0.0625
v -0.0625 -0.125 -0.0625
v -0.0625 -0.125 -0.25
v 0.0625 -0.3125 0.125
v 0.0625 -0.3125 0.1875
v 0.0625 -0.25 0.1875
v 0.0625 -0.25 0.125
v -1.11759e-08 -0.3125 0.125
v -1.11759e-08 -0.3125 0.1875
v -1.11759e-08 -0.25 0.1875
v -1.11759e-08 -0.25 0.125
v 0.1875 -0.1875 -0.1875
v 0.1875 -0.1875 -0.125
v 0.1875 -0.125 -0.125
v 0.1875 -0.125 -0.1875
v 0.125 -0.1875 -0.1875
v 0.125 -0.1875 -0.125
v 0.125 -0.125 -0.125
v 0.125 -0.125 -0.1875
v -0.0625 -0.1875 -0.1875
v -0.0625 -0.1875 -0.125
v -0.0625 -0.125 -0.125
v -0.0625 -0.125 -0.1875
v -0.125 -0.1875 -0.1875
v -0.125 -0.1875 -0.125
v -0.125 -0.125 -0.125
v -0.125 -0.125 -0.1875
usemtl none
s off
g back_right_leg
f 1 2 3 4
f 5 6 7 8
f 1 4 8 5
f 2 3 7 6
f 1 2 6 5
f 4 3 7 8
g front_right_leg
f 9 10 11 12
f 13 14 15 16
f 9 12 16 13
f 10 11 15 14
f 9 10 14 13
f 12 11 15 16
g front_left_leg
f 17 18 19 20
f 21 22 23 24
f 17 20 24 21
f 18 19 23 22
f 17 18 22 21
f 20 19 23 24
g back_left_leg
f 25 26 27 28
f 29 30 31 32
f 25 28 32 29
f 26 27 31 30
f 25 26 30 29
f 28 27 31 32
g body
f 33 34 35 36
f 37 38 39 40
f 33 36 40 37
f 34 35 39 38
f 33 34 38 37
f 36 35 39 40
g head
f 41 42 43 44
f 45 46 47 48
f 41 44 48 45
f 42 43 47 46
f 41 42 46 45
f 44 43 47 48
g tail
f 49 50 51 52
f 53 54 55 56
f 49 52 56 53
f 50 51 55 54
f 49 50 54 53
f 52 51 55 56
g right_ear
f 57 58 59 60
f 61 62 63 64
f 57 60 64 61
f 58 59 63 62
f 57 58 62 61
f 60 59 63 64
g left_ear
f 65 66 67 68
f 69 70 71 72
f 65 68 72 69
f 66 67 71 70
f 65 66 70 69
f 68 67 71 72

BIN
models/petz_piggy.blend Normal file

Binary file not shown.

184
models/petz_piggy.obj Normal file
View File

@ -0,0 +1,184 @@
mtllib petz_piggy.mtl
o converted_out
v 0.1875 -0.5 0.3125
v 0.1875 -0.5 0.4375
v 0.1875 -0.25 0.4375
v 0.1875 -0.25 0.3125
v 0.0625 -0.5 0.3125
v 0.0625 -0.5 0.4375
v 0.0625 -0.25 0.4375
v 0.0625 -0.25 0.3125
v 0.1875 -0.5 -0.125
v 0.1875 -0.5 7.45058e-09
v 0.1875 -0.25 7.45058e-09
v 0.1875 -0.25 -0.125
v 0.0625 -0.5 -0.125
v 0.0625 -0.5 7.45058e-09
v 0.0625 -0.25 7.45058e-09
v 0.0625 -0.25 -0.125
v -0.0625 -0.5 -0.125
v -0.0625 -0.5 1.11759e-08
v -0.0625 -0.25 1.11759e-08
v -0.0625 -0.25 -0.125
v -0.1875 -0.5 -0.125
v -0.1875 -0.5 1.11759e-08
v -0.1875 -0.25 1.11759e-08
v -0.1875 -0.25 -0.125
v -0.0625 -0.5 0.3125
v -0.0625 -0.5 0.4375
v -0.0625 -0.25 0.4375
v -0.0625 -0.25 0.3125
v -0.1875 -0.5 0.3125
v -0.1875 -0.5 0.4375
v -0.1875 -0.25 0.4375
v -0.1875 -0.25 0.3125
v 0.1875 -0.25 -0.1875
v 0.1875 -0.25 0.375
v 0.1875 0.0625 0.375
v 0.1875 0.0625 -0.1875
v -0.1875 -0.25 -0.1875
v -0.1875 -0.25 0.375
v -0.1875 0.0625 0.375
v -0.1875 0.0625 -0.1875
v 0.1875 -0.0625 -0.3125
v 0.1875 -0.0625 0.0625
v 0.1875 0.375 0.0625
v 0.1875 0.375 -0.3125
v -0.1875 -0.0625 -0.3125
v -0.1875 -0.0625 0.0625
v -0.1875 0.375 0.0625
v -0.1875 0.375 -0.3125
v -0 -0.0625 0.375
v -0 -0.0625 0.4375
v -0 -6.70552e-08 0.4375
v -0 -6.70552e-08 0.375
v -0.0624999 -0.0625 0.375
v -0.0624999 -0.0625 0.4375
v -0.0624999 -6.70552e-08 0.4375
v -0.0624999 -6.70552e-08 0.375
v 0.3125 0.1875 -0.1875
v 0.3125 0.1875 -0.0625
v 0.3125 0.3125 -0.0625
v 0.3125 0.3125 -0.1875
v 0.1875 0.1875 -0.1875
v 0.1875 0.1875 -0.0625
v 0.1875 0.3125 -0.0625
v 0.1875 0.3125 -0.1875
v -0 -0.1875 0.375
v -0 -0.1875 0.4375
v -0 -0.125 0.4375
v -0 -0.125 0.375
v -0.0625 -0.1875 0.375
v -0.0625 -0.1875 0.4375
v -0.0625 -0.125 0.4375
v -0.0625 -0.125 0.375
v -0.1875 0.1875 -0.1875
v -0.1875 0.1875 -0.0625
v -0.1875 0.3125 -0.0625
v -0.1875 0.3125 -0.1875
v -0.3125 0.1875 -0.1875
v -0.3125 0.1875 -0.0625
v -0.3125 0.3125 -0.0625
v -0.3125 0.3125 -0.1875
v 0.0625 -0.125 0.375
v 0.0625 -0.125 0.4375
v 0.0625 -0.0625001 0.4375
v 0.0625 -0.0625001 0.375
v 2.98023e-08 -0.125 0.375
v 2.98023e-08 -0.125 0.4375
v 2.98023e-08 -0.0625001 0.4375
v 2.98023e-08 -0.0625001 0.375
v 0.125 0 -0.375
v 0.125 0 -0.3125
v 0.125 0.1875 -0.3125
v 0.125 0.1875 -0.375
v -0.125 0 -0.375
v -0.125 0 -0.3125
v -0.125 0.1875 -0.3125
v -0.125 0.1875 -0.375
usemtl none
s off
g back_right_leg
f 1 2 3 4
f 5 6 7 8
f 1 4 8 5
f 2 3 7 6
f 1 2 6 5
f 4 3 7 8
g front_right_leg
f 9 10 11 12
f 13 14 15 16
f 9 12 16 13
f 10 11 15 14
f 9 10 14 13
f 12 11 15 16
g front_left_leg
f 17 18 19 20
f 21 22 23 24
f 17 20 24 21
f 18 19 23 22
f 17 18 22 21
f 20 19 23 24
g back_left_leg
f 25 26 27 28
f 29 30 31 32
f 25 28 32 29
f 26 27 31 30
f 25 26 30 29
f 28 27 31 32
g body
f 33 34 35 36
f 37 38 39 40
f 33 36 40 37
f 34 35 39 38
f 33 34 38 37
f 36 35 39 40
g head
f 41 42 43 44
f 45 46 47 48
f 41 44 48 45
f 42 43 47 46
f 41 42 46 45
f 44 43 47 48
g top_tail
f 49 50 51 52
f 53 54 55 56
f 49 52 56 53
f 50 51 55 54
f 49 50 54 53
f 52 51 55 56
g right_ear
f 57 58 59 60
f 61 62 63 64
f 57 60 64 61
f 58 59 63 62
f 57 58 62 61
f 60 59 63 64
g bottom_tail
f 65 66 67 68
f 69 70 71 72
f 65 68 72 69
f 66 67 71 70
f 65 66 70 69
f 68 67 71 72
g left_ear
f 73 74 75 76
f 77 78 79 80
f 73 76 80 77
f 74 75 79 78
f 73 74 78 77
f 76 75 79 80
g middle_tail
f 81 82 83 84
f 85 86 87 88
f 81 84 88 85
f 82 83 87 86
f 81 82 86 85
f 84 83 87 88
g snout
f 89 90 91 92
f 93 94 95 96
f 89 92 96 93
f 90 91 95 94
f 89 90 94 93
f 92 91 95 96

BIN
models/petz_puppy.b3d Normal file

Binary file not shown.

BIN
models/petz_puppy.blend Normal file

Binary file not shown.

BIN
models/petz_puppy.blend1 Normal file

Binary file not shown.

169
models/petz_puppy.obj Normal file
View File

@ -0,0 +1,169 @@
mtllib petz_puppy.mtl
o converted_out
v 0.125 -0.5 0.0625
v 0.125 -0.5 0.125
v 0.125 -0.375 0.125
v 0.125 -0.375 0.0625
v 0.0625 -0.5 0.0625
v 0.0625 -0.5 0.125
v 0.0625 -0.375 0.125
v 0.0625 -0.375 0.0625
v 0.125 -0.5 -0.125
v 0.125 -0.5 -0.0625
v 0.125 -0.375 -0.0625
v 0.125 -0.375 -0.125
v 0.0625 -0.5 -0.125
v 0.0625 -0.5 -0.0625
v 0.0625 -0.375 -0.0625
v 0.0625 -0.375 -0.125
v -0 -0.5 -0.125
v -0 -0.5 -0.0625
v -0 -0.375 -0.0625
v -0 -0.375 -0.125
v -0.0625 -0.5 -0.125
v -0.0625 -0.5 -0.0625
v -0.0625 -0.375 -0.0625
v -0.0625 -0.375 -0.125
v -0 -0.5 0.0625
v -0 -0.5 0.125
v -0 -0.375 0.125
v -0 -0.375 0.0625
v -0.0625 -0.5 0.0625
v -0.0625 -0.5 0.125
v -0.0625 -0.375 0.125
v -0.0625 -0.375 0.0625
v 0.125 -0.375 -0.125
v 0.125 -0.375 0.125
v 0.125 -0.25 0.125
v 0.125 -0.25 -0.125
v -0.0625 -0.375 -0.125
v -0.0625 -0.375 0.125
v -0.0625 -0.25 0.125
v -0.0625 -0.25 -0.125
v 0.125 -0.375 -0.25
v 0.125 -0.375 -0.0625001
v 0.125 -0.1875 -0.0625001
v 0.125 -0.1875 -0.25
v -0.0625 -0.375 -0.25
v -0.0625 -0.375 -0.0625001
v -0.0625 -0.1875 -0.0625001
v -0.0625 -0.1875 -0.25
v 0.0625 -0.3125 0.125
v 0.0625 -0.3125 0.25
v 0.0625 -0.25 0.25
v 0.0625 -0.25 0.125
v -1.11759e-08 -0.3125 0.125
v -1.11759e-08 -0.3125 0.25
v -1.11759e-08 -0.25 0.25
v -1.11759e-08 -0.25 0.125
v 0.125 -0.1875 -0.1875
v 0.125 -0.1875 -0.125
v 0.125 -0.125 -0.125
v 0.125 -0.125 -0.1875
v 0.0625 -0.1875 -0.1875
v 0.0625 -0.1875 -0.125
v 0.0625 -0.125 -0.125
v 0.0625 -0.125 -0.1875
v -0 -0.1875 -0.1875
v -0 -0.1875 -0.125
v -0 -0.125 -0.125
v -0 -0.125 -0.1875
v -0.0625 -0.1875 -0.1875
v -0.0625 -0.1875 -0.125
v -0.0625 -0.125 -0.125
v -0.0625 -0.125 -0.1875
v 0.125 -0.375 -0.3125
v 0.125 -0.375 -0.25
v 0.125 -0.3125 -0.25
v 0.125 -0.3125 -0.3125
v -0.0625 -0.375 -0.3125
v -0.0625 -0.375 -0.25
v -0.0625 -0.3125 -0.25
v -0.0625 -0.3125 -0.3125
v 0.0625 -0.4375 -0.25
v 0.0625 -0.4375 -0.1875
v 0.0625 -0.375 -0.1875
v 0.0625 -0.375 -0.25
v -3.72529e-09 -0.4375 -0.25
v -3.72529e-09 -0.4375 -0.1875
v -3.72529e-09 -0.375 -0.1875
v -3.72529e-09 -0.375 -0.25
usemtl none
s off
g back_right_leg
f 1 2 3 4
f 5 6 7 8
f 1 4 8 5
f 2 3 7 6
f 1 2 6 5
f 4 3 7 8
g front_right_leg
f 9 10 11 12
f 13 14 15 16
f 9 12 16 13
f 10 11 15 14
f 9 10 14 13
f 12 11 15 16
g front_left_leg
f 17 18 19 20
f 21 22 23 24
f 17 20 24 21
f 18 19 23 22
f 17 18 22 21
f 20 19 23 24
g back_left_leg
f 25 26 27 28
f 29 30 31 32
f 25 28 32 29
f 26 27 31 30
f 25 26 30 29
f 28 27 31 32
g body
f 33 34 35 36
f 37 38 39 40
f 33 36 40 37
f 34 35 39 38
f 33 34 38 37
f 36 35 39 40
g head
f 41 42 43 44
f 45 46 47 48
f 41 44 48 45
f 42 43 47 46
f 41 42 46 45
f 44 43 47 48
g tail
f 49 50 51 52
f 53 54 55 56
f 49 52 56 53
f 50 51 55 54
f 49 50 54 53
f 52 51 55 56
g right_ear
f 57 58 59 60
f 61 62 63 64
f 57 60 64 61
f 58 59 63 62
f 57 58 62 61
f 60 59 63 64
g left_ear
f 65 66 67 68
f 69 70 71 72
f 65 68 72 69
f 66 67 71 70
f 65 66 70 69
f 68 67 71 72
g snout
f 73 74 75 76
f 77 78 79 80
f 73 76 80 77
f 74 75 79 78
f 73 74 78 77
f 76 75 79 80
g tongue
f 81 82 83 84
f 85 86 87 88
f 81 84 88 85
f 82 83 87 86
f 81 82 86 85
f 84 83 87 88

BIN
models/petz_turtle.blend Normal file

Binary file not shown.

BIN
models/petz_turtle.blend1 Normal file

Binary file not shown.

109
models/petz_turtle.obj Normal file
View File

@ -0,0 +1,109 @@
mtllib petz_turtle.mtl
o converted_out
v 0.1875 -0.4375 -0.125
v 0.1875 -0.4375 0.1875
v 0.1875 -0.25 0.1875
v 0.1875 -0.25 -0.125
v -0.1875 -0.4375 -0.125
v -0.1875 -0.4375 0.1875
v -0.1875 -0.25 0.1875
v -0.1875 -0.25 -0.125
v 0.125 -0.4375 -0.25
v 0.125 -0.4375 -0.125
v 0.125 -0.3125 -0.125
v 0.125 -0.3125 -0.25
v -0.125 -0.4375 -0.25
v -0.125 -0.4375 -0.125
v -0.125 -0.3125 -0.125
v -0.125 -0.3125 -0.25
v -0.0625 -0.5 -0.125
v -0.0625 -0.5 2.23517e-08
v -0.0625 -0.4375 2.23517e-08
v -0.0625 -0.4375 -0.125
v -0.1875 -0.5 -0.125
v -0.1875 -0.5 2.23517e-08
v -0.1875 -0.4375 2.23517e-08
v -0.1875 -0.4375 -0.125
v 0.1875 -0.5 -0.125
v 0.1875 -0.5 4.47035e-08
v 0.1875 -0.4375 4.47035e-08
v 0.1875 -0.4375 -0.125
v 0.0625 -0.5 -0.125
v 0.0625 -0.5 4.47035e-08
v 0.0625 -0.4375 4.47035e-08
v 0.0625 -0.4375 -0.125
v -0.0625 -0.5 0.0625
v -0.0625 -0.5 0.1875
v -0.0625 -0.4375 0.1875
v -0.0625 -0.4375 0.0625
v -0.1875 -0.5 0.0625
v -0.1875 -0.5 0.1875
v -0.1875 -0.4375 0.1875
v -0.1875 -0.4375 0.0625
v 0.1875 -0.5 0.0625
v 0.1875 -0.5 0.1875
v 0.1875 -0.4375 0.1875
v 0.1875 -0.4375 0.0625
v 0.0625 -0.5 0.0625
v 0.0625 -0.5 0.1875
v 0.0625 -0.4375 0.1875
v 0.0625 -0.4375 0.0625
v 0.0625 -0.4375 0.1875
v 0.0625 -0.4375 0.25
v 0.0625 -0.375 0.25
v 0.0625 -0.375 0.1875
v -0.0625 -0.4375 0.1875
v -0.0625 -0.4375 0.25
v -0.0625 -0.375 0.25
v -0.0625 -0.375 0.1875
usemtl none
s off
g shell
f 1 2 3 4
f 5 6 7 8
f 1 4 8 5
f 2 3 7 6
f 1 2 6 5
f 4 3 7 8
g head
f 9 10 11 12
f 13 14 15 16
f 9 12 16 13
f 10 11 15 14
f 9 10 14 13
f 12 11 15 16
g front_leg_left
f 17 18 19 20
f 21 22 23 24
f 17 20 24 21
f 18 19 23 22
f 17 18 22 21
f 20 19 23 24
g front_right_leg
f 25 26 27 28
f 29 30 31 32
f 25 28 32 29
f 26 27 31 30
f 25 26 30 29
f 28 27 31 32
g back_left_leg
f 33 34 35 36
f 37 38 39 40
f 33 36 40 37
f 34 35 39 38
f 33 34 38 37
f 36 35 39 40
g back_right_leg
f 41 42 43 44
f 45 46 47 48
f 41 44 48 45
f 42 43 47 46
f 41 42 46 45
f 44 43 47 48
g tail
f 49 50 51 52
f 53 54 55 56
f 49 52 56 53
f 50 51 55 54
f 49 50 54 53
f 52 51 55 56

BIN
nodeboxes/petz_bowl.nbe Normal file

Binary file not shown.

BIN
nodeboxes/petz_chicken.nbe Normal file

Binary file not shown.

BIN
nodeboxes/petz_cow.nbe Normal file

Binary file not shown.

BIN
nodeboxes/petz_ducky.nbe Normal file

Binary file not shown.

BIN
nodeboxes/petz_kitty.nbe Normal file

Binary file not shown.

BIN
nodeboxes/petz_lamb.nbe Normal file

Binary file not shown.

BIN
nodeboxes/petz_panda.nbe Normal file

Binary file not shown.

BIN
nodeboxes/petz_piggy.nbe Normal file

Binary file not shown.

BIN
nodeboxes/petz_puppy.nbe Normal file

Binary file not shown.

BIN
nodeboxes/petz_turtle.nbe Normal file

Binary file not shown.

97
nodes.lua Normal file
View File

@ -0,0 +1,97 @@
local modpath, S = ...
--Pet Bowl
minetest.register_node("petz:pet_bowl", {
description = S("Pet Bowl"),
inventory_image = "petz_pet_bowl_inv.png",
wield_image = "petz_pet_bowl_inv.png",
tiles = {"petz_pet_bowl.png"},
groups = {snappy=1, bendy=2, cracky=1},
sounds = default_stone_sounds,
paramtype = "light",
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875}, -- bottom
{-0.1875, -0.4375, -0.1875, 0.1875, -0.375, -0.125}, -- front
{-0.1875, -0.4375, 0.125, 0.1875, -0.375, 0.1875}, -- back
{-0.1875, -0.4375, -0.125, -0.125, -0.375, 0.125}, -- left
{0.125, -0.4375, -0.125, 0.1875, -0.375, 0.125}, -- right
},
},
})
minetest.register_craft({
type = "shaped",
output = 'petz:pet_bowl',
recipe = {
{'group:wood', '', 'group:wood'},
{'group:wood', 'group:wood', 'group:wood'},
{'', 'dye:red', ''},
}
})
--Material for Pet's House
minetest.register_node("petz:red_gables", {
description = S("Red Gables"),
tiles = {"petz_red_gables.png"},
is_ground_content = false,
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("petz:yellow_paving", {
description = S("Yellow Paving"),
tiles = {"petz_yellow_paving.png"},
is_ground_content = false,
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("petz:blue_stained_wood", {
description = S("Blue Stained Wood"),
tiles = {"petz_blue_stained_planks.png"},
is_ground_content = false,
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
if minetest.get_modpath("stairs") ~= nil then
stairs.register_stair_and_slab(
"red_gables",
"petz:red_gables",
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
{"petz_red_gables.png"},
S("Red Gables Stair"),
S("Red Gables Slab"),
default.node_sound_wood_defaults()
)
stairs.register_stair_and_slab(
"blue_stained_wood",
"petz:blue_stained_wood",
{choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
{"petz_blue_stained_planks.png"},
S("Blue Stained Stair"),
S("Blue Stained Slab"),
default.node_sound_wood_defaults()
)
end
--Kennel Schematic
minetest.register_craftitem("petz:kennel", {
description = S("Kennel"),
wield_image = {"petz_kennel.png"},
inventory_image = "petz_kennel.png",
groups = {},
on_use = function (itemstack, user, pointed_thing)
if pointed_thing.type ~= "node" then
return
end
local pt_above = pointed_thing.above
local pt_under = pointed_thing.under
minetest.place_schematic(pt_above, modpath..'/schematics/kennel.mts', 0, nil, true)
end,
})

66
panda.lua Normal file
View File

@ -0,0 +1,66 @@
--
--PANDA
--
minetest.register_node("petz:panda_block", {
tiles = {
"petz_panda_top.png",
"petz_panda_bottom.png",
"petz_panda_right.png",
"petz_panda_left.png",
"petz_panda_back.png",
"petz_panda_front.png"
},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.25, -0.5, 0.25, -0.0625, -0.25, 0.4375}, -- back_right_leg
{-0.25, -0.5, -0.125, -0.0625, -0.25, 0.0625}, -- front_right_leg
{0.0625, -0.5, -0.125, 0.25, -0.25, 0.0625}, -- front_left_leg
{0.0625, -0.5, 0.25, 0.25, -0.25, 0.4375}, -- back_left_leg
{-0.25, -0.25, -0.125, 0.25, 0.25, 0.4375}, -- body
{-0.1875, -0.1875, -0.4375, 0.1875, 0.1875, -0.125}, -- head
{-0.125, 0.1875, -0.3125, -0.0625, 0.25, -0.25}, -- right_ear
{-0.0625, -0.125, 0.4375, 0.0625, 1.11759e-08, 0.5}, -- tail
{0.0625, 0.1875, -0.3125, 0.125, 0.25, -0.25}, -- left_ear
{-0.125, -0.1875, -0.5, 0.125, -0.0625001, -0.4375}, -- snout
}
}
})
mobs:register_mob("petz:panda", {
type = "animal",
rotate= 180,
passive = true,
hp_min = 4,
hp_max = 8,
armor = 200,
collisionbox = {-0.25, -0.75, -0.25, 0.25, -0.25, 0.25},
--selectionbox = {-0.25, -0.75, -0.25, 0.25, -0.25, 0.25},
visual = "wielditem",
visual_size = {x = 1.0, y = 1.0},
textures = {"petz:panda_block"},
makes_footstep_sound = false,
walk_velocity = 0.45,
run_velocity = 1.25,
runaway = true,
jump = true,
fear_height = 2,
drops = {
{name = "mobs:pork_raw",
chance = 1,
min = 1,
max = 2,},
},
drawtype = "front",
water_damage = 1,
lava_damage = 6,
light_damage = 0,
sounds = {
random = "petz_panda",
},
follow = {"default:apple"},
view_range = 5,
})

21
petz.conf Normal file
View File

@ -0,0 +1,21 @@
##Type of model [mesh -or- cubic]
type_model = mesh
##Tamagochi Mode (Take care of your pet: fed it...)
tamagochi_mode = true
tamagochi_check_time = 1200
tamagochi_hunger_damage = 3
tamagochi_safe_node = petz:yellow_paving
##Type of API [mobs_redo]
type_api = mobs_redo
##Spawn Mobs?
kitty_spawn = true
puppy_spawn = true
##Kitty Specific
kitty_follow = farming:wheat
##Puppy Specific
puppy_follow = farming:wheat

89
piggy.lua Normal file
View File

@ -0,0 +1,89 @@
--
--PIGGY
--
minetest.register_node("petz:piggy_block", {
tiles = {
"petz_piggy_top.png",
"petz_piggy_bottom.png",
"petz_piggy_right.png",
"petz_piggy_left.png",
"petz_piggy_back.png",
"petz_piggy_front.png"
},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-0.1875, -0.5, 0.3125, -0.0625, -0.25, 0.4375}, -- back_right_leg
{-0.1875, -0.5, -0.125, -0.0625, -0.25, 7.45058e-09}, -- front_right_leg
{0.0625, -0.5, -0.125, 0.1875, -0.25, 1.11759e-08}, -- front_left_leg
{0.0625, -0.5, 0.3125, 0.1875, -0.25, 0.4375}, -- back_left_leg
{-0.1875, -0.25, -0.1875, 0.1875, 0.0625, 0.375}, -- body
{-0.1875, -0.0625, -0.3125, 0.1875, 0.375, 0.0625}, -- head
{0, -0.0625, 0.375, 0.0624999, -6.70552e-08, 0.4375}, -- top_tail
{-0.3125, 0.1875, -0.1875, -0.1875, 0.3125, -0.0625}, -- right_ear
{0, -0.1875, 0.375, 0.0625, -0.125, 0.4375}, -- bottom_tail
{0.1875, 0.1875, -0.1875, 0.3125, 0.3125, -0.0625}, -- left_ear
{-0.0625, -0.125, 0.375, -2.98023e-08, -0.0625001, 0.4375}, -- middle_tail
{-0.125, 0, -0.375, 0.125, 0.1875, -0.3125}, -- snout
}
}
})
mobs:register_mob("petz:piggy", {
type = "animal",
rotate= 180,
passive = true,
hp_min = 4,
hp_max = 8,
armor = 200,
collisionbox = {-0.25, -0.75, -0.25, 0.25, -0.25, 0.25},
--selectionbox = {-0.25, -0.75, -0.25, 0.25, -0.25, 0.25},
visual = "wielditem",
visual_size = {x = 0.85, y = 0.85},
textures = {"petz:piggy_block"},
makes_footstep_sound = false,
walk_velocity = 0.45,
run_velocity = 1.25,
runaway = true,
jump = true,
fear_height = 2,
drops = {
{name = "mobs:pork_raw",
chance = 1,
min = 1,
max = 2,},
},
drawtype = "front",
water_damage = 1,
lava_damage = 6,
light_damage = 0,
sounds = {
random = "petz_piggy",
},
follow = {"default:apple"},
view_range = 5,
})
-- raw porkchop
minetest.register_craftitem("petz:pork_raw", {
description = "Raw Porkchop",
inventory_image = "petz_pork_raw.png",
on_use = minetest.item_eat(4),
})
-- cooked porkchop
minetest.register_craftitem("petz:pork_cooked", {
description = "Cooked Porkchop",
inventory_image = "petz_pork_cooked.png",
on_use = minetest.item_eat(8),
})
minetest.register_craft({
type = "cooking",
output = "petz:pork_cooked",
recipe = "petz:pork_raw",
cooktime = 5,
})

120
puppy_mobs_redo.lua Normal file
View File

@ -0,0 +1,120 @@
--
--PUPPY
--
local S = ...
local pet_name= "puppy"
local scale_puppy = 1.5
local mesh = nil
local textures = {}
local collisionbox = {}
if petz.settings.type_model == "cubic" then
local node_name = "petz:"..pet_name.."_block"
fixed = {
{-0.125, -0.5, 0.0625, -0.0625, -0.375, 0.125}, -- back_right_leg
{-0.125, -0.5, -0.125, -0.0625, -0.375, -0.0625}, -- front_right_leg
{0, -0.5, -0.125, 0.0625, -0.375, -0.0625}, -- front_left_leg
{0, -0.5, 0.0625, 0.0625, -0.375, 0.125}, -- back_left_leg
{-0.125, -0.375, -0.125, 0.0625, -0.25, 0.125}, -- body
{-0.125, -0.375, -0.25, 0.0625, -0.1875, -0.0625001}, -- head
{-0.0625, -0.3125, 0.125, 1.11759e-08, -0.25, 0.25}, -- tail
{-0.125, -0.1875, -0.1875, -0.0625, -0.125, -0.125}, -- right_ear
{0, -0.1875, -0.1875, 0.0625, -0.125, -0.125}, -- left_ear
{-0.125, -0.375, -0.3125, 0.0625, -0.3125, -0.25}, -- snout
{-0.0625, -0.4375, -0.25, 3.72529e-09, -0.375, -0.1875}, -- tongue
}
tiles = {
"petz_puppy_top.png",
"petz_puppy_bottom.png",
"petz_puppy_right.png",
"petz_puppy_left.png",
"petz_puppy_back.png",
"petz_puppy_front.png"
}
petz.register_cubic(node_name, fixed, tiles)
textures= {"petz:puppy_block"}
collisionbox = {-0.35, -0.75*scale_puppy, -0.28, 0.35, -0.125, 0.28}
else
mesh = 'petz_puppy.b3d'
textures= {{"petz_puppy.png"}, {"petz_puppy2.png"}, {"petz_puppy3.png"}}
collisionbox = {-0.35, -0.75*scale_puppy, -0.28, 0.35, -0.3125, 0.28}
end
mobs:register_mob("petz:"..pet_name, {
type = "animal",
rotate = petz.settings.rotate,
damage = 8,
hp_min = 4,
hp_max = 8,
affinity = 100,
armor = 200,
visual = petz.settings.visual,
visual_size = {x=petz.settings.visual_size.x*scale_puppy, y=petz.settings.visual_size.y*scale_puppy},
mesh = mesh,
textures = textures,
collisionbox = collisionbox,
makes_footstep_sound = false,
walk_velocity = 0.75,
run_velocity = 1,
runaway = true,
pushable = true,
jump = true,
floats = true,
--fly = true,
--fly_in = "default:water_source",
follow = petz.settings.puppy_follow,
drops = {
{name = "mobs:meat_raw",
chance = 1,
min = 1,
max = 1,},
},
stay_near= {
nodes = "petz:pet_bowl",
chance = 1,
},
water_damage = 0,
lava_damage = 6,
light_damage = 0,
sounds = {
random = "petz_puppy_bark",
},
animation = {
speed_normal = 15, walk_start = 1, walk_end = 12,
speed_run = 25, run_start = 13, run_end = 25,
stand_start = 26, stand_end = 46,
stand2_start = 47, stand2_end = 59,
stand3_start = 60, stand3_end = 81,
stand4_start = 82, stand4_end = 94,
},
view_range = 4,
fear_height = 3,
do_punch = function (self, hitter, time_from_last_punch, tool_capabilities, direction)
petz.do_punch(self, hitter, time_from_last_punch, tool_capabilities, direction)
end,
on_die = function(self, pos)
petz.on_die(self, pos)
end,
on_rightclick = function(self, clicker)
petz.on_rightclick(self, clicker, pet_name)
end,
on_step = function(self, dtime)
petz.on_step(self, dtime)
end,
after_activate = function(self, staticdata, def, dtime)
self.init_timer = true
end,
do_custom = function(self, dtime)
if not self.custom_vars_set then
self.custom_vars_set = 0
self.affinity = 100
self.init_timer = true
self.fed= false
self.brushed = false
end
if petz.settings.tamagochi_mode == true and self.init_timer == true then
petz.timer(self, pet_name)
end
end,
})

BIN
schematics/kennel.mts Normal file

Binary file not shown.

28
settings.lua Normal file
View File

@ -0,0 +1,28 @@
local modpath, S = ...
local settings = Settings(modpath .. "/petz.conf")
petz.settings.type_model = settings:get("type_model", "mesh")
petz.settings.tamagochi_mode = settings:get_bool("tamagochi_mode", true)
petz.settings.tamagochi_check_time = tonumber(settings:get("tamagochi_check_time"))
petz.settings.tamagochi_hunger_damage = tonumber(settings:get("tamagochi_hunger_damage"))
petz.settings.tamagochi_safe_node = settings:get("tamagochi_safe_node", "")
petz.settings.type_api = settings:get("type_api", "mobs_redo")
petz.settings.kitty_spawn = settings:get_bool("kitty_spawn", true)
petz.settings.kitty_follow = settings:get("kitty_follow", "")
petz.settings.kitty_food = settings:get("kitty_food", "")
petz.settings.kitty_favorite_food = settings:get("kitty_favorite_food", "")
petz.settings.puppy_spawn = settings:get_bool("puppy_spawn", true)
petz.settings.puppy_follow = settings:get("puppy_follow", "")
petz.settings.puppy_food = settings:get("puppy_food", "")
petz.settings.puppy_favorite_food = settings:get("puppy_favorite_food", "")
if petz.settings.type_model == "mesh" then
petz.settings.visual = "mesh"
petz.settings.visual_size = {x=15.0, y=15.0}
petz.settings.rotate = 0
else -- is 'cubic'
petz.settings.visual = "wielditem"
petz.settings.visual_size = {x=1.0, y=1.0}
petz.settings.rotate = 180
end

25
sounds/LICENSE.MD Normal file
View File

@ -0,0 +1,25 @@
--------------------------------------------
file name: petz_kitty_meow.ogg
Author: Alexander
http://www.orangefreesounds.com/cat-meow-audio-clip/
License: "Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)"
--------------------------------------------
file name: petz_dog_bark.ogg
Author: Partners In Rhyme
https://www.freesoundeffects.com/free-track/dogbrk-89468/
License: Free
--------------------------------------------
file name: petz_brushing.ogg
Author: Zapsplat
https://www.zapsplat.com/music/person-brushing-hair/
License: https://www.zapsplat.com/license-type/standard-license/
--------------------------------------------
file name: petz_kitty_moaning.ogg
Author: Zapsplat
https://www.zapsplat.com/music/cat-moaning-meow-hungry/
License: https://www.zapsplat.com/license-type/standard-license/
--------------------------------------------
file name: petz_puppy_moaning.ogg
Author: Zapsplat
https://www.zapsplat.com/music/dog-barking-springer-spaniel-2/
License: https://www.zapsplat.com/license-type/standard-license/

BIN
sounds/petz_brushing.ogg Normal file

Binary file not shown.

BIN
sounds/petz_kitty_meow.ogg Normal file

Binary file not shown.

Binary file not shown.

BIN
sounds/petz_puppy_bark.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

BIN
textures/petz_calf2_top.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

BIN
textures/petz_calf_back.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

BIN
textures/petz_calf_left.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

BIN
textures/petz_calf_top.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

BIN
textures/petz_ducky.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

BIN
textures/petz_ducky2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

BIN
textures/petz_ducky_top.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

BIN
textures/petz_hairbrush.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
textures/petz_kennel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
textures/petz_kitty.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 B

BIN
textures/petz_kitty2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

BIN
textures/petz_kitty3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

BIN
textures/petz_kitty_top.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

BIN
textures/petz_lamb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Some files were not shown because too many files have changed in this diff Show More