commit 0cc1e4e1107437f2ba8af0d43a947eb59df98a35 Author: ezhh Date: Sat Jul 23 12:24:14 2016 +0100 First commit diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..7fa5cd4 --- /dev/null +++ b/depends.txt @@ -0,0 +1,3 @@ +default +fire +abriglass? \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..e010795 --- /dev/null +++ b/init.lua @@ -0,0 +1,180 @@ +--[[ + + Abriflame by Shara Redcat + +]]-- + +local function smoke(pos, node, clicker, enable) + + local meta = minetest.get_meta(pos) + local handler = meta:get_int("sound") + local particle = meta:get_int("smoke") + + if particle ~= 0 or enable ~= true then + + if handler then + minetest.sound_stop(handler) + end + + minetest.delete_particlespawner(particle) + + meta:set_int("smoke", nil) + meta:set_int("sound", nil) + + return + end + + local node = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}).name + + if node ~= "air" or particle ~= 0 then + return + end + + particle = minetest.add_particlespawner({ + amount = 4, + time = 0, + collisiondetection = true, + minpos = {x = pos.x - 0.25, y = pos.y + 0.4, z = pos.z-0.25}, + maxpos = {x = pos.x + 0.25, y = pos.y + 5, z = pos.z + 0.25}, + minvel = {x = -0.2, y = 0.3, z = -0.2}, + maxvel = {x = 0.2, y = 1, z = 0.2}, + minacc = {x = 0, y = 0, z = 0}, + maxacc = {x = 0, y = 0.5, z = 0}, + minexptime = 1, + maxexptime = 3, + minsize = 4, + maxsize = 8, + texture = "smoke_particle.png", + }) + + handler = minetest.sound_play("fire_small", { + pos = pos, + max_hear_distance = 5, + loop = true + }) + + meta:set_int("smoke", particle) + meta:set_int("sound", handler) + +end + +-- FLAME TYPES +local flame_types = { + "green", "yellow", "black", "orange", "cyan", + "magenta", "purple", "blue", "red", "frosted" +} + +for _, f in pairs(flame_types) do + + minetest.register_node("abriflame:" .. f .. "_fire", { + inventory_image = f .. "_fire_inv.png", + wield_image = f .. "_fire_inv.png", + description = f .. " fire", + drawtype = "plantlike", + paramtype = "light", + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, + sunlight_propagates = true, + buildable_to = true, + walkable = false, + light_source = 14, + waving = 1, + drop = "", + tiles = {{ + name = f .. "_fire_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.5 + }, + }}, + + on_rightclick = function (pos, node, clicker) + smoke(pos, node, clicker, true) + end, + + on_destruct = function (pos) + + smoke(pos, nil, nil, false) + + minetest.sound_play("fire_extinguish_flame", { + pos = pos, + max_hear_distance = 5, + gain = 0.25 + }) + end, + }) +end + + +-- FLINT and STEEL override +minetest.register_craftitem("abriflame:flint", { + description = "Fire Starter", + inventory_image = "fire_flint_steel.png", + stack_max = 1, + liquids_pointable = false, + + on_use = function(itemstack, user, pointed_thing) + + if pointed_thing.type ~= "node" + or minetest.get_node(pointed_thing.above).name ~= "air" + or minetest.is_protected(pointed_thing.above, user:get_player_name()) then + return itemstack + end + + local nod = minetest.get_node(pointed_thing.under).name + local pos = pointed_thing.under ; pos.y = pos.y + 1 + + if nod == "abriglass:stained_glass_green" then + + minetest.set_node(pos, {name = "abriflame:green_fire"}) + + elseif nod == "abriglass:stained_glass_yellow" then + + minetest.set_node(pos, {name = "abriflame:yellow_fire"}) + + elseif nod == "abriglass:stained_glass_black" then + + minetest.set_node(pos, {name = "abriflame:black_fire"}) + + elseif nod == "abriglass:stained_glass_orange" then + + minetest.set_node(pos, {name = "abriflame:orange_fire"}) + + elseif nod == "abriglass:stained_glass_cyan" then + + minetest.set_node(pos, {name = "abriflame:cyan_fire"}) + + elseif nod == "abriglass:stained_glass_magenta" then + + minetest.set_node(pos, {name = "abriflame:magenta_fire"}) + + elseif nod == "abriglass:stained_glass_purple" then + + minetest.set_node(pos, {name = "abriflame:purple_fire"}) + + elseif nod == "abriglass:stained_glass_blue" then + + minetest.set_node(pos, {name = "abriflame:blue_fire"}) + + elseif nod == "abriglass:stained_glass_red" then + + minetest.set_node(pos, {name = "abriflame:red_fire"}) + + elseif nod == "abriglass:stained_glass_frosted" then + + minetest.set_node(pos, {name = "abriflame:frosted_fire"}) + end + + itemstack:add_wear(65535 / 65) + + return itemstack + end, +}) + +minetest.register_craft({ + output = "abriflame:flint", + recipe = { + {"default:mese_crystal_fragment", "default:steel_ingot"} + } +}) diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..f417629 --- /dev/null +++ b/license.txt @@ -0,0 +1,10 @@ +Mod by Shara RedCat. + +Textures are modified copies of originals from Semmett9's fake_fire. Semmett9's original version of fake_fire did not state a license and is believed to have been under WTFPL or similar license. (If someone can confirm, please let me know). + +Code by Shara RedCat and tenplus1 can be considered under WTFPL. + + + + + diff --git a/textures/black_fire_animated.png b/textures/black_fire_animated.png new file mode 100644 index 0000000..2b3004c Binary files /dev/null and b/textures/black_fire_animated.png differ diff --git a/textures/black_fire_inv.png b/textures/black_fire_inv.png new file mode 100644 index 0000000..a11999a Binary files /dev/null and b/textures/black_fire_inv.png differ diff --git a/textures/blue_fire_animated.png b/textures/blue_fire_animated.png new file mode 100644 index 0000000..30b39dd Binary files /dev/null and b/textures/blue_fire_animated.png differ diff --git a/textures/blue_fire_inv.png b/textures/blue_fire_inv.png new file mode 100644 index 0000000..21321d7 Binary files /dev/null and b/textures/blue_fire_inv.png differ diff --git a/textures/cyan_fire_animated.png b/textures/cyan_fire_animated.png new file mode 100644 index 0000000..d33b05e Binary files /dev/null and b/textures/cyan_fire_animated.png differ diff --git a/textures/cyan_fire_inv.png b/textures/cyan_fire_inv.png new file mode 100644 index 0000000..592e5fa Binary files /dev/null and b/textures/cyan_fire_inv.png differ diff --git a/textures/frosted_fire_animated.png b/textures/frosted_fire_animated.png new file mode 100644 index 0000000..8b95dda Binary files /dev/null and b/textures/frosted_fire_animated.png differ diff --git a/textures/frosted_fire_inv.png b/textures/frosted_fire_inv.png new file mode 100644 index 0000000..63e21b1 Binary files /dev/null and b/textures/frosted_fire_inv.png differ diff --git a/textures/green_fire_animated.png b/textures/green_fire_animated.png new file mode 100644 index 0000000..8a0b17a Binary files /dev/null and b/textures/green_fire_animated.png differ diff --git a/textures/green_fire_inv.png b/textures/green_fire_inv.png new file mode 100644 index 0000000..44292f4 Binary files /dev/null and b/textures/green_fire_inv.png differ diff --git a/textures/magenta_fire_animated.png b/textures/magenta_fire_animated.png new file mode 100644 index 0000000..0090206 Binary files /dev/null and b/textures/magenta_fire_animated.png differ diff --git a/textures/magenta_fire_inv.png b/textures/magenta_fire_inv.png new file mode 100644 index 0000000..f211be4 Binary files /dev/null and b/textures/magenta_fire_inv.png differ diff --git a/textures/orange_fire_animated.png b/textures/orange_fire_animated.png new file mode 100644 index 0000000..12e40cc Binary files /dev/null and b/textures/orange_fire_animated.png differ diff --git a/textures/orange_fire_inv.png b/textures/orange_fire_inv.png new file mode 100644 index 0000000..fc3ed4f Binary files /dev/null and b/textures/orange_fire_inv.png differ diff --git a/textures/purple_fire_animated.png b/textures/purple_fire_animated.png new file mode 100644 index 0000000..48c5c3e Binary files /dev/null and b/textures/purple_fire_animated.png differ diff --git a/textures/purple_fire_inv.png b/textures/purple_fire_inv.png new file mode 100644 index 0000000..542f6b3 Binary files /dev/null and b/textures/purple_fire_inv.png differ diff --git a/textures/red_fire_animated.png b/textures/red_fire_animated.png new file mode 100644 index 0000000..315a1e3 Binary files /dev/null and b/textures/red_fire_animated.png differ diff --git a/textures/red_fire_inv.png b/textures/red_fire_inv.png new file mode 100644 index 0000000..a7daea7 Binary files /dev/null and b/textures/red_fire_inv.png differ diff --git a/textures/smoke_particle.png b/textures/smoke_particle.png new file mode 100644 index 0000000..115d12b Binary files /dev/null and b/textures/smoke_particle.png differ diff --git a/textures/yellow_fire_animated.png b/textures/yellow_fire_animated.png new file mode 100644 index 0000000..99c8607 Binary files /dev/null and b/textures/yellow_fire_animated.png differ diff --git a/textures/yellow_fire_inv.png b/textures/yellow_fire_inv.png new file mode 100644 index 0000000..224c130 Binary files /dev/null and b/textures/yellow_fire_inv.png differ