From 8d74b74fb2efd0bffa4cbbedc2c59d4e12d71623 Mon Sep 17 00:00:00 2001 From: mckaygerhard Date: Sun, 5 May 2024 13:53:15 -0400 Subject: [PATCH] airsword replica - original files, initial commit --- depends.txt | 1 + init.lua | 191 +++++++++++++++++++++++ license.txt | 1 + sounds/swoosh.ogg | Bin 0 -> 6130 bytes textures/airslash.png | Bin 0 -> 3387 bytes textures/airsword_replica_air_bar.png | Bin 0 -> 2979 bytes textures/airsword_replica_ore.png | Bin 0 -> 2969 bytes textures/airsword_replica_packed_air.png | Bin 0 -> 2938 bytes textures/invisibleair.png | Bin 0 -> 2805 bytes textures/the_airsword_replica.png | Bin 0 -> 3831 bytes 10 files changed, 193 insertions(+) create mode 100644 depends.txt create mode 100644 init.lua create mode 100644 license.txt create mode 100644 sounds/swoosh.ogg create mode 100644 textures/airslash.png create mode 100644 textures/airsword_replica_air_bar.png create mode 100644 textures/airsword_replica_ore.png create mode 100644 textures/airsword_replica_packed_air.png create mode 100644 textures/invisibleair.png create mode 100644 textures/the_airsword_replica.png diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..5243d40 --- /dev/null +++ b/init.lua @@ -0,0 +1,191 @@ +minetest.register_craft({ + output = 'airsword_replica:airsword_replica', + recipe = { + {'airsword_replica:air_bar', 'default:diamondblock', 'airsword_replica:air_bar'}, + {'airsword_replica:air_bar', 'default:diamondblock', 'airsword_replica:air_bar'}, + {'airsword_replica:air_bar', 'default:sword_diamond', 'airsword_replica:air_bar'}, + } +}) + + minetest.register_node("airsword_replica:air_ore", { + description = "Air ore", + tiles = {"invisibleair.png^airsword_replica_ore.png"}, + groups = {cracky = 1}, + drawtype = "glasslike", + drop = 'airsword_replica:packed_air', + light_source = 6, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "airsword_replica:air_ore", + wherein = "air", + clust_scarcity = 40 * 40 * 40, + clust_num_ores = 1, + clust_size = 1, + y_min = 169, + y_max = 31000, + }) + +minetest.register_craftitem("airsword_replica:air_bar", { + description = "".. core.colorize("#93fbff", "Bar Of Air\n")..core.colorize("#FFFFFF", "Made of compressed air, used in making the replica of airsword."), + inventory_image = "airsword_replica_air_bar.png", +}) + +minetest.register_craftitem("airsword_replica:packed_air", { + description = "".. core.colorize("#93fbff", "Packed air\n")..core.colorize("#FFFFFF", "stacks extremelly well, Consume 100 of those to form a bar."), + stack_max = 65535, + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + if itemstack:get_count() <= 99 then + return itemstack + end + itemstack:take_item(100) + inv:add_item("main", "airsword_replica:air_bar 1") + return itemstack + end, + inventory_image = "airsword_replica_packed_air.png", +}) + +local timer = 0 +minetest.register_globalstep(function(dtime, player) + timer = timer + dtime; + if timer >= 0.20 then + for _, player in pairs(minetest.get_connected_players()) do + local controls = player:get_player_control() + if controls.LMB then + timer = 0 + local wielded_item = player:get_wielded_item():get_name() + if wielded_item == "airsword_replica:airsword_replica" then + local pos = player:getpos() + local dir = player:get_look_dir() + local yaw = player:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "airsword_replica:air_slash") + if obj then + minetest.sound_play("swoosh", {object=obj}) + obj:setvelocity({x=dir.x * 35, y=dir.y * 35, z=dir.z * 35}) + obj:setacceleration({x=dir.x * 0, y=0, z=dir.z * 0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = ent.player or player + end + end + end + end + + end + end + end + end) + + +local timer = 0 +minetest.register_globalstep(function(dtime, player) + timer = timer + dtime; + if timer >= 1.0 then + for _, player in pairs(minetest.get_connected_players()) do + local wielded_item = player:get_wielded_item():get_name() + if wielded_item == "airsword_replica:airsword_replica" then + timer = 0 + regen = player:get_hp() + regen = regen+1 + player:set_hp(tonumber(regen)) + air = player:get_breath() + air = air+1 + player:set_breath(tonumber(air)) +end +end +end + end) + +minetest.register_craftitem("airsword_replica:airsword_replica", { + description = "".. core.colorize("#93fbff", "Airsword Replica\n")..core.colorize("#FFFFFF", "Not the real thing, but the closest a mortal could get to it\n")..core.colorize("#FFFFFF", "Has 9999 melee DMG, shoots airwaves, grants regeneration and prevents suffocation."), + inventory_image = "the_airsword_replica.png", + wield_scale = {x=3,y=3,z=1.0}, + range = 10, + stack_max = 1, + tool_capabilities = { + full_punch_interval = 0.25, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=9999}, + }, +}) + +local airsword_replica_air_slash = { + physical = false, + timer = 0, + visual = "sprite", + visual_size = {x=3.0, y=0.0,}, + textures = {'invisibleair.png'}, + lastpos= {}, + collisionbox = {0, 0, 0, 0, 0, 0}, +} +airsword_replica_air_slash.on_step = function(self, dtime) + self.timer = self.timer + dtime + local pos = self.object:getpos() + local tiem = 0.002 + local node = minetest.get_node(pos) + + if self.timer > 0.20 then + local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, 3) + for k, obj in pairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "airsword_replica:air_slash" and obj:get_luaentity().name ~= "__builtin:item" then + local damage = 1337 + obj:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups= {fleshy = damage}, + }, nil) + minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8}) + end + else + local damage = 1337 + obj:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups= {fleshy = damage}, + }, nil) + minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8}) + end + end + if timer >= 0.002 + tiem then + minetest.add_particle({ + pos = pos, + velocity = 0, + acceleration = {x=0, y=0, z=0}, + expirationtime = 0.2, + size = 33, + collisiondetection = false, + vertical = false, + texture = "airslash.png", + glow = 30, + }) + tiem = tiem + 0.002 + end + if self.timer >= 4.0 then + self.object:remove() + end + + end + + if self.lastpos.x ~= nil then + if minetest.registered_nodes[node.name].walkable then + if not minetest.setting_getbool("creative_mode") then + minetest.add_item(self.lastpos, "") + end + minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8}) + self.object:remove() + end + end + self.lastpos= {x = pos.x, y = pos.y, z = pos.z} +end + +minetest.register_entity("airsword_replica:air_slash", airsword_replica_air_slash) + + diff --git a/license.txt b/license.txt new file mode 100644 index 0000000..b0319b2 --- /dev/null +++ b/license.txt @@ -0,0 +1 @@ +CC-BY-SA \ No newline at end of file diff --git a/sounds/swoosh.ogg b/sounds/swoosh.ogg new file mode 100644 index 0000000000000000000000000000000000000000..71ebb311b830a78381c8b0d509f8bfd3eaab398a GIT binary patch literal 6130 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 Gp??EXhAlq; literal 0 HcmV?d00001 diff --git a/textures/airslash.png b/textures/airslash.png new file mode 100644 index 0000000000000000000000000000000000000000..96d630eef6bc1df0a9f6a9669905b5537157865d GIT binary patch literal 3387 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 P00000NkvXXu0mjflfQ_e literal 0 HcmV?d00001 diff --git a/textures/airsword_replica_packed_air.png b/textures/airsword_replica_packed_air.png new file mode 100644 index 0000000000000000000000000000000000000000..8a68aadd130d4789da576156d510bc6302fa9b55 GIT binary patch literal 2938 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 literal 0 HcmV?d00001 diff --git a/textures/invisibleair.png b/textures/invisibleair.png new file mode 100644 index 0000000000000000000000000000000000000000..4c105ca98511031e510fac6c805594e5fc5518a1 GIT binary patch literal 2805 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 Hu0mjf>QFMx literal 0 HcmV?d00001 diff --git a/textures/the_airsword_replica.png b/textures/the_airsword_replica.png new file mode 100644 index 0000000000000000000000000000000000000000..63b110bf62b1acb0a88fb53efc40a449ea546057 GIT binary patch literal 3831 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