Regnum 3.4.0 upload

Game-5.4.x
Der1248 2020-02-07 17:53:16 +01:00
parent a16d4bc8cc
commit 11b035cf82
84 changed files with 15571 additions and 2519 deletions

Binary file not shown.

View File

@ -306,6 +306,10 @@ armor.set_player_armor = function(self, player)
if use_armor_monoid then if use_armor_monoid then
armor_monoid.monoid:add_change(player, change, "3d_armor:armor") armor_monoid.monoid:add_change(player, change, "3d_armor:armor")
else else
local immortal = player:get_armor_groups().immortal
if immortal and immortal ~= 0 then
groups.immortal = 1
end
player:set_armor_groups(groups) player:set_armor_groups(groups)
end end
if use_player_monoids then if use_player_monoids then

View File

@ -20,7 +20,7 @@ minetest.register_tool("3d_armor:helmet_admin2", {
description = "Admin Helmet Mode 2 (speed and no jump)", description = "Admin Helmet Mode 2 (speed and no jump)",
inventory_image = "3d_armor_inv_helmet_admin.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_helmet_admin.png^technic_tool_mode2.png",
wield_image = "3d_armor_inv_helmet_admin.png", wield_image = "3d_armor_inv_helmet_admin.png",
groups = {armor_head=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2}, groups = {armor_head=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -35,7 +35,7 @@ minetest.register_tool("3d_armor:helmet_admin3", {
description = "Admin Helmet Mode 3 (no speed and jump)", description = "Admin Helmet Mode 3 (no speed and jump)",
inventory_image = "3d_armor_inv_helmet_admin.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_helmet_admin.png^technic_tool_mode3.png",
wield_image = "3d_armor_inv_helmet_admin.png", wield_image = "3d_armor_inv_helmet_admin.png",
groups = {armor_head=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2}, groups = {armor_head=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -50,7 +50,7 @@ minetest.register_tool("3d_armor:helmet_admin4", {
description = "Admin Helmet Mode 4 (speed and jump)", description = "Admin Helmet Mode 4 (speed and jump)",
inventory_image = "3d_armor_inv_helmet_admin.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_helmet_admin.png^technic_tool_mode4.png",
wield_image = "3d_armor_inv_helmet_admin.png", wield_image = "3d_armor_inv_helmet_admin.png",
groups = {armor_head=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_head=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -80,7 +80,7 @@ minetest.register_tool("3d_armor:chestplate_admin2", {
description = "Admin Chestplate Mode 2 (speed and no jump)", description = "Admin Chestplate Mode 2 (speed and no jump)",
inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode2.png",
wield_image = "3d_armor_inv_chestplate_admin.png", wield_image = "3d_armor_inv_chestplate_admin.png",
groups = {armor_torso=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2}, groups = {armor_torso=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -94,7 +94,7 @@ minetest.register_tool("3d_armor:chestplate_admin3", {
description = "Admin Chestplate Mode 3 (no speed and jump)", description = "Admin Chestplate Mode 3 (no speed and jump)",
inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode3.png",
wield_image = "3d_armor_inv_chestplate_admin.png", wield_image = "3d_armor_inv_chestplate_admin.png",
groups = {armor_torso=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2}, groups = {armor_torso=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -108,7 +108,7 @@ minetest.register_tool("3d_armor:chestplate_admin4", {
description = "Admin Chestplate Mode 4 (speed and jump)", description = "Admin Chestplate Mode 4 (speed and jump)",
inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode4.png",
wield_image = "3d_armor_inv_chestplate_admin.png", wield_image = "3d_armor_inv_chestplate_admin.png",
groups = {armor_torso=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_torso=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -137,7 +137,7 @@ minetest.register_tool("3d_armor:leggings_admin2", {
description = "Admin Leggings Mode 2 (speed and no jump)", description = "Admin Leggings Mode 2 (speed and no jump)",
wield_image = "3d_armor_inv_leggings_admin.png", wield_image = "3d_armor_inv_leggings_admin.png",
inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode2.png",
groups = {armor_legs=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2}, groups = {armor_legs=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -152,7 +152,7 @@ minetest.register_tool("3d_armor:leggings_admin3", {
description = "Admin Leggings Mode 3 (no speed and jump)", description = "Admin Leggings Mode 3 (no speed and jump)",
wield_image = "3d_armor_inv_leggings_admin.png", wield_image = "3d_armor_inv_leggings_admin.png",
inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode3.png",
groups = {armor_legs=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2}, groups = {armor_legs=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -167,7 +167,7 @@ minetest.register_tool("3d_armor:leggings_admin4", {
description = "Admin Leggings Mode 4 (speed and jump)", description = "Admin Leggings Mode 4 (speed and jump)",
inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode4.png",
wield_image = "3d_armor_inv_leggings_admin.png", wield_image = "3d_armor_inv_leggings_admin.png",
groups = {armor_legs=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_legs=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -199,7 +199,7 @@ minetest.register_tool("3d_armor:boots_admin2", {
description = "Admin Boots Mode 2 (speed and no jump)", description = "Admin Boots Mode 2 (speed and no jump)",
inventory_image = "3d_armor_inv_boots_admin.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_boots_admin.png^technic_tool_mode2.png",
wield_image = "3d_armor_inv_boots_admin.png", wield_image = "3d_armor_inv_boots_admin.png",
groups = {armor_feet=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2}, groups = {armor_feet=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -214,7 +214,7 @@ minetest.register_tool("3d_armor:boots_admin3", {
description = "Admin Boots Mode 3 (no speed and jump)", description = "Admin Boots Mode 3 (no speed and jump)",
inventory_image = "3d_armor_inv_boots_admin.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_boots_admin.png^technic_tool_mode3.png",
wield_image = "3d_armor_inv_boots_admin.png", wield_image = "3d_armor_inv_boots_admin.png",
groups = {armor_feet=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2}, groups = {armor_feet=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -229,7 +229,7 @@ minetest.register_tool("3d_armor:boots_admin4", {
description = "Admin Boots Mode 4 (speed and jump)", description = "Admin Boots Mode 4 (speed and jump)",
inventory_image = "3d_armor_inv_boots_admin.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_boots_admin.png^technic_tool_mode4.png",
wield_image = "3d_armor_inv_boots_admin.png", wield_image = "3d_armor_inv_boots_admin.png",
groups = {armor_feet=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_feet=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()

View File

@ -1,50 +1,50 @@
minetest.register_tool("3d_armor:boots", { minetest.register_tool("3d_armor:boots", {
description = "Boots\nBoots-lv.0", description = "Boots\nBoots-lv.0",
inventory_image = "3d_armor_inv_boots.png", inventory_image = "3d_armor_inv_boots.png",
groups = {armor_feet=0.1, armor_heal=0, armor_use=0}, groups = {armor_feet=0.1, armor_heal=0, armor_use=0, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:chestplate", { minetest.register_tool("3d_armor:chestplate", {
description = "Chestplate\nChestplate-lv.0", description = "Chestplate\nChestplate-lv.0",
inventory_image = "3d_armor_inv_chestplate.png", inventory_image = "3d_armor_inv_chestplate.png",
groups = {armor_torso=0.1, armor_heal=0, armor_use=0}, groups = {armor_torso=0.1, armor_heal=0, armor_use=0, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:helmet", { minetest.register_tool("3d_armor:helmet", {
description = "Helmet\nHelmet-lv.0", description = "Helmet\nHelmet-lv.0",
inventory_image = "3d_armor_inv_helmet.png", inventory_image = "3d_armor_inv_helmet.png",
groups = {armor_head=0.1, armor_heal=0, armor_use=0}, groups = {armor_head=0.1, armor_heal=0, armor_use=0, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:leggings", { minetest.register_tool("3d_armor:leggings", {
description = "Leggings\nLeggings-lv.0", description = "Leggings\nLeggings-lv.0",
inventory_image = "3d_armor_inv_leggings.png", inventory_image = "3d_armor_inv_leggings.png",
groups = {armor_legs=0.1, armor_heal=0, armor_use=0}, groups = {armor_legs=0.1, armor_heal=0, armor_use=0, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
for i=1,20 do for i=1,20 do
minetest.register_tool("3d_armor:boots_mega"..i, { minetest.register_tool("3d_armor:boots_mega"..i, {
description = "Megaboots lv."..i.."\nBoots-lv."..i, description = "Megaboots lv."..i.."\nBoots-lv."..i,
inventory_image = "3d_armor_inv_boots_mega"..i..".png", inventory_image = "3d_armor_inv_boots_mega"..i..".png",
groups = {armor_feet=i*0.1, armor_heal=0, armor_use=0, armor_fire=0.005*i}, groups = {armor_feet=i*0.1, armor_heal=0, armor_use=0, armor_fire=0.005*i, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:chestplate_mega"..i, { minetest.register_tool("3d_armor:chestplate_mega"..i, {
description = "Megachestplate lv."..i.."\nChestplate-lv."..i, description = "Megachestplate lv."..i.."\nChestplate-lv."..i,
inventory_image = "3d_armor_inv_chestplate_mega"..i..".png", inventory_image = "3d_armor_inv_chestplate_mega"..i..".png",
groups = {armor_torso=i*0.1, armor_heal=0, armor_use=0, armor_fire=0.005*i}, groups = {armor_torso=i*0.1, armor_heal=0, armor_use=0, armor_fire=0.005*i, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:leggings_mega"..i, { minetest.register_tool("3d_armor:leggings_mega"..i, {
description = "Megaleggings lv."..i.."\nLeggings-lv."..i, description = "Megaleggings lv."..i.."\nLeggings-lv."..i,
inventory_image = "3d_armor_inv_leggings_mega"..i..".png", inventory_image = "3d_armor_inv_leggings_mega"..i..".png",
groups = {armor_legs=i*0.1, armor_heal=0, armor_use=0,armor_fire=0.005*i}, groups = {armor_legs=i*0.1, armor_heal=0, armor_use=0,armor_fire=0.005*i, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:helmet_mega"..i, { minetest.register_tool("3d_armor:helmet_mega"..i, {
description = "Megahelmet lv."..i.."\nHelmet-lv."..i, description = "Megahelmet lv."..i.."\nHelmet-lv."..i,
inventory_image = "3d_armor_inv_helmet_mega"..i..".png", inventory_image = "3d_armor_inv_helmet_mega"..i..".png",
groups = {armor_head=i*0.1, armor_heal=0, armor_use=0,armor_fire=0.005*i}, groups = {armor_head=i*0.1, armor_heal=0, armor_use=0,armor_fire=0.005*i, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -52,25 +52,25 @@ for i=1,25 do
minetest.register_tool("3d_armor:cloudboots_mega"..i, { minetest.register_tool("3d_armor:cloudboots_mega"..i, {
description = "Cloudboots lv."..i.."\nBoots-lv."..(i+20), description = "Cloudboots lv."..i.."\nBoots-lv."..(i+20),
inventory_image = "3d_armor_inv_cloudboots_mega"..i..".png", inventory_image = "3d_armor_inv_cloudboots_mega"..i..".png",
groups = {armor_feet=(20+i)*0.1, armor_heal=1, armor_use=0, armor_fire=0.005*(i+20)}, groups = {armor_feet=(20+i)*0.1, armor_heal=1, armor_use=0, armor_fire=0.005*(i+20), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:cloudchestplate_mega"..i, { minetest.register_tool("3d_armor:cloudchestplate_mega"..i, {
description = "Cloudchestplate lv."..i.."\nChestplate-lv."..(i+20), description = "Cloudchestplate lv."..i.."\nChestplate-lv."..(i+20),
inventory_image = "3d_armor_inv_cloudchestplate_mega"..i..".png", inventory_image = "3d_armor_inv_cloudchestplate_mega"..i..".png",
groups = {armor_torso=(20+i)*0.1, armor_heal=1, armor_use=0, armor_fire=0.005*(i+20)}, groups = {armor_torso=(20+i)*0.1, armor_heal=1, armor_use=0, armor_fire=0.005*(i+20), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:cloudleggings_mega"..i, { minetest.register_tool("3d_armor:cloudleggings_mega"..i, {
description = "Cloudleggings lv."..i.."\nLeggings-lv."..(i+20), description = "Cloudleggings lv."..i.."\nLeggings-lv."..(i+20),
inventory_image = "3d_armor_inv_cloudleggings_mega"..i..".png", inventory_image = "3d_armor_inv_cloudleggings_mega"..i..".png",
groups = {armor_legs=(20+i)*0.1, armor_heal=1, armor_use=0,armor_fire=0.005*(i+20)}, groups = {armor_legs=(20+i)*0.1, armor_heal=1, armor_use=0,armor_fire=0.005*(i+20), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:cloudhelmet_mega"..i, { minetest.register_tool("3d_armor:cloudhelmet_mega"..i, {
description = "Cloudhelmet lv."..i.."\nHelmet-lv."..(i+20), description = "Cloudhelmet lv."..i.."\nHelmet-lv."..(i+20),
inventory_image = "3d_armor_inv_cloudhelmet_mega"..i..".png", inventory_image = "3d_armor_inv_cloudhelmet_mega"..i..".png",
groups = {armor_head=(20+i)*0.1, armor_heal=1, armor_use=0,armor_fire=0.005*(i+20)}, groups = {armor_head=(20+i)*0.1, armor_heal=1, armor_use=0,armor_fire=0.005*(i+20), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -78,25 +78,25 @@ for i=1,4 do
minetest.register_tool("3d_armor:superboots"..i, { minetest.register_tool("3d_armor:superboots"..i, {
description = "Superboots lv."..i.."\nBoots-lv."..(i+45), description = "Superboots lv."..i.."\nBoots-lv."..(i+45),
inventory_image = "3d_armor_inv_superboots"..i..".png", inventory_image = "3d_armor_inv_superboots"..i..".png",
groups = {armor_feet=(45+i)*0.1, armor_heal=2, armor_use=0, armor_fire=0.005*(i+45)}, groups = {armor_feet=(45+i)*0.1, armor_heal=2, armor_use=0, armor_fire=0.005*(i+45), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:superchestplate"..i, { minetest.register_tool("3d_armor:superchestplate"..i, {
description = "Superchestplate lv."..i.."\nChestplate-lv."..(i+45), description = "Superchestplate lv."..i.."\nChestplate-lv."..(i+45),
inventory_image = "3d_armor_inv_superchestplate"..i..".png", inventory_image = "3d_armor_inv_superchestplate"..i..".png",
groups = {armor_torso=(45+i)*0.1, armor_heal=2, armor_use=0, armor_fire=0.005*(i+45)}, groups = {armor_torso=(45+i)*0.1, armor_heal=2, armor_use=0, armor_fire=0.005*(i+45), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:superleggings"..i, { minetest.register_tool("3d_armor:superleggings"..i, {
description = "Superleggings lv."..i.."\nLeggings-lv."..(i+45), description = "Superleggings lv."..i.."\nLeggings-lv."..(i+45),
inventory_image = "3d_armor_inv_superleggings"..i..".png", inventory_image = "3d_armor_inv_superleggings"..i..".png",
groups = {armor_legs=(45+i)*0.1, armor_heal=2, armor_use=0,armor_fire=0.005*(i+45)}, groups = {armor_legs=(45+i)*0.1, armor_heal=2, armor_use=0,armor_fire=0.005*(i+45), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:superhelmet"..i, { minetest.register_tool("3d_armor:superhelmet"..i, {
description = "Superhelmet lv."..i.."\nHelmet-lv."..(i+45), description = "Superhelmet lv."..i.."\nHelmet-lv."..(i+45),
inventory_image = "3d_armor_inv_superhelmet"..i..".png", inventory_image = "3d_armor_inv_superhelmet"..i..".png",
groups = {armor_head=(45+i)*0.1, armor_heal=2, armor_use=0,armor_fire=0.005*(i+45)}, groups = {armor_head=(45+i)*0.1, armor_heal=2, armor_use=0,armor_fire=0.005*(i+45), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -104,25 +104,25 @@ for i=1,2 do
minetest.register_tool("3d_armor:uraniumboots"..i, { minetest.register_tool("3d_armor:uraniumboots"..i, {
description = "Uraniumboots lv."..i.."\nBoots-lv."..(i+49), description = "Uraniumboots lv."..i.."\nBoots-lv."..(i+49),
inventory_image = "3d_armor_inv_uraniumboots"..i..".png", inventory_image = "3d_armor_inv_uraniumboots"..i..".png",
groups = {armor_feet=(49+i)*0.1, armor_heal=3, armor_use=0, armor_fire=0.005*(i+49)}, groups = {armor_feet=(49+i)*0.1, armor_heal=3, armor_use=0, armor_fire=0.005*(i+49), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:uraniumchestplate"..i, { minetest.register_tool("3d_armor:uraniumchestplate"..i, {
description = "Uraniumchestplate lv."..i.."\nChestplate-lv."..(i+49), description = "Uraniumchestplate lv."..i.."\nChestplate-lv."..(i+49),
inventory_image = "3d_armor_inv_uraniumchestplate"..i..".png", inventory_image = "3d_armor_inv_uraniumchestplate"..i..".png",
groups = {armor_torso=(49+i)*0.1, armor_heal=3, armor_use=0, armor_fire=0.005*(i+49)}, groups = {armor_torso=(49+i)*0.1, armor_heal=3, armor_use=0, armor_fire=0.005*(i+49), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:uraniumleggings"..i, { minetest.register_tool("3d_armor:uraniumleggings"..i, {
description = "Uraniumleggings lv."..i.."\nLeggings-lv."..(i+49), description = "Uraniumleggings lv."..i.."\nLeggings-lv."..(i+49),
inventory_image = "3d_armor_inv_uraniumleggings"..i..".png", inventory_image = "3d_armor_inv_uraniumleggings"..i..".png",
groups = {armor_legs=(49+i)*0.1, armor_heal=3, armor_use=0,armor_fire=0.005*(i+49)}, groups = {armor_legs=(49+i)*0.1, armor_heal=3, armor_use=0,armor_fire=0.005*(i+49), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:uraniumhelmet"..i, { minetest.register_tool("3d_armor:uraniumhelmet"..i, {
description = "Uraniumhelmet lv."..i.."\nHelmet-lv."..(i+49), description = "Uraniumhelmet lv."..i.."\nHelmet-lv."..(i+49),
inventory_image = "3d_armor_inv_uraniumhelmet"..i..".png", inventory_image = "3d_armor_inv_uraniumhelmet"..i..".png",
groups = {armor_head=(49+i)*0.1, armor_heal=3, armor_use=0,armor_fire=0.005*(i+49)}, groups = {armor_head=(49+i)*0.1, armor_heal=3, armor_use=0,armor_fire=0.005*(i+49), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -130,25 +130,25 @@ for i=1,12 do
minetest.register_tool("3d_armor:energyboots"..i, { minetest.register_tool("3d_armor:energyboots"..i, {
description = "Energyboots lv."..i.."\nBoots-lv."..(i+51), description = "Energyboots lv."..i.."\nBoots-lv."..(i+51),
inventory_image = "3d_armor_inv_energyboots"..i..".png", inventory_image = "3d_armor_inv_energyboots"..i..".png",
groups = {armor_feet=(51+i)*0.1, armor_heal=4, armor_use=0, armor_fire=0.005*(i+51)}, groups = {armor_feet=(51+i)*0.1, armor_heal=4, armor_use=0, armor_fire=0.005*(i+51), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:energychestplate"..i, { minetest.register_tool("3d_armor:energychestplate"..i, {
description = "Energychestplate lv."..i.."\nChestplate-lv."..(i+51), description = "Energychestplate lv."..i.."\nChestplate-lv."..(i+51),
inventory_image = "3d_armor_inv_energychestplate"..i..".png", inventory_image = "3d_armor_inv_energychestplate"..i..".png",
groups = {armor_torso=(51+i)*0.1, armor_heal=4, armor_use=0, armor_fire=0.005*(i+51)}, groups = {armor_torso=(51+i)*0.1, armor_heal=4, armor_use=0, armor_fire=0.005*(i+51), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:energyleggings"..i, { minetest.register_tool("3d_armor:energyleggings"..i, {
description = "Energyleggings lv."..i.."\nLeggings-lv."..(i+51), description = "Energyleggings lv."..i.."\nLeggings-lv."..(i+51),
inventory_image = "3d_armor_inv_energyleggings"..i..".png", inventory_image = "3d_armor_inv_energyleggings"..i..".png",
groups = {armor_legs=(51+i)*0.1, armor_heal=4, armor_use=0,armor_fire=0.005*(i+51)}, groups = {armor_legs=(51+i)*0.1, armor_heal=4, armor_use=0,armor_fire=0.005*(i+51), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:energyhelmet"..i, { minetest.register_tool("3d_armor:energyhelmet"..i, {
description = "Energyhelmet lv."..i.."\nHelmet-lv."..(i+51), description = "Energyhelmet lv."..i.."\nHelmet-lv."..(i+51),
inventory_image = "3d_armor_inv_energyhelmet"..i..".png", inventory_image = "3d_armor_inv_energyhelmet"..i..".png",
groups = {armor_head=(51+i)*0.1, armor_heal=4, armor_use=0,armor_fire=0.005*(i+51)}, groups = {armor_head=(51+i)*0.1, armor_heal=4, armor_use=0,armor_fire=0.005*(i+51), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -156,25 +156,25 @@ for i=1,7 do
minetest.register_tool("3d_armor:superenergyboots"..i, { minetest.register_tool("3d_armor:superenergyboots"..i, {
description = "Superenergyboots lv."..i.."\nBoots-lv."..(i+63), description = "Superenergyboots lv."..i.."\nBoots-lv."..(i+63),
inventory_image = "3d_armor_inv_superenergyboots"..i..".png", inventory_image = "3d_armor_inv_superenergyboots"..i..".png",
groups = {armor_feet=(63+i)*0.1, armor_heal=5, armor_use=0, armor_fire=0.005*(i+63)}, groups = {armor_feet=(63+i)*0.1, armor_heal=5, armor_use=0, armor_fire=0.005*(i+63), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:superenergychestplate"..i, { minetest.register_tool("3d_armor:superenergychestplate"..i, {
description = "Superenergychestplate lv."..i.."\nChestplate-lv."..(i+63), description = "Superenergychestplate lv."..i.."\nChestplate-lv."..(i+63),
inventory_image = "3d_armor_inv_superenergychestplate"..i..".png", inventory_image = "3d_armor_inv_superenergychestplate"..i..".png",
groups = {armor_torso=(63+i)*0.1, armor_heal=5, armor_use=0, armor_fire=0.005*(i+63)}, groups = {armor_torso=(63+i)*0.1, armor_heal=5, armor_use=0, armor_fire=0.005*(i+63), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:superenergyleggings"..i, { minetest.register_tool("3d_armor:superenergyleggings"..i, {
description = "Superenergyleggings lv."..i.."\nLeggings-lv."..(i+63), description = "Superenergyleggings lv."..i.."\nLeggings-lv."..(i+63),
inventory_image = "3d_armor_inv_superenergyleggings"..i..".png", inventory_image = "3d_armor_inv_superenergyleggings"..i..".png",
groups = {armor_legs=(63+i)*0.1, armor_heal=5, armor_use=0,armor_fire=0.005*(i+63)}, groups = {armor_legs=(63+i)*0.1, armor_heal=5, armor_use=0,armor_fire=0.005*(i+63), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:superenergyhelmet"..i, { minetest.register_tool("3d_armor:superenergyhelmet"..i, {
description = "Superenergyhelmet lv."..i.."\nHelmet-lv."..(i+63), description = "Superenergyhelmet lv."..i.."\nHelmet-lv."..(i+63),
inventory_image = "3d_armor_inv_superenergyhelmet"..i..".png", inventory_image = "3d_armor_inv_superenergyhelmet"..i..".png",
groups = {armor_head=(63+i)*0.1, armor_heal=5, armor_use=0,armor_fire=0.005*(i+63)}, groups = {armor_head=(63+i)*0.1, armor_heal=5, armor_use=0,armor_fire=0.005*(i+63), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -182,25 +182,25 @@ for i=1,5 do
minetest.register_tool("3d_armor:kristallboots"..i, { minetest.register_tool("3d_armor:kristallboots"..i, {
description = "Crystalboots lv."..i.."\nBoots-lv."..(i+70), description = "Crystalboots lv."..i.."\nBoots-lv."..(i+70),
inventory_image = "3d_armor_inv_kristallboots"..i..".png", inventory_image = "3d_armor_inv_kristallboots"..i..".png",
groups = {armor_feet=(70+i)*0.1, armor_heal=6, armor_use=0, armor_fire=0.005*(i+70)}, groups = {armor_feet=(70+i)*0.1, armor_heal=6, armor_use=0, armor_fire=0.005*(i+70), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:kristallchestplate"..i, { minetest.register_tool("3d_armor:kristallchestplate"..i, {
description = "Crystalchestplate lv."..i.."\nChestplate-lv."..(i+70), description = "Crystalchestplate lv."..i.."\nChestplate-lv."..(i+70),
inventory_image = "3d_armor_inv_kristallchestplate"..i..".png", inventory_image = "3d_armor_inv_kristallchestplate"..i..".png",
groups = {armor_torso=(70+i)*0.1, armor_heal=6, armor_use=0, armor_fire=0.005*(i+70)}, groups = {armor_torso=(70+i)*0.1, armor_heal=6, armor_use=0, armor_fire=0.005*(i+70), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:kristallleggings"..i, { minetest.register_tool("3d_armor:kristallleggings"..i, {
description = "Crystalleggings lv."..i.."\nLeggings-lv."..(i+70), description = "Crystalleggings lv."..i.."\nLeggings-lv."..(i+70),
inventory_image = "3d_armor_inv_kristallleggings"..i..".png", inventory_image = "3d_armor_inv_kristallleggings"..i..".png",
groups = {armor_legs=(70+i)*0.1, armor_heal=6, armor_use=0,armor_fire=0.005*(i+70)}, groups = {armor_legs=(70+i)*0.1, armor_heal=6, armor_use=0,armor_fire=0.005*(i+70), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:kristallhelmet"..i, { minetest.register_tool("3d_armor:kristallhelmet"..i, {
description = "Crystalhelmet lv."..i.."\nHelmet-lv."..(i+70), description = "Crystalhelmet lv."..i.."\nHelmet-lv."..(i+70),
inventory_image = "3d_armor_inv_kristallhelmet"..i..".png", inventory_image = "3d_armor_inv_kristallhelmet"..i..".png",
groups = {armor_head=(70+i)*0.1, armor_heal=6, armor_use=0,armor_fire=0.005*(i+70)}, groups = {armor_head=(70+i)*0.1, armor_heal=6, armor_use=0,armor_fire=0.005*(i+70), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -208,75 +208,75 @@ for i=1,25 do
minetest.register_tool("3d_armor:ultraboots"..i, { minetest.register_tool("3d_armor:ultraboots"..i, {
description = "Ultraboots lv."..i.."\nBoots-lv."..(i+75), description = "Ultraboots lv."..i.."\nBoots-lv."..(i+75),
inventory_image = "3d_armor_inv_ultraboots"..i..".png", inventory_image = "3d_armor_inv_ultraboots"..i..".png",
groups = {armor_feet=(75+i)*0.1, armor_heal=7, armor_use=0, armor_fire=0.005*(i+75)}, groups = {armor_feet=(75+i)*0.1, armor_heal=7, armor_use=0, armor_fire=0.005*(i+75), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:ultrachestplate"..i, { minetest.register_tool("3d_armor:ultrachestplate"..i, {
description = "Ultrachestplate lv."..i.."\nChestplate-lv."..(i+75), description = "Ultrachestplate lv."..i.."\nChestplate-lv."..(i+75),
inventory_image = "3d_armor_inv_ultrachestplate"..i..".png", inventory_image = "3d_armor_inv_ultrachestplate"..i..".png",
groups = {armor_torso=(75+i)*0.1, armor_heal=7, armor_use=0, armor_fire=0.005*(i+75)}, groups = {armor_torso=(75+i)*0.1, armor_heal=7, armor_use=0, armor_fire=0.005*(i+75), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:ultraleggings"..i, { minetest.register_tool("3d_armor:ultraleggings"..i, {
description = "Ultraleggings lv."..i.."\nLeggings-lv."..(i+75), description = "Ultraleggings lv."..i.."\nLeggings-lv."..(i+75),
inventory_image = "3d_armor_inv_ultraleggings"..i..".png", inventory_image = "3d_armor_inv_ultraleggings"..i..".png",
groups = {armor_legs=(75+i)*0.1, armor_heal=7, armor_use=0,armor_fire=0.005*(i+75)}, groups = {armor_legs=(75+i)*0.1, armor_heal=7, armor_use=0,armor_fire=0.005*(i+75), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:ultrahelmet"..i, { minetest.register_tool("3d_armor:ultrahelmet"..i, {
description = "Ultrahelmet lv."..i.."\nHelmet-lv."..(i+75), description = "Ultrahelmet lv."..i.."\nHelmet-lv."..(i+75),
inventory_image = "3d_armor_inv_ultrahelmet"..i..".png", inventory_image = "3d_armor_inv_ultrahelmet"..i..".png",
groups = {armor_head=(75+i)*0.1, armor_heal=7, armor_use=0,armor_fire=0.005*(i+75)}, groups = {armor_head=(75+i)*0.1, armor_heal=7, armor_use=0,armor_fire=0.005*(i+75), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
minetest.register_tool("3d_armor:superultraboots", { minetest.register_tool("3d_armor:superultraboots", {
description = "Superultraboots\nBoots-lv.101", description = "Superultraboots\nBoots-lv.101",
inventory_image = "3d_armor_inv_superultraboots.png", inventory_image = "3d_armor_inv_superultraboots.png",
groups = {armor_feet=10.1, armor_heal=8, armor_use=0,armor_fire=0.505}, groups = {armor_feet=10.1, armor_heal=8, armor_use=0,armor_fire=0.505, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:superultrachestplate", { minetest.register_tool("3d_armor:superultrachestplate", {
description = "Superultrachestplate\nChestplate-lv.101", description = "Superultrachestplate\nChestplate-lv.101",
inventory_image = "3d_armor_inv_superultrachestplate.png", inventory_image = "3d_armor_inv_superultrachestplate.png",
groups = {armor_torso=10.1, armor_heal=8, armor_use=0, armor_fire=0.505}, groups = {armor_torso=10.1, armor_heal=8, armor_use=0, armor_fire=0.505, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:superultrahelmet", { minetest.register_tool("3d_armor:superultrahelmet", {
description = "Superultrahelmet\nHelmet-lv.101", description = "Superultrahelmet\nHelmet-lv.101",
inventory_image = "3d_armor_inv_superultrahelmet.png", inventory_image = "3d_armor_inv_superultrahelmet.png",
groups = {armor_head=10.1, armor_heal=8, armor_use=0,armor_fire=0.505}, groups = {armor_head=10.1, armor_heal=8, armor_use=0,armor_fire=0.505, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:superultraleggings", { minetest.register_tool("3d_armor:superultraleggings", {
description = "Superultraleggings\nLeggings-lv.101", description = "Superultraleggings\nLeggings-lv.101",
inventory_image = "3d_armor_inv_superultraleggings.png", inventory_image = "3d_armor_inv_superultraleggings.png",
groups = {armor_legs=10.1, armor_heal=8, armor_use=0,armor_fire=0.505}, groups = {armor_legs=10.1, armor_heal=8, armor_use=0,armor_fire=0.505, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
for i=1,4 do for i=1,4 do
minetest.register_tool("3d_armor:arenaboots"..i, { minetest.register_tool("3d_armor:arenaboots"..i, {
description = "Arenaboots lv."..i.."\nBoots-lv."..(i+101), description = "Arenaboots lv."..i.."\nBoots-lv."..(i+101),
inventory_image = "3d_armor_inv_arenaboots"..i..".png", inventory_image = "3d_armor_inv_arenaboots"..i..".png",
groups = {armor_feet=(101+i)*0.1, armor_heal=9, armor_use=0, armor_fire=0.005*(i+101)}, groups = {armor_feet=(101+i)*0.1, armor_heal=9, armor_use=0, armor_fire=0.005*(i+101), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:arenachestplate"..i, { minetest.register_tool("3d_armor:arenachestplate"..i, {
description = "Arenachestplate lv."..i.."\nChestplate-lv."..(i+101), description = "Arenachestplate lv."..i.."\nChestplate-lv."..(i+101),
inventory_image = "3d_armor_inv_arenachestplate"..i..".png", inventory_image = "3d_armor_inv_arenachestplate"..i..".png",
groups = {armor_torso=(101+i)*0.1, armor_heal=9, armor_use=0, armor_fire=0.005*(i+101)}, groups = {armor_torso=(101+i)*0.1, armor_heal=9, armor_use=0, armor_fire=0.005*(i+101), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:arenaleggings"..i, { minetest.register_tool("3d_armor:arenaleggings"..i, {
description = "Arenaleggings lv."..i.."\nLeggings-lv."..(i+101), description = "Arenaleggings lv."..i.."\nLeggings-lv."..(i+101),
inventory_image = "3d_armor_inv_arenaleggings"..i..".png", inventory_image = "3d_armor_inv_arenaleggings"..i..".png",
groups = {armor_legs=(101+i)*0.1, armor_heal=9, armor_use=0,armor_fire=0.005*(i+101)}, groups = {armor_legs=(101+i)*0.1, armor_heal=9, armor_use=0,armor_fire=0.005*(i+101), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:arenahelmet"..i, { minetest.register_tool("3d_armor:arenahelmet"..i, {
description = "Arenahelmet lv."..i.."\nHelmet-lv."..(i+101), description = "Arenahelmet lv."..i.."\nHelmet-lv."..(i+101),
inventory_image = "3d_armor_inv_arenahelmet"..i..".png", inventory_image = "3d_armor_inv_arenahelmet"..i..".png",
groups = {armor_head=(101+i)*0.1, armor_heal=9, armor_use=0,armor_fire=0.005*(i+101)}, groups = {armor_head=(101+i)*0.1, armor_heal=9, armor_use=0,armor_fire=0.005*(i+101), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -284,25 +284,25 @@ for i=1,10 do
minetest.register_tool("3d_armor:titanboots"..i, { minetest.register_tool("3d_armor:titanboots"..i, {
description = "Titanboots lv."..i.."\nBoots-lv."..(i+105), description = "Titanboots lv."..i.."\nBoots-lv."..(i+105),
inventory_image = "3d_armor_inv_titanboots"..i..".png", inventory_image = "3d_armor_inv_titanboots"..i..".png",
groups = {armor_feet=(105+i)*0.1, armor_heal=10, armor_use=0, armor_fire=0.005*(i+105)}, groups = {armor_feet=(105+i)*0.1, armor_heal=10, armor_use=0, armor_fire=0.005*(i+105), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:titanchestplate"..i, { minetest.register_tool("3d_armor:titanchestplate"..i, {
description = "Titanchestplate lv."..i.."\nChestplate-lv."..(i+105), description = "Titanchestplate lv."..i.."\nChestplate-lv."..(i+105),
inventory_image = "3d_armor_inv_titanchestplate"..i..".png", inventory_image = "3d_armor_inv_titanchestplate"..i..".png",
groups = {armor_torso=(105+i)*0.1, armor_heal=10, armor_use=0, armor_fire=0.005*(i+105)}, groups = {armor_torso=(105+i)*0.1, armor_heal=10, armor_use=0, armor_fire=0.005*(i+105), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:titanleggings"..i, { minetest.register_tool("3d_armor:titanleggings"..i, {
description = "Titanleggings lv."..i.."\nLeggings-lv."..(i+105), description = "Titanleggings lv."..i.."\nLeggings-lv."..(i+105),
inventory_image = "3d_armor_inv_titanleggings"..i..".png", inventory_image = "3d_armor_inv_titanleggings"..i..".png",
groups = {armor_legs=(105+i)*0.1, armor_heal=10, armor_use=0,armor_fire=0.005*(i+105)}, groups = {armor_legs=(105+i)*0.1, armor_heal=10, armor_use=0,armor_fire=0.005*(i+105), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:titanhelmet"..i, { minetest.register_tool("3d_armor:titanhelmet"..i, {
description = "Titanhelmet lv."..i.."\nHelmet-lv."..(i+105), description = "Titanhelmet lv."..i.."\nHelmet-lv."..(i+105),
inventory_image = "3d_armor_inv_titanhelmet"..i..".png", inventory_image = "3d_armor_inv_titanhelmet"..i..".png",
groups = {armor_head=(105+i)*0.1, armor_heal=10, armor_use=0,armor_fire=0.005*(i+105)}, groups = {armor_head=(105+i)*0.1, armor_heal=10, armor_use=0,armor_fire=0.005*(i+105), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -310,25 +310,25 @@ for i=1,6 do
minetest.register_tool("3d_armor:legendenboots"..i, { minetest.register_tool("3d_armor:legendenboots"..i, {
description = "Legendboots lv."..i.."\nBoots-lv."..(i+115), description = "Legendboots lv."..i.."\nBoots-lv."..(i+115),
inventory_image = "3d_armor_inv_legendenboots"..i..".png", inventory_image = "3d_armor_inv_legendenboots"..i..".png",
groups = {armor_feet=(115+i)*0.1, armor_heal=11, armor_use=0, armor_fire=0.005*(i+115)}, groups = {armor_feet=(115+i)*0.1, armor_heal=11, armor_use=0, armor_fire=0.005*(i+115), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:legendenchestplate"..i, { minetest.register_tool("3d_armor:legendenchestplate"..i, {
description = "Legendchestplate lv."..i.."\nChestplate-lv."..(i+115), description = "Legendchestplate lv."..i.."\nChestplate-lv."..(i+115),
inventory_image = "3d_armor_inv_legendenchestplate"..i..".png", inventory_image = "3d_armor_inv_legendenchestplate"..i..".png",
groups = {armor_torso=(115+i)*0.1, armor_heal=11, armor_use=0, armor_fire=0.005*(i+115)}, groups = {armor_torso=(115+i)*0.1, armor_heal=11, armor_use=0, armor_fire=0.005*(i+115), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:legendenleggings"..i, { minetest.register_tool("3d_armor:legendenleggings"..i, {
description = "Legendleggings lv."..i.."\nLeggings-lv."..(i+115), description = "Legendleggings lv."..i.."\nLeggings-lv."..(i+115),
inventory_image = "3d_armor_inv_legendenleggings"..i..".png", inventory_image = "3d_armor_inv_legendenleggings"..i..".png",
groups = {armor_legs=(115+i)*0.1, armor_heal=11, armor_use=0,armor_fire=0.005*(i+115)}, groups = {armor_legs=(115+i)*0.1, armor_heal=11, armor_use=0,armor_fire=0.005*(i+115), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
minetest.register_tool("3d_armor:legendenhelmet"..i, { minetest.register_tool("3d_armor:legendenhelmet"..i, {
description = "Legendhelmet lv."..i.."\nHelmet-lv."..(i+115), description = "Legendhelmet lv."..i.."\nHelmet-lv."..(i+115),
inventory_image = "3d_armor_inv_legendenhelmet"..i..".png", inventory_image = "3d_armor_inv_legendenhelmet"..i..".png",
groups = {armor_head=(115+i)*0.1, armor_heal=11, armor_use=0,armor_fire=0.005*(i+115)}, groups = {armor_head=(115+i)*0.1, armor_heal=11, armor_use=0,armor_fire=0.005*(i+115), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -339,7 +339,7 @@ end
minetest.register_tool("3d_armor:superlegendenboots", { minetest.register_tool("3d_armor:superlegendenboots", {
description = "Superlegendboots Mode 1 (no speed and no jump)\nBoots-lv.122", description = "Superlegendboots Mode 1 (no speed and no jump)\nBoots-lv.122",
inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode1.png", inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode1.png",
groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2}, groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenboots.png", wield_image = "3d_armor_inv_superlegendenboots.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -353,7 +353,7 @@ minetest.register_tool("3d_armor:superlegendenboots", {
minetest.register_tool("3d_armor:superlegendenboots2", { minetest.register_tool("3d_armor:superlegendenboots2", {
description = "Superlegendboots Mode 2 (speed and no jump)\nBoots-lv.122", description = "Superlegendboots Mode 2 (speed and no jump)\nBoots-lv.122",
inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode2.png",
groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2}, groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenboots.png", wield_image = "3d_armor_inv_superlegendenboots.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -367,7 +367,7 @@ minetest.register_tool("3d_armor:superlegendenboots2", {
minetest.register_tool("3d_armor:superlegendenboots3", { minetest.register_tool("3d_armor:superlegendenboots3", {
description = "Superlegendboots Mode 3 (no speed and jump)\nBoots-lv.122", description = "Superlegendboots Mode 3 (no speed and jump)\nBoots-lv.122",
inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode3.png",
groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2}, groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenboots.png", wield_image = "3d_armor_inv_superlegendenboots.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -381,7 +381,7 @@ minetest.register_tool("3d_armor:superlegendenboots3", {
minetest.register_tool("3d_armor:superlegendenboots4", { minetest.register_tool("3d_armor:superlegendenboots4", {
description = "Superlegendboots Mode 4 (speed and jump)\nBoots-lv.122", description = "Superlegendboots Mode 4 (speed and jump)\nBoots-lv.122",
inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode4.png",
groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_feet=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenboots.png", wield_image = "3d_armor_inv_superlegendenboots.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -396,7 +396,7 @@ minetest.register_tool("3d_armor:superlegendenboots4", {
minetest.register_tool("3d_armor:superlegendenchestplate", { minetest.register_tool("3d_armor:superlegendenchestplate", {
description = "Superlegendchestplate Mode 1 (no speed and no jump)\nChestplate-lv.122", description = "Superlegendchestplate Mode 1 (no speed and no jump)\nChestplate-lv.122",
inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode1.png", inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode1.png",
groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, armor_water=0.2}, groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenchestplate.png", wield_image = "3d_armor_inv_superlegendenchestplate.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -410,7 +410,7 @@ minetest.register_tool("3d_armor:superlegendenchestplate", {
minetest.register_tool("3d_armor:superlegendenchestplate2", { minetest.register_tool("3d_armor:superlegendenchestplate2", {
description = "Superlegendchestplate Mode 2 (speed and no jump)\nChestplate-lv.122", description = "Superlegendchestplate Mode 2 (speed and no jump)\nChestplate-lv.122",
inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode2.png",
groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, physics_speed=0.25, armor_water=0.2}, groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenchestplate.png", wield_image = "3d_armor_inv_superlegendenchestplate.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -424,7 +424,7 @@ minetest.register_tool("3d_armor:superlegendenchestplate2", {
minetest.register_tool("3d_armor:superlegendenchestplate3", { minetest.register_tool("3d_armor:superlegendenchestplate3", {
description = "Superlegendchestplate Mode 3 (no speed and jump)\nChestplate-lv.122", description = "Superlegendchestplate Mode 3 (no speed and jump)\nChestplate-lv.122",
inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode3.png",
groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, physics_jump=0.25, armor_water=0.2}, groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenchestplate.png", wield_image = "3d_armor_inv_superlegendenchestplate.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -438,7 +438,7 @@ minetest.register_tool("3d_armor:superlegendenchestplate3", {
minetest.register_tool("3d_armor:superlegendenchestplate4", { minetest.register_tool("3d_armor:superlegendenchestplate4", {
description = "Superlegendchestplate Mode 4 (speed and jump)\nChestplate-lv.122", description = "Superlegendchestplate Mode 4 (speed and jump)\nChestplate-lv.122",
inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode4.png",
groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_torso=12.2, armor_heal=12, armor_use=0, armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenchestplate.png", wield_image = "3d_armor_inv_superlegendenchestplate.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -453,7 +453,7 @@ minetest.register_tool("3d_armor:superlegendenchestplate4", {
minetest.register_tool("3d_armor:superlegendenhelmet", { minetest.register_tool("3d_armor:superlegendenhelmet", {
description = "Superlegendhelmet Mode 1 (no speed and no jump)\nHelmet-lv.122", description = "Superlegendhelmet Mode 1 (no speed and no jump)\nHelmet-lv.122",
inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode1.png", inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode1.png",
groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2}, groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenhelmet.png", wield_image = "3d_armor_inv_superlegendenhelmet.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -467,7 +467,7 @@ minetest.register_tool("3d_armor:superlegendenhelmet", {
minetest.register_tool("3d_armor:superlegendenhelmet2", { minetest.register_tool("3d_armor:superlegendenhelmet2", {
description = "Superlegendhelmet Mode 2 (speed and no jump)\nHelmet-lv.122", description = "Superlegendhelmet Mode 2 (speed and no jump)\nHelmet-lv.122",
inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode2.png",
groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2}, groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenhelmet.png", wield_image = "3d_armor_inv_superlegendenhelmet.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -481,7 +481,7 @@ minetest.register_tool("3d_armor:superlegendenhelmet2", {
minetest.register_tool("3d_armor:superlegendenhelmet3", { minetest.register_tool("3d_armor:superlegendenhelmet3", {
description = "Superlegendhelmet Mode 3 (no speed and jump)\nHelmet-lv.122", description = "Superlegendhelmet Mode 3 (no speed and jump)\nHelmet-lv.122",
inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode3.png",
groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2}, groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenhelmet.png", wield_image = "3d_armor_inv_superlegendenhelmet.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -495,7 +495,7 @@ minetest.register_tool("3d_armor:superlegendenhelmet3", {
minetest.register_tool("3d_armor:superlegendenhelmet4", { minetest.register_tool("3d_armor:superlegendenhelmet4", {
description = "Superlegendhelmet Mode 4 (speed and jump)\nHelmet-lv.122", description = "Superlegendhelmet Mode 4 (speed and jump)\nHelmet-lv.122",
inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode4.png",
groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_head=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenhelmet.png", wield_image = "3d_armor_inv_superlegendenhelmet.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -510,7 +510,7 @@ minetest.register_tool("3d_armor:superlegendenhelmet4", {
minetest.register_tool("3d_armor:superlegendenleggings", { minetest.register_tool("3d_armor:superlegendenleggings", {
description = "Superlegendleggings Mode 1 (no speed and no jump)\nLeggings-lv.122", description = "Superlegendleggings Mode 1 (no speed and no jump)\nLeggings-lv.122",
inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode1.png", inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode1.png",
groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2}, groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenleggings.png", wield_image = "3d_armor_inv_superlegendenleggings.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -524,7 +524,7 @@ minetest.register_tool("3d_armor:superlegendenleggings", {
minetest.register_tool("3d_armor:superlegendenleggings2", { minetest.register_tool("3d_armor:superlegendenleggings2", {
description = "Superlegendleggings Mode 2 (speed and no jump)\nLeggings-lv.122", description = "Superlegendleggings Mode 2 (speed and no jump)\nLeggings-lv.122",
inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode2.png",
groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2}, groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenleggings.png", wield_image = "3d_armor_inv_superlegendenleggings.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -538,7 +538,7 @@ minetest.register_tool("3d_armor:superlegendenleggings2", {
minetest.register_tool("3d_armor:superlegendenleggings3", { minetest.register_tool("3d_armor:superlegendenleggings3", {
description = "Superlegendleggings Mode 3 (no speed and jump)\nLeggings-lv.122", description = "Superlegendleggings Mode 3 (no speed and jump)\nLeggings-lv.122",
inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode3.png",
groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2}, groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenleggings.png", wield_image = "3d_armor_inv_superlegendenleggings.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -552,7 +552,7 @@ minetest.register_tool("3d_armor:superlegendenleggings3", {
minetest.register_tool("3d_armor:superlegendenleggings4", { minetest.register_tool("3d_armor:superlegendenleggings4", {
description = "Superlegendleggings Mode 4 (speed and jump)\nLeggings-lv.122", description = "Superlegendleggings Mode 4 (speed and jump)\nLeggings-lv.122",
inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode4.png",
groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_legs=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_superlegendenleggings.png", wield_image = "3d_armor_inv_superlegendenleggings.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -582,7 +582,7 @@ minetest.register_tool("3d_armor:regnumboots", {
minetest.register_tool("3d_armor:regnumboots2", { minetest.register_tool("3d_armor:regnumboots2", {
description = "Regnumboots Mode 2 (speed and no jump)\nBoots-lv.MAX", description = "Regnumboots Mode 2 (speed and no jump)\nBoots-lv.MAX",
inventory_image = "3d_armor_inv_regnumboots.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_regnumboots.png^technic_tool_mode2.png",
groups = {armor_feet=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2}, groups = {armor_feet=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumboots.png", wield_image = "3d_armor_inv_regnumboots.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -596,7 +596,7 @@ minetest.register_tool("3d_armor:regnumboots2", {
minetest.register_tool("3d_armor:regnumboots3", { minetest.register_tool("3d_armor:regnumboots3", {
description = "Regnumboots Mode 3 (no speed and jump)\nBoots-lv.MAX", description = "Regnumboots Mode 3 (no speed and jump)\nBoots-lv.MAX",
inventory_image = "3d_armor_inv_regnumboots.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_regnumboots.png^technic_tool_mode3.png",
groups = {armor_feet=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2}, groups = {armor_feet=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumboots.png", wield_image = "3d_armor_inv_regnumboots.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -610,7 +610,7 @@ minetest.register_tool("3d_armor:regnumboots3", {
minetest.register_tool("3d_armor:regnumboots4", { minetest.register_tool("3d_armor:regnumboots4", {
description = "Regnumboots Mode 4 (speed and jump)\nBoots-lv.MAX", description = "Regnumboots Mode 4 (speed and jump)\nBoots-lv.MAX",
inventory_image = "3d_armor_inv_regnumboots.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_regnumboots.png^technic_tool_mode4.png",
groups = {armor_feet=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_feet=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumboots.png", wield_image = "3d_armor_inv_regnumboots.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -639,7 +639,7 @@ minetest.register_tool("3d_armor:regnumchestplate", {
minetest.register_tool("3d_armor:regnumchestplate2", { minetest.register_tool("3d_armor:regnumchestplate2", {
description = "Regnumchestplate Mode 2 (speed and no jump)\nChestplate-lv.MAX", description = "Regnumchestplate Mode 2 (speed and no jump)\nChestplate-lv.MAX",
inventory_image = "3d_armor_inv_regnumchestplate.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_regnumchestplate.png^technic_tool_mode2.png",
groups = {armor_torso=15.0, armor_heal=13, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2}, groups = {armor_torso=15.0, armor_heal=13, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumchestplate.png", wield_image = "3d_armor_inv_regnumchestplate.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -653,7 +653,7 @@ minetest.register_tool("3d_armor:regnumchestplate2", {
minetest.register_tool("3d_armor:regnumchestplate3", { minetest.register_tool("3d_armor:regnumchestplate3", {
description = "Regnumchestplate Mode 3 (no speed and jump)\nChestplate-lv.MAX", description = "Regnumchestplate Mode 3 (no speed and jump)\nChestplate-lv.MAX",
inventory_image = "3d_armor_inv_regnumchestplate.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_regnumchestplate.png^technic_tool_mode3.png",
groups = {armor_torso=15.0, armor_heal=13, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2}, groups = {armor_torso=15.0, armor_heal=13, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumchestplate.png", wield_image = "3d_armor_inv_regnumchestplate.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -667,7 +667,7 @@ minetest.register_tool("3d_armor:regnumchestplate3", {
minetest.register_tool("3d_armor:regnumchestplate4", { minetest.register_tool("3d_armor:regnumchestplate4", {
description = "Regnumchestplate Mode 4 (speed and jump)\nChestplate-lv.MAX", description = "Regnumchestplate Mode 4 (speed and jump)\nChestplate-lv.MAX",
inventory_image = "3d_armor_inv_regnumchestplate.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_regnumchestplate.png^technic_tool_mode4.png",
groups = {armor_torso=15.0, armor_heal=13, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_torso=15.0, armor_heal=13, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumchestplate.png", wield_image = "3d_armor_inv_regnumchestplate.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -696,7 +696,7 @@ minetest.register_tool("3d_armor:regnumhelmet", {
minetest.register_tool("3d_armor:regnumhelmet2", { minetest.register_tool("3d_armor:regnumhelmet2", {
description = "Regnumhelmet Mode 2 (speed and no jump)\nHelmet-lv.MAX", description = "Regnumhelmet Mode 2 (speed and no jump)\nHelmet-lv.MAX",
inventory_image = "3d_armor_inv_regnumhelmet.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_regnumhelmet.png^technic_tool_mode2.png",
groups = {armor_head=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2}, groups = {armor_head=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumhelmet.png", wield_image = "3d_armor_inv_regnumhelmet.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -710,7 +710,7 @@ minetest.register_tool("3d_armor:regnumhelmet2", {
minetest.register_tool("3d_armor:regnumhelmet3", { minetest.register_tool("3d_armor:regnumhelmet3", {
description = "Regnumhelmet Mode 3 (no speed and jump)\nHelmet-lv.MAX", description = "Regnumhelmet Mode 3 (no speed and jump)\nHelmet-lv.MAX",
inventory_image = "3d_armor_inv_regnumhelmet.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_regnumhelmet.png^technic_tool_mode3.png",
groups = {armor_head=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2}, groups = {armor_head=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumhelmet.png", wield_image = "3d_armor_inv_regnumhelmet.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -724,7 +724,7 @@ minetest.register_tool("3d_armor:regnumhelmet3", {
minetest.register_tool("3d_armor:regnumhelmet4", { minetest.register_tool("3d_armor:regnumhelmet4", {
description = "Regnumhelmet Mode 4 (speed and jump)\nHelmet-lv.MAX", description = "Regnumhelmet Mode 4 (speed and jump)\nHelmet-lv.MAX",
inventory_image = "3d_armor_inv_regnumhelmet.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_regnumhelmet.png^technic_tool_mode4.png",
groups = {armor_head=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_head=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumhelmet.png", wield_image = "3d_armor_inv_regnumhelmet.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -753,7 +753,7 @@ minetest.register_tool("3d_armor:regnumleggings", {
minetest.register_tool("3d_armor:regnumleggings2", { minetest.register_tool("3d_armor:regnumleggings2", {
description = "Regnumleggings Mode 2 (speed and no jump)\nLeggings-lv.MAX", description = "Regnumleggings Mode 2 (speed and no jump)\nLeggings-lv.MAX",
inventory_image = "3d_armor_inv_regnumleggings.png^technic_tool_mode2.png", inventory_image = "3d_armor_inv_regnumleggings.png^technic_tool_mode2.png",
groups = {armor_legs=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2}, groups = {armor_legs=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumleggings.png", wield_image = "3d_armor_inv_regnumleggings.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -767,7 +767,7 @@ minetest.register_tool("3d_armor:regnumleggings2", {
minetest.register_tool("3d_armor:regnumleggings3", { minetest.register_tool("3d_armor:regnumleggings3", {
description = "Regnumleggings Mode 3 (no speed and jump)\nLeggings-lv.MAX", description = "Regnumleggings Mode 3 (no speed and jump)\nLeggings-lv.MAX",
inventory_image = "3d_armor_inv_regnumleggings.png^technic_tool_mode3.png", inventory_image = "3d_armor_inv_regnumleggings.png^technic_tool_mode3.png",
groups = {armor_legs=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2}, groups = {armor_legs=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumleggings.png", wield_image = "3d_armor_inv_regnumleggings.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -781,7 +781,7 @@ minetest.register_tool("3d_armor:regnumleggings3", {
minetest.register_tool("3d_armor:regnumleggings4", { minetest.register_tool("3d_armor:regnumleggings4", {
description = "Regnumleggings Mode 4 (speed and jump)\nLeggings-lv.MAX", description = "Regnumleggings Mode 4 (speed and jump)\nLeggings-lv.MAX",
inventory_image = "3d_armor_inv_regnumleggings.png^technic_tool_mode4.png", inventory_image = "3d_armor_inv_regnumleggings.png^technic_tool_mode4.png",
groups = {armor_legs=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_legs=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "3d_armor_inv_regnumleggings.png", wield_image = "3d_armor_inv_regnumleggings.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)

View File

@ -44,7 +44,7 @@ minetest.register_tool("shields:shield_admin2", {
description = "Admin Shield Mode 2 (speed and no jump)", description = "Admin Shield Mode 2 (speed and no jump)",
inventory_image = "shields_inv_shield_admin.png^technic_tool_mode2.png", inventory_image = "shields_inv_shield_admin.png^technic_tool_mode2.png",
wield_image = "shields_inv_shield_admin.png", wield_image = "shields_inv_shield_admin.png",
groups = {armor_shield=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2}, groups = {armor_shield=20, armor_heal=20, armor_use=0, armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -59,7 +59,7 @@ minetest.register_tool("shields:shield_admin3", {
description = "Admin Shield Mode 3 (no speed and jump)", description = "Admin Shield Mode 3 (no speed and jump)",
inventory_image = "shields_inv_shield_admin.png^technic_tool_mode3.png", inventory_image = "shields_inv_shield_admin.png^technic_tool_mode3.png",
wield_image = "shields_inv_shield_admin.png", wield_image = "shields_inv_shield_admin.png",
groups = {armor_shield=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2}, groups = {armor_shield=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
@ -74,7 +74,7 @@ minetest.register_tool("shields:shield_admin4", {
description = "Admin Shield Mode 4 (speed and jump)", description = "Admin Shield Mode 4 (speed and jump)",
inventory_image = "shields_inv_shield_admin.png^technic_tool_mode4.png", inventory_image = "shields_inv_shield_admin.png^technic_tool_mode4.png",
wield_image = "shields_inv_shield_admin.png", wield_image = "shields_inv_shield_admin.png",
groups = {armor_shield=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_shield=20, armor_heal=20, armor_use=0, armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()

View File

@ -1,14 +1,14 @@
minetest.register_tool("shields:shield", { minetest.register_tool("shields:shield", {
description = "Shield\nShield-lv.0", description = "Shield\nShield-lv.0",
inventory_image = "shields_inv_shield.png", inventory_image = "shields_inv_shield.png",
groups = {armor_shield=1, armor_heal=0, armor_use=0}, groups = {armor_shield=1, armor_heal=0, armor_use=0, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
for i=1,20 do for i=1,20 do
minetest.register_tool("shields:shield_mega"..i, { minetest.register_tool("shields:shield_mega"..i, {
description = "Megashield lv."..i.."\nShield-lv."..i, description = "Megashield lv."..i.."\nShield-lv."..i,
inventory_image = "shields_inv_shield_mega"..i..".png", inventory_image = "shields_inv_shield_mega"..i..".png",
groups = {armor_shield=i*0.1, armor_heal=0, armor_use=0, armor_fire=0.005*i}, groups = {armor_shield=i*0.1, armor_heal=0, armor_use=0, armor_fire=0.005*i, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -16,7 +16,7 @@ for i=1,25 do
minetest.register_tool("shields:cloudshield_mega"..i, { minetest.register_tool("shields:cloudshield_mega"..i, {
description = "Cloudshield lv."..i.."\nShield-lv."..(i+20), description = "Cloudshield lv."..i.."\nShield-lv."..(i+20),
inventory_image = "shields_inv_cloudshield_mega"..i..".png", inventory_image = "shields_inv_cloudshield_mega"..i..".png",
groups = {armor_shield=(20+i)*0.1, armor_heal=1, armor_use=0, armor_fire=0.005*(i+20)}, groups = {armor_shield=(20+i)*0.1, armor_heal=1, armor_use=0, armor_fire=0.005*(i+20), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -24,7 +24,7 @@ for i=1,4 do
minetest.register_tool("shields:supershield"..i, { minetest.register_tool("shields:supershield"..i, {
description = "Supershield lv."..i.."\nShield-lv."..(i+45), description = "Supershield lv."..i.."\nShield-lv."..(i+45),
inventory_image = "shields_inv_supershield"..i..".png", inventory_image = "shields_inv_supershield"..i..".png",
groups = {armor_shield=(45+i)*0.1, armor_heal=2, armor_use=0, armor_fire=0.005*(i+45)}, groups = {armor_shield=(45+i)*0.1, armor_heal=2, armor_use=0, armor_fire=0.005*(i+45), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -32,7 +32,7 @@ for i=1,2 do
minetest.register_tool("shields:uraniumshield"..i, { minetest.register_tool("shields:uraniumshield"..i, {
description = "Uraniumshield lv."..i.."\nShield-lv."..(i+49), description = "Uraniumshield lv."..i.."\nShield-lv."..(i+49),
inventory_image = "shields_inv_uraniumshield"..i..".png", inventory_image = "shields_inv_uraniumshield"..i..".png",
groups = {armor_shield=(49+i)*0.1, armor_heal=3, armor_use=0, armor_fire=0.005*(i+49)}, groups = {armor_shield=(49+i)*0.1, armor_heal=3, armor_use=0, armor_fire=0.005*(i+49), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -40,7 +40,7 @@ for i=1,12 do
minetest.register_tool("shields:energyshield"..i, { minetest.register_tool("shields:energyshield"..i, {
description = "Energyshield lv."..i.."\nShield-lv."..(i+51), description = "Energyshield lv."..i.."\nShield-lv."..(i+51),
inventory_image = "shields_inv_energyshield"..i..".png", inventory_image = "shields_inv_energyshield"..i..".png",
groups = {armor_shield=(51+i)*0.1, armor_heal=4, armor_use=0, armor_fire=0.005*(i+51)}, groups = {armor_shield=(51+i)*0.1, armor_heal=4, armor_use=0, armor_fire=0.005*(i+51), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -48,7 +48,7 @@ for i=1,7 do
minetest.register_tool("shields:superenergyshield"..i, { minetest.register_tool("shields:superenergyshield"..i, {
description = "Superenergyshield lv."..i.."\nShield-lv."..(i+63), description = "Superenergyshield lv."..i.."\nShield-lv."..(i+63),
inventory_image = "shields_inv_superenergyshield"..i..".png", inventory_image = "shields_inv_superenergyshield"..i..".png",
groups = {armor_shield=(63+i)*0.1, armor_heal=5, armor_use=0, armor_fire=0.005*(i+63)}, groups = {armor_shield=(63+i)*0.1, armor_heal=5, armor_use=0, armor_fire=0.005*(i+63), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -56,7 +56,7 @@ for i=1,5 do
minetest.register_tool("shields:kristallshield"..i, { minetest.register_tool("shields:kristallshield"..i, {
description = "Crystalshield lv."..i.."\nShield-lv."..(i+70), description = "Crystalshield lv."..i.."\nShield-lv."..(i+70),
inventory_image = "shields_inv_kristallshield"..i..".png", inventory_image = "shields_inv_kristallshield"..i..".png",
groups = {armor_shield=(70+i)*0.1, armor_heal=6, armor_use=0, armor_fire=0.005*(i+70)}, groups = {armor_shield=(70+i)*0.1, armor_heal=6, armor_use=0, armor_fire=0.005*(i+70), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -64,21 +64,21 @@ for i=1,25 do
minetest.register_tool("shields:ultrashield"..i, { minetest.register_tool("shields:ultrashield"..i, {
description = "Ultrashield lv."..i.."\nShield-lv."..(i+75), description = "Ultrashield lv."..i.."\nShield-lv."..(i+75),
inventory_image = "shields_inv_ultrashield"..i..".png", inventory_image = "shields_inv_ultrashield"..i..".png",
groups = {armor_shield=(75+i)*0.1, armor_heal=7, armor_use=0, armor_fire=0.005*(i+75)}, groups = {armor_shield=(75+i)*0.1, armor_heal=7, armor_use=0, armor_fire=0.005*(i+75), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
minetest.register_tool("shields:superultrashield", { minetest.register_tool("shields:superultrashield", {
description = "Superultrashield\nShield-lv.101", description = "Superultrashield\nShield-lv.101",
inventory_image = "shields_inv_superultrashield.png", inventory_image = "shields_inv_superultrashield.png",
groups = {armor_shield=10.1, armor_heal=8, armor_use=0,armor_fire=0.505}, groups = {armor_shield=10.1, armor_heal=8, armor_use=0,armor_fire=0.505, not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
for i=1,4 do for i=1,4 do
minetest.register_tool("shields:arenashield"..i, { minetest.register_tool("shields:arenashield"..i, {
description = "Arenashield lv."..i.."\nShield-lv."..(i+101), description = "Arenashield lv."..i.."\nShield-lv."..(i+101),
inventory_image = "shields_inv_arenashield"..i..".png", inventory_image = "shields_inv_arenashield"..i..".png",
groups = {armor_shield=(101+i)*0.1, armor_heal=9, armor_use=0, armor_fire=0.005*(i+101)}, groups = {armor_shield=(101+i)*0.1, armor_heal=9, armor_use=0, armor_fire=0.005*(i+101), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -86,7 +86,7 @@ for i=1,10 do
minetest.register_tool("shields:titanshield"..i, { minetest.register_tool("shields:titanshield"..i, {
description = "Titanshield lv."..i.."\nShield-lv."..(i+105), description = "Titanshield lv."..i.."\nShield-lv."..(i+105),
inventory_image = "shields_inv_titanshield"..i..".png", inventory_image = "shields_inv_titanshield"..i..".png",
groups = {armor_shield=(105+i)*0.1, armor_heal=10, armor_use=0, armor_fire=0.005*(i+105)}, groups = {armor_shield=(105+i)*0.1, armor_heal=10, armor_use=0, armor_fire=0.005*(i+105), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
@ -94,14 +94,14 @@ for i=1,6 do
minetest.register_tool("shields:legendenshield"..i, { minetest.register_tool("shields:legendenshield"..i, {
description = "Legendshield lv."..i.."\nShield-lv."..(i+115), description = "Legendshield lv."..i.."\nShield-lv."..(i+115),
inventory_image = "shields_inv_legendenshield"..i..".png", inventory_image = "shields_inv_legendenshield"..i..".png",
groups = {armor_shield=(115+i)*0.1, armor_heal=11, armor_use=0, armor_fire=0.005*(i+115)}, groups = {armor_shield=(115+i)*0.1, armor_heal=11, armor_use=0, armor_fire=0.005*(i+115), not_in_creative_inventory=1},
wear = 0, wear = 0,
}) })
end end
minetest.register_tool("shields:superlegendenshield", { minetest.register_tool("shields:superlegendenshield", {
description = "Superlegendshield Mode 1 (no speed and no jump)\nShield-lv.122", description = "Superlegendshield Mode 1 (no speed and no jump)\nShield-lv.122",
inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode1.png", inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode1.png",
groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2}, groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "shields_inv_superlegendenshield.png", wield_image = "shields_inv_superlegendenshield.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -115,7 +115,7 @@ minetest.register_tool("shields:superlegendenshield", {
minetest.register_tool("shields:superlegendenshield2", { minetest.register_tool("shields:superlegendenshield2", {
description = "Superlegendshield Mode 2 (speed and no jump)\nShield-lv.122", description = "Superlegendshield Mode 2 (speed and no jump)\nShield-lv.122",
inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode2.png", inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode2.png",
groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2}, groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "shields_inv_superlegendenshield.png", wield_image = "shields_inv_superlegendenshield.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -129,7 +129,7 @@ minetest.register_tool("shields:superlegendenshield2", {
minetest.register_tool("shields:superlegendenshield3", { minetest.register_tool("shields:superlegendenshield3", {
description = "Superlegendshield Mode 3 (no speed and jump)\nShield-lv.122", description = "Superlegendshield Mode 3 (no speed and jump)\nShield-lv.122",
inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode3.png", inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode3.png",
groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2}, groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "shields_inv_superlegendenshield.png", wield_image = "shields_inv_superlegendenshield.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -143,7 +143,7 @@ minetest.register_tool("shields:superlegendenshield3", {
minetest.register_tool("shields:superlegendenshield4", { minetest.register_tool("shields:superlegendenshield4", {
description = "Superlegendshield Mode 4 (speed and jump)\nShield-lv.122", description = "Superlegendshield Mode 4 (speed and jump)\nShield-lv.122",
inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode4.png", inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode4.png",
groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_shield=12.2, armor_heal=12, armor_use=0,armor_fire=0.61, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "shields_inv_superlegendenshield.png", wield_image = "shields_inv_superlegendenshield.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -172,7 +172,7 @@ minetest.register_tool("shields:regnumshield", {
minetest.register_tool("shields:regnumshield2", { minetest.register_tool("shields:regnumshield2", {
description = "Regnumshield Mode 2 (speed and no jump)\nShield-lv.MAX", description = "Regnumshield Mode 2 (speed and no jump)\nShield-lv.MAX",
inventory_image = "shields_inv_regnumshield.png^technic_tool_mode2.png", inventory_image = "shields_inv_regnumshield.png^technic_tool_mode2.png",
groups = {armor_shield=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2}, groups = {armor_shield=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "shields_inv_regnumshield.png", wield_image = "shields_inv_regnumshield.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -186,7 +186,7 @@ minetest.register_tool("shields:regnumshield2", {
minetest.register_tool("shields:regnumshield3", { minetest.register_tool("shields:regnumshield3", {
description = "Regnumshield Mode 3 (no speed and jump)\nShield-lv.MAX", description = "Regnumshield Mode 3 (no speed and jump)\nShield-lv.MAX",
inventory_image = "shields_inv_regnumshield.png^technic_tool_mode3.png", inventory_image = "shields_inv_regnumshield.png^technic_tool_mode3.png",
groups = {armor_shield=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2}, groups = {armor_shield=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "shields_inv_regnumshield.png", wield_image = "shields_inv_regnumshield.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
@ -200,7 +200,7 @@ minetest.register_tool("shields:regnumshield3", {
minetest.register_tool("shields:regnumshield4", { minetest.register_tool("shields:regnumshield4", {
description = "Regnumshield Mode 4 (speed and jump)\nShield-lv.MAX", description = "Regnumshield Mode 4 (speed and jump)\nShield-lv.MAX",
inventory_image = "shields_inv_regnumshield.png^technic_tool_mode4.png", inventory_image = "shields_inv_regnumshield.png^technic_tool_mode4.png",
groups = {armor_shield=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2}, groups = {armor_shield=15.0, armor_heal=13, armor_use=0,armor_fire=1, physics_jump=0.25, physics_speed=0.25, armor_water=0.2, not_in_creative_inventory=1},
wear = 0, wear = 0,
wield_image = "shields_inv_regnumshield.png", wield_image = "shields_inv_regnumshield.png",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)

View File

@ -76,7 +76,7 @@ minetest.register_globalstep(function(dtime)
elseif i < 91 then elseif i < 91 then
g = 7650+(i-85)*18*10 g = 7650+(i-85)*18*10
elseif i < 96 then elseif i < 96 then
g = 8500+(i-90)*19*10 g = 8550+(i-90)*19*10
elseif i < 101 then elseif i < 101 then
g = 9500+(i-95)*20*10 g = 9500+(i-95)*20*10
end end
@ -124,7 +124,7 @@ minetest.register_globalstep(function(dtime)
if (new_xp >= g) then if (new_xp >= g) then
vv = i vv = i
end end
if (new_xp >= 11949) then if (new_xp >= 11950) then
vv = 101 vv = 101
end end
if i == 100 then if i == 100 then
@ -241,7 +241,6 @@ minetest.register_globalstep(function(dtime)
to_player = player:get_player_name(), to_player = player:get_player_name(),
}) })
end end
end end
if new_xp == 2750 then if new_xp == 2750 then
player_inv:set_size("xpi01", 15) player_inv:set_size("xpi01", 15)

View File

@ -80,7 +80,7 @@ minetest.register_globalstep(function(dtime)
elseif i < 101 then elseif i < 101 then
c = 10 c = 10
end end
if i == (10 or 20 or 30 or 40 or 50 or 60 or 70 or 80 or 90) then if i == 10 or i == 20 or i == 30 or i == 40 or i == 50 or i == 60 or i == 70 or i == 80 or i == 90 then
h = 1 h = 1
else else
h = 0 h = 0

339
mods/helicopter/LICENSE Normal file
View File

@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{description}
Copyright (C) {year} {fullname}
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
{signature of Ty Coon}, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

18
mods/helicopter/README.md Normal file
View File

@ -0,0 +1,18 @@
Minetest 5.1-dev+ mod: Simple helicopter
=======================
originally by Pavel_S
reworked by DS-minetest
License of source code:
-----------------------
original code by Pavel_S: GPL_v2
changes by DS-minetest: TODO
`matrix.lua` file: CC0
License of media (textures and sounds):
---------------------------------------
helicopter_motor.ogg by Robinhood76 | License: Attribution Noncommercial
textures and model are probably by Pavel_S, TODO

View File

@ -0,0 +1,3 @@
player_api
default?
creative?

273
mods/helicopter/init.lua Normal file
View File

@ -0,0 +1,273 @@
--
-- constants
--
local tilting_speed = 1
local tilting_max = 0.5
local power_max = 20
local power_min = 0.2 -- if negative, the helicopter can actively fly downwards
local wanted_vert_speed = 10
local friction_air_quadratic = 0.01
local friction_air_constant = 0.2
local friction_land_quadratic = 1
local friction_land_constant = 2
local friction_water_quadratic = 0.1
local friction_water_constant = 1
--
-- helpers and co.
--
if not minetest.global_exists("matrix3") then
dofile(minetest.get_modpath("helicopter") .. DIR_DELIM .. "matrix.lua")
end
local creative_exists = minetest.global_exists("creative")
local gravity = tonumber(minetest.settings:get("movement_gravity")) or 9.8
local vector_up = vector.new(0, 1, 0)
local vector_forward = vector.new(0, 0, 1)
local function vector_length_sq(v)
return v.x * v.x + v.y * v.y + v.z * v.z
end
local function check_node_below(obj)
local pos_below = obj:get_pos()
pos_below.y = pos_below.y - 0.1
local node_below = minetest.get_node(pos_below).name
local nodedef = minetest.registered_nodes[node_below]
local touching_ground = not nodedef or -- unknown nodes are solid
nodedef.walkable or false
local liquid_below = not touching_ground and nodedef.liquidtype ~= "none"
return touching_ground, liquid_below
end
local function heli_control(self, dtime, touching_ground, liquid_below, vel_before)
local driver = minetest.get_player_by_name(self.driver_name)
if not driver then
-- there is no driver (eg. because driver left)
self.driver_name = nil
if self.sound_handle then
minetest.sound_stop(self.sound_handle)
self.sound_handle = nil
end
self.object:set_animation_frame_speed(0)
-- gravity
self.object:set_acceleration(vector.multiply(vector_up, -gravity))
return
end
local ctrl = driver:get_player_control()
local rot = self.object:get_rotation()
local vert_vel_goal = 0
if not liquid_below then
if ctrl.jump then
vert_vel_goal = vert_vel_goal + wanted_vert_speed
end
if ctrl.sneak then
vert_vel_goal = vert_vel_goal - wanted_vert_speed
end
else
vert_vel_goal = wanted_vert_speed
end
-- rotation
if not touching_ground then
local tilting_goal = vector.new()
if ctrl.up then
tilting_goal.z = tilting_goal.z + 1
end
if ctrl.down then
tilting_goal.z = tilting_goal.z - 1
end
if ctrl.right then
tilting_goal.x = tilting_goal.x + 1
end
if ctrl.left then
tilting_goal.x = tilting_goal.x - 1
end
tilting_goal = vector.multiply(vector.normalize(tilting_goal), tilting_max)
-- tilting
if vector_length_sq(vector.subtract(tilting_goal, self.tilting)) > (dtime * tilting_speed)^2 then
self.tilting = vector.add(self.tilting,
vector.multiply(vector.direction(self.tilting, tilting_goal), dtime * tilting_speed))
else
self.tilting = tilting_goal
end
if vector_length_sq(self.tilting) > tilting_max^2 then
self.tilting = vector.multiply(vector.normalize(self.tilting), tilting_max)
end
local new_up = vector.new(self.tilting)
new_up.y = 1
new_up = vector.normalize(new_up) -- this is what vector_up should be after the rotation
local new_right = vector.cross(new_up, vector_forward)
local new_forward = vector.cross(new_right, new_up)
local rot_mat = matrix3.new(
new_right.x, new_up.x, new_forward.x,
new_right.y, new_up.y, new_forward.y,
new_right.z, new_up.z, new_forward.z
)
rot = matrix3.to_pitch_yaw_roll(rot_mat)
rot.y = driver:get_look_horizontal()
else
rot.x = 0
rot.z = 0
self.tilting.x = 0
self.tilting.z = 0
end
self.object:set_rotation(rot)
-- calculate how strong the heli should accelerate towards rotated up
local power = vert_vel_goal - vel_before.y + gravity * dtime
power = math.min(math.max(power, power_min * dtime), power_max * dtime)
local rotated_up = matrix3.multiply(matrix3.from_pitch_yaw_roll(rot), vector_up)
local added_vel = vector.multiply(rotated_up, power)
added_vel = vector.add(added_vel, vector.multiply(vector_up, -gravity * dtime))
return vector.add(vel_before, added_vel)
end
--
-- entity
--
minetest.register_entity("helicopter:heli", {
initial_properties = {
physical = true,
collide_with_objects = true,
collisionbox = {-1,0,-1, 1,0.3,1},
selectionbox = {-1,0,-1, 1,0.3,1},
visual = "mesh",
mesh = "helicopter_heli.x",
textures = {"helicopter_blades.png", "helicopter_blades.png",
"helicopter_heli.png", "helicopter_glass.png"},
},
driver_name = nil,
sound_handle = nil,
tilting = vector.new(),
on_activate = function(self)
-- set the animation once and later only change the speed
self.object:set_animation({x = 0, y = 11}, 0, 0, true)
self.object:set_armor_groups({immortal=1})
self.object:set_acceleration(vector.multiply(vector_up, -gravity))
end,
on_step = function(self, dtime)
local touching_ground, liquid_below
local vel = self.object:get_velocity()
if self.driver_name then
touching_ground, liquid_below = check_node_below(self.object)
vel = heli_control(self, dtime, touching_ground, liquid_below, vel) or vel
end
if vel.x == 0 and vel.y == 0 and vel.z == 0 then
return
end
if touching_ground == nil then
touching_ground, liquid_below = check_node_below(self.object)
end
-- quadratic and constant deceleration
local speedsq = vector_length_sq(vel)
local fq, fc
if touching_ground then
fq, fc = friction_land_quadratic, friction_land_constant
elseif liquid_below then
fq, fc = friction_water_quadratic, friction_water_constant
else
fq, fc = friction_air_quadratic, friction_air_constant
end
vel = vector.apply(vel, function(a)
local s = math.sign(a)
a = math.abs(a)
a = math.max(0, a - fq * dtime * speedsq - fc * dtime)
return a * s
end)
self.object:set_velocity(vel)
end,
on_punch = function(self, puncher)
if not puncher or not puncher:is_player() then
return
end
local name = puncher:get_player_name()
if self.driver_name and self.driver_name ~= name then
-- do not allow other players to remove the object while there is a driver
return
end
if self.sound_handle then
minetest.sound_stop(self.sound_handle)
self.sound_handle = nil
end
if self.driver_name then
-- detach the driver first (puncher must be driver)
puncher:set_detach()
player_api.player_attached[name] = nil
-- player should stand again
player_api.set_animation(puncher, "stand")
self.driver_name = nil
end
self.object:remove()
minetest.handle_node_drops(self.object:get_pos(), {"tutorial:heli"}, puncher)
end,
on_rightclick = function(self, clicker)
if not clicker or not clicker:is_player() then
return
end
local name = clicker:get_player_name()
if name == self.driver_name then
-- driver clicked the object => driver gets off the vehicle
self.driver_name = nil
-- sound and animation
minetest.sound_stop(self.sound_handle)
self.sound_handle = nil
self.object:set_animation_frame_speed(0)
-- detach the player
clicker:set_detach()
player_api.player_attached[name] = nil
-- player should stand again
player_api.set_animation(clicker, "stand")
-- gravity
self.object:set_acceleration(vector.multiply(vector_up, -gravity))
elseif not self.driver_name then
-- no driver => clicker is new driver
self.driver_name = name
-- sound and animation
self.sound_handle = minetest.sound_play({name = "helicopter_motor"},
{object = self.object, gain = 2.0, max_hear_distance = 32, loop = true,})
self.object:set_animation_frame_speed(30)
-- attach the driver
clicker:set_attach(self.object, "", {x = 0, y = 6.7, z = -4}, {x = 0, y = 0, z = 0})
player_api.player_attached[name] = true
-- make the driver sit
minetest.after(0.2, function()
local player = minetest.get_player_by_name(name)
if player then
player_api.set_animation(player, "sit")
end
end)
-- disable gravity
self.object:set_acceleration(vector.new())
end
end,
})

199
mods/helicopter/matrix.lua Normal file
View File

@ -0,0 +1,199 @@
-- everything in this file is licensed under CC0
-- see also minetest PR #8515
matrix3 = {}
function matrix3.new(a, ...)
if not a then
return {0, 0, 0, 0, 0, 0, 0, 0, 0}
elseif type(a) ~= "table" then
return {a, ...}
else
return {a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]}
end
end
matrix3.identity = {1, 0, 0, 0, 1, 0, 0, 0, 1}
function matrix3.apply(m, func)
local mr = {}
for i = 1, 9 do
mr[i] = func(m[i])
end
return mr
end
function matrix3.equals(m1, m2)
for i = 1, 9 do
if m1[i] ~= m2[i] then
return false
end
end
return true
end
function matrix3.index(m, l, c)
return m[(l - 1) * 3 + c]
end
function matrix3.add(m1, m2)
local m3 = {}
for i = 1, 9 do
m3[i] = m1[i] + m2[i]
end
return m3
end
local function multiply_matrix3_scalar(m, a)
local mr = {}
for i = 1, 9 do
mr[i] = m[i] * a
end
return mr
end
local function multiply_matrix3_vector(m1, v)
return {
x = m1[1] * v.x + m1[2] * v.y + m1[3] * v.z,
y = m1[4] * v.x + m1[5] * v.y + m1[6] * v.z,
z = m1[7] * v.x + m1[8] * v.y + m1[9] * v.z,
}
end
function matrix3.multiply(m1, m2)
if type(m2) ~= "table" then
return multiply_matrix3_scalar(m1, m2)
elseif m2.x then
return multiply_matrix3_vector(m1, m2)
end
local m3 = {}
for l = 1, 3 do
for c = 1, 3 do
local i = (l - 1) * 3 + c
m3[i] = 0
for k = 1, 3 do
m3[i] = m3[i] + m1[(l - 1) * 3 + k] * m2[(k - 1) * 3 + c]
end
end
end
return m3
end
function matrix3.tensor_multiply(a, b)
local m1 = matrix3.new()
m1[1] = a.x
m1[4] = a.y
m1[7] = a.z
local m2 = matrix3.new()
m2[1] = a.x
m2[2] = a.y
m2[3] = a.z
return matrix3.multiply(m1, m2)
end
function matrix3.transpose(m)
return {m[1], m[4], m[7],
m[2], m[5], m[8],
m[3], m[6], m[9]}
end
function matrix3.determinant(m)
return m[1] * (m[5] * m[9] - m[6] * m[8])
+ m[2] * (m[6] * m[7] - m[4] * m[9])
+ m[3] * (m[4] * m[8] - m[5] * m[7])
end
function matrix3.invert(a)
local t11 = a[5] * a[9] - a[6] * a[8]
local t12 = a[6] * a[7] - a[4] * a[9]
local t13 = a[4] * a[8] - a[5] * a[7]
local det = a[1] * t11 + a[2] * t12 + a[3] * t13
if det == 0 then
return false -- there is no inverted
end
local b = {
t11 / det, (a[3]*a[8] - a[2]*a[9]) / det, (a[2]*a[6] - a[3]*a[5]) / det,
t12 / det, (a[1]*a[9] - a[3]*a[7]) / det, (a[3]*a[4] - a[1]*a[6]) / det,
t13 / det, (a[2]*a[7] - a[1]*a[8]) / det, (a[1]*a[5] - a[2]*a[4]) / det
}
return b
end
local function sin(x)
if x % math.pi == 0 then
return 0
else
return math.sin(x)
end
end
local function cos(x)
if x % math.pi == math.pi / 2 then
return 0
else
return math.cos(x)
end
end
function matrix3.rotation_around_x(angle)
local s = sin(angle)
local c = cos(angle)
return {1, 0, 0,
0, c, -s,
0, s, c}
end
function matrix3.rotation_around_y(angle)
local s = sin(angle)
local c = cos(angle)
return { c, 0, s,
0, 1, 0,
-s, 0, c}
end
function matrix3.rotation_around_z(angle)
local s = sin(angle)
local c = cos(angle)
return {c, -s, 0,
s, c, 0,
0, 0, 1}
end
function matrix3.rotation_around_vector(v, angle)
local length_v = vector.length(v)
v = vector.divide(v, length_v)
angle = angle or length_v
local s = sin(angle)
local c = cos(angle)
local omc = 1 - c
return {
v.x * v.x * omc + c, v.x * v.y * omc - v.z * s, v.x * v.z * omc + v.y * s,
v.y * v.x * omc + v.z * s, v.y * v.y * omc + c, v.y * v.z * omc - v.x * s,
v.z * v.x * omc - v.y * s, v.z * v.y * omc + v.x * s, v.z * v.z * omc + c
}
end
function matrix3.to_pitch_yaw_roll(m)
local r = vector.new()
r.y = math.atan2(-m[3], m[9])
local c2 = math.sqrt(m[4]^2 + m[5]^2)
r.x = math.atan2(m[6], c2)
local s1 = sin(r.y)
local c1 = cos(r.y)
r.z = math.atan2(s1 * m[8] + c1 * m[2], s1 * m[7] + c1 * m[1])
return r
end
function matrix3.from_pitch_yaw_roll(v)
local sx, cx = sin(v.x), cos(v.x)
local sy, cy = sin(v.y), cos(v.y)
local sz, cz = sin(v.z), cos(v.z)
return {
-sy * sx * sz + cy * cz, cz * sy * sx + cy * sz, -cx * sy,
-cx * sz, cx * cz, sx,
cy * sx * sz + cz * sy, -cy * cz * sx + sy * sz, cy * cx
}
end

3
mods/helicopter/mod.conf Normal file
View File

@ -0,0 +1,3 @@
name = helicopter
depends = player_api
optional_depends = default, creative

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

View File

@ -70,6 +70,8 @@ for more information.
* `format_string_config`: Required if `format_string` is set. This allows to change which parameters to use in the format string. It's a table with these fields: * `format_string_config`: Required if `format_string` is set. This allows to change which parameters to use in the format string. It's a table with these fields:
* `textdomain`: Text domain of the format string, used by `minetest.translate` * `textdomain`: Text domain of the format string, used by `minetest.translate`
* `order`: Table that contains the order of the placeholders. It's also possible to remove placeholders. Default order: `{ "label", "value", "max_value" }` * `order`: Table that contains the order of the placeholders. It's also possible to remove placeholders. Default order: `{ "label", "value", "max_value" }`
* `format_value`: Format string to apply when displaying `value`. Syntax is same as in `string.format`. Default: `"%d"`
* `format_max_value`: Same as `format_value` but is applied to `max_value`
#### Example #### Example
Example (mostly) from `hbarmor` mod: Example (mostly) from `hbarmor` mod:

View File

@ -11,7 +11,7 @@ this mod will place them accordingly.
position should be displayed correctly on every screen size. position should be displayed correctly on every screen size.
## Current version ## Current version
The current version is 2.0.0. The current version is 2.1.0.
This software uses [semantic versioning](http://semver.org), as defined by version 2.0.0 of the SemVer This software uses [semantic versioning](http://semver.org), as defined by version 2.0.0 of the SemVer
standard. standard.

View File

@ -58,9 +58,17 @@ local function make_label(format_string, format_string_config, label, start_valu
if order[o] == "label" then if order[o] == "label" then
table.insert(params, label) table.insert(params, label)
elseif order[o] == "value" then elseif order[o] == "value" then
table.insert(params, start_value) if format_string_config.format_value then
table.insert(params, string.format(format_string_config.format_value, start_value))
else
table.insert(params, start_value)
end
elseif order[o] == "max_value" then elseif order[o] == "max_value" then
table.insert(params, max_value) if format_string_config.format_max_value then
table.insert(params, string.format(format_string_config.format_max_value, max_value))
else
table.insert(params, max_value)
end
end end
end end
local ret local ret
@ -148,7 +156,16 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
format_string = N("@1: @2/@3") format_string = N("@1: @2/@3")
end end
if format_string_config == nil then if format_string_config == nil then
format_string_config = { order = { "label", "value", "max_value" } } format_string_config = {}
end
if format_string_config.order == nil then
format_string_config.order = { "label", "value", "max_value" }
end
if format_string_config.format_value == nil then
format_string_config.format_value = "%d"
end
if format_string_config.format_max_value == nil then
format_string_config.format_max_value = "%d"
end end
hudtable.add_all = function(player, hudtable, start_value, start_max, start_hidden) hudtable.add_all = function(player, hudtable, start_value, start_max, start_hidden)
@ -196,7 +213,6 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
end end
elseif hb.settings.bar_type == "statbar_modern" then elseif hb.settings.bar_type == "statbar_modern" then
if textures.bgicon ~= nil then if textures.bgicon ~= nil then
ids.bg = player:hud_add({ ids.bg = player:hud_add({
hud_elem_type = "statbar", hud_elem_type = "statbar",
position = pos, position = pos,
@ -212,23 +228,24 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
local bar_image, bar_size local bar_image, bar_size
if hb.settings.bar_type == "progress_bar" then if hb.settings.bar_type == "progress_bar" then
bar_image = textures.bar bar_image = textures.bar
bar_size = {x=3, y=22} -- NOTE: Intentionally set to nil. For some reason, on some systems,
-- the progress bar is displaced when the bar_size is set explicitly here.
-- On the other hand, setting this to nil is deprecated in MT 5.0.0 due to
-- a debug log warning, but nothing is explained in lua_api.txt.
-- This section is a potential bug magnet, please watch with care!
-- The size of the bar image is expected to be exactly 2×16 pixels.
bar_size = nil
elseif hb.settings.bar_type == "statbar_classic" or hb.settings.bar_type == "statbar_modern" then elseif hb.settings.bar_type == "statbar_classic" or hb.settings.bar_type == "statbar_modern" then
bar_image = textures.icon bar_image = textures.icon
bar_size = {x=24, y=24} bar_size = {x=24, y=24}
end end
if offset.x == 15 then
offset2 = { x = offset.x+5, y = offset.y-29 }
else
offset2 = { x = offset.x-59, y = offset.y-29 }
end
ids.bar = player:hud_add({ ids.bar = player:hud_add({
hud_elem_type = "statbar", hud_elem_type = "statbar",
position = pos, position = pos,
text = bar_image, text = bar_image,
number = barnumber, number = barnumber,
alignment = {x=-1,y=-1}, alignment = {x=-1,y=-1},
offset = offset2, offset = offset,
direction = 0, direction = 0,
size = bar_size, size = bar_size,
}) })
@ -240,7 +257,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta
alignment = {x=1,y=1}, alignment = {x=1,y=1},
number = text_color, number = text_color,
direction = 0, direction = 0,
offset = { x = offset.x + 2, y = offset.y + 1}, offset = { x = offset.x + 2, y = offset.y - 1},
}) })
end end
-- Do not forget to update hb.get_hudbar_state if you add new fields to the state table -- Do not forget to update hb.get_hudbar_state if you add new fields to the state table

View File

@ -1,12 +1,12 @@
local sound_time = 0 local sound_time = 0
local sound_play_on = 0 local sound_play_on = 0
local sound_play_regnum = nil local sound_play_regnum = {}
local inst_list = {} local inst_list = {}
minetest.register_globalstep(function(dtime) minetest.register_globalstep(function(dtime)
if sound_play_on == 0 then if sound_play_on == 0 then
sound_play_on = 1 sound_play_on = 1
inst_list = {}
for _,player in ipairs(minetest.get_connected_players()) do for _,player in ipairs(minetest.get_connected_players()) do
inst_list = {}
local player_inv = player:get_inventory() local player_inv = player:get_inventory()
local inst1 = player_inv:get_stack("inst", 1):get_count() local inst1 = player_inv:get_stack("inst", 1):get_count()
local inst2 = player_inv:get_stack("inst", 2):get_count() local inst2 = player_inv:get_stack("inst", 2):get_count()
@ -20,8 +20,8 @@ minetest.register_globalstep(function(dtime)
local inst = inst_list[ math.random(#inst_list)] local inst = inst_list[ math.random(#inst_list)]
local music = player_inv:get_stack("music", 1):get_count() local music = player_inv:get_stack("music", 1):get_count()
if music == 1 then if music == 1 then
sound_play_regnum = minetest.sound_play(inst, { sound_play_regnum[player:get_player_name()] = minetest.sound_play(inst, {
to_player = player, to_player = player:get_player_name(),
}) })
end end
end end
@ -93,6 +93,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
local inst2 = player_inv:get_stack("inst", 2):get_count() local inst2 = player_inv:get_stack("inst", 2):get_count()
if inst1 == 0 and inst2 == 0 then if inst1 == 0 and inst2 == 0 then
player_inv:set_stack("music", 1, nil) player_inv:set_stack("music", 1, nil)
if sound_play_regnum[player:get_player_name()] ~= nil then
minetest.sound_stop(sound_play_regnum[player:get_player_name()])
end
end end
inventory_plus.set_inventory_formspec(player, set.get_formspec(player)) inventory_plus.set_inventory_formspec(player, set.get_formspec(player))
end end
@ -107,6 +110,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
local inst2 = player_inv:get_stack("inst", 2):get_count() local inst2 = player_inv:get_stack("inst", 2):get_count()
if inst1 == 0 and inst2 == 0 then if inst1 == 0 and inst2 == 0 then
player_inv:set_stack("music", 1, nil) player_inv:set_stack("music", 1, nil)
if sound_play_regnum[player:get_player_name()] ~= nil then
minetest.sound_stop(sound_play_regnum[player:get_player_name()])
end
end end
inventory_plus.set_inventory_formspec(player, set.get_formspec(player)) inventory_plus.set_inventory_formspec(player, set.get_formspec(player))
end end
@ -118,8 +124,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
player_inv:set_stack("inst", 2, nil) player_inv:set_stack("inst", 2, nil)
else else
player_inv:set_stack("music", 1, nil) player_inv:set_stack("music", 1, nil)
if sound_play_regnum ~= nil then if sound_play_regnum[player:get_player_name()] ~= nil then
minetest.sound_stop(sound_play_regnum) minetest.sound_stop(sound_play_regnum[player:get_player_name()])
end end
end end
inventory_plus.set_inventory_formspec(player, set.get_formspec(player)) inventory_plus.set_inventory_formspec(player, set.get_formspec(player))

View File

@ -145,14 +145,14 @@ inventory_plus.get_formspec = function(player,page)
return formspec return formspec
end end
-- craft page -- craft page
if page=="main" then if page=="main" or page==""then
if minetest.setting_getbool("creative_mode") then if minetest.setting_getbool("creative_mode") then
sfinv.set_player_inventory_formspec(player) sfinv.set_player_inventory_formspec(player)
return player:get_inventory_formspec() return player:get_inventory_formspec()
--.. get_buttons(6,0,2) --.. get_buttons(6,0,2)
else else
return inventory_plus.inventory[player:get_player_name()] return inventory_plus.inventory[player:get_player_name()]
.. get_buttons(0,0,3) --.. get_buttons(0,0,3)
end end
end end
end end

View File

@ -743,9 +743,10 @@ function mob_class:check_for_death(cmi_cause)
if use_cmi then if use_cmi then
cmi.notify_die(self.object, cmi_cause) cmi.notify_die(self.object, cmi_cause)
end end
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() else
self.object:remove()
end
return true return true
end end
@ -772,16 +773,20 @@ function mob_class:check_for_death(cmi_cause)
if use_cmi and self.object:get_luaentity() then if use_cmi and self.object:get_luaentity() then
cmi.notify_die(self.object, cmi_cause) cmi.notify_die(self.object, cmi_cause)
end end
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() else
self.object:remove()
end
end, self) end, self)
else else
if use_cmi then if use_cmi then
cmi.notify_die(self.object, cmi_cause) cmi.notify_die(self.object, cmi_cause)
end end
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() else
self.object:remove()
end
end end
effect(pos, 20, "tnt_smoke.png") effect(pos, 20, "tnt_smoke.png")
@ -853,23 +858,26 @@ function mob_class:do_env_damage()
-- remove mob if standing inside ignore node -- remove mob if standing inside ignore node
if self.standing_in == "ignore" then if self.standing_in == "ignore" then
self.object:remove() if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
else
self.object:remove()
end
return return
end end
-- is mob light sensative, or scared of the dark :P -- is mob light sensative, or scared of the dark :P
if self.light_damage ~= 0 then if self.light_damage ~= 0 then
local light = minetest.get_node_light(pos) or 0 local light = minetest.get_node_light(pos) or 0
if light >= self.light_damage_min if light >= self.light_damage_min
and light <= self.light_damage_max then and light <= self.light_damage_max then
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.health = self.health - self.light_damage else
self.health = self.health - self.light_damage
effect(pos, 5, "tnt_smoke.png") effect(pos, 5, "tnt_smoke.png")
if self:check_for_death({type = "light"}) then
if self:check_for_death({type = "light"}) then return end return
end
end
end end
end end
@ -880,43 +888,45 @@ function mob_class:do_env_damage()
-- water -- water
if self.water_damage if self.water_damage
and nodef.groups.water then and nodef.groups.water then
if self.water_damage ~= 0 then if self.water_damage ~= 0 then
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
else
self.health = self.health - self.water_damage
effect(pos, 5, "bubble.png", nil, nil, 1, nil)
if self:check_for_death({type = "environment",pos = pos, node = self.standing_in}) then
return
end
end
self.health = self.health - self.water_damage
effect(pos, 5, "bubble.png", nil, nil, 1, nil)
if self:check_for_death({type = "environment",
pos = pos, node = self.standing_in}) then return end
end end
-- lava or fire or ignition source -- lava or fire or ignition source
elseif self.lava_damage elseif self.lava_damage
and nodef.groups.igniter then and nodef.groups.igniter then
-- and (nodef.groups.lava -- and (nodef.groups.lava
-- or self.standing_in == node_fire -- or self.standing_in == node_fire
-- or self.standing_in == node_permanent_flame) then -- or self.standing_in == node_permanent_flame) then
if self.lava_damage ~= 0 then if self.lava_damage ~= 0 then
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.health = self.health - self.lava_damage else
self.health = self.health - self.lava_damage
effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil)
if self:check_for_death({type = "environment",pos = pos, node = self.standing_in, hot = true}) then
if self:check_for_death({type = "environment", return
pos = pos, node = self.standing_in, hot = true}) then return end end
end
end end
-- damage_per_second node check -- damage_per_second node check
elseif nodef.damage_per_second ~= 0 then elseif nodef.damage_per_second ~= 0 then
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.health = self.health - nodef.damage_per_second else
self.health = self.health - nodef.damage_per_second
effect(pos, 5, "tnt_smoke.png") effect(pos, 5, "tnt_smoke.png")
if self:check_for_death({type = "environment",pos = pos, node = self.standing_in}) then
if self:check_for_death({type = "environment", return
pos = pos, node = self.standing_in}) then return end end
end
end end
--[[ --[[
--- suffocation inside solid node --- suffocation inside solid node
@ -2218,9 +2228,10 @@ function mob_class:do_states(dtime)
node_break_radius = 1 node_break_radius = 1
end end
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() else
self.object:remove()
end
if minetest.get_modpath("tnt") and tnt and tnt.boom if minetest.get_modpath("tnt") and tnt and tnt.boom
and not minetest.is_protected(pos, "") then and not minetest.is_protected(pos, "") then
@ -2532,16 +2543,16 @@ function mob_class:falling(pos)
local d = (self.old_y or 0) - self.object:get_pos().y local d = (self.old_y or 0) - self.object:get_pos().y
if d > 5 then if d > 5 then
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.health = self.health - floor(d - 5) else
self.health = self.health - floor(d - 5)
effect(pos, 5, "tnt_smoke.png", 1, 2, 2, nil) effect(pos, 5, "tnt_smoke.png", 1, 2, 2, nil)
if self:check_for_death({type = "fall"}) then
if self:check_for_death({type = "fall"}) then return
return end
end end
end end
self.old_y = self.object:get_pos().y self.old_y = self.object:get_pos().y
end end
end end
@ -2837,8 +2848,10 @@ function mob_class:get_staticdata()
and self.lifetimer < 20000 then and self.lifetimer < 20000 then
--print ("REMOVED " .. self.name) --print ("REMOVED " .. self.name)
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() else
self.object:remove()
end
return ""-- nil return ""-- nil
end end
@ -2883,8 +2896,10 @@ function mob_class:mob_activate(staticdata, def, dtime)
-- remove monsters in peaceful mode -- remove monsters in peaceful mode
if self.type == "monster" if self.type == "monster"
and peaceful_only then and peaceful_only then
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() else
self.object:remove()
end
return return
end end
@ -3187,8 +3202,10 @@ function mob_class:mob_expire(pos, dtime)
-- S("lifetimer expired, removed @1", self.name)) -- S("lifetimer expired, removed @1", self.name))
effect(pos, 15, "tnt_smoke.png", 2, 4, 2, 0) effect(pos, 15, "tnt_smoke.png", 2, 4, 2, 0)
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() else
self.object:remove()
end
return return
end end
@ -3198,15 +3215,10 @@ end
-- main mob function -- main mob function
function mob_class:on_step(dtime) function mob_class:on_step(dtime)
self.metadata3 = self.metadata3 + dtime self.metadata3 = self.metadata3 + dtime
if self.metadata3 > 1 then if self.metadata3 > 1 then
self.metadata3 = 0 self.metadata3 = 0
if self.name == "mobs:dog" then if self.name == "mobs:dog" then
if self.owner and minetest.get_player_by_name(self.owner) then
minetest.get_player_by_name(self.owner):set_attribute("dogx", ""..math.floor(self.object:getpos().x+0.5))
minetest.get_player_by_name(self.owner):set_attribute("dogy", ""..math.floor(self.object:getpos().y+0.5))
minetest.get_player_by_name(self.owner):set_attribute("dogz", ""..math.floor(self.object:getpos().z+0.5))
end
local pos = self.object:getpos() local pos = self.object:getpos()
if minetest.get_player_by_name(self.owner) then if minetest.get_player_by_name(self.owner) then
local inv = minetest.get_player_by_name(self.owner):get_inventory() local inv = minetest.get_player_by_name(self.owner):get_inventory()
@ -3224,11 +3236,6 @@ self.metadata3 = self.metadata3 + dtime
end end
end end
if self.name == "mobs:cat" then if self.name == "mobs:cat" then
if self.owner and minetest.get_player_by_name(self.owner) then
minetest.get_player_by_name(self.owner):set_attribute("catx", ""..math.floor(self.object:getpos().x+0.5))
minetest.get_player_by_name(self.owner):set_attribute("caty", ""..math.floor(self.object:getpos().y+0.5))
minetest.get_player_by_name(self.owner):set_attribute("catz", ""..math.floor(self.object:getpos().z+0.5))
end
local pos = self.object:getpos() local pos = self.object:getpos()
if minetest.get_player_by_name(self.owner) then if minetest.get_player_by_name(self.owner) then
local inv = minetest.get_player_by_name(self.owner):get_inventory() local inv = minetest.get_player_by_name(self.owner):get_inventory()
@ -3245,304 +3252,316 @@ self.metadata3 = self.metadata3 + dtime
end end
end end
end end
if self.name == "mobs:dragon" then
if self.owner and minetest.get_player_by_name(self.owner) then if self.name == "mobs:dragon" then
minetest.get_player_by_name(self.owner):set_attribute("dragonx", ""..math.floor(self.object:getpos().x+0.5)) if self.owner and minetest.get_player_by_name(self.owner) then
minetest.get_player_by_name(self.owner):set_attribute("dragony", ""..math.floor(self.object:getpos().y+0.5)) minetest.get_player_by_name(self.owner):set_attribute("dragonx", ""..math.floor(self.object:getpos().x+0.5))
minetest.get_player_by_name(self.owner):set_attribute("dragonz", ""..math.floor(self.object:getpos().z+0.5)) minetest.get_player_by_name(self.owner):set_attribute("dragony", ""..math.floor(self.object:getpos().y+0.5))
end minetest.get_player_by_name(self.owner):set_attribute("dragonz", ""..math.floor(self.object:getpos().z+0.5))
end end
if self.name == "mobs:sheep" then end
if self.owner and minetest.get_player_by_name(self.owner) then if self.name == "mobs:sheep" then
minetest.get_player_by_name(self.owner):set_attribute("sheepx", ""..math.floor(self.object:getpos().x+0.5)) if self.owner and minetest.get_player_by_name(self.owner) then
minetest.get_player_by_name(self.owner):set_attribute("sheepy", ""..math.floor(self.object:getpos().y+0.5)) minetest.get_player_by_name(self.owner):set_attribute("sheepx", ""..math.floor(self.object:getpos().x+0.5))
minetest.get_player_by_name(self.owner):set_attribute("sheepz", ""..math.floor(self.object:getpos().z+0.5)) minetest.get_player_by_name(self.owner):set_attribute("sheepy", ""..math.floor(self.object:getpos().y+0.5))
minetest.get_player_by_name(self.owner):set_attribute("sheepz", ""..math.floor(self.object:getpos().z+0.5))
end
end end
if self.name == "mobs:fox" then end
if self.owner and minetest.get_player_by_name(self.owner) then if self.name == "mobs:fox" then
minetest.get_player_by_name(self.owner):set_attribute("foxx", ""..math.floor(self.object:getpos().x+0.5)) if self.owner and minetest.get_player_by_name(self.owner) then
minetest.get_player_by_name(self.owner):set_attribute("foxy", ""..math.floor(self.object:getpos().y+0.5)) minetest.get_player_by_name(self.owner):set_attribute("foxx", ""..math.floor(self.object:getpos().x+0.5))
minetest.get_player_by_name(self.owner):set_attribute("foxz", ""..math.floor(self.object:getpos().z+0.5)) minetest.get_player_by_name(self.owner):set_attribute("foxy", ""..math.floor(self.object:getpos().y+0.5))
end minetest.get_player_by_name(self.owner):set_attribute("foxz", ""..math.floor(self.object:getpos().z+0.5))
end end
if self.name == "mobs:tortoise" then end
if self.owner and minetest.get_player_by_name(self.owner) then if self.name == "mobs:tortoise" then
minetest.get_player_by_name(self.owner):set_attribute("tortoisex", ""..math.floor(self.object:getpos().x+0.5)) if self.owner and minetest.get_player_by_name(self.owner) then
minetest.get_player_by_name(self.owner):set_attribute("tortoisey", ""..math.floor(self.object:getpos().y+0.5)) minetest.get_player_by_name(self.owner):set_attribute("tortoisex", ""..math.floor(self.object:getpos().x+0.5))
minetest.get_player_by_name(self.owner):set_attribute("tortoisez", ""..math.floor(self.object:getpos().z+0.5)) minetest.get_player_by_name(self.owner):set_attribute("tortoisey", ""..math.floor(self.object:getpos().y+0.5))
end minetest.get_player_by_name(self.owner):set_attribute("tortoisez", ""..math.floor(self.object:getpos().z+0.5))
end end
if self.name == "mobs:knight_1248" then end
if self.owner and minetest.get_player_by_name(self.owner) then if self.name == "mobs:knight_1248" then
minetest.get_player_by_name(self.owner):set_attribute("knightx", ""..math.floor(self.object:getpos().x+0.5)) if self.owner and minetest.get_player_by_name(self.owner) then
minetest.get_player_by_name(self.owner):set_attribute("knighty", ""..math.floor(self.object:getpos().y+0.5)) minetest.get_player_by_name(self.owner):set_attribute("knightx", ""..math.floor(self.object:getpos().x+0.5))
minetest.get_player_by_name(self.owner):set_attribute("knightz", ""..math.floor(self.object:getpos().z+0.5)) minetest.get_player_by_name(self.owner):set_attribute("knighty", ""..math.floor(self.object:getpos().y+0.5))
end minetest.get_player_by_name(self.owner):set_attribute("knightz", ""..math.floor(self.object:getpos().z+0.5))
end
end
if self.name == "mobs:dog" and self.metadata2 == 1 then end
local pos = self.object:getpos()
local all_objects = minetest.get_objects_inside_radius(pos, 15) if self.name == "mobs:dog" and self.metadata2 == 1 then
local players = {} if self.owner and minetest.get_player_by_name(self.owner) then
local k = 0 minetest.get_player_by_name(self.owner):set_attribute("dogx", ""..math.floor(self.object:getpos().x+0.5))
local _,obj minetest.get_player_by_name(self.owner):set_attribute("dogy", ""..math.floor(self.object:getpos().y+0.5))
for _,obj in ipairs(all_objects) do minetest.get_player_by_name(self.owner):set_attribute("dogz", ""..math.floor(self.object:getpos().z+0.5))
if obj:is_player() then end
if self.owner == obj:get_player_name() then local pos = self.object:getpos()
k = 1 local all_objects = minetest.get_objects_inside_radius(pos, 15)
end local players = {}
end local k = 0
end local _,obj
if k == 0 then for _,obj in ipairs(all_objects) do
if minetest.get_player_by_name(self.owner) then if obj:is_player() then
self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) if self.owner == obj:get_player_name() then
end k = 1
end end
end end
if self.name == "mobs:cat" and self.metadata2 == 1 then end
local pos = self.object:getpos() if k == 0 then
local all_objects = minetest.get_objects_inside_radius(pos, 15) if minetest.get_player_by_name(self.owner) then
local players = {} self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1})
local k = 0 end
local _,obj end
for _,obj in ipairs(all_objects) do end
if obj:is_player() then if self.name == "mobs:cat" and self.metadata2 == 1 then
if self.owner == obj:get_player_name() then if self.owner and minetest.get_player_by_name(self.owner) then
k = 1 minetest.get_player_by_name(self.owner):set_attribute("catx", ""..math.floor(self.object:getpos().x+0.5))
end minetest.get_player_by_name(self.owner):set_attribute("caty", ""..math.floor(self.object:getpos().y+0.5))
end minetest.get_player_by_name(self.owner):set_attribute("catz", ""..math.floor(self.object:getpos().z+0.5))
end end
if k == 0 then local pos = self.object:getpos()
if minetest.get_player_by_name(self.owner) then local all_objects = minetest.get_objects_inside_radius(pos, 15)
self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) local players = {}
end local k = 0
end local _,obj
end for _,obj in ipairs(all_objects) do
if self.name == "mobs:dragon" and self.metadata2 == 1 then if obj:is_player() then
local pos = self.object:getpos() if self.owner == obj:get_player_name() then
local all_objects = minetest.get_objects_inside_radius(pos, 15) k = 1
local players = {} end
local k = 0 end
local _,obj end
for _,obj in ipairs(all_objects) do if k == 0 then
if obj:is_player() then if minetest.get_player_by_name(self.owner) then
if self.owner == obj:get_player_name() then self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1})
k = 1 end
end end
end end
end if self.name == "mobs:dragon" and self.metadata2 == 1 then
if k == 0 then local pos = self.object:getpos()
if self.owner then local all_objects = minetest.get_objects_inside_radius(pos, 15)
if minetest.get_player_by_name(self.owner) then local players = {}
minetest.get_player_by_name(self.owner):get_inventory():set_size("dragon2",1) local k = 0
self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) local _,obj
local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon2", 1):get_count() for _,obj in ipairs(all_objects) do
if numd > 50 then if obj:is_player() then
if minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon", 1):get_name() == "tutorial:dragon_crystal" then if self.owner == obj:get_player_name() then
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem") k = 1
else end
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_dragon") end
end end
minetest.get_player_by_name(self.owner):get_inventory():set_stack("dragon2", 1, "") if k == 0 then
else if self.owner then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("dragon2", 1, "default:dirt "..1+numd) if minetest.get_player_by_name(self.owner) then
end minetest.get_player_by_name(self.owner):get_inventory():set_size("dragon2",1)
end self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1})
end local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon2", 1):get_count()
end if numd > 50 then
end if minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon", 1):get_name() == "tutorial:dragon_crystal" then
if self.name == "mobs:sheep" and self.metadata2 == 1 then minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem")
local pos = self.object:getpos() else
local all_objects = minetest.get_objects_inside_radius(pos, 15) minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_dragon")
local players = {} end
local k = 0 minetest.get_player_by_name(self.owner):get_inventory():set_stack("dragon2", 1, "")
local _,obj else
for _,obj in ipairs(all_objects) do minetest.get_player_by_name(self.owner):get_inventory():set_stack("dragon2", 1, "default:dirt "..1+numd)
if obj:is_player() then end
if self.owner == obj:get_player_name() then end
k = 1 end
end end
end end
end if self.name == "mobs:sheep" and self.metadata2 == 1 then
if k == 0 then local pos = self.object:getpos()
if self.owner then local all_objects = minetest.get_objects_inside_radius(pos, 15)
if minetest.get_player_by_name(self.owner) then local players = {}
minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep2",1) local k = 0
minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep3",1) local _,obj
self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) for _,obj in ipairs(all_objects) do
local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep2", 1):get_count() if obj:is_player() then
if numd > 50 then if self.owner == obj:get_player_name() then
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep3", 1)) k = 1
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "") end
else end
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "default:dirt "..1+numd) end
end if k == 0 then
end if self.owner then
end if minetest.get_player_by_name(self.owner) then
end minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep2",1)
end minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep3",1)
if self.name == "mobs:knight_1248" and self.metadata2 == 1 then self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1})
local pos = self.object:getpos() local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep2", 1):get_count()
local all_objects = minetest.get_objects_inside_radius(pos, 15) if numd > 50 then
local players = {} minetest.get_player_by_name(self.owner):get_inventory():add_item("main", minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep3", 1))
local k = 0 minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "")
local _,obj else
for _,obj in ipairs(all_objects) do minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "default:dirt "..1+numd)
if obj:is_player() then end
if self.owner == obj:get_player_name() then end
k = 1 end
end end
end end
end if self.name == "mobs:knight_1248" and self.metadata2 == 1 then
if k == 0 then local pos = self.object:getpos()
if minetest.get_player_by_name(self.owner) then local all_objects = minetest.get_objects_inside_radius(pos, 15)
self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) local players = {}
end local k = 0
end local _,obj
end for _,obj in ipairs(all_objects) do
if self.name == "mobs:fox" and self.metadata2 == 1 then if obj:is_player() then
local pos = self.object:getpos() if self.owner == obj:get_player_name() then
local all_objects = minetest.get_objects_inside_radius(pos, 15) k = 1
local players = {} end
local k = 0 end
local _,obj end
for _,obj in ipairs(all_objects) do if k == 0 then
if obj:is_player() then if minetest.get_player_by_name(self.owner) then
if self.owner == obj:get_player_name() then self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1})
k = 1 end
end end
end end
end if self.name == "mobs:fox" and self.metadata2 == 1 then
if k == 0 then local pos = self.object:getpos()
if self.owner then local all_objects = minetest.get_objects_inside_radius(pos, 15)
if minetest.get_player_by_name(self.owner) then local players = {}
minetest.get_player_by_name(self.owner):get_inventory():set_size("fox",1) local k = 0
minetest.get_player_by_name(self.owner):get_inventory():set_size("foxfox",1) local _,obj
minetest.get_player_by_name(self.owner):get_inventory():set_size("r1248",6) for _,obj in ipairs(all_objects) do
self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) if obj:is_player() then
local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("fox", 1):get_count() if self.owner == obj:get_player_name() then
if numd == 50 then k = 1
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:fox_schluessel") end
minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt 80") end
elseif numd == 80 then end
else if k == 0 then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt "..1+numd) if self.owner then
end if minetest.get_player_by_name(self.owner) then
local numdd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("foxfox", 1):get_count() minetest.get_player_by_name(self.owner):get_inventory():set_size("fox",1)
if numdd == 256 then minetest.get_player_by_name(self.owner):get_inventory():set_size("foxfox",1)
local ra = math.random(6) minetest.get_player_by_name(self.owner):get_inventory():set_size("r1248",6)
if ra == 1 then self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1})
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 1, "default:dirt") local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("fox", 1):get_count()
elseif ra == 2 then if numd == 50 then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 2, "default:dirt") minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:fox_schluessel")
elseif ra == 3 then minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt 80")
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 3, "default:dirt") elseif numd == 80 then
elseif ra == 4 then else
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 4, "default:dirt") minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt "..1+numd)
elseif ra == 5 then end
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 5, "default:dirt") local numdd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("foxfox", 1):get_count()
elseif ra == 6 then if numdd == 256 then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 6, "default:dirt") local ra = math.random(6)
end if ra == 1 then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "") minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 1, "default:dirt")
else elseif ra == 2 then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "default:dirt "..1+numdd) minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 2, "default:dirt")
end elseif ra == 3 then
end minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 3, "default:dirt")
end elseif ra == 4 then
end minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 4, "default:dirt")
end elseif ra == 5 then
if self.name == "mobs:tortoise" and self.metadata2 == 1 then minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 5, "default:dirt")
local pos = self.object:getpos() elseif ra == 6 then
local all_objects = minetest.get_objects_inside_radius(pos, 15) minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 6, "default:dirt")
local players = {} end
local k = 0 minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "")
local _,obj else
for _,obj in ipairs(all_objects) do minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "default:dirt "..1+numdd)
if obj:is_player() then end
if self.owner == obj:get_player_name() then end
k = 1 end
end end
end end
end if self.name == "mobs:tortoise" and self.metadata2 == 1 then
if k == 0 then local pos = self.object:getpos()
if minetest.get_player_by_name(self.owner) then local all_objects = minetest.get_objects_inside_radius(pos, 15)
self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) local players = {}
minetest.get_player_by_name(self.owner):get_inventory():set_size("tortoise2",1) local k = 0
local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise2", 1):get_count() local _,obj
if numd > 50 then for _,obj in ipairs(all_objects) do
if minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise", 1):get_name() == "tutorial:dragon_crystal" then if obj:is_player() then
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem2") if self.owner == obj:get_player_name() then
else k = 1
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_tortoise") end
end end
minetest.get_player_by_name(self.owner):get_inventory():set_stack("tortoise2", 1, "") end
else if k == 0 then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("tortoise2", 1, "default:dirt "..1+numd) if minetest.get_player_by_name(self.owner) then
end self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1})
end minetest.get_player_by_name(self.owner):get_inventory():set_size("tortoise2",1)
end local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise2", 1):get_count()
end if numd > 50 then
if self.name == "mobs:sheep" then if minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise", 1):get_name() == "tutorial:dragon_crystal" then
if self.owner then minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem2")
self.object:set_properties({infotext=self.owner.."'s Sheep"}) else
if minetest.get_player_by_name(self.owner) then minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_tortoise")
local col = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep", 1):get_name() end
if col == "dye:white" then minetest.get_player_by_name(self.owner):get_inventory():set_stack("tortoise2", 1, "")
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:white") else
self.object:set_properties({textures={"mobs_sheep_white.png"}}) minetest.get_player_by_name(self.owner):get_inventory():set_stack("tortoise2", 1, "default:dirt "..1+numd)
elseif col == "dye:grey" then end
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:grey") end
self.object:set_properties({textures={"mobs_sheep_grey.png"}}) end
elseif col == "dye:dark_grey" then end
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:dark_grey") if self.name == "mobs:sheep" then
self.object:set_properties({textures={"mobs_sheep_dark_grey.png"}}) if self.owner then
elseif col == "dye:black" then self.object:set_properties({infotext=self.owner.."'s Sheep"})
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:black") if minetest.get_player_by_name(self.owner) then
self.object:set_properties({textures={"mobs_sheep_black.png"}}) local col = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep", 1):get_name()
elseif col == "dye:violet" then if col == "dye:white" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:violet") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:white")
self.object:set_properties({textures={"mobs_sheep_violet.png"}}) self.object:set_properties({textures={"mobs_sheep_white.png"}})
elseif col == "dye:blue" then elseif col == "dye:grey" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:blue") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:grey")
self.object:set_properties({textures={"mobs_sheep_blue.png"}}) self.object:set_properties({textures={"mobs_sheep_grey.png"}})
elseif col == "dye:cyan" then elseif col == "dye:dark_grey" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:cyan") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:dark_grey")
self.object:set_properties({textures={"mobs_sheep_cyan.png"}}) self.object:set_properties({textures={"mobs_sheep_dark_grey.png"}})
elseif col == "dye:dark_green" then elseif col == "dye:black" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:dark_green") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:black")
self.object:set_properties({textures={"mobs_sheep_dark_green.png"}}) self.object:set_properties({textures={"mobs_sheep_black.png"}})
elseif col == "dye:green" then elseif col == "dye:violet" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:green") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:violet")
self.object:set_properties({textures={"mobs_sheep_green.png"}}) self.object:set_properties({textures={"mobs_sheep_violet.png"}})
elseif col == "dye:yellow" then elseif col == "dye:blue" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:yellow") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:blue")
self.object:set_properties({textures={"mobs_sheep_yellow.png"}}) self.object:set_properties({textures={"mobs_sheep_blue.png"}})
elseif col == "dye:brown" then elseif col == "dye:cyan" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:brown") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:cyan")
self.object:set_properties({textures={"mobs_sheep_brown.png"}}) self.object:set_properties({textures={"mobs_sheep_cyan.png"}})
elseif col == "dye:orange" then elseif col == "dye:dark_green" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:orange") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:dark_green")
self.object:set_properties({textures={"mobs_sheep_orange.png"}}) self.object:set_properties({textures={"mobs_sheep_dark_green.png"}})
elseif col == "dye:red" then elseif col == "dye:green" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:red") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:green")
self.object:set_properties({textures={"mobs_sheep_red.png"}}) self.object:set_properties({textures={"mobs_sheep_green.png"}})
elseif col == "dye:magenta" then elseif col == "dye:yellow" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:magenta") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:yellow")
self.object:set_properties({textures={"mobs_sheep_magenta.png"}}) self.object:set_properties({textures={"mobs_sheep_yellow.png"}})
elseif col == "dye:pink" then elseif col == "dye:brown" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:pink") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:brown")
self.object:set_properties({textures={"mobs_sheep_pink.png"}}) self.object:set_properties({textures={"mobs_sheep_brown.png"}})
else elseif col == "dye:orange" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"") minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:orange")
self.object:set_properties({textures={"mobs_sheep.png"}}) self.object:set_properties({textures={"mobs_sheep_orange.png"}})
end elseif col == "dye:red" then
end minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:red")
end self.object:set_properties({textures={"mobs_sheep_red.png"}})
end elseif col == "dye:magenta" then
end minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:magenta")
self.object:set_properties({textures={"mobs_sheep_magenta.png"}})
elseif col == "dye:pink" then
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:pink")
self.object:set_properties({textures={"mobs_sheep_pink.png"}})
else
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"")
self.object:set_properties({textures={"mobs_sheep.png"}})
end
end
end
end
end
if use_cmi then if use_cmi then
cmi.notify_step(self.object, dtime) cmi.notify_step(self.object, dtime)
end end
@ -4415,8 +4434,10 @@ function mobs:register_arrow(name, def)
if self.switch == 0 if self.switch == 0
or self.timer > 150 then or self.timer > 150 then
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() ; -- print ("removed arrow") else
self.object:remove() ; -- print ("removed arrow")
end
return return
end end
@ -4454,8 +4475,10 @@ function mobs:register_arrow(name, def)
minetest.add_item(self.lastpos, self.object:get_luaentity().name) minetest.add_item(self.lastpos, self.object:get_luaentity().name)
end end
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() ; -- print ("hit node") else
self.object:remove() ; -- print ("hit node")
end
return return
end end
@ -4469,7 +4492,10 @@ function mobs:register_arrow(name, def)
and player:is_player() then and player:is_player() then
self:hit_player(player) self:hit_player(player)
self.object:remove() ; -- print ("hit player") if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
else
self.object:remove() ; -- print ("hit player")
end
return return
end end
@ -4482,8 +4508,10 @@ function mobs:register_arrow(name, def)
and entity.name ~= self.object:get_luaentity().name then and entity.name ~= self.object:get_luaentity().name then
self:hit_mob(player) self:hit_mob(player)
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() ; --print ("hit mob") else
self.object:remove() ; --print ("hit mob")
end
return return
end end
@ -4685,8 +4713,10 @@ function mobs:force_capture(self, clicker)
else else
minetest.add_item(clicker:get_pos(), new_stack) minetest.add_item(clicker:get_pos(), new_stack)
end end
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() else
self.object:remove()
end
self:mob_sound("default_place_node_hard") self:mob_sound("default_place_node_hard")
end end
@ -4799,8 +4829,10 @@ function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso,
else else
minetest.add_item(clicker:get_pos(), new_stack) minetest.add_item(clicker:get_pos(), new_stack)
end end
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() else
self.object:remove()
end
self:mob_sound("default_place_node_hard") self:mob_sound("default_place_node_hard")
@ -5033,8 +5065,10 @@ function mobs:alias_mob(old_name, new_name)
if minetest.registered_entities[new_name] then if minetest.registered_entities[new_name] then
minetest.add_entity(self.object:get_pos(), new_name) minetest.add_entity(self.object:get_pos(), new_name)
end end
if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then
self.object:remove() else
self.object:remove()
end
end end
}) })
end end

File diff suppressed because it is too large Load Diff

View File

@ -12,6 +12,7 @@ mobs:register_mob("mobs:cat", {
visual = "mesh", visual = "mesh",
mesh = "mobs_kitten.b3d", mesh = "mobs_kitten.b3d",
attacks_monsters = true, attacks_monsters = true,
attack_npcs = false,
textures = { textures = {
{"mobs_kitten.png"}, {"mobs_kitten.png"},
}, },

View File

@ -12,6 +12,7 @@ mobs:register_mob("mobs:dog", {
visual = "mesh", visual = "mesh",
mesh = "mobs_dog.b3d", mesh = "mobs_dog.b3d",
attacks_monsters = true, attacks_monsters = true,
attack_npcs = false,
textures = { textures = {
{"mobs_dog.png"}, {"mobs_dog.png"},
}, },

View File

@ -12,6 +12,7 @@ mobs:register_mob("mobs:dragon", {
visual = "mesh", visual = "mesh",
mesh = "mobs_dragon.b3d", mesh = "mobs_dragon.b3d",
attacks_monsters = true, attacks_monsters = true,
attack_npcs = false,
textures = { textures = {
{"mobs_dragon_red.png"}, {"mobs_dragon_red.png"},
}, },

View File

@ -12,6 +12,7 @@ mobs:register_mob("mobs:fox", {
visual = "mesh", visual = "mesh",
mesh = "mobs_fox.b3d", mesh = "mobs_fox.b3d",
attacks_monsters = false, attacks_monsters = false,
attack_npcs = false,
textures = { textures = {
{"mobs_fox1.png"}, {"mobs_fox1.png"},
}, },

View File

@ -8,4 +8,5 @@ dofile(path.."/dragon.lua")
dofile(path.."/fox.lua") dofile(path.."/fox.lua")
dofile(path.."/tortoise.lua") dofile(path.."/tortoise.lua")
dofile(path.."/knight.lua") dofile(path.."/knight.lua")
dofile(path.."/monsterx1.lua") dofile(path.."/monsterx1.lua")
dofile(path.."/mummy.lua")

View File

@ -12,6 +12,7 @@ mobs:register_mob("mobs:knight_1248", {
visual = "mesh", visual = "mesh",
mesh = "mobs_1248_knight.b3d", mesh = "mobs_1248_knight.b3d",
attacks_monsters = true, attacks_monsters = true,
attack_npcs = false,
textures = { textures = {
{"mobs_1248_knight.png"}, {"mobs_1248_knight.png"},
}, },

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,7 @@ mobs:register_mob("mobs:red_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -48,6 +49,7 @@ mobs:register_mob("mobs:blue_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -94,6 +96,7 @@ mobs:register_mob("mobs:cyan_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -140,6 +143,7 @@ mobs:register_mob("mobs:green2_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -186,6 +190,7 @@ mobs:register_mob("mobs:yellow_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -232,6 +237,7 @@ mobs:register_mob("mobs:purple_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -277,6 +283,7 @@ mobs:register_mob("mobs:stone_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -331,6 +338,7 @@ mobs:register_mob("mobs:dirt_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -385,6 +393,7 @@ mobs:register_mob("mobs:sand_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -439,6 +448,7 @@ mobs:register_mob("mobs:silver_sand_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -493,6 +503,7 @@ mobs:register_mob("mobs:desert_sand_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -547,6 +558,7 @@ mobs:register_mob("mobs:desert_stone_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -601,6 +613,7 @@ mobs:register_mob("mobs:snow_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -655,6 +668,7 @@ mobs:register_mob("mobs:ice_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -709,6 +723,7 @@ mobs:register_mob("mobs:green_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -763,6 +778,7 @@ mobs:register_mob("mobs:dry_grass_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,
@ -817,6 +833,7 @@ mobs:register_mob("mobs:rainforest_litter_monster", {
type = "monster", type = "monster",
passive = false, passive = false,
attack_type = "dogfight", attack_type = "dogfight",
attack_npcs = false,
damage = 1, damage = 1,
hp_min = 4, hp_min = 4,
hp_max = 8, hp_max = 8,

51
mods/mobs/mummy.lua Normal file
View File

@ -0,0 +1,51 @@
mobs:register_mob("mobs:mummy", {
type = "monster",
passive = false,
attack_type = "dogfight",
attack_npcs = false,
damage = 10,
hp_min = 500,
hp_max = 500,
armor = 100,
visual_size = {x=8, y=8},
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4},
visual = "mesh",
mesh = "mobs_mummy.x",
textures = {
{"mobs_mummy.png"},
},
makes_footstep_sound = true,
sounds = {
random = "mobs_mummy",
death = "mobs_mummy_death",
},
view_range = 15,
walk_velocity = 1,
run_velocity = 5,
jump = true,
drops = {
{name = "tutorial:geschenkpapier 50",
chance = 1,
min = 1,
max = 1},
},
water_damage = 1,
lava_damage = 5,
light_damage = 0,
animation = {
speed_normal = 74,
speed_run = 15,
stand_start = 74,
stand_end = 74,
walk_start = 74,
walk_end = 105,
run_start = 74,
run_end = 105,
punch_start = 74,
punch_end = 105,
},
})

View File

@ -12,6 +12,7 @@ mobs:register_mob("mobs:sheep", {
visual = "mesh", visual = "mesh",
mesh = "mobs_sheep.x", mesh = "mobs_sheep.x",
attacks_monsters = false, attacks_monsters = false,
attack_npcs = false,
textures = { textures = {
{"mobs_sheep.png"}, {"mobs_sheep.png"},
}, },

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 323 B

After

Width:  |  Height:  |  Size: 323 B

View File

@ -12,6 +12,7 @@ mobs:register_mob("mobs:tortoise", {
visual = "mesh", visual = "mesh",
mesh = "mobs_tortoise.b3d", mesh = "mobs_tortoise.b3d",
attacks_monsters = false, attacks_monsters = false,
attack_npcs = false,
textures = { textures = {
{"mobs_tortoise.png"}, {"mobs_tortoise.png"},
}, },

View File

@ -13,9 +13,9 @@ minetest.register_craft( {
minetest.register_craft( { minetest.register_craft( {
output = "pipeworks:tube_1 64", output = "pipeworks:tube_1 64",
recipe = { recipe = {
{ "gems:ruby_gem", "gems:ruby_gem", "gems:ruby_gem" },
{ "", "", "" }, { "", "", "" },
{ "", "", "" }, { "gems:ruby_gem", "gems:ruby_gem", "gems:ruby_gem" }
{ "gems:pearl_gem", "gems:pearl_gem", "gems:pearl_gem" }
}, },
}) })
@ -27,8 +27,8 @@ minetest.register_craft( {
output = "pipeworks:mese_sand_tube_1 2", output = "pipeworks:mese_sand_tube_1 2",
recipe = { recipe = {
{ "gems:pearl_gem", "gems:pearl_gem", "gems:pearl_gem" }, { "gems:pearl_gem", "gems:pearl_gem", "gems:pearl_gem" },
{ "gems:pearl_gem", "gems:pearl_gem", "gems:pearl_gem" }, { "", "", "" },
{ "", "", "" } { "gems:pearl_gem", "gems:pearl_gem", "gems:pearl_gem" }
}, },
}) })

View File

@ -38,12 +38,3 @@ minetest.register_node("pipeworks:trashcan", {
minetest.get_meta(pos):get_inventory():set_stack(listname, index, ItemStack("")) minetest.get_meta(pos):get_inventory():set_stack(listname, index, ItemStack(""))
end, end,
}) })
minetest.register_craft({
output = "pipeworks:trashcan",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "default:steel_ingot", "", "default:steel_ingot" },
{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" },
},
})

View File

@ -320,8 +320,17 @@ if pipeworks.enable_node_breaker then
virtplayer:set_wielded_item(on_use(wieldstack, virtplayer, pointed_thing) or wieldstack) virtplayer:set_wielded_item(on_use(wieldstack, virtplayer, pointed_thing) or wieldstack)
else else
local under_node = minetest.get_node(pointed_thing.under) local under_node = minetest.get_node(pointed_thing.under)
local on_dig = (minetest.registered_nodes[under_node.name] or {on_dig=minetest.node_dig}).on_dig local array = {"tutorial:stone_with_titan","tutorial:stone_with_regnum","tutorial:stone_with_blau","tutorial:stone_with_rot","tutorial:stone_with_titan","tutorial:arena_glass","tutorial:arena_block","tutorial:stone_with_admin","tutorial:stone_with_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:","tutorial:","tutorial:"}
on_dig(pointed_thing.under, under_node, virtplayer) local d = 0
for index, value in ipairs(array) do
if value == under_node.name then
d = 1
end
end
if d == 0 then
local on_dig = (minetest.registered_nodes[under_node.name] or {on_dig=minetest.node_dig}).on_dig
on_dig(pointed_thing.under, under_node, virtplayer)
end
end end
wieldstack = virtplayer:get_wielded_item() wieldstack = virtplayer:get_wielded_item()
local wieldname = wieldstack:get_name() local wieldname = wieldstack:get_name()

View File

@ -16,6 +16,8 @@ sfinv.register_page("sfinv:crafting", {
listring[current_player;craft] listring[current_player;craft]
image_button[0,0;1.6,1.6;inventory_plus_inven.png;inven;] image_button[0,0;1.6,1.6;inventory_plus_inven.png;inven;]
label[0.3,1.5;selection] label[0.3,1.5;selection]
button[6.6,1.4;1.5,0.5;craft10;Craft (10)]
button[6.6,2.2;1.5,0.5;craft99;Craft (99)]
]], true) ]], true)
end end
}) })

View File

@ -138,7 +138,7 @@ skins.formspec.main = function(name)
else else
formspec = formspec .. "button[0,4.7;1,.5;skins_page_"..page..";<<]" formspec = formspec .. "button[0,4.7;1,.5;skins_page_"..page..";<<]"
end end
formspec = formspec .. "button[.75,4.7;6.5,.5;skins_page_"..page..";Page "..(page+1).."/"..math.floor(#skins.list/8+1).."]" -- a button is used so text is centered formspec = formspec .. "button[.75,4.7;6.5,.5;skins_page_"..page..";Page "..(page+1).."/"..math.floor(#skins.list/8).."]" -- a button is used so text is centered
if index > 8 then if index > 8 then
formspec = formspec .. "button[7,4.7;1,.5;skins_page_"..(page+1)..";>>]" formspec = formspec .. "button[7,4.7;1,.5;skins_page_"..(page+1)..";>>]"
else else

View File

@ -1,20 +1,5 @@
-- tubes crafting recipes
minetest.register_craft({
output = 'pipeworks:accelerator_tube_1',
recipe = {
{'technic:copper_coil', 'pipeworks:tube_1', 'technic:copper_coil'},
}
})
minetest.register_craft({
output = 'pipeworks:teleport_tube_1',
recipe = {
{'default:mese_crystal', 'technic:copper_coil', 'default:mese_crystal'},
{'pipeworks:tube_1', 'technic:control_logic_unit', 'pipeworks:tube_1'},
{'default:mese_crystal', 'technic:copper_coil', 'default:mese_crystal'},
}
})
-- Remove some recipes -- Remove some recipes
-- Bronze -- Bronze
minetest.register_craft({ minetest.register_craft({
@ -23,23 +8,5 @@ minetest.register_craft({
recipe = {"default:copper_ingot", "default:steel_ingot"} recipe = {"default:copper_ingot", "default:steel_ingot"}
}) })
-- Accelerator tube
minetest.register_craft({
output = "pipeworks:accelerator_tube_1 0",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "default:mese_crystal_fragment", "default:steel_ingot", "default:mese_crystal_fragment" },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
},
})
-- Teleport tube
minetest.register_craft({
output = "pipeworks:teleport_tube_1 0",
recipe = {
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
{ "default:desert_stone", "default:mese_block", "default:desert_stone" },
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
},
})

View File

@ -62,7 +62,7 @@ minetest.register_node("technic:supply_converter", {
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("infotext", S("Supply Converter")) meta:set_string("infotext", S("Supply Converter"))
meta:set_float("active", false) meta:set_float("active", 0)
end, end,
technic_run = run, technic_run = run,
}) })

View File

@ -21,6 +21,8 @@ local function drill_dig_it0 (pos,player)
if node.name == "default:lava_source" then return end if node.name == "default:lava_source" then return end
if node.name == "default:lava_flowing" then return end if node.name == "default:lava_flowing" then return end
if node.name == "tutorial:stone_with_titan" then return end if node.name == "tutorial:stone_with_titan" then return end
if node.name == "tutorial:stone_with_rot" then return end
if node.name == "tutorial:stone_with_blau" then return end
if node.name == "default:water_source" then minetest.remove_node(pos) return end if node.name == "default:water_source" then minetest.remove_node(pos) return end
if node.name == "default:water_flowing" then minetest.remove_node(pos) return end if node.name == "default:water_flowing" then minetest.remove_node(pos) return end
minetest.node_dig(pos,node,player) minetest.node_dig(pos,node,player)
@ -302,6 +304,7 @@ minetest.register_tool("technic:mining_drill", {
description = S("Mining Drill Mk%d"):format(1), description = S("Mining Drill Mk%d"):format(1),
inventory_image = "technic_mining_drill.png", inventory_image = "technic_mining_drill.png",
wear_represents = "technic_RE_charge", wear_represents = "technic_RE_charge",
groups = {not_in_creative_inventory=1},
on_refill = technic.refill_RE_charge, on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
mining_drill_mk1_handler(itemstack, user, pointed_thing) mining_drill_mk1_handler(itemstack, user, pointed_thing)
@ -330,6 +333,7 @@ minetest.register_tool("technic:mining_drill_mk2", {
description = S("Mining Drill Mk%d"):format(2), description = S("Mining Drill Mk%d"):format(2),
inventory_image = "technic_mining_drill_mk2.png", inventory_image = "technic_mining_drill_mk2.png",
wear_represents = "technic_RE_charge", wear_represents = "technic_RE_charge",
groups = {not_in_creative_inventory=1},
on_refill = technic.refill_RE_charge, on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
mining_drill_mk_handler(itemstack, user, pointed_thing) mining_drill_mk_handler(itemstack, user, pointed_thing)
@ -359,6 +363,7 @@ minetest.register_tool("technic:mining_drill_mk3", {
description = S("Mining Drill Mk%d"):format(3), description = S("Mining Drill Mk%d"):format(3),
inventory_image = "technic_mining_drill_mk3.png", inventory_image = "technic_mining_drill_mk3.png",
wear_represents = "technic_RE_charge", wear_represents = "technic_RE_charge",
groups = {not_in_creative_inventory=1},
on_refill = technic.refill_RE_charge, on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
mining_drill_mk_handler(itemstack,user,pointed_thing) mining_drill_mk_handler(itemstack,user,pointed_thing)
@ -592,72 +597,125 @@ local mining_drill_list = {
{"150", 2000000, 1}, {"150", 2000000, 1},
} }
for _, m in pairs(mining_drill_list) do for _, m in pairs(mining_drill_list) do
technic.register_power_tool("technic:drill_mkS"..m[1], m[2]) if tonumber(m[1]) < 150 then
minetest.register_tool("technic:drill_mkS"..m[1], { technic.register_power_tool("technic:drill_mkS"..m[1], m[2])
description = "Spezial Mining drill lv."..m[1], minetest.register_tool("technic:drill_mkS"..m[1], {
inventory_image = "technic_mining_drill_mkS"..m[1]..".png", description = "Spezial Mining drill lv."..m[1],
wear_represents = "technic_RE_charge", inventory_image = "technic_mining_drill_mkS"..m[1]..".png",
on_refill = technic.refill_RE_charge, wear_represents = "technic_RE_charge",
on_use = function(itemstack, user, pointed_thing) on_refill = technic.refill_RE_charge,
local keys = user:get_player_control() groups = {not_in_creative_inventory=1},
local player_name = user:get_player_name() on_use = function(itemstack, user, pointed_thing)
local meta = minetest.deserialize(itemstack:get_metadata()) local keys = user:get_player_control()
if not meta or not meta.mode or keys.sneak then local player_name = user:get_player_name()
return mining_drill_setmode(user, itemstack) local meta = minetest.deserialize(itemstack:get_metadata())
end if not meta or not meta.mode or keys.sneak then
if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) or not meta.charge then return mining_drill_setmode(user, itemstack)
return end
end if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) or not meta.charge then
local items = user:get_wielded_item():get_name() return
local charge_to_take = m[3] end
if meta.charge >= charge_to_take then local items = user:get_wielded_item():get_name()
local pos = minetest.get_pointed_thing_position(pointed_thing, above) local charge_to_take = m[3]
drill_dig_it(pos, user, meta.mode) if meta.charge >= charge_to_take then
meta.charge = meta.charge - charge_to_take local pos = minetest.get_pointed_thing_position(pointed_thing, above)
itemstack:set_metadata(minetest.serialize(meta)) drill_dig_it(pos, user, meta.mode)
technic.set_RE_wear(itemstack, meta.charge, m[2]) meta.charge = meta.charge - charge_to_take
print(m[2]) itemstack:set_metadata(minetest.serialize(meta))
print(m[3]) technic.set_RE_wear(itemstack, meta.charge, m[2])
print(meta.charge) print(m[2])
end print(m[3])
return itemstack print(meta.charge)
end, end
}) return itemstack
for i=1,5,1 do end,
technic.register_power_tool("technic:drill_mkS"..m[1].."_"..i, m[2]) })
minetest.register_tool("technic:drill_mkS"..m[1].."_"..i, { for i=1,5,1 do
description = "Spezial Mining drill lv."..m[1].." Mode "..i, technic.register_power_tool("technic:drill_mkS"..m[1].."_"..i, m[2])
inventory_image = "technic_mining_drill_mkS"..m[1]..".png^technic_tool_mode"..i..".png", minetest.register_tool("technic:drill_mkS"..m[1].."_"..i, {
wield_image = "technic_mining_drill_mkS"..m[1]..".png", description = "Spezial Mining drill lv."..m[1].." Mode "..i,
wear_represents = "technic_RE_charge", inventory_image = "technic_mining_drill_mkS"..m[1]..".png^technic_tool_mode"..i..".png",
on_refill = technic.refill_RE_charge, wield_image = "technic_mining_drill_mkS"..m[1]..".png",
groups = {not_in_creative_inventory=1}, wear_represents = "technic_RE_charge",
on_use = function(itemstack, user, pointed_thing) on_refill = technic.refill_RE_charge,
local keys = user:get_player_control() groups = {not_in_creative_inventory=1},
local player_name = user:get_player_name() on_use = function(itemstack, user, pointed_thing)
local meta = minetest.deserialize(itemstack:get_metadata()) local keys = user:get_player_control()
if not meta or not meta.mode or keys.sneak then local player_name = user:get_player_name()
return mining_drill_setmode(user, itemstack) local meta = minetest.deserialize(itemstack:get_metadata())
end if not meta or not meta.mode or keys.sneak then
if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) or not meta.charge then return mining_drill_setmode(user, itemstack)
return end
end if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) or not meta.charge then
local items = user:get_wielded_item():get_name() return
local charge_to_take = m[3] end
if meta.charge >= charge_to_take then local items = user:get_wielded_item():get_name()
local pos = minetest.get_pointed_thing_position(pointed_thing, above) local charge_to_take = m[3]
drill_dig_it(pos, user, meta.mode) if meta.charge >= charge_to_take then
meta.charge = meta.charge - charge_to_take local pos = minetest.get_pointed_thing_position(pointed_thing, above)
itemstack:set_metadata(minetest.serialize(meta)) drill_dig_it(pos, user, meta.mode)
technic.set_RE_wear(itemstack, meta.charge, m[2]) meta.charge = meta.charge - charge_to_take
print(m[2]) itemstack:set_metadata(minetest.serialize(meta))
print(m[3]) technic.set_RE_wear(itemstack, meta.charge, m[2])
print(meta.charge) print(m[2])
end print(m[3])
return itemstack print(meta.charge)
end, end
}) return itemstack
end end,
})
end
else
technic.register_power_tool("technic:drill_mkS"..m[1], m[2])
minetest.register_tool("technic:drill_mkS"..m[1], {
description = "Spezial Mining drill lv.MAX",
inventory_image = "technic_mining_drill_mkS"..m[1]..".png",
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control()
local player_name = user:get_player_name()
local meta = minetest.deserialize(itemstack:get_metadata())
if not meta or not meta.mode or keys.sneak then
return mining_drill_setmode(user, itemstack)
end
if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) then
return
end
local items = user:get_wielded_item():get_name()
local pos = minetest.get_pointed_thing_position(pointed_thing, above)
drill_dig_it(pos, user, meta.mode)
return itemstack
end,
})
for i=1,5,1 do
technic.register_power_tool("technic:drill_mkS"..m[1].."_"..i, m[2])
minetest.register_tool("technic:drill_mkS"..m[1].."_"..i, {
description = "Spezial Mining drill lv.MAX Mode "..i,
inventory_image = "technic_mining_drill_mkS"..m[1]..".png^technic_tool_mode"..i..".png",
wield_image = "technic_mining_drill_mkS"..m[1]..".png",
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control()
local player_name = user:get_player_name()
local meta = minetest.deserialize(itemstack:get_metadata())
if not meta or not meta.mode or keys.sneak then
return mining_drill_setmode(user, itemstack)
end
if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) then
return
end
local items = user:get_wielded_item():get_name()
local pos = minetest.get_pointed_thing_position(pointed_thing, above)
drill_dig_it(pos, user, meta.mode)
return itemstack
end,
})
end
end
end end
minetest.register_craft({ minetest.register_craft({

View File

@ -90,6 +90,9 @@ local no_destroy = {
["air"] = true, ["air"] = true,
["default:lava_source"] = true, ["default:lava_source"] = true,
["default:lava_flowing"] = true, ["default:lava_flowing"] = true,
["tutorial:stone_with_rot"] = true,
["tutorial:stone_with_blau"] = true,
["tutorial:stone_with_titan"] = true,
} }
local function laser_shoot(player, range, particle_texture, sound) local function laser_shoot(player, range, particle_texture, sound)
local player_pos = player:getpos() local player_pos = player:getpos()
@ -129,6 +132,7 @@ for _, m in pairs(mining_lasers_list) do
minetest.register_tool("technic:laser_mk"..m[1], { minetest.register_tool("technic:laser_mk"..m[1], {
description = S("Mining Laser Mk%d"):format(m[1]), description = S("Mining Laser Mk%d"):format(m[1]),
inventory_image = "technic_mining_laser_mk"..m[1]..".png", inventory_image = "technic_mining_laser_mk"..m[1]..".png",
groups = {not_in_creative_inventory=1},
stack_max = 1, stack_max = 1,
wear_represents = "technic_RE_charge", wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge, on_refill = technic.refill_RE_charge,
@ -306,29 +310,45 @@ local mining_lasers_list2 = {
for _, m in pairs(mining_lasers_list2) do for _, m in pairs(mining_lasers_list2) do
technic.register_power_tool("technic:laser_mkS"..m[1], m[3]) if tonumber(m[1]) < 150 then
minetest.register_tool("technic:laser_mkS"..m[1], { technic.register_power_tool("technic:laser_mkS"..m[1], m[3])
description = S("Spezial Mining Laser lv.%d"):format(m[1]), minetest.register_tool("technic:laser_mkS"..m[1], {
inventory_image = "technic_mining_laser_mkS"..m[1]..".png", description = S("Spezial Mining Laser lv.%d"):format(m[1]),
stack_max = 1, inventory_image = "technic_mining_laser_mkS"..m[1]..".png",
wear_represents = "technic_RE_charge", stack_max = 1,
on_refill = technic.refill_RE_charge, wear_represents = "technic_RE_charge",
on_use = function(itemstack, user) on_refill = technic.refill_RE_charge,
local meta = minetest.deserialize(itemstack:get_metadata()) groups = {not_in_creative_inventory=1},
if not meta or not meta.charge then on_use = function(itemstack, user)
return local meta = minetest.deserialize(itemstack:get_metadata())
end if not meta or not meta.charge then
return
end
-- If there's enough charge left, fire the laser -- If there's enough charge left, fire the laser
if meta.charge >= m[4] then if meta.charge >= m[4] then
meta.charge = meta.charge - m[4] meta.charge = meta.charge - m[4]
laser_shoot(user, m[2], "technic_laser_beam_mk"..m[1]..".png", "technic_laser_mk"..m[1]) laser_shoot(user, m[2], "technic_laser_beam_mk"..m[1]..".png", "technic_laser_mk"..m[1])
technic.set_RE_wear(itemstack, meta.charge, m[3]) technic.set_RE_wear(itemstack, meta.charge, m[3])
itemstack:set_metadata(minetest.serialize(meta)) itemstack:set_metadata(minetest.serialize(meta))
end end
return itemstack return itemstack
end, end,
}) })
else
technic.register_power_tool("technic:laser_mkS"..m[1], m[3])
minetest.register_tool("technic:laser_mkS"..m[1], {
description = S("Spezial Mining Laser lv.MAX"),
inventory_image = "technic_mining_laser_mkS"..m[1]..".png",
stack_max = 1,
wear_represents = "technic_RE_charge",
on_refill = technic.refill_RE_charge,
on_use = function(itemstack, user)
laser_shoot(user, 30, "technic_laser_beam_mk1.png", "technic_laser_mk1")
return itemstack
end,
})
end
end end
minetest.register_craft({ minetest.register_craft({

103
mods/tutorial/abm.lua Normal file
View File

@ -0,0 +1,103 @@
--v.2.0.0
--v.1.13.0
--v.1.12.0
--v.1.11.1
--v.1.11.0
--v.1.10.0
--v.1.9.2
--v.1.9.1
--v.1.9.0
--v.1.8.0
--v.1.7.5
--v.1.7.4
--v.1.7.3
--v.1.7.2
--v.1.7.1
--v.1.7.0
--v.1.6.0
--v.1.5.0
--v.1.4.4
--v.1.4.3
--v.1.4.2
--v.1.4.1
--v.1.4.0
--v.1.3.3
--v.1.3.2
--v.1.3.1
--v.1.3.0
--v.1.2.4
--v.1.2.3
--v.1.2.2
--v.1.2.1
--v.1.2.0
--v.1.1.5
--v.1.1.4
--v.1.1.3
--v.1.1.2
--v.1.1.1
--v.1.1.0
--v.1.0.10
--v.1.0.9
--v.1.0.8
--v.1.0.7
--v.1.0.6
--v.1.0.5
--v.1.0.4
--v.1.0.3
--v.1.0.2
--v.1.0.1
--v.1.0.0
--v.0.23.3
--v.0.23.2
--v.0.23.1
--v.0.23.0
--v.0.22.1
--v.0.22.0
--v.0.21.0
--v.0.20.0
--v.0.19.1
--v.0.18.0
--v.0.17.0
--v.0.16.0
--v.0.15.0
--v.0.14.0
--v.0.13.0
--v.0.12.0
--v.0.11.0
--v.0.10.1
--v.0.10.0
--v.0.9.0
--v.0.8.0
--v.0.7.2
--v.0.7.1
--v.0.7.0
--v.0.6.6
--v.0.6.5
--v.0.6.4
--v.0.6.3
--v.0.6.2
minetest.register_abm({
nodenames = {"tutorial:thunder"},
interval = 3.0,
chance = 2,
action = function(pos, node, active_object_count, active_object_count_wider)
minetest.env:remove_node(pos)
end,
})
--v.0.6.1
--v.0.6.0
--v.0.5.2
--v.0.5.1
--v.0.5.0
--v.0.4.0
--v.0.3.0
--v.0.2.0
--v.0.1.0
minetest.register_abm({
nodenames = {"tutorial:stampfi_ei"},
interval = 2,
chance = 4,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:stampfi"})
end,
})

View File

@ -1,271 +0,0 @@
--v.2.0.0
--v.1.13.0
--v.1.12.0
--v.1.11.1
--v.1.11.0
--v.1.10.0
--v.1.9.2
--v.1.9.1
--v.1.9.0
--v.1.8.0
--v.1.7.5
--v.1.7.4
--v.1.7.3
--v.1.7.2
--v.1.7.1
--v.1.7.0
--v.1.6.0
--v.1.5.0
--v.1.4.4
--v.1.4.3
--v.1.4.2
--v.1.4.1
--v.1.4.0
--v.1.3.3
--v.1.3.2
--v.1.3.1
--v.1.3.0
--v.1.2.4
--v.1.2.3
--v.1.2.2
--v.1.2.1
--v.1.2.0
--v.1.1.5
--v.1.1.4
--v.1.1.3
--v.1.1.2
--v.1.1.1
--v.1.1.0
--v.1.0.10
--v.1.0.9
--v.1.0.8
--v.1.0.7
--v.1.0.6
--v.1.0.5
--v.1.0.4
--v.1.0.3
--v.1.0.2
--v.1.0.1
--v.1.0.0
--v.0.23.3
--v.0.23.2
--v.0.23.1
--v.0.23.0
--v.0.22.1
--v.0.22.0
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool1"},
interval = 5,
chance = 6,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:blue_wool_titan30"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool1"},
interval = 5,
chance = 6,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:orange_wool_titan30"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool1"},
interval = 5,
chance = 6,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:red_wool_titan30"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool1"},
interval = 5,
chance = 6,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:violet_wool_titan30"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool1"},
interval = 5,
chance = 6,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:white_wool_titan30"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool1"},
interval = 5,
chance = 6,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:yellow_wool_titan30"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:yellow_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:white_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:violet_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:red_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:pink_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:orange_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:magenta_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:grey_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:green_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:dark_grey_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:dark_green_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:cyan_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:brown_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:blue_wool_titan50"})
end,
})
minetest.register_abm({
nodenames = {"tutorial:geschenk_wool2"},
interval = 5,
chance = 15,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:black_wool_titan50"})
end,
})
--v.0.21.0
--v.0.20.0
--v.0.19.1
--v.0.18.0
--v.0.17.0
--v.0.16.0
--v.0.15.0
--v.0.14.0
--v.0.13.0
--v.0.12.0
--v.0.11.0
--v.0.10.1
--v.0.10.0
--v.0.9.0
--v.0.8.0
--v.0.7.2
--v.0.7.1
--v.0.7.0
--v.0.6.6
--v.0.6.5
--v.0.6.4
--v.0.6.3
--v.0.6.2
minetest.register_abm({
nodenames = {"tutorial:thunder"},
interval = 3.0,
chance = 2,
action = function(pos, node, active_object_count, active_object_count_wider)
minetest.env:remove_node(pos)
end,
})
--v.0.6.1
--v.0.6.0
--v.0.5.2
--v.0.5.1
--v.0.5.0
--v.0.4.0
--v.0.3.0
--v.0.2.0
--v.0.1.0
minetest.register_abm({
nodenames = {"tutorial:stampfi_ei"},
interval = 2,
chance = 4,
action = function(pos)
minetest.env:add_node(pos, {name="tutorial:stampfi"})
end,
})

View File

@ -2097,13 +2097,6 @@ minetest.register_craft({
{'default:cactus', 'default:cactus', 'default:cactus'}, {'default:cactus', 'default:cactus', 'default:cactus'},
} }
}) })
minetest.register_craft({
output = 'nyancat:nyancat',
recipe = {
{'nyancat:nyancat_rainbow', 'nyancat:nyancat_rainbow'},
{'nyancat:nyancat_rainbow', 'nyancat:nyancat_rainbow'},
}
})
minetest.register_craft({ minetest.register_craft({
output = 'tutorial:battleaxe_mega13', output = 'tutorial:battleaxe_mega13',
recipe = { recipe = {

View File

@ -33,12 +33,11 @@ minetest.register_craftitem("tutorial:dragon_schluessel", {
minetest.register_craftitem("tutorial:coin2", { minetest.register_craftitem("tutorial:coin2", {
description = "Coin green (drill edition, very rare)", description = "Coin green (drill edition, very rare)",
inventory_image = "tutorial_coin.png", inventory_image = "tutorial_coin.png",
stack_max = 1500, stack_max = 9999,
}) })
minetest.register_craftitem("tutorial:monster_remover", { minetest.register_craftitem("tutorial:monster_remover", {
description = "Admin tool 7: Monster Remover", description = "Admin tool 7: Monster Remover",
inventory_image = "tutorial_monster_entverner.png", inventory_image = "tutorial_monster_entverner.png",
groups = {not_in_creative_inventory=1},
stack_max = 1, stack_max = 1,
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local pos = user:getpos() local pos = user:getpos()
@ -188,13 +187,15 @@ minetest.register_craftitem("tutorial:lavabattleaxe", {
minetest.register_craftitem("tutorial:lila_erz1", { minetest.register_craftitem("tutorial:lila_erz1", {
description = "Purple Lv.1", description = "Purple Lv.1",
inventory_image = "tutorial_lila_erz1.png", inventory_image = "tutorial_lila_erz1.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:lila_erz2", { minetest.register_craftitem("tutorial:lila_erz2", {
description = "Purple Lv.2", description = "Purple Lv.2",
inventory_image = "tutorial_lila_erz2.png", inventory_image = "tutorial_lila_erz2.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:lila_erz3", { minetest.register_craftitem("tutorial:lila_erz3", {
description = "Purple Lv.3", description = "Purple Lv.MAX",
inventory_image = "tutorial_lila_erz3.png", inventory_image = "tutorial_lila_erz3.png",
}) })
minetest.register_craftitem("tutorial:legenden_schluessel", { minetest.register_craftitem("tutorial:legenden_schluessel", {
@ -208,14 +209,17 @@ minetest.register_craftitem("tutorial:bag_schluessel4", {
minetest.register_craftitem("tutorial:bag_schluessel3", { minetest.register_craftitem("tutorial:bag_schluessel3", {
description = "Bagkey Lv.3", description = "Bagkey Lv.3",
inventory_image = "tutorial_bag_schluessel3.png", inventory_image = "tutorial_bag_schluessel3.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:bag_schluessel2", { minetest.register_craftitem("tutorial:bag_schluessel2", {
description = "Bagkey Lv.2", description = "Bagkey Lv.2",
inventory_image = "tutorial_bag_schluessel2.png", inventory_image = "tutorial_bag_schluessel2.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:bag_schluessel1", { minetest.register_craftitem("tutorial:bag_schluessel1", {
description = "Bagkey Lv.1", description = "Bagkey Lv.1",
inventory_image = "tutorial_bag_schluessel1.png", inventory_image = "tutorial_bag_schluessel1.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:craft_schluessel7", { minetest.register_craftitem("tutorial:craft_schluessel7", {
description = "Craftkey Lv.MAX", description = "Craftkey Lv.MAX",
@ -224,30 +228,32 @@ minetest.register_craftitem("tutorial:craft_schluessel7", {
minetest.register_craftitem("tutorial:craft_schluessel6", { minetest.register_craftitem("tutorial:craft_schluessel6", {
description = "Craftkey Lv.6", description = "Craftkey Lv.6",
inventory_image = "tutorial_craft_schluessel6.png", inventory_image = "tutorial_craft_schluessel6.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:craft_schluessel5", { minetest.register_craftitem("tutorial:craft_schluessel5", {
description = "Craftkey Lv.5", description = "Craftkey Lv.5",
inventory_image = "tutorial_craft_schluessel5.png", inventory_image = "tutorial_craft_schluessel5.png",
}) groups = {not_in_creative_inventory=1},
minetest.register_craftitem("tutorial:craft_schluessel5", {
description = "Craftkey Lv.5",
inventory_image = "tutorial_craft_schluessel5.png",
}) })
minetest.register_craftitem("tutorial:craft_schluessel4", { minetest.register_craftitem("tutorial:craft_schluessel4", {
description = "Craftkey Lv.4", description = "Craftkey Lv.4",
inventory_image = "tutorial_craft_schluessel4.png", inventory_image = "tutorial_craft_schluessel4.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:craft_schluessel3", { minetest.register_craftitem("tutorial:craft_schluessel3", {
description = "Craftkey Lv.3", description = "Craftkey Lv.3",
inventory_image = "tutorial_craft_schluessel3.png", inventory_image = "tutorial_craft_schluessel3.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:craft_schluessel2", { minetest.register_craftitem("tutorial:craft_schluessel2", {
description = "Craftkey Lv.2", description = "Craftkey Lv.2",
inventory_image = "tutorial_craft_schluessel2.png", inventory_image = "tutorial_craft_schluessel2.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:craft_schluessel1", { minetest.register_craftitem("tutorial:craft_schluessel1", {
description = "Craftkey Lv.1", description = "Craftkey Lv.1",
inventory_image = "tutorial_craft_schluessel1.png", inventory_image = "tutorial_craft_schluessel1.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:xp_blau", { minetest.register_craftitem("tutorial:xp_blau", {
description = "Blue xp block", description = "Blue xp block",
@ -276,103 +282,126 @@ minetest.register_craftitem("tutorial:titan", {
minetest.register_craftitem("tutorial:coin_lila", { minetest.register_craftitem("tutorial:coin_lila", {
description = "Coin purple (very rare)", description = "Coin purple (very rare)",
inventory_image = "tutorial_coin_lila.png", inventory_image = "tutorial_coin_lila.png",
stack_max = 9999,
}) })
minetest.register_craftitem("tutorial:coin_rot", { minetest.register_craftitem("tutorial:coin_rot", {
description = "Coin red (very rare)", description = "Coin red (very rare)",
inventory_image = "tutorial_coin_rot.png", inventory_image = "tutorial_coin_rot.png",
stack_max = 9999,
}) })
minetest.register_craftitem("tutorial:coin_blau", { minetest.register_craftitem("tutorial:coin_blau", {
description = "Coin blue (very rare)", description = "Coin blue (very rare)",
inventory_image = "tutorial_coin_blau.png", inventory_image = "tutorial_coin_blau.png",
stack_max = 9999,
}) })
minetest.register_craftitem("tutorial:coin_grau", { minetest.register_craftitem("tutorial:coin_grau", {
description = "Coin gray (very rare)", description = "Coin gray (very rare)",
inventory_image = "tutorial_coin_grau.png", inventory_image = "tutorial_coin_grau.png",
stack_max = 9999,
}) })
minetest.register_craftitem("tutorial:coin_grau1", { minetest.register_craftitem("tutorial:coin_grau1", {
description = "Spezial gray coin lv.1", description = "Spezial gray coin lv.1",
inventory_image = "tutorial_coin_grau1.png", inventory_image = "tutorial_coin_grau1.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau2", { minetest.register_craftitem("tutorial:coin_grau2", {
description = "Spezial gray coin lv.2", description = "Spezial gray coin lv.2",
inventory_image = "tutorial_coin_grau2.png", inventory_image = "tutorial_coin_grau2.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau3", { minetest.register_craftitem("tutorial:coin_grau3", {
description = "Spezial gray coin lv.3", description = "Spezial gray coin lv.3",
inventory_image = "tutorial_coin_grau3.png", inventory_image = "tutorial_coin_grau3.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau4", { minetest.register_craftitem("tutorial:coin_grau4", {
description = "Spezial gray coin lv.4", description = "Spezial gray coin lv.4",
inventory_image = "tutorial_coin_grau4.png", inventory_image = "tutorial_coin_grau4.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau5", { minetest.register_craftitem("tutorial:coin_grau5", {
description = "Spezial gray coin lv.5", description = "Spezial gray coin lv.5",
inventory_image = "tutorial_coin_grau5.png", inventory_image = "tutorial_coin_grau5.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau6", { minetest.register_craftitem("tutorial:coin_grau6", {
description = "Spezial gray coin lv.6", description = "Spezial gray coin lv.6",
inventory_image = "tutorial_coin_grau6.png", inventory_image = "tutorial_coin_grau6.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau7", { minetest.register_craftitem("tutorial:coin_grau7", {
description = "Spezial gray coin lv.7", description = "Spezial gray coin lv.7",
inventory_image = "tutorial_coin_grau7.png", inventory_image = "tutorial_coin_grau7.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau8", { minetest.register_craftitem("tutorial:coin_grau8", {
description = "Spezial gray coin lv.8", description = "Spezial gray coin lv.8",
inventory_image = "tutorial_coin_grau8.png", inventory_image = "tutorial_coin_grau8.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau9", { minetest.register_craftitem("tutorial:coin_grau9", {
description = "Spezial gray coin lv.9", description = "Spezial gray coin lv.9",
inventory_image = "tutorial_coin_grau9.png", inventory_image = "tutorial_coin_grau9.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau10", { minetest.register_craftitem("tutorial:coin_grau10", {
description = "Spezial gray coin lv.10", description = "Spezial gray coin lv.10",
inventory_image = "tutorial_coin_grau10.png", inventory_image = "tutorial_coin_grau10.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau11", { minetest.register_craftitem("tutorial:coin_grau11", {
description = "Spezial gray coin lv.11", description = "Spezial gray coin lv.11",
inventory_image = "tutorial_coin_grau11.png", inventory_image = "tutorial_coin_grau11.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau12", { minetest.register_craftitem("tutorial:coin_grau12", {
description = "Spezial gray coin lv.12", description = "Spezial gray coin lv.12",
inventory_image = "tutorial_coin_grau12.png", inventory_image = "tutorial_coin_grau12.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau13", { minetest.register_craftitem("tutorial:coin_grau13", {
description = "Spezial gray coin lv.13", description = "Spezial gray coin lv.13",
inventory_image = "tutorial_coin_grau13.png", inventory_image = "tutorial_coin_grau13.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau14", { minetest.register_craftitem("tutorial:coin_grau14", {
description = "Spezial gray coin lv.14", description = "Spezial gray coin lv.14",
inventory_image = "tutorial_coin_grau14.png", inventory_image = "tutorial_coin_grau14.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau15", { minetest.register_craftitem("tutorial:coin_grau15", {
description = "Spezial gray coin lv.15", description = "Spezial gray coin lv.15",
inventory_image = "tutorial_coin_grau15.png", inventory_image = "tutorial_coin_grau15.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau16", { minetest.register_craftitem("tutorial:coin_grau16", {
description = "Spezial gray coin lv.16", description = "Spezial gray coin lv.16",
inventory_image = "tutorial_coin_grau16.png", inventory_image = "tutorial_coin_grau16.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau17", { minetest.register_craftitem("tutorial:coin_grau17", {
description = "Spezial gray coin lv.17", description = "Spezial gray coin lv.17",
inventory_image = "tutorial_coin_grau17.png", inventory_image = "tutorial_coin_grau17.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau18", { minetest.register_craftitem("tutorial:coin_grau18", {
description = "Spezial gray coin lv.18", description = "Spezial gray coin lv.18",
inventory_image = "tutorial_coin_grau18.png", inventory_image = "tutorial_coin_grau18.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau19", { minetest.register_craftitem("tutorial:coin_grau19", {
description = "Spezial gray coin lv.19", description = "Spezial gray coin lv.19",
inventory_image = "tutorial_coin_grau19.png", inventory_image = "tutorial_coin_grau19.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:coin_grau20", { minetest.register_craftitem("tutorial:coin_grau20", {
description = "Spezial gray coin lv.20", description = "Spezial gray coin lv.MAX",
inventory_image = "tutorial_coin_grau20.png", inventory_image = "tutorial_coin_grau20.png",
}) })
minetest.register_craftitem("tutorial:coin", { minetest.register_craftitem("tutorial:coin", {
description = "Coin green (laser edition, very rare)", description = "Coin green (laser edition, very rare)",
inventory_image = "tutorial_coin.png", inventory_image = "tutorial_coin.png",
stack_max = 1500, stack_max = 9999,
}) })
minetest.register_craftitem("tutorial:admin", { minetest.register_craftitem("tutorial:admin", {
description = "Admin", description = "Admin",
@ -384,6 +413,7 @@ minetest.register_craftitem("tutorial:geschenkpapier", {
}) })
minetest.register_craftitem("tutorial:geld", { minetest.register_craftitem("tutorial:geld", {
inventory_image = "tutorial_geld.png", inventory_image = "tutorial_geld.png",
description = "Super material",
}) })
minetest.register_craftitem("tutorial:XP", { minetest.register_craftitem("tutorial:XP", {
inventory_image = "tutorial_XP.png", inventory_image = "tutorial_XP.png",
@ -395,66 +425,79 @@ minetest.register_craftitem("tutorial:stone_coal_lump", {
minetest.register_craftitem("tutorial:uranium1", { minetest.register_craftitem("tutorial:uranium1", {
description = "Uranium lv.1", description = "Uranium lv.1",
inventory_image = "tutorial_uranium1.png", inventory_image = "tutorial_uranium1.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:uranium2", { minetest.register_craftitem("tutorial:uranium2", {
description = "Uranium lv.2", description = "Uranium lv.2",
inventory_image = "tutorial_uranium2.png", inventory_image = "tutorial_uranium2.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:uranium3", { minetest.register_craftitem("tutorial:uranium3", {
description = "Uranium lv.3", description = "Uranium lv.3",
inventory_image = "tutorial_uranium3.png", inventory_image = "tutorial_uranium3.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:uranium4", { minetest.register_craftitem("tutorial:uranium4", {
description = "Uranium lv.4", description = "Uranium lv.4",
inventory_image = "tutorial_uranium4.png", inventory_image = "tutorial_uranium4.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:uranium5", { minetest.register_craftitem("tutorial:uranium5", {
description = "Uranium lv.5", description = "Uranium lv.5",
inventory_image = "tutorial_uranium5.png", inventory_image = "tutorial_uranium5.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:uranium6", { minetest.register_craftitem("tutorial:uranium6", {
description = "Uranium lv.6", description = "Uranium lv.6",
inventory_image = "tutorial_uranium6.png", inventory_image = "tutorial_uranium6.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:uranium7", { minetest.register_craftitem("tutorial:uranium7", {
description = "Uranium lv.7", description = "Uranium lv.7",
inventory_image = "tutorial_uranium7.png", inventory_image = "tutorial_uranium7.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:uranium8", { minetest.register_craftitem("tutorial:uranium8", {
description = "Uranium lv.8", description = "Uranium lv.8",
inventory_image = "tutorial_uranium8.png", inventory_image = "tutorial_uranium8.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:uranium9", { minetest.register_craftitem("tutorial:uranium9", {
description = "Uranium lv.9", description = "Uranium lv.MAX",
inventory_image = "tutorial_uranium9.png", inventory_image = "tutorial_uranium9.png",
}) })
minetest.register_craftitem( "tutorial:blackblock1", { minetest.register_craftitem( "tutorial:blackblock1", {
description = "Black item lv.1", description = "Black item lv.1",
inventory_image = "tutorial_blackblock1.png", inventory_image = "tutorial_blackblock1.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:blackblock2", { minetest.register_craftitem( "tutorial:blackblock2", {
description = "Black item lv.2", description = "Black item lv.2",
inventory_image = "tutorial_blackblock2.png", inventory_image = "tutorial_blackblock2.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:blackblock3", { minetest.register_craftitem( "tutorial:blackblock3", {
description = "Black item lv.3", description = "Black item lv.3",
inventory_image = "tutorial_blackblock3.png", inventory_image = "tutorial_blackblock3.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:blackblock4", { minetest.register_craftitem( "tutorial:blackblock4", {
description = "Black item lv.4", description = "Black item lv.4",
inventory_image = "tutorial_blackblock4.png", inventory_image = "tutorial_blackblock4.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:blackblock5", { minetest.register_craftitem( "tutorial:blackblock5", {
description = "Black item lv.5", description = "Black item lv.5",
inventory_image = "tutorial_blackblock5.png", inventory_image = "tutorial_blackblock5.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:blackblock6", { minetest.register_craftitem( "tutorial:blackblock6", {
description = "Black item lv.6", description = "Black item lv.MAX",
inventory_image = "tutorial_blackblock6.png", inventory_image = "tutorial_blackblock6.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
}) })
@ -462,29 +505,34 @@ minetest.register_craftitem( "tutorial:whiteblock1", {
description = "White item lv.1", description = "White item lv.1",
inventory_image = "tutorial_whiteblock1.png", inventory_image = "tutorial_whiteblock1.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:whiteblock2", { minetest.register_craftitem( "tutorial:whiteblock2", {
description = "White item lv.2", description = "White item lv.2",
inventory_image = "tutorial_whiteblock2.png", inventory_image = "tutorial_whiteblock2.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:whiteblock3", { minetest.register_craftitem( "tutorial:whiteblock3", {
description = "White item lv.3", description = "White item lv.3",
inventory_image = "tutorial_whiteblock3.png", inventory_image = "tutorial_whiteblock3.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:whiteblock4", { minetest.register_craftitem( "tutorial:whiteblock4", {
description = "White item lv.4", description = "White item lv.4",
inventory_image = "tutorial_whiteblock4.png", inventory_image = "tutorial_whiteblock4.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:whiteblock5", { minetest.register_craftitem( "tutorial:whiteblock5", {
description = "White item lv.5", description = "White item lv.5",
inventory_image = "tutorial_whiteblock5.png", inventory_image = "tutorial_whiteblock5.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:whiteblock6", { minetest.register_craftitem( "tutorial:whiteblock6", {
description = "White item lv.6", description = "White item lv.MAX",
inventory_image = "tutorial_whiteblock6.png", inventory_image = "tutorial_whiteblock6.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
}) })
@ -500,71 +548,81 @@ minetest.register_craftitem( "tutorial:superblock1", {
description = "Super item lv.1", description = "Super item lv.1",
inventory_image = "tutorial_superblock1.png", inventory_image = "tutorial_superblock1.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:superblock2", { minetest.register_craftitem( "tutorial:superblock2", {
description = "Super item lv.2", description = "Super item lv.2",
inventory_image = "tutorial_superblock2.png", inventory_image = "tutorial_superblock2.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:superblock3", { minetest.register_craftitem( "tutorial:superblock3", {
description = "Super item lv.3", description = "Super item lv.3",
inventory_image = "tutorial_superblock3.png", inventory_image = "tutorial_superblock3.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:superblock4", { minetest.register_craftitem( "tutorial:superblock4", {
description = "Super item lv.4", description = "Super item lv.4",
inventory_image = "tutorial_superblock4.png", inventory_image = "tutorial_superblock4.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:superblock5", { minetest.register_craftitem( "tutorial:superblock5", {
description = "Super item lv.5", description = "Super item lv.5",
inventory_image = "tutorial_superblock5.png", inventory_image = "tutorial_superblock5.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:superblock6", { minetest.register_craftitem( "tutorial:superblock6", {
description = "Super item lv.6", description = "Super item lv.6",
inventory_image = "tutorial_superblock6.png", inventory_image = "tutorial_superblock6.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:superblock7", { minetest.register_craftitem( "tutorial:superblock7", {
description = "Super item lv.7", description = "Super item lv.7",
inventory_image = "tutorial_superblock7.png", inventory_image = "tutorial_superblock7.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:superblock8", { minetest.register_craftitem( "tutorial:superblock8", {
description = "Super item lv.8", description = "Super item lv.8",
inventory_image = "tutorial_superblock8.png", inventory_image = "tutorial_superblock8.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem( "tutorial:superblock9", { minetest.register_craftitem( "tutorial:superblock9", {
description = "Super item lv.9", description = "Super item lv.MAX",
inventory_image = "tutorial_superblock9.png", inventory_image = "tutorial_superblock9.png",
on_place_on_ground = minetest.craftitem_place_item, on_place_on_ground = minetest.craftitem_place_item,
}) })
minetest.register_craftitem("tutorial:blades",{ minetest.register_craftitem("tutorial:blades",{
description = "Blades", description = "Helicopter Blades",
inventory_image = "blades_invt.png", inventory_image = "helicopter_blades_inv.png",
wield_image = "blades_inv.png",
}) })
-- cabin
minetest.register_craftitem("tutorial:cabin",{ minetest.register_craftitem("tutorial:cabin",{
description = "Cabin for heli", description = "Cabin for Helicopter",
inventory_image = "cabin_invt.png", inventory_image = "helicopter_cabin_inv.png",
wield_image = "cabin_inv.png",
}) })
-- heli
minetest.register_craftitem("tutorial:heli", { minetest.register_craftitem("tutorial:heli", {
description = "Helicopter", description = "Helicopter",
inventory_image = "heli_invt.png", inventory_image = "helicopter_heli_inv.png",
wield_image = "heli_inv.png",
wield_scale = {x=1, y=1, z=1},
liquids_pointable = false,
on_place = function(itemstack, placer, pointed_thing) on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type ~= "node" then if pointed_thing.type ~= "node" then
return return
end end
pointed_thing.under.y = pointed_thing.under.y+1 if minetest.get_node(pointed_thing.above).name ~= "air" then
minetest.env:add_entity(pointed_thing.under, "tutorial:heli") return
itemstack:take_item() end
minetest.add_entity(pointed_thing.above, "helicopter:heli")
if not (creative_exists and placer and
creative.is_enabled_for(placer:get_player_name())) then
itemstack:take_item()
end
return itemstack return itemstack
end, end,
}) })

View File

@ -6,7 +6,7 @@ minetest.register_on_joinplayer(function(player)
offset = {x=0, y=10}, offset = {x=0, y=10},
alignment = {x=1, y=0}, alignment = {x=1, y=0},
number = 0xFFFFFF , number = 0xFFFFFF ,
text = "For Minetest : 5.1.0", text = "For Minetest : 5.1.x",
}) })
player:hud_add({ player:hud_add({
hud_elem_type = "text", hud_elem_type = "text",
@ -14,24 +14,43 @@ minetest.register_on_joinplayer(function(player)
offset = {x=0, y=30}, offset = {x=0, y=30},
alignment = {x=1, y=0}, alignment = {x=1, y=0},
number = 0xFFFFFF , number = 0xFFFFFF ,
text = "Game Version : 3.3.7", text = "Game Version : 3.4.0",
}) })
end) end)
dofile(minetest.get_modpath("tutorial").."/basic/craft.lua") dofile(minetest.get_modpath("tutorial").."/craft.lua")
dofile(minetest.get_modpath("tutorial").."/basic/node.lua") dofile(minetest.get_modpath("tutorial").."/node.lua")
dofile(minetest.get_modpath("tutorial").."/basic/tool.lua") dofile(minetest.get_modpath("tutorial").."/tool.lua")
dofile(minetest.get_modpath("tutorial").."/basic/craftitem.lua") dofile(minetest.get_modpath("tutorial").."/craftitem.lua")
dofile(minetest.get_modpath("tutorial").."/basic/ore.lua") dofile(minetest.get_modpath("tutorial").."/ore.lua")
dofile(minetest.get_modpath("tutorial").."/basic/abm.lua") dofile(minetest.get_modpath("tutorial").."/abm.lua")
dofile(minetest.get_modpath("tutorial").."/basic/entity.lua") dofile(minetest.get_modpath("tutorial").."/entity.lua")
dofile(minetest.get_modpath("tutorial").."/basic/chatcommand.lua") dofile(minetest.get_modpath("tutorial").."/chatcommand.lua")
dofile(minetest.get_modpath("tutorial").."/basic/other.lua") dofile(minetest.get_modpath("tutorial").."/other.lua")
dofile(minetest.get_modpath("tutorial").."/other/mummy.lua") dofile(minetest.get_modpath("tutorial").."/alias.lua")
dofile(minetest.get_modpath("tutorial").."/other/regnum.lua")
--v.2.0.0+ --v.2.0.0+
minetest.register_craft({
output = "tutorial:spawn_egg",
recipe = {
{'default:obsidian', 'default:obsidian', 'default:obsidian'},
{'default:obsidian', 'default:ice', 'default:obsidian'},
{'default:obsidian', 'default:obsidian', 'default:obsidian'},
}
})
minetest.register_craftitem("tutorial:spawn_egg", {
description = "Mummy spawn-egg",
inventory_image = "tutorial_mummy_egg.png",
liquids_pointable = false,
stack_max = 99,
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type == "node" then
minetest.env:add_entity(pointed_thing.above,"mobs:mummy")
if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end
return itemstack
end
end,
})
local rg25 = {} local rg25 = {}
rg25.get_formspec = function(player, pos) rg25.get_formspec = function(player, pos)
if player == nil then if player == nil then
@ -45,11 +64,11 @@ rg25.get_formspec = function(player, pos)
.."bgcolor[#080808BB;true]" .."bgcolor[#080808BB;true]"
.."label[0,1;I. 17. Music]" .."label[0,1;I. 17. Music]"
.."label[0,1.3;Enable Background Music.]" .."label[0,1.3;Enable Background Music.]"
.."label[0,1.6;Choose an instrument to be randomly selected]" .."label[0,1.6;Choose one Theme or two to be randomly selected]"
.."label[0,1.9;and listen to the Regnum Theme.]" .."label[0,1.9;and listen to the Regnum Themes.]"
.."label[0,2.2;How to use Music:]" .."label[0,2.2;How to use Music:]"
.."label[0,2.5;1. Enable Background Music.]" .."label[0,2.5;1. Enable Background Music.]"
.."label[0,2.8;2. Choose instruments]" .."label[0,2.8;2. Choose Themes]"
.."button[2,10; 2,0.5;rg24;<]" .."button[2,10; 2,0.5;rg24;<]"
.."button[4,10; 2,0.5;rg15;>]" .."button[4,10; 2,0.5;rg15;>]"
return formspec return formspec
@ -268,7 +287,7 @@ minetest.register_entity("tutorial:legendballadmin", {
light_source = 12, light_source = 12,
on_step = function(self, dtime) on_step = function(self, dtime)
local pos = self.object:getpos() local pos = self.object:getpos()
if minetest.env:get_node(self.object:getpos()).name ~= "air"then if minetest.env:get_node(self.object:getpos()).name ~= "air" then
self.hit_node(self, pos, node) self.hit_node(self, pos, node)
self.object:remove() self.object:remove()
return return
@ -341,7 +360,7 @@ minetest.register_node("tutorial:legend_thunderadmin", {
light_source = 12, light_source = 12,
walkable = false, walkable = false,
buildable_to = true, buildable_to = true,
damage_per_second = 20, damage_per_second = 100,
drop = {}, drop = {},
groups = {dig_immediate=3}, groups = {dig_immediate=3},
}) })
@ -384,6 +403,7 @@ minetest.register_tool("tutorial:legendstick9", {
minetest.register_tool("tutorial:legendstick8", { minetest.register_tool("tutorial:legendstick8", {
description = "Legendstick lv.8", description = "Legendstick lv.8",
inventory_image = "tutorial_legendzauberstab8.png", inventory_image = "tutorial_legendzauberstab8.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, placer, pointed_thing) on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir(); local dir = placer:get_look_dir();
local inv = placer:get_inventory() local inv = placer:get_inventory()
@ -398,6 +418,7 @@ minetest.register_tool("tutorial:legendstick8", {
minetest.register_tool("tutorial:legendstick7", { minetest.register_tool("tutorial:legendstick7", {
description = "Legendstick lv.7", description = "Legendstick lv.7",
inventory_image = "tutorial_legendzauberstab7.png", inventory_image = "tutorial_legendzauberstab7.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, placer, pointed_thing) on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir(); local dir = placer:get_look_dir();
local inv = placer:get_inventory() local inv = placer:get_inventory()
@ -412,6 +433,7 @@ minetest.register_tool("tutorial:legendstick7", {
minetest.register_tool("tutorial:legendstick6", { minetest.register_tool("tutorial:legendstick6", {
description = "Legendstick lv.6", description = "Legendstick lv.6",
inventory_image = "tutorial_legendzauberstab6.png", inventory_image = "tutorial_legendzauberstab6.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, placer, pointed_thing) on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir(); local dir = placer:get_look_dir();
local inv = placer:get_inventory() local inv = placer:get_inventory()
@ -426,6 +448,7 @@ minetest.register_tool("tutorial:legendstick6", {
minetest.register_tool("tutorial:legendstick5", { minetest.register_tool("tutorial:legendstick5", {
description = "Legendstick lv.5", description = "Legendstick lv.5",
inventory_image = "tutorial_legendzauberstab5.png", inventory_image = "tutorial_legendzauberstab5.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, placer, pointed_thing) on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir(); local dir = placer:get_look_dir();
local inv = placer:get_inventory() local inv = placer:get_inventory()
@ -440,6 +463,7 @@ minetest.register_tool("tutorial:legendstick5", {
minetest.register_tool("tutorial:legendstick4", { minetest.register_tool("tutorial:legendstick4", {
description = "Legendstick lv.4", description = "Legendstick lv.4",
inventory_image = "tutorial_legendzauberstab4.png", inventory_image = "tutorial_legendzauberstab4.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, placer, pointed_thing) on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir(); local dir = placer:get_look_dir();
local inv = placer:get_inventory() local inv = placer:get_inventory()
@ -454,6 +478,7 @@ minetest.register_tool("tutorial:legendstick4", {
minetest.register_tool("tutorial:legendstick3", { minetest.register_tool("tutorial:legendstick3", {
description = "Legendstick lv.3", description = "Legendstick lv.3",
inventory_image = "tutorial_legendzauberstab3.png", inventory_image = "tutorial_legendzauberstab3.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, placer, pointed_thing) on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir(); local dir = placer:get_look_dir();
local inv = placer:get_inventory() local inv = placer:get_inventory()
@ -468,6 +493,7 @@ minetest.register_tool("tutorial:legendstick3", {
minetest.register_tool("tutorial:legendstick2", { minetest.register_tool("tutorial:legendstick2", {
description = "Legendstick lv.2", description = "Legendstick lv.2",
inventory_image = "tutorial_legendzauberstab2.png", inventory_image = "tutorial_legendzauberstab2.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, placer, pointed_thing) on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir(); local dir = placer:get_look_dir();
local inv = placer:get_inventory() local inv = placer:get_inventory()
@ -482,6 +508,7 @@ minetest.register_tool("tutorial:legendstick2", {
minetest.register_tool("tutorial:legendstick1", { minetest.register_tool("tutorial:legendstick1", {
description = "Legendstick lv.1", description = "Legendstick lv.1",
inventory_image = "tutorial_legendzauberstab1.png", inventory_image = "tutorial_legendzauberstab1.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, placer, pointed_thing) on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir(); local dir = placer:get_look_dir();
local inv = placer:get_inventory() local inv = placer:get_inventory()
@ -503,10 +530,12 @@ minetest.register_tool("tutorial:legendstick", {
minetest.register_craftitem("tutorial:protection_schluessel1", { minetest.register_craftitem("tutorial:protection_schluessel1", {
description = "Protectionkey lv.1", description = "Protectionkey lv.1",
inventory_image = "tutorial_protection_schluessel1.png", inventory_image = "tutorial_protection_schluessel1.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:protection_schluessel2", { minetest.register_craftitem("tutorial:protection_schluessel2", {
description = "Protectionkey lv.2", description = "Protectionkey lv.2",
inventory_image = "tutorial_protection_schluessel2.png", inventory_image = "tutorial_protection_schluessel2.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:protection_schluessel3", { minetest.register_craftitem("tutorial:protection_schluessel3", {
description = "Protectionkey lv.MAX", description = "Protectionkey lv.MAX",
@ -563,7 +592,7 @@ rg24.get_formspec = function(player, pos)
.."label[0,1;I. 16. Trophys]" .."label[0,1;I. 16. Trophys]"
.."label[0,1.3;get trophys in the trophy craft]" .."label[0,1.3;get trophys in the trophy craft]"
.."label[0,1.6;Collect 24 trothys to get the Protectionkey]" .."label[0,1.6;Collect 24 trothys to get the Protectionkey]"
.."label[0,1.9;How to use artifacts:]" .."label[0,1.9;How to use trophys:]"
.."label[0,2.2;1. get 24 trophys]" .."label[0,2.2;1. get 24 trophys]"
.."label[0,2.5;2. press 'reward']" .."label[0,2.5;2. press 'reward']"
.."button[2,10; 2,0.5;rg23;<]" .."button[2,10; 2,0.5;rg23;<]"
@ -947,7 +976,7 @@ end
minetest.register_craftitem("tutorial:coin_cyan", { minetest.register_craftitem("tutorial:coin_cyan", {
description = "Coin cyan (very rare)", description = "Coin cyan (very rare)",
inventory_image = "tutorial_coin_cyan.png", inventory_image = "tutorial_coin_cyan.png",
stack_max = 1500, stack_max = 9999,
}) })
minetest.register_node("tutorial:bottle_crystal", { minetest.register_node("tutorial:bottle_crystal", {
description = "Crystalbottle", description = "Crystalbottle",
@ -971,7 +1000,7 @@ for i = 1, 25, 1 do
minetest.register_node("tutorial:level"..i.."_cyan",{ minetest.register_node("tutorial:level"..i.."_cyan",{
tiles = {"tutorial_level"..i..".png^tutorial_level_cyan.png"}, tiles = {"tutorial_level"..i..".png^tutorial_level_cyan.png"},
description = "You are now in Level cyan "..i, description = "You are now in Level cyan "..i,
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
}) })
end end
minetest.register_node("tutorial:levelMAX_cyan",{ minetest.register_node("tutorial:levelMAX_cyan",{
@ -995,14 +1024,17 @@ end)
minetest.register_craftitem("tutorial:cooking_schluessel1", { minetest.register_craftitem("tutorial:cooking_schluessel1", {
description = "Cookingkey lv.1", description = "Cookingkey lv.1",
inventory_image = "tutorial_cooking_schluessel1.png", inventory_image = "tutorial_cooking_schluessel1.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:cooking_schluessel2", { minetest.register_craftitem("tutorial:cooking_schluessel2", {
description = "Cookingkey lv.2", description = "Cookingkey lv.2",
inventory_image = "tutorial_cooking_schluessel2.png", inventory_image = "tutorial_cooking_schluessel2.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:cooking_schluessel3", { minetest.register_craftitem("tutorial:cooking_schluessel3", {
description = "Cookingkey lv.3", description = "Cookingkey lv.3",
inventory_image = "tutorial_cooking_schluessel3.png", inventory_image = "tutorial_cooking_schluessel3.png",
groups = {not_in_creative_inventory=1},
}) })
minetest.register_craftitem("tutorial:cooking_schluessel4", { minetest.register_craftitem("tutorial:cooking_schluessel4", {
description = "Cookingkey lv.MAX", description = "Cookingkey lv.MAX",
@ -1356,7 +1388,43 @@ minetest.register_globalstep(function(dtime)
if (timer >= 1) then if (timer >= 1) then
local players = minetest.get_connected_players() local players = minetest.get_connected_players()
for _,player in ipairs(players) do for _,player in ipairs(players) do
local player_inv = player:get_inventory() local pri = minetest.get_player_privs(player:get_player_name())
local player_inv = player:get_inventory()
player_inv:set_size("youtube", 1)
local c = player_inv:get_stack("youtube",1):get_count()
if c == 0 then
if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin and pri.creative then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Admin]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Legend]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport and pri.noclip and pri.debug then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Hero]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[VIP]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Premium]"..player:get_player_name()})
elseif pri.interact and pri.shout then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 255}, text = "[Member]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Enemy]"..player:get_player_name()})
end
else
if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin and pri.creative then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Youtuber][Admin]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Youtuber][Legend]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport and pri.noclip and pri.debug then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()})
elseif pri.interact and pri.shout then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 255}, text = "[Youtuber][Member]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Youtuber][Enemy]"..player:get_player_name()})
end
end
if (oldpos[player:get_player_name()] ~= nil) then if (oldpos[player:get_player_name()] ~= nil) then
local playername = player:get_player_name() local playername = player:get_player_name()
local pos = player:getpos() local pos = player:getpos()
@ -1661,6 +1729,7 @@ minetest.register_craft({
minetest.register_craftitem("tutorial:wallplacer1", { minetest.register_craftitem("tutorial:wallplacer1", {
description = "Wallplacer lv.1", description = "Wallplacer lv.1",
inventory_image = "tutorial_block_placer1.png", inventory_image = "tutorial_block_placer1.png",
groups = {not_in_creative_inventory=1},
on_place = function(itemstack, placer, pointed_thing) on_place = function(itemstack, placer, pointed_thing)
local main = placer:get_wield_index()+1 local main = placer:get_wield_index()+1
local inv = placer:get_inventory() local inv = placer:get_inventory()
@ -1776,6 +1845,7 @@ minetest.register_craftitem("tutorial:wallplacer2_2", {
description = "Wallplacer lv.2", description = "Wallplacer lv.2",
inventory_image = "tutorial_block_placer2.png^technic_tool_mode2.png", inventory_image = "tutorial_block_placer2.png^technic_tool_mode2.png",
wield_image = "tutorial_block_placer2.png", wield_image = "tutorial_block_placer2.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -1898,6 +1968,7 @@ minetest.register_craftitem("tutorial:wallplacer2_1", {
description = "Wallplacer lv.2", description = "Wallplacer lv.2",
inventory_image = "tutorial_block_placer2.png^technic_tool_mode1.png", inventory_image = "tutorial_block_placer2.png^technic_tool_mode1.png",
wield_image = "tutorial_block_placer2.png", wield_image = "tutorial_block_placer2.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -2020,6 +2091,7 @@ minetest.register_craftitem("tutorial:wallplacer3_1", {
description = "Wallplacer lv.3", description = "Wallplacer lv.3",
inventory_image = "tutorial_block_placer3.png^technic_tool_mode1.png", inventory_image = "tutorial_block_placer3.png^technic_tool_mode1.png",
wield_image = "tutorial_block_placer3.png", wield_image = "tutorial_block_placer3.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -2142,6 +2214,7 @@ minetest.register_craftitem("tutorial:wallplacer3_2", {
description = "Wallplacer lv.3", description = "Wallplacer lv.3",
inventory_image = "tutorial_block_placer3.png^technic_tool_mode2.png", inventory_image = "tutorial_block_placer3.png^technic_tool_mode2.png",
wield_image = "tutorial_block_placer3.png", wield_image = "tutorial_block_placer3.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -2264,6 +2337,7 @@ minetest.register_craftitem("tutorial:wallplacer3_3", {
description = "Wallplacer lv.3", description = "Wallplacer lv.3",
inventory_image = "tutorial_block_placer3.png^technic_tool_mode3.png", inventory_image = "tutorial_block_placer3.png^technic_tool_mode3.png",
wield_image = "tutorial_block_placer3.png", wield_image = "tutorial_block_placer3.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -2386,6 +2460,7 @@ minetest.register_craftitem("tutorial:wallplacer4_1", {
description = "Wallplacer lv.4", description = "Wallplacer lv.4",
inventory_image = "tutorial_block_placer4.png^technic_tool_mode1.png", inventory_image = "tutorial_block_placer4.png^technic_tool_mode1.png",
wield_image = "tutorial_block_placer4.png", wield_image = "tutorial_block_placer4.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -2508,6 +2583,7 @@ minetest.register_craftitem("tutorial:wallplacer4_2", {
description = "Wallplacer lv.4", description = "Wallplacer lv.4",
inventory_image = "tutorial_block_placer4.png^technic_tool_mode2.png", inventory_image = "tutorial_block_placer4.png^technic_tool_mode2.png",
wield_image = "tutorial_block_placer4.png", wield_image = "tutorial_block_placer4.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -2630,6 +2706,7 @@ minetest.register_craftitem("tutorial:wallplacer4_3", {
description = "Wallplacer lv.4", description = "Wallplacer lv.4",
inventory_image = "tutorial_block_placer4.png^technic_tool_mode3.png", inventory_image = "tutorial_block_placer4.png^technic_tool_mode3.png",
wield_image = "tutorial_block_placer4.png", wield_image = "tutorial_block_placer4.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -2752,6 +2829,7 @@ minetest.register_craftitem("tutorial:wallplacer4_4", {
description = "Wallplacer lv.4", description = "Wallplacer lv.4",
inventory_image = "tutorial_block_placer4.png^technic_tool_mode4.png", inventory_image = "tutorial_block_placer4.png^technic_tool_mode4.png",
wield_image = "tutorial_block_placer4.png", wield_image = "tutorial_block_placer4.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -2996,6 +3074,7 @@ minetest.register_craftitem("tutorial:wallplacer5_2", {
description = "Wallplacer lv.MAX", description = "Wallplacer lv.MAX",
inventory_image = "tutorial_block_placer5.png^technic_tool_mode2.png", inventory_image = "tutorial_block_placer5.png^technic_tool_mode2.png",
wield_image = "tutorial_block_placer5.png", wield_image = "tutorial_block_placer5.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -3118,6 +3197,7 @@ minetest.register_craftitem("tutorial:wallplacer5_3", {
description = "Wallplacer lv.MAX", description = "Wallplacer lv.MAX",
inventory_image = "tutorial_block_placer5.png^technic_tool_mode3.png", inventory_image = "tutorial_block_placer5.png^technic_tool_mode3.png",
wield_image = "tutorial_block_placer5.png", wield_image = "tutorial_block_placer5.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -3240,6 +3320,7 @@ minetest.register_craftitem("tutorial:wallplacer5_4", {
description = "Wallplacer lv.MAX", description = "Wallplacer lv.MAX",
inventory_image = "tutorial_block_placer5.png^technic_tool_mode4.png", inventory_image = "tutorial_block_placer5.png^technic_tool_mode4.png",
wield_image = "tutorial_block_placer5.png", wield_image = "tutorial_block_placer5.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -3362,6 +3443,7 @@ minetest.register_craftitem("tutorial:wallplacer5_5", {
description = "Wallplacer lv.MAX", description = "Wallplacer lv.MAX",
inventory_image = "tutorial_block_placer5.png^technic_tool_mode5.png", inventory_image = "tutorial_block_placer5.png^technic_tool_mode5.png",
wield_image = "tutorial_block_placer5.png", wield_image = "tutorial_block_placer5.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -3606,6 +3688,7 @@ minetest.register_craftitem("tutorial:adminwallplacer_2", {
description = "Admin tool 9: Wallplacer", description = "Admin tool 9: Wallplacer",
inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode2.png", inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode2.png",
wield_image = "tutorial_block_placerAdmin.png", wield_image = "tutorial_block_placerAdmin.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -3728,6 +3811,7 @@ minetest.register_craftitem("tutorial:adminwallplacer_3", {
description = "Admin tool 9: Wallplacer", description = "Admin tool 9: Wallplacer",
inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode3.png", inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode3.png",
wield_image = "tutorial_block_placerAdmin.png", wield_image = "tutorial_block_placerAdmin.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -3850,6 +3934,7 @@ minetest.register_craftitem("tutorial:adminwallplacer_4", {
description = "Admin tool 9: Wallplacer", description = "Admin tool 9: Wallplacer",
inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode4.png", inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode4.png",
wield_image = "tutorial_block_placerAdmin.png", wield_image = "tutorial_block_placerAdmin.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -3972,6 +4057,7 @@ minetest.register_craftitem("tutorial:adminwallplacer_5", {
description = "Admin tool 9: Wallplacer", description = "Admin tool 9: Wallplacer",
inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode5.png", inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode5.png",
wield_image = "tutorial_block_placerAdmin.png", wield_image = "tutorial_block_placerAdmin.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local keys = user:get_player_control() local keys = user:get_player_control()
if keys["sneak"] == true then if keys["sneak"] == true then
@ -4484,7 +4570,7 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = 'tutorial:supergun1', output = 'tutorial:supergun1',
recipe = { recipe = {
{'tutorial:zauberstab9', 'tutorial:gun_mega25', 'tutorial:swored_zauber9'}, {'tutorial:zauberstab9', 'tutorial:cloudgun_mega25', 'tutorial:swored_zauber9'},
} }
}) })
minetest.register_craft({ minetest.register_craft({
@ -5041,13 +5127,13 @@ for i = 1, 100, 1 do
minetest.register_node("tutorial:level"..i.."_gelb",{ minetest.register_node("tutorial:level"..i.."_gelb",{
tiles = {"tutorial_level"..i..".png^tutorial_level_gelb.png"}, tiles = {"tutorial_level"..i..".png^tutorial_level_gelb.png"},
description = "You are now in Level yellow "..i, description = "You are now in Level yellow "..i,
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
}) })
end end
minetest.register_craftitem("tutorial:coin_gelb", { minetest.register_craftitem("tutorial:coin_gelb", {
description = "Coin yellow (very rare)", description = "Coin yellow (very rare)",
inventory_image = "tutorial_coin_gelb.png", inventory_image = "tutorial_coin_gelb.png",
stack_max = 1500, stack_max = 9999,
}) })
minetest.register_node("tutorial:levelMAX_gelb",{ minetest.register_node("tutorial:levelMAX_gelb",{
tiles = {"tutorial_levelMAX.png^tutorial_level_gelb.png"}, tiles = {"tutorial_levelMAX.png^tutorial_level_gelb.png"},
@ -5223,12 +5309,14 @@ for i = 0, 127 do
for k, obj in pairs(objs) do for k, obj in pairs(objs) do
local damage = ki local damage = ki
if obj:get_luaentity() ~= nil then if obj:get_luaentity() ~= nil then
if obj:get_luaentity().name ~= "tutorial:tb_"..i and obj:get_luaentity().name ~= "__builtin:item" then if string.match(obj:get_luaentity().name, "monster") or string.match(obj:get_luaentity().name, "mobs_bat") or string.match(obj:get_luaentity().name, "mobs_birds") or string.match(obj:get_luaentity().name, "mobs_butterfly") or string.match(obj:get_luaentity().name, "mobs_crocs") or string.match(obj:get_luaentity().name, "mobs_fish") or string.match(obj:get_luaentity().name, "mobs_jellyfish") or string.match(obj:get_luaentity().name, "mobs_sharks") or string.match(obj:get_luaentity().name, "mobs_turtles") or string.match(obj:get_luaentity().name, "mummy") then
obj:punch(self.object, 1.0, {full_punch_interval = 1.0, damage_groups= {fleshy = damage}}, nil) if obj:get_luaentity().name ~= "tutorial:tb_"..i and obj:get_luaentity().name ~= "__builtin:item" then
minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8}) obj:punch(self.object, 1.0, {full_punch_interval = 1.0, damage_groups= {fleshy = damage}}, nil)
end minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8})
end
end
else else
if obj:is_player() then if obj:is_player() and self.player then
if obj:get_player_name() == self.player:get_player_name() then if obj:get_player_name() == self.player:get_player_name() then
else else
obj:punch(self.object, 1.0, {full_punch_interval = 1.0, damage_groups= {fleshy = damage}}, nil) obj:punch(self.object, 1.0, {full_punch_interval = 1.0, damage_groups= {fleshy = damage}}, nil)
@ -5315,6 +5403,7 @@ end
minetest.register_tool("tutorial:gun", { minetest.register_tool("tutorial:gun", {
description = "Gun\nGun-lv.0", description = "Gun\nGun-lv.0",
inventory_image = "tutorial_gun.png", inventory_image = "tutorial_gun.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5341,6 +5430,7 @@ for i = 1, 20 do
minetest.register_tool("tutorial:gun_mega"..i, { minetest.register_tool("tutorial:gun_mega"..i, {
description = "Mega Gun lv."..i.."\nGun-lv."..i, description = "Mega Gun lv."..i.."\nGun-lv."..i,
inventory_image = "tutorial_gun_mega"..i..".png", inventory_image = "tutorial_gun_mega"..i..".png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5368,6 +5458,7 @@ for i = 1, 25 do
minetest.register_tool("tutorial:cloudgun_mega"..i, { minetest.register_tool("tutorial:cloudgun_mega"..i, {
description = "Cloudgun lv."..i.."\nGun-lv."..(i+20), description = "Cloudgun lv."..i.."\nGun-lv."..(i+20),
inventory_image = "tutorial_cloudgun_mega"..i..".png", inventory_image = "tutorial_cloudgun_mega"..i..".png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5395,6 +5486,7 @@ for i = 1, 4 do
minetest.register_tool("tutorial:supergun"..i, { minetest.register_tool("tutorial:supergun"..i, {
description = "Supergun lv."..i.."\nGun-lv."..(i+45), description = "Supergun lv."..i.."\nGun-lv."..(i+45),
inventory_image = "tutorial_supergun"..i..".png", inventory_image = "tutorial_supergun"..i..".png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5422,6 +5514,7 @@ for i = 1, 2 do
minetest.register_tool("tutorial:uraniumgun"..i, { minetest.register_tool("tutorial:uraniumgun"..i, {
description = "Uraniumgun lv."..i.."\nGun-lv."..(i+49), description = "Uraniumgun lv."..i.."\nGun-lv."..(i+49),
inventory_image = "tutorial_uraniumgun"..i..".png", inventory_image = "tutorial_uraniumgun"..i..".png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5449,6 +5542,7 @@ for i = 1, 12 do
minetest.register_tool("tutorial:energygun"..i, { minetest.register_tool("tutorial:energygun"..i, {
description = "Energygun lv."..i.."\nGun-lv."..(i+51), description = "Energygun lv."..i.."\nGun-lv."..(i+51),
inventory_image = "tutorial_energygun"..i..".png", inventory_image = "tutorial_energygun"..i..".png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5476,6 +5570,7 @@ for i = 1, 7 do
minetest.register_tool("tutorial:superenergygun"..i, { minetest.register_tool("tutorial:superenergygun"..i, {
description = "Superenergygun lv."..i.."\nGun-lv."..(i+63), description = "Superenergygun lv."..i.."\nGun-lv."..(i+63),
inventory_image = "tutorial_superenergygun"..i..".png", inventory_image = "tutorial_superenergygun"..i..".png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5503,6 +5598,7 @@ for i = 1, 5 do
minetest.register_tool("tutorial:kristallgun"..i, { minetest.register_tool("tutorial:kristallgun"..i, {
description = "Crystalgun lv."..i.."\nGun-lv."..(i+70), description = "Crystalgun lv."..i.."\nGun-lv."..(i+70),
inventory_image = "tutorial_kristallgun"..i..".png", inventory_image = "tutorial_kristallgun"..i..".png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5530,6 +5626,7 @@ for i = 1, 25 do
minetest.register_tool("tutorial:ultragun"..i, { minetest.register_tool("tutorial:ultragun"..i, {
description = "Ultragun lv."..i.."\nGun-lv."..(i+75), description = "Ultragun lv."..i.."\nGun-lv."..(i+75),
inventory_image = "tutorial_ultragun"..i..".png", inventory_image = "tutorial_ultragun"..i..".png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5556,6 +5653,7 @@ end
minetest.register_tool("tutorial:ultragun", { minetest.register_tool("tutorial:ultragun", {
description = "Superultragun\nGun-lv.101", description = "Superultragun\nGun-lv.101",
inventory_image = "tutorial_superultragun.png", inventory_image = "tutorial_superultragun.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5582,6 +5680,7 @@ for i = 1, 4 do
minetest.register_tool("tutorial:arenagun"..i, { minetest.register_tool("tutorial:arenagun"..i, {
description = "Arenagun lv."..i.."\nGun-lv."..(i+101), description = "Arenagun lv."..i.."\nGun-lv."..(i+101),
inventory_image = "tutorial_arenagun"..i..".png", inventory_image = "tutorial_arenagun"..i..".png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5609,6 +5708,7 @@ for i = 1, 10 do
minetest.register_tool("tutorial:titangun"..i, { minetest.register_tool("tutorial:titangun"..i, {
description = "Titangun lv."..i.."\nGun-lv."..(i+105), description = "Titangun lv."..i.."\nGun-lv."..(i+105),
inventory_image = "tutorial_titangun"..i..".png", inventory_image = "tutorial_titangun"..i..".png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5636,6 +5736,7 @@ for i = 1, 6 do
minetest.register_tool("tutorial:legendengun"..i, { minetest.register_tool("tutorial:legendengun"..i, {
description = "Legendgun lv."..i.."\nGun-lv."..(i+115), description = "Legendgun lv."..i.."\nGun-lv."..(i+115),
inventory_image = "tutorial_legendengun"..i..".png", inventory_image = "tutorial_legendengun"..i..".png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5663,6 +5764,7 @@ minetest.register_tool("tutorial:superlegendengun1", {
description = "Superlegendgun Mode 1. Add no thunder\nGun-lv.122", description = "Superlegendgun Mode 1. Add no thunder\nGun-lv.122",
inventory_image = "tutorial_superlegendengun.png^technic_tool_mode1.png", inventory_image = "tutorial_superlegendengun.png^technic_tool_mode1.png",
wield_image = "tutorial_superlegendengun.png", wield_image = "tutorial_superlegendengun.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5689,6 +5791,7 @@ minetest.register_tool("tutorial:superlegendengun2", {
description = "Superlegendgun Mode 2. Add thunder\nGun-lv.122", description = "Superlegendgun Mode 2. Add thunder\nGun-lv.122",
inventory_image = "tutorial_superlegendengun.png^technic_tool_mode2.png", inventory_image = "tutorial_superlegendengun.png^technic_tool_mode2.png",
wield_image = "tutorial_superlegendengun.png", wield_image = "tutorial_superlegendengun.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5741,6 +5844,7 @@ minetest.register_tool("tutorial:regnumgun2", {
description = "Regnumgun Mode 2. Add thunder\nGun-lv.MAX", description = "Regnumgun Mode 2. Add thunder\nGun-lv.MAX",
inventory_image = "tutorial_regnumgun.png^technic_tool_mode2.png", inventory_image = "tutorial_regnumgun.png^technic_tool_mode2.png",
wield_image = "tutorial_regnumgun.png", wield_image = "tutorial_regnumgun.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5793,6 +5897,7 @@ minetest.register_tool("tutorial:gun_admin2", {
description = "Admin tool 11: Gun Mode 2. Add thunder", description = "Admin tool 11: Gun Mode 2. Add thunder",
inventory_image = "tutorial_admingun.png^technic_tool_mode2.png", inventory_image = "tutorial_admingun.png^technic_tool_mode2.png",
wield_image = "tutorial_admingun.png", wield_image = "tutorial_admingun.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
local inv = user:get_inventory() local inv = user:get_inventory()
local pos = user:getpos() local pos = user:getpos()
@ -5950,17 +6055,17 @@ recraft.get_formspec = function(player,pos)
{103, "normal", 5, "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", 0}, {103, "normal", 5, "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", 0},
{104, "normal", 5, "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", 0}, {104, "normal", 5, "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", 0},
{105, "normal", 5, "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", 0}, {105, "normal", 5, "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", 0},
{106, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, {106, "normal", 5, "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", 0},
{107, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, {107, "normal", 5, "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", 0},
{108, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, {108, "normal", 5, "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", 0},
{109, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, {109, "normal", 5, "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", 0},
{110, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, {110, "normal", 5, "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", 0},
{111, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, {111, "normal", 5, "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", 0},
{112, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, {112, "normal", 5, "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", 0},
{113, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, {113, "normal", 5, "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", 0},
{114, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, {114, "normal", 5, "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", 0},
{115, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, {115, "normal", 5, "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", "tutorial:titan", "", 0},
{116, "normal", 1, "tutorial:bottle5", "", "", "", "", "", "", "", "", 0}, {116, "normal", 1, "tutorial:bottle5", "", "", "", "", "", "", "", "", 0},
{117, "normal", 1, "tutorial:bottle7", "", "", "", "", "", "", "", "", 0}, {117, "normal", 1, "tutorial:bottle7", "", "", "", "", "", "", "", "", 0},
{118, "normal", 1, "tutorial:bottle9", "", "", "", "", "", "", "", "", 0}, {118, "normal", 1, "tutorial:bottle9", "", "", "", "", "", "", "", "", 0},
{119, "normal", 1, "tutorial:bottle11", "", "", "", "", "", "", "", "", 0}, {119, "normal", 1, "tutorial:bottle11", "", "", "", "", "", "", "", "", 0},
@ -6632,20 +6737,22 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end end
end end
if k == 2 then if k == 2 then
local p = 0
for i = 1, 149 do for i = 1, 149 do
local m = player_inv:get_stack("mine1", 1):get_name() local m = player_inv:get_stack("mine1", 1):get_name()
local p = 0 if p == 0 then
if p == 0 and m == "technic:drill_mkS"..i.."_1" or m == "technic:drill_mkS"..i.."_2" or m == "technic:drill_mkS"..i.."_3" or m == "technic:drill_mkS"..i.."_4" or m == "technic:drill_mkS"..i.."_5" or m == "technic:drill_mkS"..i.."" then if m == "technic:drill_mkS"..i.."_1" or m == "technic:drill_mkS"..i.."_2" or m == "technic:drill_mkS"..i.."_3" or m == "technic:drill_mkS"..i.."_4" or m == "technic:drill_mkS"..i.."_5" or m == "technic:drill_mkS"..i then
p = 1 p = 1
player_inv:set_stack("mine2", 1, "tutorial:coin2 "..(y1-1)) player_inv:set_stack("mine2", 1, "tutorial:coin2 "..(y1-1))
player_inv:set_stack("mine2", 2, "tutorial:coin2 "..(y2-1)) player_inv:set_stack("mine2", 2, "tutorial:coin2 "..(y2-1))
player_inv:set_stack("mine2", 3, "tutorial:coin2 "..(y3-1)) player_inv:set_stack("mine2", 3, "tutorial:coin2 "..(y3-1))
player_inv:set_stack("mine2", 4, "tutorial:coin2 "..(y4-1)) player_inv:set_stack("mine2", 4, "tutorial:coin2 "..(y4-1))
player_inv:set_stack("mine2", 5, "tutorial:coin2 "..(y5-1)) player_inv:set_stack("mine2", 5, "tutorial:coin2 "..(y5-1))
player_inv:set_stack("mine2", 6, "tutorial:coin2 "..(y6-1)) player_inv:set_stack("mine2", 6, "tutorial:coin2 "..(y6-1))
player_inv:set_stack("mine2", 7, "tutorial:coin2 "..(y7-1)) player_inv:set_stack("mine2", 7, "tutorial:coin2 "..(y7-1))
player_inv:set_stack("mine2", 8, "tutorial:coin2 "..(y8-1)) player_inv:set_stack("mine2", 8, "tutorial:coin2 "..(y8-1))
player_inv:set_stack("mine1", 1, "technic:drill_mkS"..(i+1)) player_inv:set_stack("mine1", 1, "technic:drill_mkS"..(i+1))
end
end end
end end
end end
@ -7324,6 +7431,7 @@ minetest.register_tool("tutorial:adminbattleaxe3", {
description = "Admin tool 3: Admin battleaxe Mode 3. Only for hunting mobs", description = "Admin tool 3: Admin battleaxe Mode 3. Only for hunting mobs",
inventory_image = "tutorial_adminbattleaxe.png^technic_tool_mode3.png", inventory_image = "tutorial_adminbattleaxe.png^technic_tool_mode3.png",
wield_image = "tutorial_adminbattleaxe.png", wield_image = "tutorial_adminbattleaxe.png",
groups = {not_in_creative_inventory=1},
tool_capabilities = { tool_capabilities = {
full_punch_interval = 2.0, full_punch_interval = 2.0,
max_drop_level=1, max_drop_level=1,
@ -7337,6 +7445,7 @@ minetest.register_tool("tutorial:superlegendenbattleaxe3", {
description = "Superlegendbattleaxe Mode 3. Only for hunting mobs\nBattleaxe-lv.122", description = "Superlegendbattleaxe Mode 3. Only for hunting mobs\nBattleaxe-lv.122",
inventory_image = "tutorial_superlegendenbattleaxe.png^technic_tool_mode3.png", inventory_image = "tutorial_superlegendenbattleaxe.png^technic_tool_mode3.png",
wield_image = "tutorial_superlegendenbattleaxe.png", wield_image = "tutorial_superlegendenbattleaxe.png",
groups = {not_in_creative_inventory=1},
tool_capabilities = { tool_capabilities = {
full_punch_interval = 2.0, full_punch_interval = 2.0,
max_drop_level=1, max_drop_level=1,
@ -7362,6 +7471,7 @@ minetest.register_tool("tutorial:regnumbattleaxe3", {
description = "Regnumbattleaxe Mode 3. Only for hunting mobs\nBattleaxe-lv.MAX", description = "Regnumbattleaxe Mode 3. Only for hunting mobs\nBattleaxe-lv.MAX",
inventory_image = "tutorial_regnumbattleaxe.png^technic_tool_mode3.png", inventory_image = "tutorial_regnumbattleaxe.png^technic_tool_mode3.png",
wield_image = "tutorial_regnumbattleaxe.png", wield_image = "tutorial_regnumbattleaxe.png",
groups = {not_in_creative_inventory=1},
tool_capabilities = { tool_capabilities = {
full_punch_interval = 2.0, full_punch_interval = 2.0,
max_drop_level=1, max_drop_level=1,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

View File

@ -141,7 +141,7 @@ minetest.register_node("tutorial:geschenk_gold",{
description = "Gift (gold)", description = "Gift (gold)",
is_ground_content = true, is_ground_content = true,
tiles = {"tutorial_geschenk_gold.png"}, tiles = {"tutorial_geschenk_gold.png"},
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
drop = {}, drop = {},
}) })
minetest.register_node("tutorial:geschenk_platin",{ minetest.register_node("tutorial:geschenk_platin",{
@ -189,7 +189,7 @@ for i = 1, 20, 1 do
minetest.register_node("tutorial:level"..i.."_rot",{ minetest.register_node("tutorial:level"..i.."_rot",{
tiles = {"tutorial_level"..i..".png^tutorial_level_rot.png"}, tiles = {"tutorial_level"..i..".png^tutorial_level_rot.png"},
description = "You are now in Level red "..i, description = "You are now in Level red "..i,
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
}) })
end end
minetest.register_node("tutorial:levelMAX_rot",{ minetest.register_node("tutorial:levelMAX_rot",{
@ -201,7 +201,7 @@ for i = 1, 100, 1 do
minetest.register_node("tutorial:level"..i.."_grau",{ minetest.register_node("tutorial:level"..i.."_grau",{
tiles = {"tutorial_level"..i..".png^tutorial_level_grau.png"}, tiles = {"tutorial_level"..i..".png^tutorial_level_grau.png"},
description = "You are now in Level gray "..i, description = "You are now in Level gray "..i,
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
}) })
end end
minetest.register_node("tutorial:levelMAX_grau",{ minetest.register_node("tutorial:levelMAX_grau",{
@ -213,7 +213,7 @@ for i = 1, 20, 1 do
minetest.register_node("tutorial:level"..i.."_blau",{ minetest.register_node("tutorial:level"..i.."_blau",{
tiles = {"tutorial_level"..i..".png^tutorial_level_blau.png"}, tiles = {"tutorial_level"..i..".png^tutorial_level_blau.png"},
description = "You are now in Level blue "..i, description = "You are now in Level blue "..i,
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
}) })
end end
minetest.register_node("tutorial:levelMAX_blau",{ minetest.register_node("tutorial:levelMAX_blau",{
@ -225,7 +225,7 @@ for i = 1, 100, 1 do
minetest.register_node("tutorial:level"..i,{ minetest.register_node("tutorial:level"..i,{
tiles = {"tutorial_level"..i..".png"}, tiles = {"tutorial_level"..i..".png"},
description = "You are now in Level green "..i, description = "You are now in Level green "..i,
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
}) })
end end
minetest.register_node("tutorial:levelMAX",{ minetest.register_node("tutorial:levelMAX",{
@ -316,7 +316,7 @@ minetest.register_node("tutorial:bottleS1", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottleS2", { minetest.register_node("tutorial:bottleS2", {
description = "Super magic bottle lv.2", description = "Super magic bottle lv.2",
@ -329,10 +329,10 @@ minetest.register_node("tutorial:bottleS2", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottleS3", { minetest.register_node("tutorial:bottleS3", {
description = "Super magic bottle lv.3", description = "Super magic bottle lv.MAX",
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"tutorial_bottleS3.png"}, tiles = {"tutorial_bottleS3.png"},
wield_image = "tutorial_bottleS3.png", wield_image = "tutorial_bottleS3.png",
@ -368,7 +368,7 @@ minetest.register_node("tutorial:bottle1", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottle2", { minetest.register_node("tutorial:bottle2", {
description = "Magic bottle lv.2", description = "Magic bottle lv.2",
@ -381,7 +381,7 @@ minetest.register_node("tutorial:bottle2", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottle3", { minetest.register_node("tutorial:bottle3", {
description = "Magic bottle lv.3", description = "Magic bottle lv.3",
@ -394,7 +394,7 @@ minetest.register_node("tutorial:bottle3", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottle4", { minetest.register_node("tutorial:bottle4", {
description = "Magic bottle lv.4", description = "Magic bottle lv.4",
@ -407,7 +407,7 @@ minetest.register_node("tutorial:bottle4", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottle5", { minetest.register_node("tutorial:bottle5", {
description = "Magic bottle lv.5", description = "Magic bottle lv.5",
@ -420,7 +420,7 @@ minetest.register_node("tutorial:bottle5", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottle6", { minetest.register_node("tutorial:bottle6", {
description = "Magic bottle lv.6", description = "Magic bottle lv.6",
@ -433,7 +433,7 @@ minetest.register_node("tutorial:bottle6", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottle7", { minetest.register_node("tutorial:bottle7", {
description = "Magic bottle lv.7", description = "Magic bottle lv.7",
@ -446,7 +446,7 @@ minetest.register_node("tutorial:bottle7", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottle8", { minetest.register_node("tutorial:bottle8", {
description = "Magic bottle lv.8", description = "Magic bottle lv.8",
@ -459,7 +459,7 @@ minetest.register_node("tutorial:bottle8", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottle9", { minetest.register_node("tutorial:bottle9", {
description = "Magic bottle lv.9", description = "Magic bottle lv.9",
@ -472,7 +472,7 @@ minetest.register_node("tutorial:bottle9", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottle10", { minetest.register_node("tutorial:bottle10", {
description = "Magic bottle lv.10", description = "Magic bottle lv.10",
@ -485,7 +485,7 @@ minetest.register_node("tutorial:bottle10", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottle11", { minetest.register_node("tutorial:bottle11", {
description = "Magic bottle lv.11", description = "Magic bottle lv.11",
@ -498,10 +498,10 @@ minetest.register_node("tutorial:bottle11", {
type = "fixed", type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}
}, },
groups = {vessel=1,dig_immediate=3,attached_node=1}, groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:bottle12", { minetest.register_node("tutorial:bottle12", {
description = "Magic bottle lv.12", description = "Magic bottle lv.MAX",
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"tutorial_bottle12.png"}, tiles = {"tutorial_bottle12.png"},
wield_image = "tutorial_bottle12.png", wield_image = "tutorial_bottle12.png",
@ -515,82 +515,82 @@ minetest.register_node("tutorial:bottle12", {
}) })
minetest.register_node("tutorial:megablock4",{ minetest.register_node("tutorial:megablock4",{
tiles = {"tutorial_megablock4.png"}, tiles = {"tutorial_megablock4.png"},
description = "Mega block Lv.4", description = "Mega block Lv.MAX",
groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0},
}) })
minetest.register_node("tutorial:megablock3",{ minetest.register_node("tutorial:megablock3",{
tiles = {"tutorial_megablock3.png"}, tiles = {"tutorial_megablock3.png"},
description = "Mega block Lv.3", description = "Mega block Lv.3",
groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0,not_in_creative_inventory=1},
}) })
--v.0.6.6 --v.0.6.6
minetest.register_node("tutorial:megablock2",{ minetest.register_node("tutorial:megablock2",{
tiles = {"tutorial_megablock2.png"}, tiles = {"tutorial_megablock2.png"},
description = "Mega block Lv.2", description = "Mega block Lv.2",
groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:megablock1",{ minetest.register_node("tutorial:megablock1",{
tiles = {"tutorial_megablock1.png"}, tiles = {"tutorial_megablock1.png"},
description = "Mega block lv.1", description = "Mega block lv.1",
groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:diamondblock2",{ minetest.register_node("tutorial:diamondblock2",{
tiles = {"tutorial_diamondblock2.png"}, tiles = {"tutorial_diamondblock2.png"},
description = "Diamond block lv.2", description = "Diamond block lv.MAX",
groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0},
}) })
minetest.register_node("tutorial:dunklematerie1",{ minetest.register_node("tutorial:dunklematerie1",{
tiles = {"tutorial_dunklematerie1.png"}, tiles = {"tutorial_dunklematerie1.png"},
description = "Dark matter Lv.1", description = "Dark matter Lv.1",
groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:dunklematerie2",{ minetest.register_node("tutorial:dunklematerie2",{
tiles = {"tutorial_dunklematerie2.png"}, tiles = {"tutorial_dunklematerie2.png"},
description = "Dark matter Lv.2", description = "Dark matter Lv.2",
groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:dunklematerie3",{ minetest.register_node("tutorial:dunklematerie3",{
tiles = {"tutorial_dunklematerie3.png"}, tiles = {"tutorial_dunklematerie3.png"},
description = "Dark matter Lv.3", description = "Dark matter Lv.3",
groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:dunklematerie4",{ minetest.register_node("tutorial:dunklematerie4",{
tiles = {"tutorial_dunklematerie4.png"}, tiles = {"tutorial_dunklematerie4.png"},
description = "Dark matter Lv.4", description = "Dark matter Lv.4",
groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:dunklematerie5",{ minetest.register_node("tutorial:dunklematerie5",{
tiles = {"tutorial_dunklematerie5.png"}, tiles = {"tutorial_dunklematerie5.png"},
description = "Dark matter Lv.5", description = "Dark matter Lv.5",
groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:dunklematerie6",{ minetest.register_node("tutorial:dunklematerie6",{
tiles = {"tutorial_dunklematerie6.png"}, tiles = {"tutorial_dunklematerie6.png"},
description = "Dark matter Lv.6", description = "Dark matter Lv.MAX",
groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0},
}) })
minetest.register_node("tutorial:obsidian2",{ minetest.register_node("tutorial:obsidian2",{
tiles = {"tutorial_obsidian2.png"}, tiles = {"tutorial_obsidian2.png"},
description = "Obsidian Lv.2", description = "Obsidian Lv.2",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:obsidian3",{ minetest.register_node("tutorial:obsidian3",{
tiles = {"tutorial_obsidian3.png"}, tiles = {"tutorial_obsidian3.png"},
description = "Obsidian Lv.3", description = "Obsidian Lv.3",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:obsidian4",{ minetest.register_node("tutorial:obsidian4",{
tiles = {"tutorial_obsidian4.png"}, tiles = {"tutorial_obsidian4.png"},
description = "Obsidian Lv.4", description = "Obsidian Lv.4",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:obsidian5",{ minetest.register_node("tutorial:obsidian5",{
tiles = {"tutorial_obsidian5.png"}, tiles = {"tutorial_obsidian5.png"},
description = "Obsidian Lv.5", description = "Obsidian Lv.5",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0,not_in_creative_inventory=1},
}) })
minetest.register_node("tutorial:obsidian6",{ minetest.register_node("tutorial:obsidian6",{
description = "Obsidian Lv.6", description = "Obsidian Lv.MAX",
tiles = {"tutorial_obsidian6.png"}, tiles = {"tutorial_obsidian6.png"},
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0}, groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0},
}) })

View File

@ -998,9 +998,9 @@ rg16.get_formspec = function(player, pos)
.."label[0,2.8;The dog and the cat will kill monsters and collect the wrapping paper]" .."label[0,2.8;The dog and the cat will kill monsters and collect the wrapping paper]"
.."label[0,3.1;The sheep will produce wool.]" .."label[0,3.1;The sheep will produce wool.]"
.."label[0,3.4;The dagon will produce a dragon gift or a gem gift if you have a regnum crystal.]" .."label[0,3.4;The dagon will produce a dragon gift or a gem gift if you have a regnum crystal.]"
.."label[0,3.4;The fox will produce a fox key and treasures.]" .."label[0,3.7;The fox will produce a fox key and treasures.]"
.."label[0,3.4;The tortoise will produce a tortoise gift or a gem gift if you have a regnum crystal.]" .."label[0,4.0;The tortoise will produce a tortoise gift or a gem gift if you have a regnum crystal.]"
.."label[0,3.7;You can chage the color of the pets and they can folow you.]" .."label[0,4.3;You can chage the color of the pets and they can folow you.]"
.."button[2,10; 2,0.5;rg15;<]" .."button[2,10; 2,0.5;rg15;<]"
.."button[4,10; 2,0.5;rg17;>]" .."button[4,10; 2,0.5;rg17;>]"
return formspec return formspec
@ -1149,7 +1149,7 @@ rg8.get_formspec = function(player, pos)
.."label[0,1.3;Here you can see how to craft items]" .."label[0,1.3;Here you can see how to craft items]"
.."label[0,1.6;Click on one item to see the crafting]" .."label[0,1.6;Click on one item to see the crafting]"
.."label[0,1.9;You can also see 4x4 and 5x5 craftings,]" .."label[0,1.9;You can also see 4x4 and 5x5 craftings,]"
.."label[0,2.2;You can see the craftings for battleaxes/armor/gun ]" .."label[0,2.2;You can see the craftings for battleaxes/armor/gun]"
.."label[0,2.5;in the Regnum Craft Guide.]" .."label[0,2.5;in the Regnum Craft Guide.]"
.."label[0,2.8;How to use Craft guide:]" .."label[0,2.8;How to use Craft guide:]"
.."label[0,3.1;1. Click on one item and you see the crafting above]" .."label[0,3.1;1. Click on one item and you see the crafting above]"
@ -2023,7 +2023,6 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
player_inv:set_stack("dna", 8, "tutorial:big_dna_string "..(y8-1)) player_inv:set_stack("dna", 8, "tutorial:big_dna_string "..(y8-1))
player_inv:add_item("main","mobs:random_monster_egg") player_inv:add_item("main","mobs:random_monster_egg")
end end
inventory_plus.set_inventory_formspec(player, dna.get_formspec(player))
end end
end) end)
local ach = {} local ach = {}
@ -2354,7 +2353,7 @@ ach2.get_formspec = function(player, pos)
formspec= "label[0.8,1.1;Regnumbattleaxe]" formspec= "label[0.8,1.1;Regnumbattleaxe]"
.."label[0.8,1.9;Bagkey Lv.MAX]" .."label[0.8,1.9;Bagkey Lv.MAX]"
.."label[0.8,2.7.5;Armorkey]" .."label[0.8,2.7.5;Armorkey]"
.."label[0.8,3.5;Xp key]" .."label[0.8,3.5;Levelkey]"
.."label[0.8,4.3.5;Craftkey Lv.MAX]" .."label[0.8,4.3.5;Craftkey Lv.MAX]"
.."label[0.8,5.1;Legendkey]" .."label[0.8,5.1;Legendkey]"
.."label[0.8,5.9;Regnumkey]" .."label[0.8,5.9;Regnumkey]"
@ -2451,7 +2450,7 @@ for j = 1, 8, 1 do
buildable_to = true, buildable_to = true,
damage_per_second = (i*8), damage_per_second = (i*8),
drop = {}, drop = {},
groups = {dig_immediate=3}, groups = {dig_immediate=3,not_in_creative_inventory=1},
}) })
minetest.register_abm({ minetest.register_abm({
nodenames = {"tutorial:legend_thunder_"..i.."_"..j}, nodenames = {"tutorial:legend_thunder_"..i.."_"..j},
@ -2529,6 +2528,7 @@ for k = 1, 8, 1 do
minetest.register_tool("tutorial:legendball_"..i.."_"..j.."_"..k, { minetest.register_tool("tutorial:legendball_"..i.."_"..j.."_"..k, {
description = "Legend Ball: Ball damage lv."..k..", Thunder damage lv."..i..", Thunder lengh lv."..j, description = "Legend Ball: Ball damage lv."..k..", Thunder damage lv."..i..", Thunder lengh lv."..j,
inventory_image = "tutorial_legendball.png", inventory_image = "tutorial_legendball.png",
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, placer, pointed_thing) on_use = function(itemstack, placer, pointed_thing)
local dir = placer:get_look_dir(); local dir = placer:get_look_dir();
local inv = placer:get_inventory() local inv = placer:get_inventory()
@ -2549,10 +2549,10 @@ end
local mode_text = { local mode_text = {
{"Give player Enemy rank. (revoke all privs)"}, {"Give player Enemy rank. (revoke all privs)"},
{"Give player Member rank. (interact,shout)"}, {"Give player Member rank. (interact,shout)"},
{"Give player Premium rank. (interact,shout,fly,fast,home,zoom)"}, {"Give player Premium rank. (interact,shout,fly,fast,home)"},
{"Give player VIP rank. (interact,shout,fly,fast,home,teleport,zoom)"}, {"Give player VIP rank. (interact,shout,fly,fast,home,teleport)"},
{"Give player Hero rank. (interact,shout,fly,fast,home,teleport,noclip,zoom,debug)"}, {"Give player Hero rank. (interact,shout,fly,fast,home,teleport,noclip,debug)"},
{"Give player Legend rank (interact,shout,fly,fast,home,teleport,bring,noclip,settime,zoom,debug)"}, {"Give player Legend rank (interact,shout,fly,fast,home,teleport,noclip,debug,bring,settime)"},
{"Give player Admin rank (all privs)"}, {"Give player Admin rank (all privs)"},
{"Mark player as a youtuber "}, {"Mark player as a youtuber "},
} }
@ -2619,7 +2619,7 @@ local function server_hammer_handler(itemstack, user, pointed_thing, mode)
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 255}, text = "[Youtuber][Member]"..player:get_player_name()}) player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 255}, text = "[Youtuber][Member]"..player:get_player_name()})
end end
elseif mode == 3 then elseif mode == 3 then
minetest.chat_send_player(punched_player, puncher.." gives you Premium rank. You can use interact,shout,fast,fly,home and zoom") minetest.chat_send_player(punched_player, puncher.." gives you Premium rank. You can use interact,shout,fly,fast and home")
minetest.set_player_privs(punched_player, {}) minetest.set_player_privs(punched_player, {})
local punched_player_privs = minetest.get_player_privs(punched_player) local punched_player_privs = minetest.get_player_privs(punched_player)
punched_player_privs["interact"] = true punched_player_privs["interact"] = true
@ -2627,7 +2627,6 @@ local function server_hammer_handler(itemstack, user, pointed_thing, mode)
punched_player_privs["fly"] = true punched_player_privs["fly"] = true
punched_player_privs["fast"] = true punched_player_privs["fast"] = true
punched_player_privs["home"] = true punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
minetest.set_player_privs(punched_player, punched_player_privs) minetest.set_player_privs(punched_player, punched_player_privs)
local player = minetest.get_player_by_name(punched_player) local player = minetest.get_player_by_name(punched_player)
local player_inv = player:get_inventory() local player_inv = player:get_inventory()
@ -2639,7 +2638,7 @@ local function server_hammer_handler(itemstack, user, pointed_thing, mode)
player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()}) player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()})
end end
elseif mode == 4 then elseif mode == 4 then
minetest.chat_send_player(punched_player, puncher.." gives you VIP rank. You can use interact,shout,fast,home,zoom,teleport and fly") minetest.chat_send_player(punched_player, puncher.." gives you VIP rank. You can use interact,shout,fly,fast,home and teleport")
minetest.set_player_privs(punched_player, {}) minetest.set_player_privs(punched_player, {})
local punched_player_privs = minetest.get_player_privs(punched_player) local punched_player_privs = minetest.get_player_privs(punched_player)
punched_player_privs["interact"] = true punched_player_privs["interact"] = true
@ -2647,7 +2646,6 @@ local function server_hammer_handler(itemstack, user, pointed_thing, mode)
punched_player_privs["fly"] = true punched_player_privs["fly"] = true
punched_player_privs["fast"] = true punched_player_privs["fast"] = true
punched_player_privs["home"] = true punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
punched_player_privs["teleport"] = true punched_player_privs["teleport"] = true
minetest.set_player_privs(punched_player, punched_player_privs) minetest.set_player_privs(punched_player, punched_player_privs)
local player = minetest.get_player_by_name(punched_player) local player = minetest.get_player_by_name(punched_player)
@ -2660,7 +2658,7 @@ local function server_hammer_handler(itemstack, user, pointed_thing, mode)
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()}) player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()})
end end
elseif mode == 5 then elseif mode == 5 then
minetest.chat_send_player(punched_player, puncher.." gives you Hero rank. You can use interact,shout,fast,home,zoom,teleport,noclip,fly and debug") minetest.chat_send_player(punched_player, puncher.." gives you Hero rank. You can use interact,shout,fly,fast,home,teleport,noclip and debug")
minetest.set_player_privs(punched_player, {}) minetest.set_player_privs(punched_player, {})
local punched_player_privs = minetest.get_player_privs(punched_player) local punched_player_privs = minetest.get_player_privs(punched_player)
punched_player_privs["interact"] = true punched_player_privs["interact"] = true
@ -2668,7 +2666,6 @@ local function server_hammer_handler(itemstack, user, pointed_thing, mode)
punched_player_privs["fly"] = true punched_player_privs["fly"] = true
punched_player_privs["fast"] = true punched_player_privs["fast"] = true
punched_player_privs["home"] = true punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
punched_player_privs["teleport"] = true punched_player_privs["teleport"] = true
punched_player_privs["noclip"] = true punched_player_privs["noclip"] = true
punched_player_privs["debug"] = true punched_player_privs["debug"] = true
@ -2683,7 +2680,7 @@ local function server_hammer_handler(itemstack, user, pointed_thing, mode)
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()}) player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()})
end end
elseif mode == 6 then elseif mode == 6 then
minetest.chat_send_player(punched_player, puncher.." gives you Legend rank. You can use interact,shout,fast,home,zoom,teleport,noclip,fly,debug,bring and settime") minetest.chat_send_player(punched_player, puncher.." gives you Legend rank. You can use interact,shout,fly,fast,home,teleport,noclip,debug,bring and settime")
minetest.set_player_privs(punched_player, {}) minetest.set_player_privs(punched_player, {})
local punched_player_privs = minetest.get_player_privs(punched_player) local punched_player_privs = minetest.get_player_privs(punched_player)
punched_player_privs["interact"] = true punched_player_privs["interact"] = true
@ -2691,7 +2688,6 @@ local function server_hammer_handler(itemstack, user, pointed_thing, mode)
punched_player_privs["fly"] = true punched_player_privs["fly"] = true
punched_player_privs["fast"] = true punched_player_privs["fast"] = true
punched_player_privs["home"] = true punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
punched_player_privs["bring"] = true punched_player_privs["bring"] = true
punched_player_privs["teleport"] = true punched_player_privs["teleport"] = true
punched_player_privs["noclip"] = true punched_player_privs["noclip"] = true
@ -2716,7 +2712,6 @@ local function server_hammer_handler(itemstack, user, pointed_thing, mode)
punched_player_privs["fly"] = true punched_player_privs["fly"] = true
punched_player_privs["fast"] = true punched_player_privs["fast"] = true
punched_player_privs["home"] = true punched_player_privs["home"] = true
punched_player_privs["zoom"] = true
punched_player_privs["bring"] = true punched_player_privs["bring"] = true
punched_player_privs["teleport"] = true punched_player_privs["teleport"] = true
punched_player_privs["noclip"] = true punched_player_privs["noclip"] = true
@ -2750,15 +2745,15 @@ local function server_hammer_handler(itemstack, user, pointed_thing, mode)
minetest.chat_send_player(punched_player, puncher.." marks you as a youtuber") minetest.chat_send_player(punched_player, puncher.." marks you as a youtuber")
pri = minetest.get_player_privs(punched_player) pri = minetest.get_player_privs(punched_player)
local player = minetest.get_player_by_name(punched_player) local player = minetest.get_player_by_name(punched_player)
if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.sign_editor and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin and pri.creative then if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.sign_editor and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin and pri.creative then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Youtuber][Admin]"..player:get_player_name()}) player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Youtuber][Admin]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Youtuber][Legend]"..player:get_player_name()}) player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Youtuber][Legend]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug then elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport and pri.noclip and pri.debug then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()}) player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport then elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.teleport then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()}) player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom then elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()}) player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()})
elseif pri.interact and pri.shout then elseif pri.interact and pri.shout then
player:set_nametag_attributes({text = "[Youtuber][Member]"..player:get_player_name()}) player:set_nametag_attributes({text = "[Youtuber][Member]"..player:get_player_name()})
@ -2801,42 +2796,6 @@ minetest.register_on_joinplayer(function(player)
local player_inv = player:get_inventory() local player_inv = player:get_inventory()
player_inv:set_size("t", 1) player_inv:set_size("t", 1)
player_inv:add_item("t", "default:dirt") player_inv:add_item("t", "default:dirt")
local pri = minetest.get_player_privs(player:get_player_name())
player_inv:set_size("youtube", 1)
local c = player_inv:get_stack("youtube",1):get_count()
if c == 0 then
if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin and pri.creative then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Admin]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Legend]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Hero]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[VIP]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Premium]"..player:get_player_name()})
elseif pri.interact and pri.shout then
player:set_nametag_attributes({text = "[Member]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Enemy]"..player:get_player_name()})
end
else
if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin and pri.creative then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Youtuber][Admin]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Youtuber][Legend]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport then
player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()})
elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom then
player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()})
elseif pri.interact and pri.shout then
player:set_nametag_attributes({text = "[Youtuber][Member]"..player:get_player_name()})
else
player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Youtuber][Enemy]"..player:get_player_name()})
end
end
end) end)
local kri = {} local kri = {}
kri.get_formspec = function(player, pos) kri.get_formspec = function(player, pos)
@ -3926,7 +3885,7 @@ xp_gru.get_formspec = function(player)
.."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]"
.."bgcolor[#080808BB;true]" .."bgcolor[#080808BB;true]"
.."button[2.5,0;2,0.5;main;Main]" .."button[2.5,0;2,0.5;main;Main]"
.."textlist[0,1;6,5;xp_gru;Lv.1 = 10xp,Lv.2 = 20xp,Lv.3 = 30xp,Lv.4 = 40xp,Lv.5 = 50xp,Lv.6 = 70xp,Lv.7 = 90xp,Lv.8 = 110xp,Lv.9 = 130xp,Lv.10 = 150xp,Lv.11 = 180xp,Lv.12 = 210xp,Lv.13 = 240xp,Lv.14 = 270xp,Lv.15 = 300xp,Lv.16 = 340xp,Lv.17 = 380xp,Lv.18 = 420xp,Lv.19 = 460xp,Lv.20 = 500xp,Lv.21 = 550xp,Lv.22 = 600xp,Lv.23 = 650xp,Lv.24 = 700xp,Lv.25 = 750xp,Lv.26 = 810xp,Lv.27 = 870xp,Lv.28 = 930xp,Lv.29 = 990xp,Lv.30 = 1050xp,Lv.31 = 1120xp,Lv.32 = 1190xp,Lv.33 = 1260xp,Lv.34 = 1330xp,Lv.35 = 1400xp,Lv.36 = 1480xp,Lv.37 = 1560xp,Lv.38 = 1640xp,Lv.39 = 1720xp,Lv.40 = 1800xp,Lv.41 = 1890xp,Lv.42 = 1980xp,Lv.43 = 2070xp,Lv.44 = 2160xp,Lv.45 = 2250xp,Lv.45 = 2250xp,Lv.46 = 2350xp,Lv.47 = 2450xp,Lv.48 = 2550xp,Lv.49 = 2650xp,Lv.50 = 2750xp,Lv.51 = 2860xp,Lv.52 = 2970xp,Lv.53 = 3080xp,Lv.54 = 3190xp,Lv.55 = 3300xp,Lv.56 = 3420xp,Lv.57 = 3540xp,Lv.58 = 3660xp,Lv.59 = 3780xp,Lv.60 = 3900xp,Lv.61 = 4030xp,Lv.62 = 4160xp,Lv.63 = 4290xp,Lv.64 = 4420xp,Lv.65 = 4550xp,Lv.66 = 4690xp,Lv.67 = 4830xp,Lv.68 = 4970xp,Lv.69 = 5110xp,Lv.70 = 5250xp,Lv.71 = 5400xp,Lv.72 = 5550xp,Lv.73 = 5700xp,Lv.74 = 5850xp,Lv.75 = 6000xp,Lv.76 = 6160xp,Lv.77 = 6320xp,Lv.78 = 6480xp,Lv.79 = 6640xp,Lv.80 = 6800xp,Lv.81 = 6970xp,Lv.82 = 7140xp,Lv.83 = 7310xp,Lv.84 = 7480xp,Lv.85 = 7650xp,Lv.86 = 7830xp,Lv.87 = 8010xp,Lv.88 = 8190xp,Lv.89 = 8370xp,Lv.90 = 8550xp,Lv.91 = 8740xp,Lv.92 = 8930xp,Lv.93 = 9120xp,Lv.94 = 9310xp,Lv.95 = 9500xp,Lv.96 = 9700xp,Lv.97 = 9900xp,Lv.98 = 10100xp,Lv.99 = 10300xp,Lv.100 = 10500xp,Lv.MAX = 11950xp]" .."textlist[0,1;6,5;xp_gru;Lv.1 = 10xp,Lv.2 = 20xp,Lv.3 = 30xp,Lv.4 = 40xp,Lv.5 = 50xp,Lv.6 = 70xp,Lv.7 = 90xp,Lv.8 = 110xp,Lv.9 = 130xp,Lv.10 = 150xp,Lv.11 = 180xp,Lv.12 = 210xp,Lv.13 = 240xp,Lv.14 = 270xp,Lv.15 = 300xp,Lv.16 = 340xp,Lv.17 = 380xp,Lv.18 = 420xp,Lv.19 = 460xp,Lv.20 = 500xp,Lv.21 = 550xp,Lv.22 = 600xp,Lv.23 = 650xp,Lv.24 = 700xp,Lv.25 = 750xp,Lv.26 = 810xp,Lv.27 = 870xp,Lv.28 = 930xp,Lv.29 = 990xp,Lv.30 = 1050xp,Lv.31 = 1120xp,Lv.32 = 1190xp,Lv.33 = 1260xp,Lv.34 = 1330xp,Lv.35 = 1400xp,Lv.36 = 1480xp,Lv.37 = 1560xp,Lv.38 = 1640xp,Lv.39 = 1720xp,Lv.40 = 1800xp,Lv.41 = 1890xp,Lv.42 = 1980xp,Lv.43 = 2070xp,Lv.44 = 2160xp,Lv.45 = 2250xp,Lv.46 = 2350xp,Lv.47 = 2450xp,Lv.48 = 2550xp,Lv.49 = 2650xp,Lv.50 = 2750xp,Lv.51 = 2860xp,Lv.52 = 2970xp,Lv.53 = 3080xp,Lv.54 = 3190xp,Lv.55 = 3300xp,Lv.56 = 3420xp,Lv.57 = 3540xp,Lv.58 = 3660xp,Lv.59 = 3780xp,Lv.60 = 3900xp,Lv.61 = 4030xp,Lv.62 = 4160xp,Lv.63 = 4290xp,Lv.64 = 4420xp,Lv.65 = 4550xp,Lv.66 = 4690xp,Lv.67 = 4830xp,Lv.68 = 4970xp,Lv.69 = 5110xp,Lv.70 = 5250xp,Lv.71 = 5400xp,Lv.72 = 5550xp,Lv.73 = 5700xp,Lv.74 = 5850xp,Lv.75 = 6000xp,Lv.76 = 6160xp,Lv.77 = 6320xp,Lv.78 = 6480xp,Lv.79 = 6640xp,Lv.80 = 6800xp,Lv.81 = 6970xp,Lv.82 = 7140xp,Lv.83 = 7310xp,Lv.84 = 7480xp,Lv.85 = 7650xp,Lv.86 = 7830xp,Lv.87 = 8010xp,Lv.88 = 8190xp,Lv.89 = 8370xp,Lv.90 = 8550xp,Lv.91 = 8740xp,Lv.92 = 8930xp,Lv.93 = 9120xp,Lv.94 = 9310xp,Lv.95 = 9500xp,Lv.96 = 9700xp,Lv.97 = 9900xp,Lv.98 = 10100xp,Lv.99 = 10300xp,Lv.100 = 10500xp,Lv.MAX = 11950xp]"
return formspec return formspec
end end
xp_gel.get_formspec = function(player) xp_gel.get_formspec = function(player)
@ -3994,7 +3953,7 @@ xp_gui.get_formspec = function(player)
.."list[current_player;main;0,4.25;8,1;]" .."list[current_player;main;0,4.25;8,1;]"
.."list[current_player;main;0,5.5;8,3;8]" .."list[current_player;main;0,5.5;8,3;8]"
.."list[current_player;feld2;5,0;1,1;]" .."list[current_player;feld2;5,0;1,1;]"
.."label[5,0.9;Xp key]" .."label[5.1,0.9;Levelkey]"
.."button[3.5,1.5;2.0,0.2;"..image1..";Xp green you need]" .."button[3.5,1.5;2.0,0.2;"..image1..";Xp green you need]"
.."button[3.5,2.2;2.0,0.2;"..image2..";Xp red/blue you need]" .."button[3.5,2.2;2.0,0.2;"..image2..";Xp red/blue you need]"
.."button[5.5,1.5;2.0,0.2;"..image3..";Xp gray you need]" .."button[5.5,1.5;2.0,0.2;"..image3..";Xp gray you need]"
@ -4011,6 +3970,70 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if fields.xp_gui then if fields.xp_gui then
inventory_plus.set_inventory_formspec(player, xp_gui.get_formspec(player)) inventory_plus.set_inventory_formspec(player, xp_gui.get_formspec(player))
end end
if fields.craft10 then
local item_name = ""
for i=1,10 do
local player_inv = player:get_inventory()
local crafted = nil
local table_dec = nil
local player_inv = player:get_inventory()
local tablelist = player_inv:get_list("craft")
if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 3, items = tablelist})
end
if item_name == "" or item_name == crafted.item:get_name() then
item_name = crafted.item:get_name()
local k = 0
if player_inv:room_for_item("main", crafted.item) == true then
k = 1
end
if crafted.item:get_name() == "" then
k = 0
end
local kk = nil
if not kk == ture then
k = 0
end
if k == 1 then
player_inv:add_item("main", crafted.item)
player_inv:set_list("craft", table_dec.items)
end
end
end
inventory_plus.set_inventory_formspec(player, sfinv.get_formspec(player, sfinv.get_or_create_context(player)))
end
if fields.craft99 then
local item_name = ""
for i=1,99 do
local player_inv = player:get_inventory()
local crafted = nil
local table_dec = nil
local player_inv = player:get_inventory()
local tablelist = player_inv:get_list("craft")
if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 3, items = tablelist})
end
if item_name == "" or item_name == crafted.item:get_name() then
item_name = crafted.item:get_name()
local k = 0
if player_inv:room_for_item("main", crafted.item) == true then
k = 1
end
if crafted.item:get_name() == "" then
k = 0
end
local kk = nil
if not kk == ture then
k = 0
end
if k == 1 then
player_inv:add_item("main", crafted.item)
player_inv:set_list("craft", table_dec.items)
end
end
end
inventory_plus.set_inventory_formspec(player, sfinv.get_formspec(player, sfinv.get_or_create_context(player)))
end
if fields.cra then if fields.cra then
local player_inv = player:get_inventory() local player_inv = player:get_inventory()
local crafted = nil local crafted = nil
@ -4036,8 +4059,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
player_inv:set_list("crvier", table_dec.items) player_inv:set_list("crvier", table_dec.items)
end end
inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player)) inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player))
end end
if fields.cra10 then if fields.cra10 then
local item_name = ""
for i=1,10 do for i=1,10 do
local player_inv = player:get_inventory() local player_inv = player:get_inventory()
local crafted = nil local crafted = nil
@ -4047,25 +4071,29 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if tablelist then if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 4, items = tablelist}) crafted,table_dec = minetest.get_craft_result({method = "normal", width = 4, items = tablelist})
end end
local k = 0 if item_name == "" or item_name == crafted.item:get_name() then
if player_inv:room_for_item("main", crafted.item) == true then item_name = crafted.item:get_name()
k = 1 local k = 0
end if player_inv:room_for_item("main", crafted.item) == true then
if crafted.item:get_name() == "" then k = 1
k = 0 end
end if crafted.item:get_name() == "" then
local kk = nil k = 0
if not kk == ture then end
k = 0 local kk = nil
end if not kk == ture then
if k == 1 then k = 0
player_inv:add_item("main", crafted.item) end
player_inv:set_list("crvier", table_dec.items) if k == 1 then
end player_inv:add_item("main", crafted.item)
player_inv:set_list("crvier", table_dec.items)
end
end
inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player)) inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player))
end end
end end
if fields.cra99 then if fields.cra99 then
local item_name = ""
for i=1,99 do for i=1,99 do
local player_inv = player:get_inventory() local player_inv = player:get_inventory()
local crafted = nil local crafted = nil
@ -4075,21 +4103,24 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if tablelist then if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 4, items = tablelist}) crafted,table_dec = minetest.get_craft_result({method = "normal", width = 4, items = tablelist})
end end
local k = 0 if item_name == "" or item_name == crafted.item:get_name() then
if player_inv:room_for_item("main", crafted.item) == true then item_name = crafted.item:get_name()
k = 1 local k = 0
end if player_inv:room_for_item("main", crafted.item) == true then
if crafted.item:get_name() == "" then k = 1
k = 0 end
end if crafted.item:get_name() == "" then
local kk = nil k = 0
if not kk == ture then end
k = 0 local kk = nil
end if not kk == ture then
if k == 1 then k = 0
player_inv:add_item("main", crafted.item) end
player_inv:set_list("crvier", table_dec.items) if k == 1 then
end player_inv:add_item("main", crafted.item)
player_inv:set_list("crvier", table_dec.items)
end
end
inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player)) inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player))
end end
end end
@ -4116,6 +4147,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player)) inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player))
end end
if fields.cra310 then if fields.cra310 then
local item_name = ""
for i=1,10 do for i=1,10 do
local player_inv = player:get_inventory() local player_inv = player:get_inventory()
local crafted = nil local crafted = nil
@ -4125,21 +4157,25 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if tablelist then if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 5, items = tablelist}) crafted,table_dec = minetest.get_craft_result({method = "normal", width = 5, items = tablelist})
end end
local k = 0 if item_name == "" or item_name == crafted.item:get_name() then
if player_inv:room_for_item("main", crafted.item) == true then item_name = crafted.item:get_name()
k = 1 local k = 0
end if player_inv:room_for_item("main", crafted.item) == true then
if crafted.item:get_name() == "" then k = 1
k = 0 end
end if crafted.item:get_name() == "" then
if k == 1 then k = 0
player_inv:add_item("main", crafted.item) end
player_inv:set_list("crvier3", table_dec.items) if k == 1 then
end player_inv:add_item("main", crafted.item)
player_inv:set_list("crvier3", table_dec.items)
end
end
inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player)) inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player))
end end
end end
if fields.cra399 then if fields.cra399 then
local item_name = ""
for i=1,99 do for i=1,99 do
local player_inv = player:get_inventory() local player_inv = player:get_inventory()
local crafted = nil local crafted = nil
@ -4149,17 +4185,20 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if tablelist then if tablelist then
crafted,table_dec = minetest.get_craft_result({method = "normal", width = 5, items = tablelist}) crafted,table_dec = minetest.get_craft_result({method = "normal", width = 5, items = tablelist})
end end
local k = 0 if item_name == "" or item_name == crafted.item:get_name() then
if player_inv:room_for_item("main", crafted.item) == true then item_name = crafted.item:get_name()
k = 1 local k = 0
end if player_inv:room_for_item("main", crafted.item) == true then
if crafted.item:get_name() == "" then k = 1
k = 0 end
end if crafted.item:get_name() == "" then
if k == 1 then k = 0
player_inv:add_item("main", crafted.item) end
player_inv:set_list("crvier3", table_dec.items) if k == 1 then
end player_inv:add_item("main", crafted.item)
player_inv:set_list("crvier3", table_dec.items)
end
end
inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player)) inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player))
end end
end end
@ -4237,204 +4276,4 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
if fields.crafting4 then if fields.crafting4 then
inventory_plus.set_inventory_formspec(player, crafting4.get_formspec(player)) inventory_plus.set_inventory_formspec(player, crafting4.get_formspec(player))
end end
end) end)
local function has_locked_chest_privilege(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
return false
end
return true
end
tutorial = {}
local function add_spawner(pos)
minetest.set_node(pos, {name="tutorial:spawner_mummy"})
if not minetest.setting_getbool("only_peaceful_mobs") then tutorial.spawn_mummy({x=pos.x,y=pos.y,z=pos.z-2},2) end
end
local function can_replace(pos)
local n = minetest.get_node_or_nil(pos)
if n and n.name and minetest.registered_nodes[n.name] and not minetest.registered_nodes[n.name].walkable then
return true
elseif not n then
return true
else
return false
end
end
local function get_sign(i)
if i == 0 then
return 0
else
return i/math.abs(i)
end
end
local function get_velocity(vx, vy, vz, yaw)
local x = math.cos(yaw)*vx+math.cos(math.pi/2+yaw)*vz
local z = math.sin(yaw)*vx+math.sin(math.pi/2+yaw)*vz
return {x=x, y=vy, z=z}
end
local function get_v(v)
return math.sqrt(vx^2+vz^2)
end
local heli = {
physical = true,
collisionbox = {-1,-0.6,-1, 1,0.3,1},
collide_with_objects = true,
weight = 5,
visual = "mesh",
mesh = "root.x",
driver = nil,
model = nil,
motor = nil,
left = true,
timer=0,
yaw=0,
prev_y=0,
vx=0,
vy=0,
vz=0
}
local heliModel = {
visual = "mesh",
mesh = "heli.x",
textures = {"bladest.png","bladest.png","helit.png","Glasst.png"},
}
local motor = {
physical = true,
collisionbox = {-2,0.5,-1, 1,1,1},
visual = "mesh",
mesh = "motor.x",
textures = {"motort.png"},
driver = nil,
left = true,
timer=0,
vx = 0,
vy = 0,
vz = 0
}
function heli:on_rightclick(clicker)
if not clicker or not clicker:is_player() then
return
end
if self.driver and clicker == self.driver then
clicker:set_attach(self.model, "Root", {x=0,y=0,z=0}, {x=0,y=0,z=0})
self.driver = nil
clicker:set_detach()
self.model:set_animation({x=0,y=1},0, 0)
elseif not self.driver then
self.model:set_animation({x=0,y=10},10, 0)
self.driver = clicker
clicker:set_attach(self.model, "Root", {x=0,y=0,z=-10}, {x=-90,y=0,z=-90})
end
end
function heliModel:on_activate(staticdata, dtime_s)
self.object:set_armor_groups({immortal=1})
local is_attached = false
for _,object in ipairs(minetest.env:get_objects_inside_radius(self.object:getpos(), 2)) do
if object and object:get_luaentity() and object:get_luaentity().name=="tutorial:heli" then
if object:get_luaentity().model == nil then
object:get_luaentity().model = self
end
if object:get_luaentity().model == self then
is_attached = true
end
end
end
if is_attached == false then
self.object:remove()
end
end
function heli:on_activate(staticdata, dtime_s)
self.object:set_armor_groups({immortal=1})
self.prev_y=self.object:getpos()
if self.model == nil then
self.model = minetest.env:add_entity(self.object:getpos(), "tutorial:heliModel")
self.model:set_attach(self.object, "Root", {x=0,y=0,z=2}, {x=0,y=0,z=0})
end
end
function heli:get_staticdata(self)
end
function heli:on_punch(puncher, time_from_last_punch, tool_capabilities, direction)
if self.model ~= nil then
self.model:remove()
end
self.object:remove()
if puncher and puncher:is_player() then
puncher:get_inventory():add_item("main", "tutorial:heli")
end
end
function heliModel:on_punch(puncher, time_from_last_punch, tool_capabilities, direction)
self.object:remove()
end
function heli:on_step(dtime)
if self.driver and ( math.abs(self.driver:getpos().x-self.object:getpos().x)>10*dtime or math.abs(self.driver:getpos().y-self.object:getpos().y)>10*dtime or math.abs(self.driver:getpos().z-self.object:getpos().z)>10*dtime) then
self.driver = nil
end
if self.driver then
self.yaw = self.driver:get_look_yaw()
v = self.object:getvelocity()
local ctrl = self.driver:get_player_control()
if ctrl.up then
self.vx = self.vx + math.cos(self.driver:get_look_yaw())*0.1
self.vz = self.vz + math.sin(self.driver:get_look_yaw())*0.1
end
if ctrl.down then
self.vx = self.vx-math.cos(self.driver:get_look_yaw())*0.1
self.vz = self.vz-math.sin(self.driver:get_look_yaw())*0.1
end
if ctrl.left then
self.vz = self.vz+math.cos(self.driver:get_look_yaw())*0.1
self.vx = self.vx+math.sin(math.pi+self.driver:get_look_yaw())*0.1
end
if ctrl.right then
self.vz = self.vz-math.cos(self.driver:get_look_yaw())*0.1
self.vx = self.vx-math.sin(math.pi+self.driver:get_look_yaw())*0.1
end
if ctrl.jump then
if self.vy<1.5 then
self.vy = self.vy+0.2
end
end
if ctrl.sneak then
if self.vy>-1.5 then
self.vy = self.vy-0.2
end
end
if math.abs(self.vx) > 4.5 then
self.vx = 4.5*get_sign(self.vx)
end
if math.abs(self.vz) > 4.5 then
self.vz = 4.5*get_sign(self.vz)
end
end
local sx=get_sign(self.vx)
self.vx = self.vx - 0.02*sx
local sz=get_sign(self.vz)
self.vz = self.vz - 0.02*sz
local sy=get_sign(self.vy)
self.vy = self.vy-0.01*sy
if sx ~= get_sign(self.vx) then
self.vx = 0
end
if sz ~= get_sign(self.vz) then
self.vz = 0
end
if math.abs(self.vx) > 4.5 then
self.vx = 4.5*get_sign(self.vx)
end
if math.abs(self.vz) > 4.5 then
self.vz = 4.5*get_sign(self.vz)
end
if math.abs(self.vy) > 4.5 then
self.vz = 4.5*get_sign(self.vz)
end
self.object:setvelocity({x=self.vx, y=self.vy,z=self.vz})
if self.model then
self.model:set_attach(self.object,"Root", {x=0,y=0,z=0}, {
x=-90+self.vz*4*math.cos(self.yaw)-self.vx*4*math.sin(self.yaw),
y=0-self.vz*4*math.sin(self.yaw)-self.vx*4*math.cos(self.yaw),
z=self.yaw*57})
end
end
minetest.register_entity("tutorial:heli", heli)
minetest.register_entity("tutorial:heliModel", heliModel)
minetest.register_entity("tutorial:motor", motor)

View File

@ -1,396 +0,0 @@
--tutorial = {}
walk_limit = 5
chillaxin_speed = 5
animation_speed = 100
-- Note: This is currently broken due to a bug in Irrlicht, leave at 0
animation_blend = 0
-- Default player appearance
mummy_mesh = "tutorial_mummy.x"
mummy_texture = {"tutorial_mummy.png"}
mummy_hp = 500
mummy_drop = "tutorial:geschenkpapier 128"
local sound_normal = "mummy"
local sound_hit = "mummy_hurt"
local sound_dead = "mummy_death"
local spawner_range = 17
local spawner_max_mobs = 6
function get_animations_def()
return {
stand_START = 74,
stand_END = 74,
sit_START = 81,
sit_END = 160,
lay_START = 162,
lay_END = 166,
walk_START = 74,
walk_END = 105,
mine_START = 74,
mine_END = 105,
walk_mine_START = 74,
walk_mine_END = 105
}
end
local npc_model = {}
local npc_anim = {}
local npc_sneak = {}
local ANIM_STAND = 1
local ANIM_SIT = 2
local ANIM_LAY = 3
local ANIM_WALK = 4
local ANIM_WALK_MINE = 5
local ANIM_MINE = 6
function hit(self)
prop = {
mesh = mummy_mesh,
textures = {"tutorial_mummy.png^tutorial_hit.png"},
}
self.object:set_properties(prop)
minetest.after(0.4, function()
prop = {textures = mummy_texture,}
self.object:set_properties(prop)
end)
end
function npc_update_visuals_def(self)
--local name = get_player_name()
visual = default_model_def
npc_anim = 0 -- Animation will be set further below immediately
--npc_sneak[name] = false
prop = {
mesh = mummy_mesh,
textures = mummy_texture,
--visual_size = {x=1, y=1, z=1},
}
self.object:set_properties(prop)
end
MUMMY_DEF = {
physical = true,
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4},
visual = "mesh",
visual_size = {x=8,y=8},
mesh = mummy_mesh,
textures = mummy_texture,
makes_footstep_sound = true,
npc_anim = 0,
timer = 0,
turn_timer = 0,
vec = 0,
yaw = 0,
yawwer = 0,
state = 1,
jump_timer = 0,
punch_timer = 0,
sound_timer = 0,
attacker = "",
attacking_timer = 0,
mob_name = "mummy"
}
spawner_DEF = {
hp_max = 1,
physical = true,
collisionbox = {0,0,0,0,0,0},
visual = "mesh",
visual_size = {x=3.3,y=3.3},
mesh = mummy_mesh,
textures = mummy_texture,
makes_footstep_sound = false,
timer = 0,
automatic_rotate = math.pi * 2.9,
m_name = "dummy"
}
spawner_DEF.on_activate = function(self)
npc_update_visuals_def(self)
self.object:setvelocity({x=0, y=0, z=0})
self.object:setacceleration({x=0, y=0, z=0})
self.object:set_armor_groups({immortal=1})
end
spawner_DEF.on_step = function(self, dtime)
self.timer = self.timer + 0.01
local n = minetest.get_node_or_nil(self.object:getpos())
if self.timer > 1 then
if n and n.name and n.name ~= "tutorial:spawner_mummy" then
self.object:remove()
end
end
end
spawner_DEF.on_punch = function(self, hitter)
end
MUMMY_DEF.on_activate = function(self)
npc_update_visuals_def(self)
self.anim = get_animations_def()
self.object:set_animation({x=self.anim.stand_START,y=self.anim.stand_END}, animation_speed, animation_blend)
self.npc_anim = ANIM_STAND
self.object:setacceleration({x=0,y=-20,z=0})--20
self.state = 1
self.object:set_hp(mummy_hp)
self.object:set_armor_groups({fleshy=130})
end
MUMMY_DEF.on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir)
--attack as group
--[[for _,object in ipairs(minetest.env:get_objects_inside_radius(self.object:getpos(), 5)) do
if not object:is_player() then
if object:get_luaentity().name == "peaceful_npc:npc_def" then
object:get_luaentity().state = 3
object:get_luaentity().attacker = puncher:get_player_name()
end
end
end]]
--if self.state ~= 3 then
--self.state = 3
self.attacker = puncher--:get_player_name()
--end
if puncher ~= nil then
local sound = sound_hit
if self.object:get_hp() == 0 then sound = sound_dead end
minetest.sound_play(sound, {to_player = puncher:get_player_name(), loop = false, gain = 0.3})
if time_from_last_punch >= 0.45 then
hit(self)
--local dir = puncher:get_look_dir()
--self.direction = dir
self.direction = {x=self.object:getvelocity().x, y=self.object:getvelocity().y, z=self.object:getvelocity().z}
self.punch_timer = 0
self.object:setvelocity({x=dir.x*chillaxin_speed,y=5,z=dir.z*chillaxin_speed})--self.object:setvelocity({x=dir.x*4,y=5,z=dir.z*4})
if self.state == 1 then
self.state = 8
elseif self.state >= 2 then
self.state = 9
end
end
end
if self.object:get_hp() == 0 then
local obj = minetest.env:add_item(self.object:getpos(), mummy_drop.."default:obsidian 99 "..math.random(0,3))
end
end
local cnt1 = 0
local cnt2 = 0
MUMMY_DEF.on_step = function(self, dtime)
self.timer = self.timer + 0.01
self.turn_timer = self.turn_timer + 0.01
self.jump_timer = self.jump_timer + 0.01
self.punch_timer = self.punch_timer + 0.01
self.attacking_timer = self.attacking_timer + 0.01
self.sound_timer = self.sound_timer + 0.01
local current_pos = self.object:getpos()
local current_node = minetest.env:get_node(current_pos)
if self.time_passed == nil then
self.time_passed = 0
end
--self.time_passed = self.time_passed + dtime
if self.object:get_hp() == 0 then-- self.object:remove() end
--if self.time_passed >= 5 then
minetest.sound_play(sound_dead, {pos = current_pos, max_hear_distance = 10 , gain = 0.3})
self.object:remove()
end--else
if current_node.name == "default:water_source" or current_node.name == "default:water_flowing" or current_node.name == "default:lava_source" or current_node.name == "default:lava_flowing" then
--self.time_passed = self.time_passed + dtime
self.sound_timer = self.sound_timer + dtime
if self.sound_timer >= 0.8 then
self.sound_timer = 0
self.object:set_hp(self.object:get_hp()-5)
hit(self)
minetest.sound_play(sound_hit, {pos = current_pos, max_hear_distance = 10, gain = 0.3})
end
else
self.time_passed = 0
end
--end
--update moving state every 1 or 2 seconds
if self.state < 3 then
if self.timer > math.random(1,2) then
if self.attacker == "" then
self.state = math.random(1,2)
else self.state = 1 end
self.timer = 0
end
end
--play sound
if self.sound_timer > math.random(5,35) then
minetest.sound_play(sound_normal, {pos = current_pos, max_hear_distance = 10, gain = 0.2})
self.sound_timer = 0
end
--after punched
if self.state >= 8 then
if self.punch_timer > 0.15 then
--self.direction = {x = math.sin(self.yaw)*-1, y = -20, z = math.cos(self.yaw)}
if self.state == 9 then
self.object:setvelocity({x=self.direction.x*chillaxin_speed,y=-20,z=self.direction.z*chillaxin_speed})
self.state = 2
elseif self.state == 8 then
self.object:setvelocity({x=0,y=-20,z=0})
self.state = 1
end
end
end
--STANDING
if self.state == 1 then
self.yawwer = true
self.attacker = ""
for _,object in ipairs(minetest.env:get_objects_inside_radius(self.object:getpos(), 4)) do
if object:is_player() then
self.yawwer = false
NPC = self.object:getpos()
PLAYER = object:getpos()
self.vec = {x=PLAYER.x-NPC.x, y=PLAYER.y-NPC.y, z=PLAYER.z-NPC.z}
self.yaw = math.atan(self.vec.z/self.vec.x)+math.pi^2
if PLAYER.x > NPC.x then
self.yaw = self.yaw + math.pi
end
self.yaw = self.yaw - 2
self.object:setyaw(self.yaw)
self.attacker = object--:get_player_name()
end
end
if self.attacker == "" and self.turn_timer > math.random(1,4) then--and yawwer == true then
self.yaw = 360 * math.random()
self.object:setyaw(self.yaw)
self.turn_timer = 0
self.direction = {x = math.sin(self.yaw)*-1, y = -20, z = math.cos(self.yaw)}
end
self.object:setvelocity({x=0,y=self.object:getvelocity().y,z=0})
if self.npc_anim ~= ANIM_STAND then
self.anim = get_animations_def()
self.object:set_animation({x=self.anim.stand_START,y=self.anim.stand_END}, animation_speed, animation_blend)
self.npc_anim = ANIM_STAND
end
if self.attacker ~= "" then
self.direction = {x = math.sin(self.yaw)*-1, y = -20, z = math.cos(self.yaw)}
self.state = 2
end
end
--WALKING
if self.state == 2 then
if self.direction ~= nil then
self.object:setvelocity({x=self.direction.x*chillaxin_speed,y=self.object:getvelocity().y,z=self.direction.z*chillaxin_speed})
end
if self.turn_timer > math.random(1,4) and not self.attacker then
self.yaw = 360 * math.random()
self.object:setyaw(self.yaw)
self.turn_timer = 0
self.direction = {x = math.sin(self.yaw)*-1, y = -20, z = math.cos(self.yaw)}
--self.object:setvelocity({x=self.direction.x,y=self.object:getvelocity().y,z=direction.z})
--self.object:setacceleration(self.direction)
end
if self.npc_anim ~= ANIM_WALK then
self.anim = get_animations_def()
self.object:set_animation({x=self.anim.walk_START,y=self.anim.walk_END}, animation_speed, animation_blend)
self.npc_anim = ANIM_WALK
end
--[[jump
if self.direction ~= nil then
if self.jump_timer > 0.3 then
if minetest.env:get_node({x=self.object:getpos().x + self.direction.x,y=self.object:getpos().y-1,z=self.object:getpos().z + self.direction.z}).name ~= "air" then
self.object:setvelocity({x=self.object:getvelocity().x,y=5,z=self.object:getvelocity().z})
self.jump_timer = 0
end
end
end]]
if self.attacker ~= "" and minetest.setting_getbool("enable_damage") then
local s = self.object:getpos()
local p = self.attacker:getpos()
local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5
if dist < 2 and self.attacking_timer > 0.6 then
self.attacker:punch(self.object, 1.0, {
full_punch_interval=1.0,
damage_groups = {fleshy=50}
})
self.attacking_timer = 0
end
end
end
end
minetest.register_entity("tutorial:mummy", MUMMY_DEF)
minetest.register_entity("tutorial:mummy_spawner", spawner_DEF)
--spawn-egg/spawner
minetest.register_craftitem("tutorial:spawn_egg", {
description = "Mummy spawn-egg",
inventory_image = "tutorial_mummy_egg.png",
liquids_pointable = false,
stack_max = 99,
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type == "node" then
minetest.env:add_entity(pointed_thing.above,"tutorial:mummy")
if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end
return itemstack
end
end,
})
minetest.register_craft({
output = "tutorial:spawn_egg",
recipe = {
{'default:obsidian', 'default:obsidian', 'default:obsidian'},
{'default:obsidian', 'default:ice', 'default:obsidian'},
{'default:obsidian', 'default:obsidian', 'default:obsidian'},
}
})
function tutorial.spawn_mummy (pos, number)
for i=0,number do
minetest.env:add_entity(pos,"tutorial:mummy")
end
end
minetest.register_node("tutorial:spawner_mummy", {
description = "Mummy spawner",
paramtype = "light",
tiles = {"tutorial_spawner.png"},
is_ground_content = true,
drawtype = "allfaces",--_optional",
groups = {cracky=1,level=1},
drop = "",
on_construct = function(pos)
pos.y = pos.y - 0.28
minetest.env:add_entity(pos,"tutorial:mummy_spawner")
end,
on_destruct = function(pos)
for _,obj in ipairs(minetest.env:get_objects_inside_radius(pos, 1)) do
if not obj:is_player() then
if obj ~= nil and obj:get_luaentity().m_name == "dummy" then
obj:remove()
end
end
end
end
})

File diff suppressed because it is too large Load Diff