split it into separate files
This commit is contained in:
88
scripts/weightedstoragecube.lua
Normal file
88
scripts/weightedstoragecube.lua
Normal file
@@ -0,0 +1,88 @@
|
||||
stone_sounds = {}
|
||||
stone_sounds.footstep = {name = "stone_walk", gain = 1.0}
|
||||
stone_sounds.dug = {name = "stone_break", gain = 1.0}
|
||||
stone_sounds.place = {name = "block_place", gain = 1.0}
|
||||
glass_sounds = {}
|
||||
glass_sounds.footstep = {name = "glass_walk", gain = 1.0}
|
||||
glass_sounds.dug = {name = "glass_break", gain = 1.0}
|
||||
glass_sounds.place = {name = "block_place", gain = 1.0}
|
||||
wood_sounds = {}
|
||||
wood_sounds.footstep = {name = "wood_walk", gain = 1.0}
|
||||
wood_sounds.dug = {name = "wood_break", gain = 1.0}
|
||||
wood_sounds.place = {name = "block_place", gain = 1.0}
|
||||
new = 0
|
||||
local ptgwsc = {
|
||||
{"weightedstoragecube.png", "portalgun_presplat.png", "(blue)"},
|
||||
{"weightedstoragecube2.png", "portalgun_presplat2.png", "(orange)"},
|
||||
{"weightedstoragecube3.png", "portalgun_presplat3.png", "(yellow)"},
|
||||
{"weightedstoragecube4.png", "portalgun_presplat4.png", "(green)"},
|
||||
{"weightedcompanioncube.png", "portalgun_presplat.png", "(blue companion)"},
|
||||
{"weightedcompanioncube2.png", "portalgun_presplat2.png", "(orange companion)"},
|
||||
{"weightedcompanioncube3.png", "portalgun_presplat3.png", "(yellow companion)"},
|
||||
{"weightedcompanioncube4.png", "portalgun_presplat4.png", "(green companion)"}
|
||||
}
|
||||
|
||||
for ii = 1, #ptgwsc, 1 do
|
||||
minetest.register_craftitem(
|
||||
"portalgun:wscube" .. ii,
|
||||
{
|
||||
description = "Weighted storage cube " .. ptgwsc[ii][3],
|
||||
inventory_image = minetest.inventorycube(ptgwsc[ii][1]),
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
if pointed_thing.type == "node" then
|
||||
new = 1
|
||||
local m = minetest.add_entity(pointed_thing.above, "portalgun:wsc" .. ii)
|
||||
m:set_acceleration({x = 0, y = -10, z = 0})
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
minetest.register_entity(
|
||||
"portalgun:wsc" .. ii,
|
||||
{
|
||||
hp_max = 100,
|
||||
physical = true,
|
||||
weight = 5,
|
||||
collisionbox = {-0.6, -0.6, -0.6, 0.6, 0.6, 0.6},
|
||||
visual = "cube",
|
||||
visual_size = {x = 1.1, y = 1.1},
|
||||
textures = {ptgwsc[ii][1], ptgwsc[ii][1], ptgwsc[ii][1], ptgwsc[ii][1], ptgwsc[ii][1], ptgwsc[ii][1]},
|
||||
initial_sprite_basepos = {x = 0, y = 0},
|
||||
is_visible = true,
|
||||
makes_footstep_sound = true,
|
||||
automatic_rotate = 0,
|
||||
portalgun = 2,
|
||||
wsc = ii,
|
||||
on_activate = function(self, staticdata)
|
||||
if new == 0 then
|
||||
self.object:remove()
|
||||
return self
|
||||
end
|
||||
new = 0
|
||||
end,
|
||||
on_step = function(self, dtime)
|
||||
self.timer = self.timer + dtime
|
||||
if self.timer < 1 then
|
||||
return self
|
||||
end
|
||||
self.timer = 0
|
||||
self.object:set_acceleration({x = 0, y = -10, z = 0})
|
||||
self.timer2 = self.timer2 + 1
|
||||
if self.timer2 > 4 then
|
||||
self.timer2 = 0
|
||||
for i, ob in pairs(minetest.get_objects_inside_radius(self.object:get_pos(), 20)) do
|
||||
if ob:is_player() then
|
||||
return true
|
||||
end
|
||||
end
|
||||
self.object:set_hp(0)
|
||||
end
|
||||
end,
|
||||
timer = 0,
|
||||
timer2 = 0
|
||||
}
|
||||
)
|
||||
end -- of for #
|
Reference in New Issue
Block a user