Update license and include source headers

Pass a deep copy of gunspec instead of a direct reference

Fix Lua style multi-line comments :/

Fix flaregun dependencies

Add mod.conf and description files plus some readme fixes
This commit is contained in:
stujones11 2019-03-17 18:13:26 +00:00
parent 8ef3b1d379
commit fde2b72a68
40 changed files with 570 additions and 213 deletions

View file

@ -1,14 +1,14 @@
Minetest Mod - Simple Shooter [shooter]
=======================================
License Source Code: 2013 Stuart Jones - LGPL v2.1
License Source Code: 2013-2019 Stuart Jones - LGPL v2.1
Additional credit for code ideas taken from other mods.
PilzAdam [throwing] for the throwing physics
ShadowNinja [nuke] for the vm explosion routine
License Textures: Stuart Jones - WTFPL
License Textures: Stuart Jones - CC0 1.0 Universal (CC0 1.0)
Licence Models: Stuart Jones - CC-BY-SA 3.0
@ -29,4 +29,3 @@ License Sounds: freesound.org
AGM-114 Hellfire Rocket Missile Launch.flac by qubodup - CC0 1.0 Universal (CC0 1.0)
Sparkler.aif by Ned Bouhalassa - CC0 1.0 Universal (CC0 1.0)

67
README.md Normal file
View file

@ -0,0 +1,67 @@
[modpack] Simple Shooter [shooter]
====================================
Mod Version: 0.6.0
Minetest Version: 5.0.0 (engine & game)
A simple first person shooter mod originally developed as part of a game that
was never completed. Now distributed as a Minetest Game compatible mod-pack.
[mod] Shooter API [shooter]
---------------------------
Depends: default
Handles raycasting, blasting and audio-visual effects of dependent mods.
[mod] Shooter Guns [shooter_guns]
---------------------------------
Depends: shooter
Adds basic guns using the shooter API.
[mod] Crossbow [shooter_crossbow]
---------------------------------
Depends: shooter, wool, dye
Adds a crossbow with colored arrows.
[mod] Flare Gun [shooter_flaregun]
----------------------------------
Depends: shooter, tnt, wool
Adds a flare-gun with temporary light emitting flares.
[mod] Grenade [shooter_grenade]
-------------------------------
Depends: shooter, tnt
Adds simple hand grenades.
[mod] Rocket Launcher [shooter_rocket]
--------------------------------------
Depends: shooter, tnt
Adds rocket missiles and launching gun.
[mod] Grapple Hook [shooter_hook]
---------------------------------
Depends: shooter, tnt
Adds a teleporting grapple hook which can be thrown or launched
further from a grapple hook gun.
[mod] Turret Gun [shooter_turret]
---------------------------------
Depends: shooter_rocket
Adds a mountable turret gun which can also be triggered by mesecon signals.
Still WIP and experimental and may be subject to change or removal.

2
description.txt Normal file
View file

@ -0,0 +1,2 @@
First person shooter mod.
Adds firearms plus a few other fun items.

View file

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

69
shooter/README.md Normal file
View file

@ -0,0 +1,69 @@
Minetest Mod - Shooter API [shooter]
====================================
Depends: default
Handles raycasting, blasting and audio-visual effects of dependent mods.
Configuration
-------------
Override the following default settings by adding them to your minetest.conf file.
-- Enable automatic weapons, uses globalstep to detect left mouse button
`shooter_admin_weapons = true`
-- Enable admin super weapons
-- This lets admins shoot guns automatically after 2 seconds without munition.
`shooter_admin_weapons = false`
-- Enable node destruction with explosives
shooter_enable_blasting = true
-- Enable Crafting
`shooter_enable_crafting = true`
-- Enable particle effects
`shooter_enable_particle_fx = true`
-- Enable protection mod support, requires a protection mod that utilizes
-- minetest.is_protected(), tested with TenPlus1's version of [protector]
`shooter_enable_protection = false`
-- Particle texture used when a player or entity is hit
`shooter_explosion = "shooter_hit.png"`
-- Allow node destruction
`shooter_allow_nodes = true`
-- Allow entities in multiplayer mode
`shooter_allow_entities = false`
-- Allow players in multiplayer mode
`shooter_allow_players = true`
-- How often objects are fully reloaded
`shooter_object_reload_time = 1`
-- How often object positions are updated
`shooter_object_update_time = 0.25`
-- How often rounds are processed
`shooter_rounds_update_time = 0.4`
API Documentation
-----------------
TODO

View file

