From b77e50e56f538cba7df79b267a0b197f61d65082 Mon Sep 17 00:00:00 2001 From: stujones11 Date: Thu, 5 Dec 2013 20:28:32 +0000 Subject: [PATCH] Add particle effects and singleplayer support --- LICENSE.txt | 5 +- README.txt | 43 ++++++---- init.lua | 50 ++++++++--- shooter.conf.example | 13 +++ shooter.lua | 157 ++++++++++++++++++++++++++++++----- sounds/shooter_pistol.ogg | Bin 28506 -> 10662 bytes sounds/shooter_shotgun.ogg | Bin 0 -> 12688 bytes textures/shooter_hit.png | Bin 0 -> 659 bytes textures/shooter_shotgun.png | Bin 0 -> 402 bytes 9 files changed, 219 insertions(+), 49 deletions(-) create mode 100644 shooter.conf.example create mode 100644 sounds/shooter_shotgun.ogg create mode 100644 textures/shooter_hit.png create mode 100644 textures/shooter_shotgun.png diff --git a/LICENSE.txt b/LICENSE.txt index 412765a..6b0af2d 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -7,6 +7,9 @@ License Textures: Stuart Jones - WTFPL License Sounds: freesound.org - flobert1_20070728.wav by Nonoo - Attribution 3.0 Unported (CC BY 3.0) + flobert1_20070728.wav by Nonoo - Attribution 3.0 Unported (CC BY 3.0) + + shot.wav by Sergenious - Attribution 3.0 Unported (CC BY 3.0) + GUNSHOT.WAV by erkanozan - CC0 1.0 Universal (CC0 1.0) diff --git a/README.txt b/README.txt index f4988f1..b726015 100644 --- a/README.txt +++ b/README.txt @@ -1,38 +1,37 @@ Minetest Mod - Simple Shooter [shooter] ======================================= -Mod Version: 0.1.0 +Mod Version: 0.2.0 Minetest Version: 0.4.8 Depends: default -An experimental first person shooter mod using vector mathematics instead of -physical projectile entities. This has a number of advantages along with a -number disadvantages. +An experimental first person shooter mod using simple vector mathematics +in an effort to find a more server-firendly method of hit detection from +that which is currently being used by the firearms mod. -Pros: +For the most part I think I have achieved this for straight pvp, however, +the jury is still out as to whether it is any faster against entities (mobs) +One big downside of this method is that it only works against ordinary nodes +within pointable range of the player. -Fast and responsive -Fairly light weight -Not affected by chunk boundaries +By default this mod is configured to work only against other players in +multiplayer (server) mode. This is overridden in singleplayer mode to work +against all registered entities instead. -Cons: +Default configuration can be customised by adding a shooter.conf file to the +mod's main directory, see shooter.conf.example for more details. -Only works against other players -Slightly less realistic - -This is still very much a work in progress and currently not much use in a -singleplayer game. I plan to eventually use this as a base for a 'Spades' style -FPS game using the minetest engine, however, I decided to add a couple of craft -recipes and release this simple version for minetest_game. +This is still very much a work in progress which I plan to eventually use as +the base for a 'Spades' style FPS game using the minetest engine. Crafting ======== S = Steel Ingot [default:steel_ingot] B = Bronze Ingot [default:bronze_ingot] -M = Mese Crystal [default:mese_crystal] +M = Mese Crystal [default:mese_crysytal] Pistol: [shooter:pistol] @@ -52,3 +51,13 @@ Riffle: [shooter:riffle] | | M | B | +---+---+---+ +Shotgun: [shooter:shotgun] + ++---+---+---+ +| S | | | ++---+---+---+ +| | S | | ++---+---+---+ +| | M | B | ++---+---+---+ + diff --git a/init.lua b/init.lua index 54f5cf4..e10d161 100644 --- a/init.lua +++ b/init.lua @@ -1,33 +1,52 @@ dofile(minetest.get_modpath(minetest.get_current_modname()).."/shooter.lua") minetest.register_tool("shooter:pistol", { - description = "Pistol", - inventory_image = "shooter_pistol.png", + description = "Pistol", + inventory_image = "shooter_pistol.png", on_use = function(itemstack, user, pointed_thing) - shooter:fire_weapon(user, { - range_func = {a=-0.1, b=-1.5, c=100}, - tool_caps = {full_punch_interval=1.0, damage_groups={fleshy=3}}, + shooter:fire_weapon(user, pointed_thing, { + range = 30, + tool_caps = {full_punch_interval=0.5, damage_groups={fleshy=1}}, + groups = {snappy=3, oddly_breakable_by_hand=3}, sound = "shooter_pistol", + particle = "default_obsidian.png", }) itemstack:add_wear(328) -- 200 Rounds - return itemstack end, }) minetest.register_tool("shooter:riffle", { - description = "Riffle", - inventory_image = "shooter_riffle.png", + description = "Riffle", + inventory_image = "shooter_riffle.png", on_use = function(itemstack, user, pointed_thing) - shooter:fire_weapon(user, { - range_func = {a=-0.02, b=-0.6, c=100}, - tool_caps = {full_punch_interval=1.0, damage_groups={fleshy=5}}, + shooter:fire_weapon(user, pointed_thing, { + range = 80, + tool_caps = {full_punch_interval=1.0, damage_groups={fleshy=2}}, + groups = {snappy=3, crumbly=3, choppy=3, oddly_breakable_by_hand=2}, sound = "shooter_riffle", + particle = "default_gold_block.png", }) itemstack:add_wear(656) -- 100 Rounds return itemstack end, }) +minetest.register_tool("shooter:shotgun", { + description = "Shotgun", + inventory_image = "shooter_shotgun.png", + on_use = function(itemstack, user, pointed_thing) + shooter:fire_weapon(user, pointed_thing, { + range = 15, + tool_caps = {full_punch_interval=1.5, damage_groups={fleshy=4}}, + groups = {cracky=3, snappy=2, crumbly=2, choppy=2, oddly_breakable_by_hand=1}, + sound = "shooter_shotgun", + particle = "smoke_puff.png", + }) + itemstack:add_wear(1311) -- 50 Rounds + return itemstack + end, +}) + minetest.register_craft({ output = "shooter:pistol", recipe = { @@ -45,3 +64,12 @@ minetest.register_craft({ }, }) +minetest.register_craft({ + output = "shooter:shotgun", + recipe = { + {"default:steel_ingot", "", ""}, + {"", "default:steel_ingot", ""}, + {"", "default:mese_crystal", "default:bronze_ingot"}, + }, +}) + diff --git a/shooter.conf.example b/shooter.conf.example new file mode 100644 index 0000000..bc44e8c --- /dev/null +++ b/shooter.conf.example @@ -0,0 +1,13 @@ +-- Simple Shooter config example + +-- Global Constants (defaults) + +-- Particle texture used when target it hit +SHOOTER_EXPLOSION_TEXTURE = "shooter_hit.png" + +-- Allow entities in multiplayer mode +SHOOTER_ALLOW_ENTITIES = false + +-- Maximum object range, applies only if entities are allowed +SHOOTER_OBJECT_RANGE = 50 + diff --git a/shooter.lua b/shooter.lua index 7d4218c..332d425 100644 --- a/shooter.lua +++ b/shooter.lua @@ -1,34 +1,145 @@ shooter = {} -local function in_range(r, x) - local chance = r.a * (x * x) + r.b * x + r.c - if math.random(100) < chance then +SHOOTER_EXPLOSION_TEXTURE = "shooter_hit.png" +SHOOTER_ALLOW_ENTITIES = true +SHOOTER_OBJECT_RANGE = 50 + +local modpath = minetest.get_modpath(minetest.get_current_modname()) +local input = io.open(modpath.."/shooter.conf", "r") +if input then + dofile(modpath.."/shooter.conf") + input:close() + input = nil +end +if minetest.is_singleplayer() == true then + SHOOTER_ALLOW_ENTITIES = true +end +local timer = 0 +local shots = {} + +local function spawn_particles(p, v, d, texture) + local pos = vector.add(p, vector.multiply(v, {x=d, y=d, z=d})) + pos.y = pos.y + 0.75 + local spread = {x=0.1, y=0.1, z=0.1} + minetest.add_particlespawner(15, 0.3, + vector.subtract(pos, spread), vector.add(pos, spread), + {x=-1, y=1, z=-1}, {x=1, y=2, z=1}, + {x=-2, y=-2, z=-2}, {x=2, y=-2, z=2}, + 0.1, 0.75, 1, 2, false, texture + ) +end + +local function is_valid_object(object) + if object:is_player() == true then return true end + if SHOOTER_ALLOW_ENTITIES == true then + local luaentity = object:get_luaentity() + if luaentity then + if minetest.registered_entities[luaentity.name] then + return true + end + end + end return false end -function shooter:fire_weapon(user, def) +function shooter:fire_weapon(user, pointed_thing, def) + local name = user:get_player_name() + if shots[name] then + if timer < shots[name] then + return + end + end + shots[name] = timer + def.tool_caps.full_punch_interval minetest.sound_play(def.sound, {object=user}) - local target = {player=nil, distance=50} + local v1 = user:get_look_dir() local p1 = user:getpos() - for _,player in ipairs(minetest.get_connected_players()) do - local p2 = player:getpos() - if p1 and p2 then - local x = vector.distance(p1, p2) - p2.y = p2.y - 0.75 - if x > 0 and x < target.distance and x < 50 then - if in_range(def.range_func, x) == true then - local v1 = user:get_look_dir() + minetest.add_particle({x=p1.x, y=p1.y + 1.6, z=p1.z}, + vector.multiply(v1, {x=30, y=30, z=30}), + {x=0, y=0, z=0}, 0.5, 0.25, + false, def.particle + ) + if pointed_thing.type == "node" then + local pos = minetest.get_pointed_thing_position(pointed_thing, false) + local node = minetest.get_node(pos) + if not node then + return + end + local item = minetest.registered_items[node.name] + if not item.groups then + return + end + for k, v in pairs(def.groups) do + local level = item.groups[k] or 0 + if level >= v then + minetest.remove_node(pos) + local sounds = item.sounds + if sounds then + local soundspec = sounds.dug + if soundspec then + soundspec.pos = pos + minetest.sound_play(soundspec.name, soundspec) + end + end + local tiles = item.tiles + if tiles then + if tiles[1] then + spawn_particles({x=p1.x, y=p1.y + 0.75, z=p1.z}, + v1, vector.distance(p1, pos), tiles[1]) + end + end + break + end + end + return + elseif pointed_thing.type == "object" then + local object = pointed_thing.ref + if is_valid_object(object) == true then + object:punch(user, nil, def.tool_caps, v1) + local p2 = object:getpos() + spawn_particles({x=p1.x, y=p1.y + 0.75, z=p1.z}, v1, + vector.distance(p1, p2), SHOOTER_EXPLOSION_TEXTURE) + return + end + end + if def.range > 100 then + def.range = 100 + end + local target = {object=nil, distance=100} + local objects = {} + if SHOOTER_ALLOW_ENTITIES == true then + local range = def.range + if range > SHOOTER_OBJECT_RANGE then + range = SHOOTER_OBJECT_RANGE + end + local r = math.ceil(range * 0.5) + local p = vector.add(p1, vector.multiply(v1, {x=r, y=r, z=r})) + objects = minetest.get_objects_inside_radius(p, r) + else + objects = minetest.get_connected_players() + end + for _,object in ipairs(objects) do + if is_valid_object(object) == true then + local p2 = object:getpos() + if p1 and p2 then + local x = vector.distance(p1, p2) + p2.y = p2.y - 0.75 + if x > 0 and x < target.distance and x < def.range then + local yx = 0 + if x > 50 then + yx = 0.001 * (10 - x * 0.1) + else + yx = 0.000015 * (x * x) - 0.0015 * x + 0.042 + end + local yy = yx * 3 local v2 = vector.normalize(vector.direction(p1, p2)) local vd = vector.subtract(v1, v2) - local yx = 0.00002 * (x * x) - 0.002 * x + 0.05 - local yy = yx * 3 if math.abs(vd.x) < yx and - math.abs(vd.z) < yx and - math.abs(vd.y) < yy then + math.abs(vd.z) < yx and + math.abs(vd.y) < yy then target = { - player = player, + object = object, distance = x, direction = v1, pos1 = {x=p1.x, z=p1.z, y=p1.y+1}, @@ -39,9 +150,11 @@ function shooter:fire_weapon(user, def) end end end - if target.player then + if target.object then if minetest.line_of_sight(target.pos1, target.pos2, 1) then - target.player:punch(user, nil, def.tool_caps, target.direction) + target.object:punch(user, nil, def.tool_caps, target.direction) + spawn_particles(target.pos1, target.direction, + target.distance, SHOOTER_EXPLOSION_TEXTURE) end end end @@ -50,3 +163,7 @@ minetest.register_on_joinplayer(function(player) player:hud_set_flags({crosshair = true}) end) +minetest.register_globalstep(function(dtime) + timer = timer + dtime +end) + diff --git a/sounds/shooter_pistol.ogg b/sounds/shooter_pistol.ogg index 14fc786adf0a9f4d84b463722e489d29c4b7b8fa..0d3f464e649a726db5b580b19ad963f49454c811 100644 GIT binary patch delta 9218 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 literal 28506 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 diff --git a/sounds/shooter_shotgun.ogg b/sounds/shooter_shotgun.ogg new file mode 100644 index 0000000000000000000000000000000000000000..22aa8d48df343e50446657a732dd0db228f0c63c GIT binary patch literal 12688 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 MYiERB_?KA!2P@`sZ~y=R literal 0 HcmV?d00001 diff --git a/textures/shooter_hit.png b/textures/shooter_hit.png new file mode 100644 index 0000000000000000000000000000000000000000..46d95b2f506e0ad3853e4801c8ffdddd87ddad71 GIT binary patch literal 659 zcmV;E0&M+>P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01m?d01m?e$8V@)00007bV*G`2i*(- z4<;@PZ06$t00I+9L_t(I%RQ4@ZWJ*PMNd7tGt30SkOxG-M%WYkV=sIlAtWU77&1ww zX}4X)N1S|GmT&pqb4$LSo#iOPl1Tt}t#Mr|DnevZGWoSEluW*?*9;;|nS9&tdFPH# z5unO#Ym^ACTVq!%$7Zxl9wK;*K!MVSxCo!ek*(R2fQnEvnKF5;%3{WaJC6|@iSWjZ zBN0yBS*w!31maX_++OA%fScY|YTpeZ4g!deQTG_S6Ap#KrV98|FQArnFWpdeVJX=)2KaV5lo%Ni_X~$P0cHf+>PI;)%HkN2=^wgO1t%_Cv|!XDPfjW69)qtsIRb z-fMo_gZwxQ>{{ddJTqmY{~~Y^yenSU%D?`-l1T#6(O$T-YmJ8prXIY18b_X&>C_zo zF5S70V57=Ll_itM2)1TSnfxe)SH0T)T$tLYIbb4eRA1_=B2RurSR(k~&en{Q`GoPf tFUZvEOax0Nb0$M?;?mhKy^RSp;6G^1SQ~-cL1zE}002ovPDHLkV1n`XAMyYI literal 0 HcmV?d00001 diff --git a/textures/shooter_shotgun.png b/textures/shooter_shotgun.png new file mode 100644 index 0000000000000000000000000000000000000000..903223bc4559b932320dce6b14250526666f4b3c GIT binary patch literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85sBugD~Uq{1qucLG}_)Usv|KJj}wfa_fv%zW|ydg!9U6un4Ys~WR{hhfG|`75Qhk_V!^m6+1pUZ{oM+Z1%l(AedP zO4l{3UneDm-6cN#f9{f9%hbid5O6^*SsQ?6NY z8c8Nzc=r2v{rua0Wi|_rKNqix{?|0q(?w13@ZX%AQ@OV%b^O@c#ldxJu~sp=g4Bzg zGhy|OcJ}vTFPcC4_fBfNd3Z%^&CU(>n;#dos7B`Vo8+YLyVWbE`SN2(Dj$Ph!NZ4< sTnT$^85qun@6K>O*$|K@!tjInq)XlT@{V`AfC0wf>FVdQ&MBb@04~p>t^fc4 literal 0 HcmV?d00001