Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
with
254 additions
and 0 deletions.
- +22 −0 mods/fireflies/README.txt
- +2 −0 mods/fireflies/depends.txt
- +172 −0 mods/fireflies/init.lua
- +58 −0 mods/fireflies/license.txt
- BIN mods/fireflies/textures/fireflies_bottle.png
- BIN mods/fireflies/textures/fireflies_bottle_animated.png
- BIN mods/fireflies/textures/fireflies_bugnet.png
- BIN mods/fireflies/textures/fireflies_firefly.png
- BIN mods/fireflies/textures/fireflies_firefly_animated.png
@@ -0,0 +1,22 @@ | ||
Minetest Game mod: fireflies | ||
============================ | ||
Adds fireflies to the world on mapgen, which can then be caught in a net and placed in | ||
bottles to provide light. | ||
|
||
Authors of source code | ||
---------------------- | ||
Shara RedCat (MIT) | ||
|
||
Authors of media (textures) | ||
--------------------------- | ||
Shara RedCat (CC BY-SA 3.0): | ||
fireflies_firefly.png | ||
fireflies_firefly_animated.png | ||
fireflies_bugnet.png | ||
fireflies_bottle.png | ||
fireflies_bottle_animated.png | ||
|
||
fireflies_bugnet.png is modified from a texture by tenplus1 (CC0) | ||
|
||
fireflies_bottle.png and fireflies_bottle_animated.png are | ||
modified from a texture by Vanessa Ezekowitz (CC BY-SA 3.0) |
@@ -0,0 +1,2 @@ | ||
default | ||
vessels |
@@ -0,0 +1,172 @@ | ||
-- firefly | ||
minetest.register_node("fireflies:firefly", { | ||
description = "Firefly", | ||
drawtype = "plantlike", | ||
tiles = {{ | ||
name = "fireflies_firefly_animated.png", | ||
animation = { | ||
type = "vertical_frames", | ||
aspect_w = 16, | ||
aspect_h = 16, | ||
length = 1.5 | ||
}, | ||
}}, | ||
inventory_image = "fireflies_firefly.png", | ||
wield_image = "fireflies_firefly.png", | ||
waving = 1, | ||
paramtype = "light", | ||
sunlight_propagates = true, | ||
buildable_to = true, | ||
walkable = false, | ||
groups = {catchable = 1}, | ||
selection_box = { | ||
type = "fixed", | ||
fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1}, | ||
}, | ||
light_source = 6, | ||
floodable = true, | ||
on_flood = function(pos, oldnode, newnode) | ||
minetest.add_item(pos, "fireflies:firefly 1") | ||
end | ||
}) | ||
|
||
|
||
-- bug net | ||
minetest.register_tool("fireflies:bug_net", { | ||
description = "Bug Net", | ||
inventory_image = "fireflies_bugnet.png", | ||
on_use = function(itemstack, player, pointed_thing) | ||
if not pointed_thing or pointed_thing.type ~= "node" or | ||
minetest.is_protected(pointed_thing.under, player:get_player_name()) then | ||
return | ||
end | ||
local node_name = minetest.get_node(pointed_thing.under).name | ||
local inv = player:get_inventory() | ||
if minetest.get_item_group(node_name, "catchable") == 1 then | ||
minetest.set_node(pointed_thing.under, {name = "air"}) | ||
local stack = ItemStack(node_name.." 1") | ||
local leftover = inv:add_item("main", stack) | ||
if leftover:get_count() > 0 then | ||
minetest.add_item(pointed_thing.under, node_name.." 1") | ||
end | ||
end | ||
if not minetest.setting_getbool("creative_mode") then | ||
itemstack:add_wear(256) | ||
return itemstack | ||
end | ||
end | ||
}) | ||
|
||
minetest.register_craft( { | ||
output = "fireflies:bug_net", | ||
recipe = { | ||
{"farming:string", "farming:string", ""}, | ||
{"farming:string", "farming:string", ""}, | ||
{"default:stick", "", ""} | ||
} | ||
}) | ||
|
||
|
||
-- firefly in a bottle | ||
minetest.register_node("fireflies:firefly_bottle", { | ||
description = "Firefly in a Bottle", | ||
inventory_image = "fireflies_bottle.png", | ||
wield_image = "fireflies_bottle.png", | ||
tiles = {{ | ||
name = "fireflies_bottle_animated.png", | ||
animation = { | ||
type = "vertical_frames", | ||
aspect_w = 16, | ||
aspect_h = 16, | ||
length = 1.5 | ||
}, | ||
}}, | ||
drawtype = "plantlike", | ||
paramtype = "light", | ||
sunlight_propagates = true, | ||
light_source = 9, | ||
walkable = false, | ||
groups = {dig_immediate = 3, attached_node = 1}, | ||
selection_box = { | ||
type = "fixed", | ||
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} | ||
}, | ||
sounds = default.node_sound_glass_defaults(), | ||
on_rightclick = function(pos, node, player, itemstack, pointed_thing) | ||
local lower_pos = {x = pos.x, y = pos.y + 1, z = pos.z} | ||
if minetest.is_protected(pos, player:get_player_name()) or | ||
minetest.get_node(lower_pos).name ~= "air" then | ||
return | ||
end | ||
|
||
local upper_pos = {x = pos.x, y = pos.y + 2, z = pos.z} | ||
local firefly_pos | ||
|
||
if not minetest.is_protected(upper_pos, player:get_player_name()) and | ||
minetest.get_node(upper_pos).name == "air" then | ||
firefly_pos = upper_pos | ||
elseif not minetest.is_protected(lower_pos, player:get_player_name()) then | ||
firefly_pos = lower_pos | ||
end | ||
|
||
if firefly_pos then | ||
minetest.set_node(pos, {name = "vessels:glass_bottle"}) | ||
minetest.set_node(firefly_pos, {name = "fireflies:firefly"}) | ||
end | ||
end | ||
}) | ||
|
||
minetest.register_craft( { | ||
output = "fireflies:firefly_bottle", | ||
recipe = { | ||
{"", "", ""}, | ||
{"", "fireflies:firefly", ""}, | ||
{"", "vessels:glass_bottle", ""} | ||
} | ||
}) | ||
|
||
|
||
-- register fireflies as decorations | ||
minetest.register_decoration({ | ||
deco_type = "simple", | ||
place_on = { | ||
"default:dirt_with_grass", | ||
"default:dirt_with_coniferous_litter", | ||
"default:dirt_with_rainforest_litter", | ||
"default:dirt" | ||
}, | ||
place_offset_y = 2, | ||
sidelen = 80, | ||
fill_ratio = 0.002, | ||
biomes = { | ||
"deciduous_forest", | ||
"coniferous_forest", | ||
"rainforest", | ||
"rainforest_swamp" | ||
}, | ||
y_min = -1, | ||
y_max = 31000, | ||
decoration = "fireflies:firefly", | ||
}) | ||
|
||
minetest.register_decoration({ | ||
deco_type = "simple", | ||
place_on = { | ||
"default:dirt_with_grass", | ||
"default:dirt_with_coniferous_litter", | ||
"default:dirt_with_rainforest_litter", | ||
"default:dirt" | ||
}, | ||
place_offset_y = 3, | ||
sidelen = 80, | ||
fill_ratio = 0.002, | ||
biomes = { | ||
"deciduous_forest", | ||
"coniferous_forest", | ||
"rainforest", | ||
"rainforest_swamp" | ||
}, | ||
y_min = -1, | ||
y_max = 31000, | ||
decoration = "fireflies:firefly", | ||
}) |
@@ -0,0 +1,58 @@ | ||
License of source code | ||
---------------------- | ||
|
||
The MIT License (MIT) | ||
Copyright (c) 2018 Shara RedCat | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy of this | ||
software and associated documentation files (the "Software"), to deal in the Software | ||
without restriction, including without limitation the rights to use, copy, modify, merge, | ||
publish, distribute, sublicense, and/or sell copies of the Software, and to permit | ||
persons to whom the Software is furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all copies or | ||
substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, | ||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR | ||
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE | ||
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR | ||
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
DEALINGS IN THE SOFTWARE. | ||
|
||
For more details: | ||
https://opensource.org/licenses/MIT | ||
|
||
Licenses of media (textures) | ||
---------------------------- | ||
|
||
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) | ||
Copyright (C) 2018 Shara RedCat | ||
|
||
You are free to: | ||
Share — copy and redistribute the material in any medium or format. | ||
Adapt — remix, transform, and build upon the material for any purpose, even commercially. | ||
The licensor cannot revoke these freedoms as long as you follow the license terms. | ||
|
||
Under the following terms: | ||
|
||
Attribution — You must give appropriate credit, provide a link to the license, and | ||
indicate if changes were made. You may do so in any reasonable manner, but not in any way | ||
that suggests the licensor endorses you or your use. | ||
|
||
ShareAlike — If you remix, transform, or build upon the material, you must distribute | ||
your contributions under the same license as the original. | ||
|
||
No additional restrictions — You may not apply legal terms or technological measures that | ||
legally restrict others from doing anything the license permits. | ||
|
||
Notices: | ||
|
||
You do not have to comply with the license for elements of the material in the public | ||
domain or where your use is permitted by an applicable exception or limitation. | ||
No warranties are given. The license may not give you all of the permissions necessary | ||
for your intended use. For example, other rights such as publicity, privacy, or moral | ||
rights may limit how you use the material. | ||
|
||
For more details: | ||
http://creativecommons.org/licenses/by-sa/3.0/ |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.