@ -1,206 +0,0 @@
Minetest Mod - Simple Shooter [shooter]
=======================================
Mod Version: 0.5.3
Minetest Version: 0.4.9, 0.4.10, 0.4.11
Depends: default, dye, tnt, wool
An experimental first person shooter mod that uses simple vector mathematics
to produce an accurate and server-firendly method of hit detection.
By default this mod is configured to work only against other players in
multiplayer mode and against Simple Mobs [mobs] in singleplayer mode.
Configuration
=============
Override the following default settings by adding them to your minetest.conf file.
-- Enable admin super weapons
-- This lets admins shoot guns automatically after 2 seconds without munition.
shooter_admin_weapons = false
-- Enable node destruction with explosives
shooter_enable_blasting = true
-- Enable Crafting
shooter_enable_crafting = true
-- Enable particle effects
shooter_enable_particle_fx = true
-- Enable protection mod support, requires a protection mod that utilizes
-- minetest.is_protected(), tested with TenPlus1's version of [protector]
shooter_enable_protection = false
-- Particle texture used when a player or entity is hit
shooter_explosion = "shooter_hit.png"
-- Allow node destruction
shooter_allow_nodes = true
-- Allow entities in multiplayer mode
shooter_allow_entities = false
-- Allow players in multiplayer mode
shooter_allow_players = true
-- How often objects are fully reloaded
shooter_object_reload_time = 1
-- How often object positions are updated
shooter_object_update_time = 0.25
-- How often rounds are processed
shooter_rounds_update_time = 0.4
Crafting
========
<color> = grey, black, red, yellow, green, cyan, blue, magenta
A = Arrow [shooter:arrow_white]
C = Color Dye [dye:<color>]
W = Wooden Stick [default:stick]
P = Paper [default:paper]
S = Steel Ingot [default:steel_ingot]
B = Bronze Ingot [default:bronze_ingot]
M = Mese Crystal [default:mese_crysytal]
D = Diamond [default:diamond]
R = Red Wool [wool:red]
G = Gun Powder [tnt:gunpowder]
Crossbow: [shooter:crossbow]
+---+---+---+
| W | W | W |
+---+---+---+
| W | W | |
+---+---+---+
| W | | B |
+---+---+---+
White Arrow: [shooter:arrow_white]
+---+---+---+
| S | | |
+---+---+---+
| | W | P |
+---+---+---+
| | P | W |
+---+---+---+
Coloured Arrow: [shooter:arrow_<color>]
+---+---+
| C | A |
+---+---+
Pistol: [shooter:pistol]
+---+---+
| S | S |
+---+---+
| | M |
+---+---+
Rifle: [shooter:rifle]
+---+---+---+
| S | | |
+---+---+---+
| | B | |
+---+---+---+
| | M | B |
+---+---+---+
Shotgun: [shooter:shotgun]
+---+---+---+
| S | | |
+---+---+---+
| | S | |
+---+---+---+
| | M | B |
+---+---+---+
Sub Machine Gun: [shooter:machine_gun]
+---+---+---+
| S | S | S |
+---+---+---+
| | B | M |
+---+---+---+
| | B | |
+---+---+---+
Ammo Pack: [shooter:ammo]
+---+---+
| G | B |
+---+---+
Grappling Hook: [shooter:grapple_hook]
+---+---+---+
| S | S | D |
+---+---+---+
| S | S | |
+---+---+---+
| D | | S |
+---+---+---+
Grappling Hook Gun: [shooter:grapple_gun]
+---+---+
| S | S |
+---+---+
| | D |
+---+---+
Flare: [shooter:flare]
+---+---+
| G | R |
+---+---+
Flare Gun: [shooter:flaregun]
+---+---+---+
| R | R | R |
+---+---+---+
| | | S |
+---+---+---+
Grenade: [shooter:grenade]
+---+---+
| G | S |
+---+---+
Flare Gun: [shooter:rocket_gun]
+---+---+---+
| B | S | S |
+---+---+---+
| | | D |
+---+---+---+
Rocket: [shooter:rocket]
+---+---+---+
| B | G | B |
+---+---+---+
Turret: [shooter:turret]
+---+---+---+
| B | B | S |
+---+---+---+
| | B | S |
+---+---+---+
| | D | |
+---+---+---+

View file

@ -1,3 +1,22 @@
--[[
Shooter API [shooter]
Copyright (C) 2013-2019 stujones11, Stuart Jones
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
]]--
shooter = {
registered_weapons = {},
}
@ -60,7 +79,8 @@ shooter.register_weapon = function(name, def)
description = def.description,
inventory_image = def.inventory_image,
on_use = function(itemstack, user)
if shooter.fire_weapon(user, itemstack, def.spec) then
local spec = table.copy(def.spec)
if shooter.fire_weapon(user, itemstack, spec) then
itemstack:add_wear(def.spec.wear)
if itemstack:get_count() == 0 then
itemstack = def.unloaded_item.name

