8 Commits
1.0.0 ... 1.0.2

Author SHA1 Message Date
0abcd7960a Version 1.0.2 2020-04-06 14:59:36 +02:00
f5fef5118d Fix broken mummy hit texture 2020-04-06 14:59:11 +02:00
0974de93e4 Fix occassional crash when mummy dies 2020-04-06 14:41:48 +02:00
0629d3b6ed Version 1.0.1 2020-04-06 00:47:39 +02:00
5e9cd77fdc Use TRUE ephemeral sounds 2020-04-06 00:47:00 +02:00
1b3f948daa Use ephemeral sounds 2020-04-06 00:19:56 +02:00
63572c5c23 Fix crash 2019-10-01 13:06:20 +02:00
2538680eea Fix undeclared global warnings 2019-09-26 14:31:24 +02:00
4 changed files with 10 additions and 17 deletions

View File

@ -1,6 +1,6 @@
# Pyramids (with Treasurer support) [`tsm_pyramids`] # Pyramids (with Treasurer support) [`tsm_pyramids`]
* Version: 1.0.0 * Version: 1.0.2
## Description ## Description
This is a mod for Minetest Game which adds randomly spawned pyramids in deserts and This is a mod for Minetest Game which adds randomly spawned pyramids in deserts and

View File

@ -345,11 +345,6 @@ minetest.register_on_generated(function(minp, maxp, seed)
minetest.log("verbose", "[tsm_pyramids] Pyramid not placed, no suitable surface. minp="..minetest.pos_to_string(minp)) minetest.log("verbose", "[tsm_pyramids] Pyramid not placed, no suitable surface. minp="..minetest.pos_to_string(minp))
return return
end end
-- Select the material type by the most prominent node type
-- E.g. if desert sand is most prominent, we place a desert sandstone pyramid
if sand_cnt_max_id then
sand = sands[sand_cnt_max_id]
end
if p2.y < PYRA_MIN_Y then if p2.y < PYRA_MIN_Y then
minetest.log("info", "[tsm_pyramids] Pyramid not placed, too deep. p2="..minetest.pos_to_string(p2)) minetest.log("info", "[tsm_pyramids] Pyramid not placed, too deep. p2="..minetest.pos_to_string(p2))
return return

View File

@ -49,15 +49,11 @@ local ANIM_WALK_MINE = 5
local ANIM_MINE = 6 local ANIM_MINE = 6
local function hit(self) local function hit(self)
local prop = { self.object:set_texture_mod("^tsm_pyramids_hit.png")
mesh = mummy_mesh,
textures = {"tsm_pyramids_mummy.png^tsm_pyramids_hit.png"},
}
self.object:set_properties(prop)
minetest.after(0.4, function(self) minetest.after(0.4, function(self)
local prop = {textures = mummy_texture,} local prop = {textures = mummy_texture,}
if self ~= nil and self.object ~= nil then if self ~= nil and self.object ~= nil then
self.object:set_properties(prop) self.object:set_texture_mod("")
end end
end, self) end, self)
end end
@ -65,7 +61,6 @@ end
local function mummy_update_visuals_def(self) local function mummy_update_visuals_def(self)
npc_anim = 0 -- Animation will be set further below immediately npc_anim = 0 -- Animation will be set further below immediately
local prop = { local prop = {
mesh = mummy_mesh,
textures = mummy_texture, textures = mummy_texture,
} }
self.object:set_properties(prop) self.object:set_properties(prop)
@ -128,6 +123,7 @@ spawner_DEF.on_step = function(self, dtime)
if self.timer > 1 then if self.timer > 1 then
if n and n.name and n.name ~= "tsm_pyramids:spawner_mummy" then if n and n.name and n.name ~= "tsm_pyramids:spawner_mummy" then
self.object:remove() self.object:remove()
return
end end
end end
end end
@ -162,7 +158,7 @@ MUMMY_DEF.on_punch = function(self, puncher, time_from_last_punch, tool_capabili
} }
end end
if puncher ~= nil then if puncher ~= nil then
minetest.sound_play(sound_hit, {pos = self.object:get_pos(), loop = false, max_hear_distance = 10, gain = 0.4}) minetest.sound_play(sound_hit, {pos = self.object:get_pos(), loop = false, max_hear_distance = 10, gain = 0.4}, true)
if time_from_last_punch >= 0.45 then if time_from_last_punch >= 0.45 then
hit(self) hit(self)
self.direction = {x=self.object:get_velocity().x, y=self.object:get_velocity().y, z=self.object:get_velocity().z} self.direction = {x=self.object:get_velocity().x, y=self.object:get_velocity().y, z=self.object:get_velocity().z}
@ -178,7 +174,7 @@ MUMMY_DEF.on_punch = function(self, puncher, time_from_last_punch, tool_capabili
end end
MUMMY_DEF.on_death = function(self, killer) MUMMY_DEF.on_death = function(self, killer)
minetest.sound_play(sound_dead, {pos = self.object:get_pos(), max_hear_distance = 10 , gain = 0.3}) minetest.sound_play(sound_dead, {pos = self.object:get_pos(), max_hear_distance = 10 , gain = 0.3}, true)
-- Drop item on death -- Drop item on death
local count = math.random(0,3) local count = math.random(0,3)
if count > 0 then if count > 0 then
@ -244,10 +240,11 @@ MUMMY_DEF.on_step = function(self, dtime)
self.on_death(self) self.on_death(self)
end end
self.object:remove() self.object:remove()
return
else else
hit(self) hit(self)
self.sound_timer = 0 self.sound_timer = 0
minetest.sound_play(sound_hit, {pos = current_pos, max_hear_distance = 10, gain = 0.4}) minetest.sound_play(sound_hit, {pos = current_pos, max_hear_distance = 10, gain = 0.4}, true)
end end
end end
else else
@ -266,7 +263,7 @@ MUMMY_DEF.on_step = function(self, dtime)
--play sound --play sound
if self.sound_timer > math.random(5,35) then if self.sound_timer > math.random(5,35) then
minetest.sound_play(sound_normal, {pos = current_pos, max_hear_distance = 10, gain = 0.2}) minetest.sound_play(sound_normal, {pos = current_pos, max_hear_distance = 10, gain = 0.2}, true)
self.sound_timer = 0 self.sound_timer = 0
end end

View File

@ -1116,6 +1116,7 @@ function tsm_pyramids.make_traps(pos, stype, rotations, layout_room)
-- The depth of air between trap stones and lava layer is <depth> - 4 -- The depth of air between trap stones and lava layer is <depth> - 4
local deep_trap = math.random(1,2) == 1 local deep_trap = math.random(1,2) == 1
local trap_node local trap_node
local depth
if deep_trap then if deep_trap then
trap_node = " " trap_node = " "
depth = 14 depth = 14