426 lines
14 KiB
Lua
426 lines
14 KiB
Lua
minetest.register_item(":", { -- Hand
|
|
type = "none",
|
|
wield_image = "coke.png",
|
|
wield_scale = {x=.3,y=2,z=2.5},
|
|
range = 5,
|
|
tool_capabilities = {
|
|
max_drop_level = 0,
|
|
full_punch_interval = 0.4,
|
|
groupcaps = {
|
|
choppy = {times = {[1] = 2, [2] = 1.5, [3] = 1.3}, uses = 20, maxlevel = 1},
|
|
crumbly = {times = {[1] = 1.0, [2] = 0.9, [3] = 0.8}, uses = 20, maxlevel = 1},
|
|
cracky = {times = {[1] = 1.0, [2] = 0.7, [3] = 0.5}, uses = 20, maxlevel = 1},
|
|
flower = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
},
|
|
damage_groups = {fleshy = 1, snappy = 1, cracky=1},
|
|
}
|
|
})
|
|
|
|
local function explode(pos, radius)
|
|
local objects = minetest.get_objects_inside_radius(pos, radius)
|
|
for _, obj in pairs(objects) do
|
|
local obj_pos = obj:get_pos()
|
|
local dir = vector.normalize(vector.subtract(obj_pos, pos))
|
|
obj:set_velocity(vector.multiply(dir, 10))
|
|
obj:punch(obj, 1.0, {
|
|
full_punch_interval = 1.0,
|
|
damage_groups = {fleshy = 4},
|
|
})
|
|
end
|
|
|
|
for x = -radius, radius do
|
|
for y = -radius, radius do
|
|
for z = -radius, radius do
|
|
local p = {x = pos.x + x, y = pos.y + y, z = pos.z + z}
|
|
local d = vector.distance(pos, p)
|
|
if d <= radius then
|
|
minetest.remove_node(p)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
minetest.register_craftitem("amogus_items:amogus", {
|
|
description = "Mini Amogus friend",
|
|
inventory_image = "amogus_item.png",
|
|
|
|
--on_use = function(itemstack, user)
|
|
-- minetest.sound_play("amogus_sound", {
|
|
-- pos = user:get_pos(),
|
|
-- gain = 1.0,
|
|
-- max_hear_distance = 5
|
|
-- })
|
|
--end,
|
|
|
|
--on_place = function(itemstack, placer, pointed_thing)
|
|
-- local pos = pointed_thing.above
|
|
-- local dir = placer:get_look_dir()
|
|
-- local yaw = math.atan(dir.x/dir.z)
|
|
-- if dir.z > 0 then
|
|
-- yaw = yaw + math.pi
|
|
-- end
|
|
-- minetest.add_entity(pos, "amogus_entities:amogus", yaw)
|
|
--end
|
|
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
if pointed_thing.type == "node" then
|
|
local pos = pointed_thing.above
|
|
minetest.add_entity(pos, "amogus_entities:mini_crewmate")
|
|
--minetest.sound_play("amogus_sound", {
|
|
-- pos = pos,
|
|
-- gain = 1.0,
|
|
-- max_hear_distance = 5
|
|
--})
|
|
amogus_general.play_random_sound(
|
|
"amogus_sound",
|
|
pos,
|
|
1.0, -- gain
|
|
5, -- max_hear_distance
|
|
2.0 -- pitch
|
|
)
|
|
end
|
|
return itemstack
|
|
end
|
|
})
|
|
|
|
minetest.register_craftitem("amogus_items:sprite", {
|
|
description = "Sprite",
|
|
inventory_image = "sprite.png",
|
|
on_use = minetest.item_eat(10),
|
|
})
|
|
minetest.register_craftitem("amogus_items:coke", {
|
|
description = "Coke",
|
|
inventory_image = "coke.png",
|
|
on_use = minetest.item_eat(10),
|
|
})
|
|
minetest.register_craftitem("amogus_items:fanta", {
|
|
description = "Fanta",
|
|
inventory_image = "fanta.png",
|
|
on_use = minetest.item_eat(10),
|
|
})
|
|
minetest.register_craftitem("amogus_items:tomato", {
|
|
description = "Tomato",
|
|
inventory_image = "tomato.png",
|
|
on_use = minetest.item_eat(10),
|
|
})
|
|
minetest.register_craftitem("amogus_items:water", {
|
|
inventory_image = "water.png",
|
|
on_use = minetest.item_eat(10),
|
|
})
|
|
|
|
minetest.register_tool("amogus_items:lightsaber_blue", {
|
|
description = "Blue Lightsaber",
|
|
inventory_image = "lightsaber_blue.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.1,
|
|
max_drop_level=3,
|
|
groupcaps={
|
|
snappy={times={[1]=0.1, [2]=0.1, [3]=0.1}, uses=0, maxlevel=3},
|
|
},
|
|
damage_groups = {fleshy=10},
|
|
},
|
|
sound = {breaks = "amogus_sound"},
|
|
})
|
|
|
|
minetest.register_tool("amogus_items:lightsaber_red", {
|
|
description = "Red Lightsaber",
|
|
inventory_image = "lightsaber_red.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.1,
|
|
max_drop_level=3,
|
|
groupcaps={
|
|
snappy={times={[1]=0.1, [2]=0.1, [3]=0.1}, uses=0, maxlevel=3},
|
|
},
|
|
damage_groups = {fleshy=10},
|
|
},
|
|
|
|
sound = {breaks = "amogus_sound"},
|
|
})
|
|
|
|
minetest.register_tool("amogus_items:lightsaber_green", {
|
|
description = "Green Lightsaber",
|
|
inventory_image = "lightsaber_green.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.1,
|
|
max_drop_level=3,
|
|
groupcaps={
|
|
snappy={times={[1]=0.1, [2]=0.1, [3]=0.1}, uses=0, maxlevel=3},
|
|
},
|
|
damage_groups = {fleshy=10},
|
|
},
|
|
sound = {breaks = "amogus_sound"},
|
|
})
|
|
|
|
-- add theese items : goldenpickaxe, wooden plank, gold_ingot, sussium_ingot
|
|
minetest.register_craftitem("amogus_items:wooden_plank", {
|
|
description = "Wooden Plank",
|
|
inventory_image = "wood.png",
|
|
})
|
|
minetest.register_craftitem("amogus_items:gold_ingot", {
|
|
description = "Gold Ingot",
|
|
inventory_image = "gold_ingot.png",
|
|
})minetest.register_craftitem("amogus_items:rock", {
|
|
description = "Rock",
|
|
inventory_image = "rocks.png",
|
|
})
|
|
minetest.register_craftitem("amogus_items:sussium_ingot", {
|
|
description = "Sussium Ingot",
|
|
inventory_image = "sussium_ingot.png",
|
|
})
|
|
--add theese items goldenpickaxe, stonepickaxe and allow them slowly break nodes and destroy it after 30 uses
|
|
minetest.register_tool("amogus_items:goldenplumba", {
|
|
description = "Golden Plumba",
|
|
inventory_image = "goldenplumba.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.1,
|
|
max_drop_level = 3,
|
|
groupcaps = {
|
|
unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
},
|
|
damage_groups = {fleshy = 10},
|
|
},
|
|
on_use = function(itemstack, user, pointed_thing)
|
|
if pointed_thing.type == "node" then
|
|
minetest.node_dig(pointed_thing.under, minetest.get_node(pointed_thing.under), user)
|
|
end
|
|
itemstack:add_wear(65535/10)
|
|
return itemstack
|
|
end,
|
|
sound = {breaks = "default_tool_breaks"},
|
|
})
|
|
|
|
minetest.register_tool("amogus_items:susplumba", {
|
|
description = "Sus Plumba",
|
|
inventory_image = "plumba.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 0.1,
|
|
max_drop_level = 3,
|
|
groupcaps = {
|
|
unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 10, maxlevel=3},
|
|
},
|
|
damage_groups = {fleshy = 10},
|
|
},
|
|
on_use = function(itemstack, user, pointed_thing)
|
|
if pointed_thing.type == "node" then
|
|
minetest.node_dig(pointed_thing.under, minetest.get_node(pointed_thing.under), user)
|
|
end
|
|
itemstack:add_wear(65535/40)
|
|
return itemstack
|
|
end,
|
|
sound = {breaks = "default_tool_breaks"},
|
|
})
|
|
|
|
minetest.register_tool("amogus_items:stonepickaxe", {
|
|
description = "Stone Pickaxe",
|
|
inventory_image = "stone_pick.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=1,
|
|
groupcaps={
|
|
stone={times={[1]=2.5, [2]=1.0, [3]=0.50}, uses=30, maxlevel=1},
|
|
},
|
|
damage_groups = {fleshy=2},
|
|
},
|
|
sound = {breaks = "default_tool_breaks"},
|
|
})
|
|
minetest.register_tool("amogus_items:goldenpickaxe", {
|
|
description = "Golden Pickaxe",
|
|
inventory_image = "golden_pick.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=1,
|
|
groupcaps={
|
|
stone={times={[1]=1.3, [2]=0.60, [3]=0.40}, uses=30, maxlevel=1},
|
|
},
|
|
damage_groups = {fleshy=2},
|
|
},
|
|
sound = {breaks = "default_tool_breaks"},
|
|
})
|
|
minetest.register_tool("amogus_items:sussiumpickaxe", {
|
|
description = "Sussium Pickaxe",
|
|
inventory_image = "sussium_pickaxe.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=1,
|
|
groupcaps={
|
|
stone={times={[0.5]=2.0,[1]=0.85, [2]=0.40, [3]=0.20}, uses=30, maxlevel=1},
|
|
},
|
|
damage_groups = {fleshy=2},
|
|
},
|
|
sound = {breaks = "default_tool_breaks"},
|
|
})
|
|
minetest.register_tool("amogus_items:goldenaxe", {
|
|
description = "Golden Axe",
|
|
inventory_image = "goldenaxe.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=1,
|
|
groupcaps={
|
|
choppy={times={[1]=2.50, [2]=1.40, [3]=0.45}, uses=30, maxlevel=2},
|
|
},
|
|
damage_groups = {fleshy=4},
|
|
},
|
|
groups = {flammable = 2}
|
|
})
|
|
minetest.register_tool("amogus_items:stoneaxe", {
|
|
description = "Stone Axe",
|
|
inventory_image = "stone_axe.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=1,
|
|
groupcaps={
|
|
choppy={times={[1]=2.50, [2]=1.40, [3]=0.80}, uses=30, maxlevel=2},
|
|
},
|
|
damage_groups = {fleshy=4},
|
|
},
|
|
groups = {flammable = 2}
|
|
})
|
|
minetest.register_tool("amogus_items:sussiumaxe", {
|
|
description = "Sussium Axe",
|
|
inventory_image = "sussium_axe.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=1,
|
|
groupcaps={
|
|
choppy={times={[1]=0.90, [2]=0.80, [3]=0.35}, uses=30, maxlevel=2},
|
|
},
|
|
damage_groups = {fleshy=4},
|
|
},
|
|
|
|
groups = {flammable = 2}
|
|
})
|
|
|
|
minetest.register_tool("amogus_items:stoneshovel", {
|
|
description = "stone shovel",
|
|
inventory_image = "stone_shovel.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=1,
|
|
groupcaps={
|
|
crumbly={times={[1]=1.5, [2]=1.0, [3]=0.9}, uses=30, maxlevel=2},
|
|
},
|
|
damage_groups = {fleshy=4},
|
|
},
|
|
groups = {flammable = 2}
|
|
})
|
|
|
|
|
|
minetest.register_tool("amogus_items:goldenshovel", {
|
|
description = "golden shovel",
|
|
inventory_image = "golden_shovel.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=1,
|
|
groupcaps={
|
|
crumbly={times={[1]=1.0, [2]=0.8, [3]=0.6}, uses=30, maxlevel=2},
|
|
},
|
|
damage_groups = {fleshy=4},
|
|
},
|
|
groups = {flammable = 2}
|
|
})
|
|
minetest.register_tool("amogus_items:sussiumshovel", {
|
|
description = "sussium shovel",
|
|
inventory_image = "sussium_shovel.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=1,
|
|
groupcaps={
|
|
crumbly={times={[1]=0.8, [2]=0.6, [3]=0.35}, uses=30, maxlevel=2},
|
|
},
|
|
damage_groups = {fleshy=4},
|
|
},
|
|
groups = {flammable = 2}
|
|
})
|
|
|
|
minetest.register_tool("amogus_items:obsussian_hammer", {
|
|
description = "obsussian hammer",
|
|
inventory_image = "obsusian_hammer.png",
|
|
tool_capabilities = {
|
|
full_punch_interval = 1.0,
|
|
max_drop_level=1,
|
|
groupcaps={
|
|
choppy={times={[1]=0.90, [2]=0.40, [3]=0.06}, uses=30, maxlevel=2},
|
|
crumbly={times={[1]=0.90, [2]=0.40, [3]=0.06}, uses=30, maxlevel=2},
|
|
stone={times={[1]=0.90, [2]=0.40, [3]=0.06}, uses=30, maxlevel=1},
|
|
crumbly={times={[1]=0.90, [2]=0.40, [3]=0.06}, uses=30, maxlevel=2},
|
|
},
|
|
damage_groups = {fleshy=4},
|
|
},
|
|
|
|
groups = {flammable = 2}
|
|
})
|
|
|
|
minetest.register_craftitem("amogus_items:pcb", {
|
|
description = "PCB",
|
|
inventory_image = "PCB.png",
|
|
})
|
|
|
|
minetest.register_craftitem("amogus_items:capacitor", {
|
|
description = "Capacitor",
|
|
inventory_image = "capacitor.png",
|
|
})
|
|
|
|
minetest.register_craftitem("amogus_items:sugar", {
|
|
description = "Sugar",
|
|
inventory_image = "sugar.png",
|
|
})
|
|
|
|
minetest.register_craftitem("amogus_items:iron_ingot", {
|
|
description = "Iron Ingot",
|
|
inventory_image = "iron_ingot.png",
|
|
})
|
|
|
|
minetest.register_tool("amogus_items:dynamite", {
|
|
description = "dynamite",
|
|
inventory_image = "dynamite.png",
|
|
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
if pointed_thing.type == "node" then
|
|
local pos = pointed_thing.above
|
|
minetest.add_entity(pos, "amogus_items:dynamite_entity")
|
|
end
|
|
return itemstack
|
|
end
|
|
})
|
|
|
|
minetest.register_entity("amogus_items:dynamite_entity", {
|
|
physical = true,
|
|
collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5},
|
|
visual = "sprite",
|
|
textures = {"dynamite.png"},
|
|
on_step = function(self, dtime)
|
|
local pos = self.object:get_pos()
|
|
explode(pos,5)
|
|
minetest.add_particlespawner({
|
|
amount = 2900,
|
|
time = 0.5,
|
|
-- create 15 block radius of particles
|
|
minpos = {x=pos.x-5, y=pos.y-5, z=pos.z-5},
|
|
maxpos = {x=pos.x+5, y=pos.y+5, z=pos.z+5},
|
|
minvel = {x=-2, y=-2, z=-2},
|
|
maxvel = {x=2, y=2, z=2},
|
|
minacc = {x=0, y=-10, z=0},
|
|
maxacc = {x=0, y=-10, z=0},
|
|
minexptime = 1,
|
|
maxexptime = 3,
|
|
minsize = 1,
|
|
maxsize = 2,
|
|
texture = "plasma_effect.png",
|
|
})
|
|
self.object:remove()
|
|
end
|
|
})
|