Add fireflies mod
authorezhh <owlecho@live.com>
Mon, 29 Jan 2018 01:40:09 +0000 (01:40 +0000)
committerparamat <mat.gregory@virginmedia.com>
Sat, 3 Feb 2018 03:53:03 +0000 (03:53 +0000)
mods/fireflies/README.txt [new file with mode: 0644]
mods/fireflies/depends.txt [new file with mode: 0644]
mods/fireflies/init.lua [new file with mode: 0644]
mods/fireflies/license.txt [new file with mode: 0644]
mods/fireflies/textures/fireflies_bottle.png [new file with mode: 0644]
mods/fireflies/textures/fireflies_bottle_animated.png [new file with mode: 0644]
mods/fireflies/textures/fireflies_bugnet.png [new file with mode: 0644]
mods/fireflies/textures/fireflies_firefly.png [new file with mode: 0644]
mods/fireflies/textures/fireflies_firefly_animated.png [new file with mode: 0644]

diff --git a/mods/fireflies/README.txt b/mods/fireflies/README.txt
new file mode 100644 (file)
index 0000000..7382578
--- /dev/null
@@ -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)
\ No newline at end of file
diff --git a/mods/fireflies/depends.txt b/mods/fireflies/depends.txt
new file mode 100644 (file)
index 0000000..e0585b4
--- /dev/null
@@ -0,0 +1,2 @@
+default
+vessels
\ No newline at end of file
diff --git a/mods/fireflies/init.lua b/mods/fireflies/init.lua
new file mode 100644 (file)
index 0000000..8294baf
--- /dev/null
@@ -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",
+})
diff --git a/mods/fireflies/license.txt b/mods/fireflies/license.txt
new file mode 100644 (file)
index 0000000..eebdad6
--- /dev/null
@@ -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/
\ No newline at end of file
diff --git a/mods/fireflies/textures/fireflies_bottle.png b/mods/fireflies/textures/fireflies_bottle.png
new file mode 100644 (file)
index 0000000..ecca036
Binary files /dev/null and b/mods/fireflies/textures/fireflies_bottle.png differ
diff --git a/mods/fireflies/textures/fireflies_bottle_animated.png b/mods/fireflies/textures/fireflies_bottle_animated.png
new file mode 100644 (file)
index 0000000..96062b3
Binary files /dev/null and b/mods/fireflies/textures/fireflies_bottle_animated.png differ
diff --git a/mods/fireflies/textures/fireflies_bugnet.png b/mods/fireflies/textures/fireflies_bugnet.png
new file mode 100644 (file)
index 0000000..8ec3d33
Binary files /dev/null and b/mods/fireflies/textures/fireflies_bugnet.png differ
diff --git a/mods/fireflies/textures/fireflies_firefly.png b/mods/fireflies/textures/fireflies_firefly.png
new file mode 100644 (file)
index 0000000..c086689
Binary files /dev/null and b/mods/fireflies/textures/fireflies_firefly.png differ
diff --git a/mods/fireflies/textures/fireflies_firefly_animated.png b/mods/fireflies/textures/fireflies_firefly_animated.png
new file mode 100644 (file)
index 0000000..e6932e3
Binary files /dev/null and b/mods/fireflies/textures/fireflies_firefly_animated.png differ