View file

@ -1,2 +1,2 @@
First person shooter mod.
Adds firearms plus a few other fun items.
Shooter Mod API.
Handles raycasting, blasting and audio-visual effects of dependent mods.

View file

@ -1,3 +1,22 @@
--[[
Simple Shooter [shooter]
Copyright (C) 2013-2019 stujones11, Stuart Jones
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
]]--
local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname)
local worldpath = minetest.get_worldpath()

View file

@ -0,0 +1,45 @@
Minetest Mod - Crossbow [shooter_crossbow]
==========================================
Depends: shooter, wool, dye
Adds a crossbow with colored arrows.
Crafting
========
<color> = grey, black, red, yellow, green, cyan, blue, magenta
A = Arrow [shooter:arrow_white]
C = Color Dye [dye:<color>]
W = Wooden Stick [default:stick]
P = Paper [default:paper]
S = Steel Ingot [default:steel_ingot]
B = Bronze Ingot [default:bronze_ingot]
Crossbow: [shooter_crossbow:crossbow]
+---+---+---+
| W | W | W |
+---+---+---+
| W | W | |
+---+---+---+
| W | | B |
+---+---+---+
White Arrow: [shooter_crossbow:arrow_white]
+---+---+---+
| S | | |
+---+---+---+
| | W | P |
+---+---+---+
| | P | W |
+---+---+---+
Coloured Arrow: [shooter_crossbow:arrow_<color>]
+---+---+
| C | A |
+---+---+

View file

@ -1,2 +1,3 @@
wool
dye
shooter

View file

@ -0,0 +1 @@
Adds a crossbow with colored arrows.

View file

