1
0
mirror of https://codeberg.org/tenplus1/mobs_monster.git synced 2025-07-05 01:40:21 +02:00

Merge remote-tracking branch 'upstream/master'

This commit is contained in:
2024-09-15 09:26:52 +02:00
16 changed files with 364 additions and 402 deletions

View File

@ -1,6 +1,8 @@
-- Translation support
local S = minetest.get_translator("mobs_monster")
-- helper function
local get_velocity = function(self)
local v = self.object:get_velocity()
@ -11,6 +13,7 @@ local get_velocity = function(self)
return (v.x * v.x + v.z * v.z) ^ 0.5
end
-- custom spider types
local spider_types = {
@ -51,7 +54,6 @@ local spider_types = {
}
}
-- Spider by AspireMint (CC-BY-SA 3.0 license)
mobs:register_mob("mobs_monster:spider", {
@ -93,17 +95,13 @@ mobs:register_mob("mobs_monster:spider", {
water_damage = 5,
lava_damage = 5,
light_damage = 0,
node_damage = false, -- disable damage_per_second node damage
animation = {
speed_normal = 15,
speed_run = 20,
stand_start = 0,
stand_end = 0,
walk_start = 1,
walk_end = 21,
run_start = 1,
run_end = 21,
punch_start = 25,
punch_end = 45
speed_normal = 15, speed_run = 20,
stand_start = 0, stand_end = 0,
walk_start = 1, walk_end = 21,
run_start = 1, run_end = 21,
punch_start = 25, punch_end = 45
},
-- check surrounding nodes and spawn a specific spider
@ -122,9 +120,7 @@ mobs:register_mob("mobs_monster:spider", {
self.object:set_properties({textures = tmp.skins})
self.docile_by_day = tmp.docile
if tmp.drops then
self.drops = tmp.drops
end
if tmp.drops then self.drops = tmp.drops end
if tmp.shoot then
self.attack_type = "dogshoot"
@ -137,6 +133,7 @@ mobs:register_mob("mobs_monster:spider", {
end
if tmp.small then
self.object:set_properties({
collisionbox = {-0.2, -0.2, -0.2, 0.2, 0, 0.2},
visual_size = {x = 0.25, y = 0.25}
@ -155,9 +152,7 @@ mobs:register_mob("mobs_monster:spider", {
-- quarter second timer
self.spider_timer = (self.spider_timer or 0) + dtime
if self.spider_timer < 0.25 then
return
end
if self.spider_timer < 0.25 then return end
self.spider_timer = 0
-- need to be stopped to go onwards
@ -167,11 +162,7 @@ mobs:register_mob("mobs_monster:spider", {
end
local pos = self.object:get_pos()
local yaw = self.object:get_yaw()
-- sanity check
if not yaw then return end
local yaw = self.object:get_yaw() ; if not yaw then return end
local prop = self.object:get_properties()
pos.y = pos.y + prop.collisionbox[2] - 0.2
@ -227,6 +218,7 @@ mobs:register_mob("mobs_monster:spider", {
end
})
-- where to spawn
if not mobs.custom_spawn_monster then
@ -258,15 +250,17 @@ if not mobs.custom_spawn_monster then
})
end
-- spawn egg
mobs:register_egg("mobs_monster:spider", S("Spider"), "mobs_cobweb.png", 1)
-- compatibility with older mobs mod
mobs:alias_mob("mobs_monster:spider2", "mobs_monster:spider") -- compatibility
mobs:alias_mob("mobs_monster:spider2", "mobs_monster:spider")
mobs:alias_mob("mobs:spider", "mobs_monster:spider")
-- cobweb and recipe
-- cobweb
minetest.register_node(":mobs:cobweb", {
description = S("Cobweb"),
drawtype = "plantlike",
@ -283,8 +277,9 @@ minetest.register_node(":mobs:cobweb", {
liquid_range = 0,
walkable = false,
groups = {snappy = 1, disable_jump = 1},
is_ground_content = false,
drop = "farming:string",
sounds = default and default.node_sound_leaves_defaults()
sounds = mobs.node_sound_leaves_defaults()
})
minetest.register_craft({
@ -296,6 +291,8 @@ minetest.register_craft({
}
})
-- cobweb place function
local web_place = function(pos)
if minetest.find_node_near(pos, 1, {"ignore"}) then return end
@ -307,6 +304,8 @@ local web_place = function(pos)
end
end
-- cobweb arrow
mobs:register_arrow("mobs_monster:cobweb", {
visual = "sprite",
visual_size = {x = 1, y = 1},