98 lines
3.4 KiB
Lua
98 lines
3.4 KiB
Lua
-------Bouncy wool---------
|
|
|
|
local wool_list = get_group_items({"wool"})
|
|
|
|
for i, itemstring in ipairs(wool_list.wool) do
|
|
local groups = minetest.registered_nodes[itemstring].groups
|
|
groups.bouncy = 95
|
|
minetest.override_item(itemstring, {groups = groups})
|
|
end -- Intentionally not making it prevent fall damage :D
|
|
|
|
-------Sunnier sunflowers-------
|
|
minetest.override_item("mcl_flowers:sunflower_top", {
|
|
light_source = 14
|
|
})
|
|
|
|
-------Craftable barriers-------
|
|
minetest.register_node("small_why_things:craftable_barrier", {
|
|
description = "Craftable Barrier",
|
|
_doc_items_longdesc = "Barriers are invisible walkable blocks. They are used to create boundaries of adventure maps and the like. Monsters and animals won't appear on barriers, and fences do not connect to barriers. Other blocks can be built on barriers like on any other block.",
|
|
_doc_items_usagehelp = "When you hold a barrier in hand, you reveal all placed barriers in a short distance around you.",
|
|
drawtype = "airlike",
|
|
paramtype = "light",
|
|
inventory_image = "mcl_core_barrier.png",
|
|
wield_image = "mcl_core_barrier.png",
|
|
tiles = {"blank.png"},
|
|
sunlight_propagates = true,
|
|
is_ground_content = false,
|
|
groups = {not_solid = 1, cracky = 3, pickaxey = 1},
|
|
_mcl_blast_resistance = 1200,
|
|
_mcl_hardness = 50,
|
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
|
if placer == nil then
|
|
return
|
|
end
|
|
minetest.add_particle({
|
|
pos = pos,
|
|
expirationtime = 1,
|
|
size = 8,
|
|
texture = "mcl_core_barrier.png",
|
|
glow = 14,
|
|
playername = placer:get_player_name()
|
|
})
|
|
end,
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "small_why_things:craftable_barrier 17",
|
|
recipe = {
|
|
{"mcl_core:glass", "mcl_core:glass", "mcl_core:glass"},
|
|
{"mcl_core:glass", "mcl_core:obsidian", "mcl_core:glass"},
|
|
{"mcl_core:glass", "mcl_core:glass", "mcl_core:glass"}
|
|
}
|
|
})
|
|
|
|
minetest.register_globalstep(function() --I wish there was a way to unregister the MineClone function.
|
|
for _,player in pairs(minetest.get_connected_players()) do
|
|
local wi = player:get_wielded_item():get_name()
|
|
if wi == "mcl_core:barrier" or wi == "mcl_core:realm_barrier" or wi == "small_why_things:craftable_barrier" or minetest.get_item_group(wi, "light_block") ~= 0 then
|
|
local pos = vector.round(player:get_pos())
|
|
local r = 8
|
|
local vm = minetest.get_voxel_manip()
|
|
local emin, emax = vm:read_from_map({x=pos.x-r, y=pos.y-r, z=pos.z-r}, {x=pos.x+r, y=pos.y+r, z=pos.z+r})
|
|
local area = VoxelArea:new{
|
|
MinEdge = emin,
|
|
MaxEdge = emax,
|
|
}
|
|
local data = vm:get_data()
|
|
for x=pos.x-r, pos.x+r do
|
|
for y=pos.y-r, pos.y+r do
|
|
for z=pos.z-r, pos.z+r do
|
|
local vi = area:indexp({x=x, y=y, z=z})
|
|
local nodename = minetest.get_name_from_content_id(data[vi])
|
|
local light_block_group = minetest.get_item_group(nodename, "light_block")
|
|
|
|
local tex
|
|
if nodename == "mcl_core:barrier" or nodename == "small_why_things:craftable_barrier" then
|
|
tex = "mcl_core_barrier.png"
|
|
elseif nodename == "mcl_core:realm_barrier" then
|
|
tex = "mcl_core_barrier.png^[colorize:#FF00FF:127^[transformFX"
|
|
elseif light_block_group ~= 0 then
|
|
tex = "mcl_core_light_" .. (light_block_group - 1) .. ".png"
|
|
end
|
|
if tex then
|
|
minetest.add_particle({
|
|
pos = {x=x, y=y, z=z},
|
|
expirationtime = 1,
|
|
size = 8,
|
|
texture = tex,
|
|
glow = 14,
|
|
playername = name
|
|
})
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end) |