@ -1,3 +1,22 @@
--[[
Shooter Crossbow [shooter_crossbow]
Copyright (C) 2013-2019 stujones11, Stuart Jones
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
]]--
local config = {
crossbow_uses = 50,
arrow_lifetime = 180,

View file

@ -0,0 +1 @@
name = shooter_crossbow

View file

@ -0,0 +1,28 @@
Minetest Mod - Flare Gun [shooter_flaregun]
===========================================
Depends: shooter, tnt, wool
Adds a flare-gun with temporary light emitting flares.
Crafting
========
S = Steel Ingot [default:steel_ingot]
R = Red Wool [wool:red]
G = Gun Powder [tnt:gunpowder]
Flare: [shooter_flaregun:flare]
+---+---+
| G | R |
+---+---+
Flare Gun: [shooter_flaregun:flaregun]
+---+---+---+
| R | R | R |
+---+---+---+
| | | S |
+---+---+---+

View file

@ -1,3 +1,3 @@
shooter
tnt
wool
shooter

View file

@ -0,0 +1 @@
Adds a flare-gun with temporary light emitting flares.

View file

@ -1,3 +1,22 @@
--[[
Shooter Flare Gun [shooter_flaregun]
Copyright (C) 2013-2019 stujones11, Stuart Jones
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
]]--
minetest.register_craftitem("shooter_flaregun:flare", {
description = "Flare",
inventory_image = "shooter_flare_inv.png",

View file

@ -0,0 +1 @@
name = shooter_flaregun

View file

@ -0,0 +1,19 @@
Minetest Mod - Grenade [shooter_grenade]
========================================
Depends: shooter, tnt
Adds simple hand grenades.
Crafting
========
S = Steel Ingot [default:steel_ingot]
G = Gun Powder [tnt:gunpowder]
Grenade: [shooter_grenade:grenade]
+---+---+
| G | S |
+---+---+

View file

@ -0,0 +1 @@
Adds simple hand grenades.

View file

@ -1,3 +1,22 @@
--[[
Shooter Grenade [shooter_grenade]
Copyright (C) 2013-2019 stujones11, Stuart Jones
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
]]--
minetest.register_entity("shooter_grenade:grenade_entity", {
physical = false,
timer = 0,

1
shooter_grenade/mod.conf Normal file
View file

@ -0,0 +1 @@
name = shooter_grenade

59
shooter_guns/README.txt Normal file
View file

@ -0,0 +1,59 @@
Minetest Mod - Shooter Guns [shooter_guns]
==========================================
Depends: shooter
Adds basic guns using the shooter API.
Crafting
========
S = Steel Ingot [default:steel_ingot]
B = Bronze Ingot [default:bronze_ingot]
M = Mese Crystal [default:mese_crysytal]
G = Gun Powder [tnt:gunpowder]
Pistol: [shooter_guns:pistol]
+---+---+
| S | S |
+---+---+
| | M |
+---+---+
Rifle: [shooter_guns:rifle]
+---+---+---+
| S | | |
+---+---+---+
| | B | |
+---+---+---+
| | M | B |
+---+---+---+
Shotgun: [shooter_guns:shotgun]
+---+---+---+
| S | | |
+---+---+---+
| | S | |
+---+---+---+
| | M | B |
+---+---+---+
Sub Machine Gun: [shooter_guns:machine_gun]
+---+---+---+
| S | S | S |
+---+---+---+
| | B | M |
+---+---+---+
| | B | |
+---+---+---+
Ammo Pack: [shooter_guns:ammo]
+---+---+
| G | B |
+---+---+

View file

@ -0,0 +1 @@
Adds basic guns using the shooter API.

View file

@ -1,3 +1,22 @@
--[[
Shooter Guns [shooter_guns]
Copyright (C) 2013-2019 stujones11, Stuart Jones
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
]]--
shooter.register_weapon("shooter_guns:pistol", {
description = "Pistol",
inventory_image = "shooter_pistol.png",

1
shooter_guns/mod.conf Normal file
View file

@ -0,0 +1 @@
name = shooter_guns

32
shooter_hook/README.txt Normal file
View file

@ -0,0 +1,32 @@
Minetest Mod - Grapple Hook [shooter_hook]
==========================================
Depends: shooter, tnt
Adds a teleporting grapple hook which can be thrown or launched
further from a grapple hook gun.
Crafting
========
S = Steel Ingot [default:steel_ingot]
D = Diamond [default:diamond]
Grappling Hook: [shooter_hook:grapple_hook]
+---+---+---+
| S | S | D |
+---+---+---+
| S | S | |
+---+---+---+
| D | | S |
+---+---+---+
Grappling Hook Gun: [shooter_hook:grapple_gun]
+---+---+
| S | S |
+---+---+
| | D |
+---+---+

View file

@ -1 +1,2 @@
tnt
shooter

View file

@ -0,0 +1 @@
Adds a teleporting grapple hook and gun.

View file

@ -1,3 +1,22 @@
--[[
Shooter Grapple Hook [shooter_hook]
Copyright (C) 2013-2019 stujones11, Stuart Jones
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
]]--
local function throw_hook(itemstack, user, vel)
local inv = user:get_inventory()
local pos = user:get_pos()

1
shooter_hook/mod.conf Normal file
View file

@ -0,0 +1 @@
name = shooter_hook

29
shooter_rocket/README.txt Normal file
View file

@ -0,0 +1,29 @@
Minetest Mod - Rocket Launcher [shooter_rocket]
===============================================
Depends: shooter, tnt
Adds rocket missiles and launching gun.
Crafting
========
S = Steel Ingot [default:steel_ingot]
B = Bronze Ingot [default:bronze_ingot]
D = Diamond [default:diamond]
G = Gun Powder [tnt:gunpowder]
Rocket: [shooter_rocket:rocket]
+---+---+---+
| B | G | B |
+---+---+---+
Rocket Gun: [shooter_rocket:rocket_gun]
+---+---+---+
| B | S | S |
+---+---+---+
| | | D |
+---+---+---+

View file

@ -0,0 +1 @@
Adds rocket missiles and launching gun.

View file

@ -1,3 +1,22 @@
--[[
Shooter Rocket Gun [shooter_rocket]
Copyright (C) 2013-2019 stujones11, Stuart Jones
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
]]--
minetest.register_craftitem("shooter_rocket:rocket", {
description = "Rocket",
stack_max = 1,

1
shooter_rocket/mod.conf Normal file
View file

@ -0,0 +1 @@
name = shooter_rocket

25
shooter_turret/README.txt Normal file
View file

@ -0,0 +1,25 @@
Minetest Mod - Turret Gun [shooter_turret]
==========================================
Depends: shooter_rocket
Adds a mountable turret gun which can also be triggered by mesecon signals.
Still WIP and experimental and may be subject to change or removal.
Crafting
========
S = Steel Ingot [default:steel_ingot]
B = Bronze Ingot [default:bronze_ingot]
D = Diamond [default:diamond]
Turret Gun: [shooter_turret:turret]
+---+---+---+
| B | B | S |
+---+---+---+
| | B | S |
+---+---+---+
| | D | |
+---+---+---+

View file

@ -0,0 +1,2 @@
Adds a mountable turret gun which can also be triggered by mesecon signals.
Still WIP and experimental and may be subject to change or removal.

View file

@ -1,3 +1,22 @@
--[[
Shooter Turret Gun [shooter_turret]
Copyright (C) 2013-2019 stujones11, Stuart Jones
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
]]--
local use_player_api = minetest.get_modpath("player_api")
local function get_turret_entity(pos)

1
shooter_turret/mod.conf Normal file
View file

@ -0,0 +1 @@
name = shooter_turret