mirror of
https://github.com/MCLx86/xtreemtest.git
synced 2025-12-15 11:05:31 +01:00
Initial commit
This commit is contained in:
61
games/devtest/mods/testentities/armor.lua
Normal file
61
games/devtest/mods/testentities/armor.lua
Normal file
@@ -0,0 +1,61 @@
|
||||
-- Armorball: Test entity for testing armor groups
|
||||
-- Rightclick to change armor group
|
||||
|
||||
local phasearmor = {
|
||||
[0]={icy=100},
|
||||
[1]={fiery=100},
|
||||
[2]={icy=100, fiery=100},
|
||||
[3]={fleshy=-100},
|
||||
[4]={fleshy=1},
|
||||
[5]={fleshy=10},
|
||||
[6]={fleshy=50},
|
||||
[7]={fleshy=100},
|
||||
[8]={fleshy=200},
|
||||
[9]={fleshy=1000},
|
||||
[10]={fleshy=32767},
|
||||
[11]={immortal=1},
|
||||
[12]={punch_operable=1},
|
||||
}
|
||||
local max_phase = 12
|
||||
|
||||
minetest.register_entity("testentities:armorball", {
|
||||
initial_properties = {
|
||||
hp_max = 20,
|
||||
physical = false,
|
||||
collisionbox = {-0.4,-0.4,-0.4, 0.4,0.4,0.4},
|
||||
visual = "sprite",
|
||||
visual_size = {x=1, y=1},
|
||||
textures = {"testentities_armorball.png"},
|
||||
spritediv = {x=1, y=max_phase+1},
|
||||
initial_sprite_basepos = {x=0, y=0},
|
||||
},
|
||||
|
||||
_phase = 7,
|
||||
|
||||
on_activate = function(self, staticdata)
|
||||
minetest.log("action", "[testentities] armorball.on_activate")
|
||||
self.object:set_armor_groups(phasearmor[self._phase])
|
||||
self.object:set_sprite({x=0, y=self._phase})
|
||||
end,
|
||||
|
||||
on_rightclick = function(self, clicker)
|
||||
-- Change armor group and sprite
|
||||
self._phase = self._phase + 1
|
||||
if self._phase >= max_phase + 1 then
|
||||
self._phase = 0
|
||||
end
|
||||
self.object:set_sprite({x=0, y=self._phase})
|
||||
self.object:set_armor_groups(phasearmor[self._phase])
|
||||
end,
|
||||
|
||||
on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir, damage)
|
||||
if not puncher then
|
||||
return
|
||||
end
|
||||
local name = puncher:get_player_name()
|
||||
if not name then
|
||||
return
|
||||
end
|
||||
minetest.chat_send_player(name, "time_from_last_punch="..string.format("%.3f", time_from_last_punch).."; damage="..tostring(damage))
|
||||
end,
|
||||
})
|
||||
Reference in New Issue
Block a user