Regnum 3.4.0 upload
BIN
menu/Thumbs.db
|
@ -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
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
player_api
|
||||||
|
default?
|
||||||
|
creative?
|
|
@ -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,
|
||||||
|
})
|
|
@ -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
|
|
@ -0,0 +1,3 @@
|
||||||
|
name = helicopter
|
||||||
|
depends = player_api
|
||||||
|
optional_depends = default, creative
|
After Width: | Height: | Size: 179 B |
After Width: | Height: | Size: 192 B |
After Width: | Height: | Size: 239 B |
After Width: | Height: | Size: 461 B |
After Width: | Height: | Size: 248 B |
After Width: | Height: | Size: 327 B |
After Width: | Height: | Size: 205 B |
|
@ -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:
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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,13 +2543,13 @@ 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
|
||||||
|
|
||||||
|
@ -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
|
|
||||||
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("dragony", ""..math.floor(self.object:getpos().y+0.5))
|
|
||||||
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
|
|
||||||
if self.owner and minetest.get_player_by_name(self.owner) then
|
|
||||||
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("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
|
if self.name == "mobs:dragon" 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("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("foxx", ""..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("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:sheep" 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("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("tortoisex", ""..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("tortoisey", ""..math.floor(self.object:getpos().y+0.5))
|
|
||||||
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
|
|
||||||
if self.owner and minetest.get_player_by_name(self.owner) then
|
|
||||||
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("knighty", ""..math.floor(self.object:getpos().y+0.5))
|
|
||||||
minetest.get_player_by_name(self.owner):set_attribute("knightz", ""..math.floor(self.object:getpos().z+0.5))
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
if self.name == "mobs:dog" and self.metadata2 == 1 then
|
end
|
||||||
local pos = self.object:getpos()
|
if self.name == "mobs:fox" then
|
||||||
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
if self.owner and minetest.get_player_by_name(self.owner) then
|
||||||
local players = {}
|
minetest.get_player_by_name(self.owner):set_attribute("foxx", ""..math.floor(self.object:getpos().x+0.5))
|
||||||
local k = 0
|
minetest.get_player_by_name(self.owner):set_attribute("foxy", ""..math.floor(self.object:getpos().y+0.5))
|
||||||
local _,obj
|
minetest.get_player_by_name(self.owner):set_attribute("foxz", ""..math.floor(self.object:getpos().z+0.5))
|
||||||
for _,obj in ipairs(all_objects) do
|
end
|
||||||
if obj:is_player() then
|
end
|
||||||
if self.owner == obj:get_player_name() then
|
if self.name == "mobs:tortoise" then
|
||||||
k = 1
|
if self.owner and minetest.get_player_by_name(self.owner) then
|
||||||
end
|
minetest.get_player_by_name(self.owner):set_attribute("tortoisex", ""..math.floor(self.object:getpos().x+0.5))
|
||||||
end
|
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))
|
||||||
if k == 0 then
|
end
|
||||||
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})
|
if self.name == "mobs:knight_1248" then
|
||||||
end
|
if self.owner and minetest.get_player_by_name(self.owner) then
|
||||||
end
|
minetest.get_player_by_name(self.owner):set_attribute("knightx", ""..math.floor(self.object:getpos().x+0.5))
|
||||||
end
|
minetest.get_player_by_name(self.owner):set_attribute("knighty", ""..math.floor(self.object:getpos().y+0.5))
|
||||||
if self.name == "mobs:cat" and self.metadata2 == 1 then
|
minetest.get_player_by_name(self.owner):set_attribute("knightz", ""..math.floor(self.object:getpos().z+0.5))
|
||||||
local pos = self.object:getpos()
|
end
|
||||||
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
|
||||||
local players = {}
|
end
|
||||||
local k = 0
|
|
||||||
local _,obj
|
if self.name == "mobs:dog" and self.metadata2 == 1 then
|
||||||
for _,obj in ipairs(all_objects) do
|
if self.owner and minetest.get_player_by_name(self.owner) then
|
||||||
if obj:is_player() then
|
minetest.get_player_by_name(self.owner):set_attribute("dogx", ""..math.floor(self.object:getpos().x+0.5))
|
||||||
if self.owner == obj:get_player_name() then
|
minetest.get_player_by_name(self.owner):set_attribute("dogy", ""..math.floor(self.object:getpos().y+0.5))
|
||||||
k = 1
|
minetest.get_player_by_name(self.owner):set_attribute("dogz", ""..math.floor(self.object:getpos().z+0.5))
|
||||||
end
|
end
|
||||||
end
|
local pos = self.object:getpos()
|
||||||
end
|
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
||||||
if k == 0 then
|
local players = {}
|
||||||
if minetest.get_player_by_name(self.owner) then
|
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
|
||||||
end
|
for _,obj in ipairs(all_objects) do
|
||||||
end
|
if obj:is_player() then
|
||||||
end
|
if self.owner == obj:get_player_name() then
|
||||||
if self.name == "mobs:dragon" and self.metadata2 == 1 then
|
k = 1
|
||||||
local pos = self.object:getpos()
|
end
|
||||||
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
end
|
||||||
local players = {}
|
end
|
||||||
local k = 0
|
if k == 0 then
|
||||||
local _,obj
|
if minetest.get_player_by_name(self.owner) then
|
||||||
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
|
end
|
||||||
if self.owner == obj:get_player_name() then
|
end
|
||||||
k = 1
|
end
|
||||||
end
|
if self.name == "mobs:cat" and self.metadata2 == 1 then
|
||||||
end
|
if self.owner and minetest.get_player_by_name(self.owner) then
|
||||||
end
|
minetest.get_player_by_name(self.owner):set_attribute("catx", ""..math.floor(self.object:getpos().x+0.5))
|
||||||
if k == 0 then
|
minetest.get_player_by_name(self.owner):set_attribute("caty", ""..math.floor(self.object:getpos().y+0.5))
|
||||||
if self.owner then
|
minetest.get_player_by_name(self.owner):set_attribute("catz", ""..math.floor(self.object:getpos().z+0.5))
|
||||||
if minetest.get_player_by_name(self.owner) then
|
end
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_size("dragon2",1)
|
local pos = self.object:getpos()
|
||||||
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 all_objects = minetest.get_objects_inside_radius(pos, 15)
|
||||||
local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon2", 1):get_count()
|
local players = {}
|
||||||
if numd > 50 then
|
local k = 0
|
||||||
if minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon", 1):get_name() == "tutorial:dragon_crystal" then
|
local _,obj
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem")
|
for _,obj in ipairs(all_objects) do
|
||||||
else
|
if obj:is_player() then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_dragon")
|
if self.owner == obj:get_player_name() then
|
||||||
end
|
k = 1
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("dragon2", 1, "")
|
end
|
||||||
else
|
end
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("dragon2", 1, "default:dirt "..1+numd)
|
end
|
||||||
end
|
if k == 0 then
|
||||||
end
|
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
|
end
|
||||||
end
|
end
|
||||||
if self.name == "mobs:sheep" and self.metadata2 == 1 then
|
end
|
||||||
local pos = self.object:getpos()
|
if self.name == "mobs:dragon" and self.metadata2 == 1 then
|
||||||
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
local pos = self.object:getpos()
|
||||||
local players = {}
|
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
||||||
local k = 0
|
local players = {}
|
||||||
local _,obj
|
local k = 0
|
||||||
for _,obj in ipairs(all_objects) do
|
local _,obj
|
||||||
if obj:is_player() then
|
for _,obj in ipairs(all_objects) do
|
||||||
if self.owner == obj:get_player_name() then
|
if obj:is_player() then
|
||||||
k = 1
|
if self.owner == obj:get_player_name() then
|
||||||
end
|
k = 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if k == 0 then
|
end
|
||||||
if self.owner then
|
if k == 0 then
|
||||||
if minetest.get_player_by_name(self.owner) then
|
if self.owner then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep2",1)
|
if minetest.get_player_by_name(self.owner) then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep3",1)
|
minetest.get_player_by_name(self.owner):get_inventory():set_size("dragon2",1)
|
||||||
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})
|
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 numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep2", 1):get_count()
|
local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon2", 1):get_count()
|
||||||
if numd > 50 then
|
if numd > 50 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))
|
if minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon", 1):get_name() == "tutorial:dragon_crystal" then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "")
|
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem")
|
||||||
else
|
else
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "default:dirt "..1+numd)
|
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, "")
|
||||||
end
|
else
|
||||||
end
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("dragon2", 1, "default:dirt "..1+numd)
|
||||||
end
|
end
|
||||||
if self.name == "mobs:knight_1248" and self.metadata2 == 1 then
|
end
|
||||||
local pos = self.object:getpos()
|
end
|
||||||
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
end
|
||||||
local players = {}
|
end
|
||||||
local k = 0
|
if self.name == "mobs:sheep" and self.metadata2 == 1 then
|
||||||
local _,obj
|
local pos = self.object:getpos()
|
||||||
for _,obj in ipairs(all_objects) do
|
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
||||||
if obj:is_player() then
|
local players = {}
|
||||||
if self.owner == obj:get_player_name() then
|
local k = 0
|
||||||
k = 1
|
local _,obj
|
||||||
end
|
for _,obj in ipairs(all_objects) do
|
||||||
end
|
if obj:is_player() then
|
||||||
end
|
if self.owner == obj:get_player_name() then
|
||||||
if k == 0 then
|
k = 1
|
||||||
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
|
||||||
end
|
end
|
||||||
end
|
if k == 0 then
|
||||||
end
|
if self.owner then
|
||||||
if self.name == "mobs:fox" and self.metadata2 == 1 then
|
if minetest.get_player_by_name(self.owner) then
|
||||||
local pos = self.object:getpos()
|
minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep2",1)
|
||||||
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep3",1)
|
||||||
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
|
local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep2", 1):get_count()
|
||||||
local _,obj
|
if numd > 50 then
|
||||||
for _,obj in ipairs(all_objects) do
|
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))
|
||||||
if obj:is_player() then
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "")
|
||||||
if self.owner == obj:get_player_name() then
|
else
|
||||||
k = 1
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "default:dirt "..1+numd)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if k == 0 then
|
end
|
||||||
if self.owner then
|
end
|
||||||
if minetest.get_player_by_name(self.owner) then
|
if self.name == "mobs:knight_1248" and self.metadata2 == 1 then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_size("fox",1)
|
local pos = self.object:getpos()
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_size("foxfox",1)
|
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_size("r1248",6)
|
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
|
||||||
local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("fox", 1):get_count()
|
local _,obj
|
||||||
if numd == 50 then
|
for _,obj in ipairs(all_objects) do
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:fox_schluessel")
|
if obj:is_player() then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt 80")
|
if self.owner == obj:get_player_name() then
|
||||||
elseif numd == 80 then
|
k = 1
|
||||||
else
|
end
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt "..1+numd)
|
end
|
||||||
end
|
end
|
||||||
local numdd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("foxfox", 1):get_count()
|
if k == 0 then
|
||||||
if numdd == 256 then
|
if minetest.get_player_by_name(self.owner) then
|
||||||
local ra = math.random(6)
|
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 ra == 1 then
|
end
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 1, "default:dirt")
|
end
|
||||||
elseif ra == 2 then
|
end
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 2, "default:dirt")
|
if self.name == "mobs:fox" and self.metadata2 == 1 then
|
||||||
elseif ra == 3 then
|
local pos = self.object:getpos()
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 3, "default:dirt")
|
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
||||||
elseif ra == 4 then
|
local players = {}
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 4, "default:dirt")
|
local k = 0
|
||||||
elseif ra == 5 then
|
local _,obj
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 5, "default:dirt")
|
for _,obj in ipairs(all_objects) do
|
||||||
elseif ra == 6 then
|
if obj:is_player() then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 6, "default:dirt")
|
if self.owner == obj:get_player_name() then
|
||||||
end
|
k = 1
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "")
|
end
|
||||||
else
|
end
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "default:dirt "..1+numdd)
|
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("fox",1)
|
||||||
end
|
minetest.get_player_by_name(self.owner):get_inventory():set_size("foxfox",1)
|
||||||
if self.name == "mobs:tortoise" and self.metadata2 == 1 then
|
minetest.get_player_by_name(self.owner):get_inventory():set_size("r1248",6)
|
||||||
local pos = self.object:getpos()
|
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 all_objects = minetest.get_objects_inside_radius(pos, 15)
|
local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("fox", 1):get_count()
|
||||||
local players = {}
|
if numd == 50 then
|
||||||
local k = 0
|
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:fox_schluessel")
|
||||||
local _,obj
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt 80")
|
||||||
for _,obj in ipairs(all_objects) do
|
elseif numd == 80 then
|
||||||
if obj:is_player() then
|
else
|
||||||
if self.owner == obj:get_player_name() then
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt "..1+numd)
|
||||||
k = 1
|
end
|
||||||
end
|
local numdd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("foxfox", 1):get_count()
|
||||||
end
|
if numdd == 256 then
|
||||||
end
|
local ra = math.random(6)
|
||||||
if k == 0 then
|
if ra == 1 then
|
||||||
if minetest.get_player_by_name(self.owner) then
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 1, "default:dirt")
|
||||||
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})
|
elseif ra == 2 then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_size("tortoise2",1)
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 2, "default:dirt")
|
||||||
local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise2", 1):get_count()
|
elseif ra == 3 then
|
||||||
if numd > 50 then
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 3, "default:dirt")
|
||||||
if minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise", 1):get_name() == "tutorial:dragon_crystal" then
|
elseif ra == 4 then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem2")
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 4, "default:dirt")
|
||||||
else
|
elseif ra == 5 then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_tortoise")
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 5, "default:dirt")
|
||||||
end
|
elseif ra == 6 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("r1248", 6, "default:dirt")
|
||||||
else
|
end
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("tortoise2", 1, "default:dirt "..1+numd)
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "")
|
||||||
end
|
else
|
||||||
end
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "default:dirt "..1+numdd)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if self.name == "mobs:sheep" then
|
end
|
||||||
if self.owner then
|
end
|
||||||
self.object:set_properties({infotext=self.owner.."'s Sheep"})
|
end
|
||||||
if minetest.get_player_by_name(self.owner) then
|
if self.name == "mobs:tortoise" and self.metadata2 == 1 then
|
||||||
local col = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep", 1):get_name()
|
local pos = self.object:getpos()
|
||||||
if col == "dye:white" then
|
local all_objects = minetest.get_objects_inside_radius(pos, 15)
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:white")
|
local players = {}
|
||||||
self.object:set_properties({textures={"mobs_sheep_white.png"}})
|
local k = 0
|
||||||
elseif col == "dye:grey" then
|
local _,obj
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:grey")
|
for _,obj in ipairs(all_objects) do
|
||||||
self.object:set_properties({textures={"mobs_sheep_grey.png"}})
|
if obj:is_player() then
|
||||||
elseif col == "dye:dark_grey" then
|
if self.owner == obj:get_player_name() then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:dark_grey")
|
k = 1
|
||||||
self.object:set_properties({textures={"mobs_sheep_dark_grey.png"}})
|
end
|
||||||
elseif col == "dye:black" then
|
end
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:black")
|
end
|
||||||
self.object:set_properties({textures={"mobs_sheep_black.png"}})
|
if k == 0 then
|
||||||
elseif col == "dye:violet" then
|
if minetest.get_player_by_name(self.owner) then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:violet")
|
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})
|
||||||
self.object:set_properties({textures={"mobs_sheep_violet.png"}})
|
minetest.get_player_by_name(self.owner):get_inventory():set_size("tortoise2",1)
|
||||||
elseif col == "dye:blue" then
|
local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise2", 1):get_count()
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:blue")
|
if numd > 50 then
|
||||||
self.object:set_properties({textures={"mobs_sheep_blue.png"}})
|
if minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise", 1):get_name() == "tutorial:dragon_crystal" then
|
||||||
elseif col == "dye:cyan" then
|
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem2")
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:cyan")
|
else
|
||||||
self.object:set_properties({textures={"mobs_sheep_cyan.png"}})
|
minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_tortoise")
|
||||||
elseif col == "dye:dark_green" then
|
end
|
||||||
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("tortoise2", 1, "")
|
||||||
self.object:set_properties({textures={"mobs_sheep_dark_green.png"}})
|
else
|
||||||
elseif col == "dye:green" then
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("tortoise2", 1, "default:dirt "..1+numd)
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:green")
|
end
|
||||||
self.object:set_properties({textures={"mobs_sheep_green.png"}})
|
end
|
||||||
elseif col == "dye:yellow" then
|
end
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:yellow")
|
end
|
||||||
self.object:set_properties({textures={"mobs_sheep_yellow.png"}})
|
if self.name == "mobs:sheep" then
|
||||||
elseif col == "dye:brown" then
|
if self.owner then
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:brown")
|
self.object:set_properties({infotext=self.owner.."'s Sheep"})
|
||||||
self.object:set_properties({textures={"mobs_sheep_brown.png"}})
|
if minetest.get_player_by_name(self.owner) then
|
||||||
elseif col == "dye:orange" then
|
local col = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep", 1):get_name()
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:orange")
|
if col == "dye:white" then
|
||||||
self.object:set_properties({textures={"mobs_sheep_orange.png"}})
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:white")
|
||||||
elseif col == "dye:red" then
|
self.object:set_properties({textures={"mobs_sheep_white.png"}})
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:red")
|
elseif col == "dye:grey" then
|
||||||
self.object:set_properties({textures={"mobs_sheep_red.png"}})
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:grey")
|
||||||
elseif col == "dye:magenta" then
|
self.object:set_properties({textures={"mobs_sheep_grey.png"}})
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:magenta")
|
elseif col == "dye:dark_grey" then
|
||||||
self.object:set_properties({textures={"mobs_sheep_magenta.png"}})
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:dark_grey")
|
||||||
elseif col == "dye:pink" then
|
self.object:set_properties({textures={"mobs_sheep_dark_grey.png"}})
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:pink")
|
elseif col == "dye:black" then
|
||||||
self.object:set_properties({textures={"mobs_sheep_pink.png"}})
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:black")
|
||||||
else
|
self.object:set_properties({textures={"mobs_sheep_black.png"}})
|
||||||
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"")
|
elseif col == "dye:violet" then
|
||||||
self.object:set_properties({textures={"mobs_sheep.png"}})
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:violet")
|
||||||
end
|
self.object:set_properties({textures={"mobs_sheep_violet.png"}})
|
||||||
end
|
elseif col == "dye:blue" then
|
||||||
end
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:blue")
|
||||||
end
|
self.object:set_properties({textures={"mobs_sheep_blue.png"}})
|
||||||
end
|
elseif col == "dye:cyan" then
|
||||||
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:cyan")
|
||||||
|
self.object:set_properties({textures={"mobs_sheep_cyan.png"}})
|
||||||
|
elseif col == "dye:dark_green" then
|
||||||
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:dark_green")
|
||||||
|
self.object:set_properties({textures={"mobs_sheep_dark_green.png"}})
|
||||||
|
elseif col == "dye:green" then
|
||||||
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:green")
|
||||||
|
self.object:set_properties({textures={"mobs_sheep_green.png"}})
|
||||||
|
elseif col == "dye:yellow" then
|
||||||
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:yellow")
|
||||||
|
self.object:set_properties({textures={"mobs_sheep_yellow.png"}})
|
||||||
|
elseif col == "dye:brown" then
|
||||||
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:brown")
|
||||||
|
self.object:set_properties({textures={"mobs_sheep_brown.png"}})
|
||||||
|
elseif col == "dye:orange" then
|
||||||
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:orange")
|
||||||
|
self.object:set_properties({textures={"mobs_sheep_orange.png"}})
|
||||||
|
elseif col == "dye:red" then
|
||||||
|
minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:red")
|
||||||
|
self.object:set_properties({textures={"mobs_sheep_red.png"}})
|
||||||
|
elseif col == "dye:magenta" then
|
||||||
|
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
|
||||||
|
|
|
@ -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"},
|
||||||
},
|
},
|
||||||
|
|
|
@ -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"},
|
||||||
},
|
},
|
||||||
|
|
|
@ -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"},
|
||||||
},
|
},
|
||||||
|
|
|
@ -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"},
|
||||||
},
|
},
|
||||||
|
|
|
@ -9,3 +9,4 @@ 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")
|
|
@ -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"},
|
||||||
},
|
},
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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"},
|
||||||
},
|
},
|
||||||
|
|
Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 323 B |
|
@ -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"},
|
||||||
},
|
},
|
||||||
|
|
|
@ -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" }
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -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" },
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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
|
||||||
})
|
})
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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" }
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
})
|
})
|
||||||
|
|
|
@ -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({
|
||||||
|
|
|
@ -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({
|
||||||
|
|
|
@ -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,
|
||||||
|
})
|
|
@ -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,
|
|
||||||
})
|
|
|
@ -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 = {
|
|
@ -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,
|
||||||
})
|
})
|
|
@ -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,
|
||||||
|
|
Before Width: | Height: | Size: 214 B |
|
@ -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},
|
||||||
})
|
})
|
|
@ -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
|
||||||
|
@ -4238,203 +4277,3 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
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)
|
|
|
@ -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
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|