From 9bf29384b39fb9c617e9fa5fff8a29a5fd0fa52c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20P=C3=A9rez-Cerezo?= Date: Sun, 27 Dec 2020 19:45:42 +0100 Subject: Overhaul textures and handling * Paint color-code onto rocket bodies, rather than using symbols * Make the rockets react to mesecons directly, remove the launcher --- init.lua | 86 ++++++++++++++++++++++------------------------------------------ 1 file changed, 29 insertions(+), 57 deletions(-) (limited to 'init.lua') diff --git a/init.lua b/init.lua index 3ed5faf..9e5aa3d 100644 --- a/init.lua +++ b/init.lua @@ -31,7 +31,7 @@ local variant_list = { rdt = { {color = "blue", figure = "ball", form = ""}, {color = "yellow", figure = "default", form = ""}, - --{color = "red", figure = "custom", form = "love"}, + {color = "red", figure = "custom", form = "love"}, } }, {colour = "green_yellow_red", figure = "ball_default_love", form = "", desc = S("Green-Yellow-Love"), @@ -208,6 +208,7 @@ end --Nodes for _, i in pairs(variant_list) do local figure_desc = "" + if i.figure == "default" then figure_desc = S("Default") elseif i.figure == "ball" then @@ -217,42 +218,42 @@ for _, i in pairs(variant_list) do elseif i.figure == "custom" then figure_desc = S("Custom") end - local inv_image = "rocket_" - if not(i.figure == "") then - inv_image = inv_image .. i.figure .. "_" + + local figure = i.figure + if i.figure == "custom" and i.form == "love" then + figure = "love" end - inv_image = inv_image .. i.colour .. ".png" + inv_image = "rocket_default_"..i.colour..".png" + if figure ~= "default" then + inv_image = inv_image.."^rocket_"..figure..".png" + end local rdt = i.rdt or {{color = i.colour, figure = i.figure, form = i.form},} - + rdt.texture = inv_image minetest.register_node("fireworkz:rocket_"..i.figure.."_"..i.colour, { description = S("Rocket").." (".. i.desc .. "|"..figure_desc..")", drawtype = "plantlike", light_source = 5, inventory_image = inv_image, - tiles = {"rocket_default.png"}, - wield_image = "rocket_default.png", + tiles = {inv_image}, + wield_image = inv_image, paramtype = "light", sunlight_propagates = true, walkable = false, is_ground_content = false, groups = {choppy = 3, explody = 1, firework = 1}, - - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) - local wielded_item = clicker:get_wielded_item() - local wielded_item_name = wielded_item:get_name() - if wielded_item_name == fireworkz.settings.igniter then - minetest.sound_play("fireworkz_fuse", {pos= pos, fireworkz.settings.max_hear_distance_fuse, gain = 1,}) - minetest.after(fireworkz.settings.ignition_time, function(node, pos) - local rocket_node = minetest.get_node(pos) - if rocket_node.name == node.name then - minetest.remove_node(pos) - fireworkz.launch(pos, rdt) - end - end, node, pos) - end + mesecons = { + effector = { + action_on = function(pos) + minetest.remove_node(pos) + fireworkz.launch(pos,rdt) + end + }, + }, + on_punch = function(pos) + minetest.remove_node(pos) + fireworkz.launch(pos,rdt) end, - on_use = function(itemstack, user, pointed_thing) local pos = minetest.get_pointed_thing_position(pointed_thing, true) if pos then @@ -269,6 +270,11 @@ end fireworkz.launch = function(pos, rdt) local obj = minetest.add_entity(pos, "fireworkz:rocket") --activate + if obj then + obj:set_properties({ + textures={rdt.texture} + }) + end local obj_ent = obj:get_luaentity() obj_ent.rdt = rdt end @@ -392,37 +398,3 @@ minetest.register_craft({ }, }) ---Mesecons Support - -if minetest.get_modpath("mesecons") ~= nil then - minetest.register_node("fireworkz:launcher", { - description = S("Firework Rocket Launcher"), - tiles = {"fireworkz_rocket_launcher.png"}, - is_ground_content = false, - groups = {cracky = 2, stone = 1}, - sounds = default.node_sound_stone_defaults(), - mesecons = {effector = { - action_on = function (pos, node) - pos.y = pos. y + 1 - local node = minetest.get_node_or_nil(pos) - if node then - if node.name:sub(1, 16) == "fireworkz:rocket" then - local meta = minetest.get_meta(pos) - local rdt = minetest.deserialize(meta:get_string("firework:rdt")) - minetest.remove_node(pos) - fireworkz.launch(pos, rdt) - end - end - end, - }} - }) - minetest.register_craft({ - output = "fireworkz:launcher", - type = "shaped", - recipe = { - {"", "tnt:gunpowder", ""}, - {"", "default:mese", ""}, - {"", "default:steelblock", ""} - }, - }) -end -- cgit v1.2.3