Added new explosion settings and new blocks

This commit is contained in:
TenPlus1 2017-04-25 10:23:00 +01:00
parent 09d83ce51e
commit 94a64db889
4 changed files with 74 additions and 13 deletions

@ -17,3 +17,4 @@ Changelog:
- 0.2 - New api commands added thanks to blert2112
- 0.3 - New blocks added, also error checking, new options and schematic rehaul
- 0.4 - Added ability to add custom functions within lucky blocks
- 0.5 - Explosions now have radius and fire setting, also added new blocks

10
api.txt

@ -239,9 +239,15 @@ Explosion
---------
Now we start adding the bad lucky blocks that cause damage to the player by
exploding.
adding explosions.
{"exp"}
{"exp", radius, fire}
e.g.
Cause explosion with radius of 4 and fire enabled.
{"exp", 4, true}
Lightning Strike

@ -8,6 +8,7 @@ lucky_block:add_schematics({
{"defpinetree", dpath .. "pine_tree_from_sapling.mts", {x = 2, y = 1, z = 2}},
{"acaciatree", dpath .. "acacia_tree_from_sapling.mts", {x = 4, y = 1, z = 4}},
{"aspentree", dpath .. "aspen_tree_from_sapling.mts", {x = 2, y = 1, z = 2}},
{"corals", dpath .. "corals.mts", {x = 2, y = 1, z = 2}},
})
-- Default blocks
@ -28,7 +29,7 @@ lucky_block:add_blocks({
{"sch", "defpinetree", 0, false},
{"sch", "lavatrap", 1, true},
{"dro", {"default:mese_crystal_fragment", "default:mese_crystal"}, 10},
{"exp"},
{"exp", 2, true},
{"nod", "default:diamondblock", 0},
{"nod", "default:steelblock", 0},
{"nod", "default:dirt", 0},
@ -41,7 +42,7 @@ lucky_block:add_blocks({
{"sch", "acaciatree", 0, false},
{"dro", {"default:axe_steel"}, 1},
{"dro", {"default:sword_bronze"}, 1},
{"exp"},
{"exp", 3},
{"sch", "platform", 1, true},
{"nod", "default:wood", 0},
{"dro", {"default:pick_bronze"}, 1},
@ -49,8 +50,52 @@ lucky_block:add_blocks({
{"dro", {"default:shovel_bronze"}, 1},
{"nod", "default:gravel", 0},
{"dro", {"default:axe_bronze"}, 1},
{"dro", {"default:bookshelf", "default:book", "default:paper"}, 5},
{"dro", {"default:fence_wood", "default:fence_acacia_wood", "default:fence_aspen_wood",
"default:fence_junglewood", "default:fence_pine_wood"}, 15},
})
-- default dev blocks
if minetest.registered_nodes["default:coral_brown"] then
lucky_block:add_blocks({
{"dro", {"default:coral_brown", "default:coral_orange", "default:coral_skeleton"}, 5},
{"sch", "corals", 0, true},
})
end
if minetest.registered_nodes["default:mese_post_light"] then
lucky_block:add_blocks({
{"dro", {"default:mese_post_light", "default:fence_wood"}, 5},
{"nod", "default:mese_post_light"},
{"dro", {"default:silver_sand", "default:sand", "default:desert_sand"}, 25},
})
end
-- doors mod
if minetest.get_modpath("doors") then
lucky_block:add_blocks({
{"dro", {"doors:door_wood", "doors:door_steel", "doors:door_glass",
"doors:door_obsidian_glass", "doors:trapdoor", "doors:trapdoor_steel"}, 1},
{"dro", {"doors:gate_acacia_wood_closed", "doors:gate_aspen_wood_closed", "doors:gate_wood_closed",
"doors:gate_pine_wood_closed", "doors:gate_junglewood_closed"}, 5},
})
end
-- screwdriver mod
if minetest.get_modpath("screwdriver") then
lucky_block:add_blocks({
{"dro", {"screwdriver:screwdriver"}, 1},
})
end
-- vessels mod
if minetest.get_modpath("vessels") then
lucky_block:add_blocks({
{"dro", {"vessels:shelf", "vessels:drinking_glass", "vessels:glass_bottle",
"vessels:steel_bottle", "vessels:glass_fragments"}, 5},
})
end
-- Farming mod (default)
if minetest.get_modpath("farming") then
lucky_block:add_blocks({
@ -108,14 +153,14 @@ lucky_block:add_blocks({
{"dro", {"shields:shield_gold"}, 1},
{"dro", {"shields:shield_cactus"}, 1},
{"dro", {"shields:shield_bronze"}, 1},
{"exp"},
{"exp", 2},
})
end
-- Fire mod
if minetest.get_modpath("fire") then
lucky_block:add_blocks({
{"dro", {"fire:flint_and_steel"}, 1},
{"dro", {"fire:flint_and_steel", "default:flint"}, 1},
{"nod", "fire:basic_flame", 1},
{"nod", "fire:permanent_flame", 1},
})

@ -40,7 +40,7 @@ local lucky_list = {
{"fal", {"default:wood", "default:gravel", "default:sand", "default:desert_sand", "default:stone", "default:dirt", "default:goldblock"}, 0},
{"lig"},
{"nod", "lucky_block:super_lucky_block", 0},
{"exp"},
{"exp", 2, true},
}
-- ability to add new blocks to list
@ -179,7 +179,7 @@ local c_brick = minetest.get_content_id("default:obsidianbrick")
local c_chest = minetest.get_content_id("default:chest_locked")
-- explosion
function explosion(pos, radius)
function explosion(pos, radius, fire)
-- play explosion sound
minetest.sound_play("tnt_explode", {
@ -222,9 +222,13 @@ function explosion(pos, radius)
if on_blast then
return on_blast(p)
else
minetest.set_node(p, {name = "air"})
if fire and minetest.registered_nodes[n].groups.flammable then
minetest.set_node(p, {name = "fire:basic_flame"})
else
minetest.set_node(p, {name = "air"})
end
effect(p, 2, "tnt_smoke.png", 5)
effect(p, 5, "tnt_smoke.png", 5)
end
end
@ -256,7 +260,7 @@ end
-- this is what happens when you dig a lucky block
local lucky_block = function(pos, digger)
local luck = math.random(1, #lucky_list) ; -- luck = 1
local luck = math.random(1, #lucky_list) ; -- luck = 1
local action = lucky_list[luck][1]
local schem
@ -375,8 +379,11 @@ local lucky_block = function(pos, digger)
-- explosion
elseif action == "exp" then
explosion(pos, 2)
entity_physics(pos, 2)
local rad = lucky_list[luck][2] or 2
local fire = lucky_list[luck][3]
explosion(pos, rad, fire)
entity_physics(pos, rad)
-- teleport
elseif action == "tel" then
@ -392,6 +399,8 @@ local lucky_block = function(pos, digger)
digger:setpos(pos, false)
minetest.chat_send_player(digger:get_player_name(), "Random Teleport!")
-- drop items
elseif action == "dro" then