mirror of
http://repo.or.cz/minetest_pyramids/tsm_pyramids.git
synced 2024-11-15 14:20:18 +01:00
Compare commits
No commits in common. "master" and "1.0.3" have entirely different histories.
22
.gitattributes
vendored
Normal file
22
.gitattributes
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
# Custom for Visual Studio
|
||||||
|
*.cs diff=csharp
|
||||||
|
*.sln merge=union
|
||||||
|
*.csproj merge=union
|
||||||
|
*.vbproj merge=union
|
||||||
|
*.fsproj merge=union
|
||||||
|
*.dbproj merge=union
|
||||||
|
|
||||||
|
# Standard to msysgit
|
||||||
|
*.doc diff=astextplain
|
||||||
|
*.DOC diff=astextplain
|
||||||
|
*.docx diff=astextplain
|
||||||
|
*.DOCX diff=astextplain
|
||||||
|
*.dot diff=astextplain
|
||||||
|
*.DOT diff=astextplain
|
||||||
|
*.pdf diff=astextplain
|
||||||
|
*.PDF diff=astextplain
|
||||||
|
*.rtf diff=astextplain
|
||||||
|
*.RTF diff=astextplain
|
215
.gitignore
vendored
Normal file
215
.gitignore
vendored
Normal file
|
@ -0,0 +1,215 @@
|
||||||
|
#################
|
||||||
|
## Eclipse
|
||||||
|
#################
|
||||||
|
|
||||||
|
*.pydevproject
|
||||||
|
.project
|
||||||
|
.metadata
|
||||||
|
bin/
|
||||||
|
tmp/
|
||||||
|
*.tmp
|
||||||
|
*.bak
|
||||||
|
*.swp
|
||||||
|
*~.nib
|
||||||
|
local.properties
|
||||||
|
.classpath
|
||||||
|
.settings/
|
||||||
|
.loadpath
|
||||||
|
|
||||||
|
# External tool builders
|
||||||
|
.externalToolBuilders/
|
||||||
|
|
||||||
|
# Locally stored "Eclipse launch configurations"
|
||||||
|
*.launch
|
||||||
|
|
||||||
|
# CDT-specific
|
||||||
|
.cproject
|
||||||
|
|
||||||
|
# PDT-specific
|
||||||
|
.buildpath
|
||||||
|
|
||||||
|
|
||||||
|
#################
|
||||||
|
## Visual Studio
|
||||||
|
#################
|
||||||
|
|
||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.sln.docstates
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
|
||||||
|
[Dd]ebug/
|
||||||
|
[Rr]elease/
|
||||||
|
x64/
|
||||||
|
build/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*.log
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.log
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
*.ncrunch*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.Publish.xml
|
||||||
|
*.pubxml
|
||||||
|
|
||||||
|
# NuGet Packages Directory
|
||||||
|
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
|
||||||
|
#packages/
|
||||||
|
|
||||||
|
# Windows Azure Build Output
|
||||||
|
csx
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Windows Store app package directory
|
||||||
|
AppPackages/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
sql/
|
||||||
|
*.Cache
|
||||||
|
ClientBin/
|
||||||
|
[Ss]tyle[Cc]op.*
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file to a newer
|
||||||
|
# Visual Studio version. Backup files are not needed, because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
App_Data/*.mdf
|
||||||
|
App_Data/*.ldf
|
||||||
|
|
||||||
|
#############
|
||||||
|
## Windows detritus
|
||||||
|
#############
|
||||||
|
|
||||||
|
# Windows image file caches
|
||||||
|
Thumbs.db
|
||||||
|
ehthumbs.db
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
Desktop.ini
|
||||||
|
|
||||||
|
# Recycle Bin used on file shares
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
# Mac crap
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
|
||||||
|
#############
|
||||||
|
## Python
|
||||||
|
#############
|
||||||
|
|
||||||
|
*.py[co]
|
||||||
|
|
||||||
|
# Packages
|
||||||
|
*.egg
|
||||||
|
*.egg-info
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
eggs/
|
||||||
|
parts/
|
||||||
|
var/
|
||||||
|
sdist/
|
||||||
|
develop-eggs/
|
||||||
|
.installed.cfg
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
.coverage
|
||||||
|
.tox
|
||||||
|
|
||||||
|
#Translations
|
||||||
|
*.mo
|
||||||
|
|
||||||
|
#Mr Developer
|
||||||
|
.mr.developer.cfg
|
2
.mailmap
2
.mailmap
|
@ -1,2 +0,0 @@
|
||||||
Wuzzy <Wuzzy@disroot.org> <Wuzzy2@mail.ru>
|
|
||||||
Wuzzy <Wuzzy@disroot.org> <almikes@aol.com>
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Pyramids (with Treasurer support) [`tsm_pyramids`]
|
# Pyramids (with Treasurer support) [`tsm_pyramids`]
|
||||||
|
|
||||||
* Version: 1.0.4
|
* Version: 1.0.3
|
||||||
|
|
||||||
## 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
|
||||||
|
|
|
@ -10,7 +10,7 @@ Mummy=
|
||||||
Mummy Spawn Egg=
|
Mummy Spawn Egg=
|
||||||
Mummy Spawner=
|
Mummy Spawner=
|
||||||
Sandstone with Eye Engraving=
|
Sandstone with Eye Engraving=
|
||||||
Sandstone with Human Engraving=
|
Sandstone with Man Engraving=
|
||||||
Sandstone with Sun Engraving=
|
Sandstone with Sun Engraving=
|
||||||
A mummy spawner causes hostile mummies to appear in its vicinity as long it exists.=
|
A mummy spawner causes hostile mummies to appear in its vicinity as long it exists.=
|
||||||
Can be used to create a hostile mummy.=
|
Can be used to create a hostile mummy.=
|
||||||
|
|
|
@ -10,7 +10,7 @@ Mummy=Mumie
|
||||||
Mummy Spawn Egg=Mumien-Spawn-Ei
|
Mummy Spawn Egg=Mumien-Spawn-Ei
|
||||||
Mummy Spawner=Mumien-Spawner
|
Mummy Spawner=Mumien-Spawner
|
||||||
Sandstone with Eye Engraving=Sandstein mit Augengravur
|
Sandstone with Eye Engraving=Sandstein mit Augengravur
|
||||||
Sandstone with Human Engraving=Sandstein mit Menschengravur
|
Sandstone with Man Engraving=Sandstein mit Manngravur
|
||||||
Sandstone with Sun Engraving=Sandstein mit Sonnengravur
|
Sandstone with Sun Engraving=Sandstein mit Sonnengravur
|
||||||
A mummy spawner causes hostile mummies to appear in its vicinity as long it exists.=Ein Mumien-Spawner lässt feindliche Mumien in seiner näheren Umgebung auftauchen, solange er existiert.
|
A mummy spawner causes hostile mummies to appear in its vicinity as long it exists.=Ein Mumien-Spawner lässt feindliche Mumien in seiner näheren Umgebung auftauchen, solange er existiert.
|
||||||
Can be used to create a hostile mummy.=Kann benutzt werden, um eine feindliche Mumie zu erzeugen (auch »spawnen« genannt).
|
Can be used to create a hostile mummy.=Kann benutzt werden, um eine feindliche Mumie zu erzeugen (auch »spawnen« genannt).
|
||||||
|
|
1
mod.conf
1
mod.conf
|
@ -2,4 +2,3 @@ name = tsm_pyramids
|
||||||
description = Pyramids with treasures! You can find them in deserts and sandstone deserts.
|
description = Pyramids with treasures! You can find them in deserts and sandstone deserts.
|
||||||
depends = default
|
depends = default
|
||||||
optional_depends = farming, tnt, treasurer, doc_items, awards, cmi
|
optional_depends = farming, tnt, treasurer, doc_items, awards, cmi
|
||||||
min_minetest_version = 5.0
|
|
||||||
|
|
91
mummy.lua
91
mummy.lua
|
@ -14,8 +14,6 @@ local mummy_texture = {"tsm_pyramids_mummy.png"}
|
||||||
local mummy_hp = 20
|
local mummy_hp = 20
|
||||||
local mummy_drop = "default:papyrus"
|
local mummy_drop = "default:papyrus"
|
||||||
|
|
||||||
local spawner_entity_offset = -0.28
|
|
||||||
|
|
||||||
local sound_normal = "mummy"
|
local sound_normal = "mummy"
|
||||||
local sound_hit = "mummy_hurt"
|
local sound_hit = "mummy_hurt"
|
||||||
local sound_dead = "mummy_death"
|
local sound_dead = "mummy_death"
|
||||||
|
@ -98,24 +96,6 @@ local MUMMY_DEF = {
|
||||||
description = S("Mummy"),
|
description = S("Mummy"),
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Returns true if a mummy spawner entity was found at pos.
|
|
||||||
-- If self is provided, this object does not count.
|
|
||||||
local function check_if_mummy_spawner_entity_exists(pos, self)
|
|
||||||
local ents = minetest.get_objects_inside_radius(pos, 0.5)
|
|
||||||
for e=1, #ents do
|
|
||||||
if (not self) or (ents[e] ~= ents[e]) then
|
|
||||||
local lua = ents[e]:get_luaentity()
|
|
||||||
if lua then
|
|
||||||
if lua.name == "tsm_pyramids:mummy_spawner" then
|
|
||||||
-- entity found
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local spawner_DEF = {
|
local spawner_DEF = {
|
||||||
hp_max = 1,
|
hp_max = 1,
|
||||||
physical = false,
|
physical = false,
|
||||||
|
@ -130,13 +110,6 @@ local spawner_DEF = {
|
||||||
}
|
}
|
||||||
|
|
||||||
spawner_DEF.on_activate = function(self)
|
spawner_DEF.on_activate = function(self)
|
||||||
local pos = self.object:get_pos()
|
|
||||||
local spos = vector.new(pos.x, pos.y + spawner_entity_offset, pos.z)
|
|
||||||
if check_if_mummy_spawner_entity_exists(spos, self) then
|
|
||||||
-- Remove possible duplicate entity
|
|
||||||
self.object:remove()
|
|
||||||
return
|
|
||||||
end
|
|
||||||
mummy_update_visuals_def(self)
|
mummy_update_visuals_def(self)
|
||||||
self.object:set_velocity({x=0, y=0, z=0})
|
self.object:set_velocity({x=0, y=0, z=0})
|
||||||
self.object:set_acceleration({x=0, y=0, z=0})
|
self.object:set_acceleration({x=0, y=0, z=0})
|
||||||
|
@ -144,18 +117,14 @@ spawner_DEF.on_activate = function(self)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Regularily check if entity is still inside spawner
|
|
||||||
spawner_DEF.on_step = function(self, dtime)
|
spawner_DEF.on_step = function(self, dtime)
|
||||||
self.timer = self.timer + dtime
|
self.timer = self.timer + 0.01
|
||||||
local pos = self.object:get_pos()
|
local n = minetest.get_node_or_nil(self.object:get_pos())
|
||||||
pos.y = pos.y - spawner_entity_offset
|
if self.timer > 1 then
|
||||||
local n = minetest.get_node_or_nil(pos)
|
|
||||||
if self.timer > 50 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
|
return
|
||||||
end
|
end
|
||||||
self.timer = 0
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -259,21 +228,20 @@ MUMMY_DEF.on_step = function(self, dtime)
|
||||||
self.envdmg_timer = self.envdmg_timer + dtime
|
self.envdmg_timer = self.envdmg_timer + dtime
|
||||||
if dmg > 0 then
|
if dmg > 0 then
|
||||||
if self.envdmg_timer >= 1 then
|
if self.envdmg_timer >= 1 then
|
||||||
local new_hp = self.object:get_hp() - dmg
|
self.envdmg_timer = 0
|
||||||
if new_hp <= 0 then
|
self.object:set_hp(self.object:get_hp()-dmg)
|
||||||
|
self.last_damage = {
|
||||||
|
type = "environment",
|
||||||
|
pos = current_pos,
|
||||||
|
node = current_node,
|
||||||
|
}
|
||||||
|
if self.object:get_hp() <= 0 then
|
||||||
if self.on_death then
|
if self.on_death then
|
||||||
self.on_death(self)
|
self.on_death(self)
|
||||||
end
|
end
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
self.envdmg_timer = 0
|
|
||||||
self.object:set_hp(new_hp)
|
|
||||||
self.last_damage = {
|
|
||||||
type = "environment",
|
|
||||||
pos = current_pos,
|
|
||||||
node = current_node,
|
|
||||||
}
|
|
||||||
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}, true)
|
minetest.sound_play(sound_hit, {pos = current_pos, max_hear_distance = 10, gain = 0.4}, true)
|
||||||
|
@ -438,20 +406,6 @@ else
|
||||||
spawnersounds = default.node_sound_stone_defaults()
|
spawnersounds = default.node_sound_stone_defaults()
|
||||||
end
|
end
|
||||||
|
|
||||||
local spawn_mummy_spawner_entity = function(pos)
|
|
||||||
local spos = vector.new(pos.x, pos.y+spawner_entity_offset, pos.z)
|
|
||||||
minetest.add_entity(spos, "tsm_pyramids:mummy_spawner")
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Respawn mummy spawner entity at pos if none exists
|
|
||||||
local respawn_mummy_spawner_entity = function(pos)
|
|
||||||
local spos = vector.new(pos.x, pos.y + spawner_entity_offset, pos.z)
|
|
||||||
if check_if_mummy_spawner_entity_exists(spos) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
spawn_mummy_spawner_entity(pos)
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_node("tsm_pyramids:spawner_mummy", {
|
minetest.register_node("tsm_pyramids:spawner_mummy", {
|
||||||
description = S("Mummy Spawner"),
|
description = S("Mummy Spawner"),
|
||||||
_doc_items_longdesc = S("A mummy spawner causes hostile mummies to appear in its vicinity as long it exists."),
|
_doc_items_longdesc = S("A mummy spawner causes hostile mummies to appear in its vicinity as long it exists."),
|
||||||
|
@ -462,15 +416,13 @@ minetest.register_node("tsm_pyramids:spawner_mummy", {
|
||||||
groups = {cracky=1,level=1},
|
groups = {cracky=1,level=1},
|
||||||
drop = "",
|
drop = "",
|
||||||
on_construct = function(pos)
|
on_construct = function(pos)
|
||||||
spawn_mummy_spawner_entity(pos)
|
pos.y = pos.y - 0.28
|
||||||
end,
|
minetest.add_entity(pos,"tsm_pyramids:mummy_spawner")
|
||||||
on_punch = function(pos)
|
|
||||||
respawn_mummy_spawner_entity(pos)
|
|
||||||
end,
|
end,
|
||||||
on_destruct = function(pos)
|
on_destruct = function(pos)
|
||||||
for _,obj in ipairs(minetest.get_objects_inside_radius(pos, 0.5)) do
|
for _,obj in ipairs(minetest.get_objects_inside_radius(pos, 1)) do
|
||||||
if obj ~= nil and not obj:is_player() then
|
if not obj:is_player() then
|
||||||
if obj:get_luaentity().name == "tsm_pyramids:mummy_spawner" then
|
if obj ~= nil and obj:get_luaentity().name == "tsm_pyramids:mummy_spawner" then
|
||||||
obj:remove()
|
obj:remove()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -479,17 +431,6 @@ minetest.register_node("tsm_pyramids:spawner_mummy", {
|
||||||
sounds = spawnersounds,
|
sounds = spawnersounds,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Neccessary in case the spawner entity got lost due to /clearobjects
|
|
||||||
minetest.register_lbm({
|
|
||||||
label = "Respawn mummy spawner entity",
|
|
||||||
name = "tsm_pyramids:respawn_mummy_spawner_entity",
|
|
||||||
nodenames = { "tsm_pyramids:spawner_mummy" },
|
|
||||||
run_at_every_load = true,
|
|
||||||
action = function(pos, node)
|
|
||||||
respawn_mummy_spawner_entity(pos)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Attempt to spawn a mummy at a random appropriate position around pos.
|
-- Attempt to spawn a mummy at a random appropriate position around pos.
|
||||||
-- Criteria:
|
-- Criteria:
|
||||||
-- * Must be close to pos
|
-- * Must be close to pos
|
||||||
|
|
|
@ -5,7 +5,7 @@ local img = {
|
||||||
"ankh", "scarab", "cactus"
|
"ankh", "scarab", "cactus"
|
||||||
}
|
}
|
||||||
local desc = {
|
local desc = {
|
||||||
S("Sandstone with Eye Engraving"), S("Sandstone with Human Engraving"), S("Sandstone with Sun Engraving"),
|
S("Sandstone with Eye Engraving"), S("Sandstone with Man Engraving"), S("Sandstone with Sun Engraving"),
|
||||||
S("Desert Sandstone with Ankh Engraving"), S("Desert Sandstone with Scarab Engraving"), S("Desert Sandstone with Cactus Engraving")
|
S("Desert Sandstone with Ankh Engraving"), S("Desert Sandstone with Scarab Engraving"), S("Desert Sandstone with Cactus Engraving")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user