1
0
mirror of https://gitlab.com/echoes91/spears.git synced 2025-06-28 21:56:02 +02:00

33 Commits
3.0 ... master

Author SHA1 Message Date
69937f7d0f Merge remote-tracking branch 'upstream/master' 2025-03-20 12:52:36 +01:00
fcfd6f64d7 Version 3.2.0 2024-12-27 11:33:07 +01:00
2335f45b71 Update file CHANGELOG 2024-12-22 10:38:40 +00:00
bd4215e68d Merge branch 'master' into 'master'
Added fallback value in minetest.log

Closes #8

See merge request echoes91/spears!5
2024-12-22 10:14:10 +00:00
c2aa7aaf27 Merge branch 'master' into 'master'
Tweak Esperanto translation

See merge request echoes91/spears!4
2024-12-22 10:13:30 +00:00
add5df5214 Added fallback value in minetest.log on line 14 2024-12-11 15:38:21 +00:00
6bc97332e6 Merge remote-tracking branch 'upstream/master' 2024-09-15 12:53:31 +02:00
04be5c6e9b Tweak Esperanto translation 2024-05-19 18:43:51 -05:00
32d0ee567a Update 3.1.1 2024-03-03 10:08:29 +00:00
5c7ef471ca Update file CHANGELOG 2024-03-03 10:07:58 +00:00
dd5c92c0bc Deprecate completely defaults.lua 2024-03-03 09:55:16 +00:00
ee21ce3826 Italian translations 2024-02-10 14:39:07 +00:00
e1459d04cf Update 2 files
- /defaults.lua
- /CHANGELOG
2024-02-07 21:55:56 +00:00
60c0656cd1 Update file functions.lua 2024-02-07 21:52:24 +00:00
57c840451c Update file functions.lua 2024-02-07 21:49:31 +00:00
440c620bf0 Update 3.1 functions 2024-02-07 21:46:58 +00:00
bc1536223c 3.1 Changelog 2024-02-07 21:12:48 +00:00
81e2c5c343 Replace spears_throw.ogg with mono 2024-02-07 21:09:57 +00:00
299a3134ff Replace spears_hit.ogg 2024-02-07 21:09:29 +00:00
3f3210d172 Update tools.lua with l18n support 2024-02-04 18:05:01 +00:00
e9e7afd6c5 Merge branch 'master' into 'master'
Translation i18n support

See merge request echoes91/spears!3
2024-02-04 18:01:45 +00:00
67b13d723b Merge branch 'master' into 'master'
# Conflicts:
#   tools.lua

Merging S('Text elements') with minetest.settings usage
2024-02-04 17:58:49 +00:00
152e649fb4 Add Esperanto translation 2024-01-03 15:16:09 -06:00
f9e839435c Add translation support 2024-01-03 15:15:57 -06:00
4514a8d0a1 Merge remote-tracking branch 'upstream/master' 2023-06-07 22:47:09 +02:00
2100c74a21 Merge branch 'crabman77-fix' 2022-08-20 20:30:24 +02:00
b888cda310 fix itemframes issue nalc/nalc-server-mods#103
fix deployer issue nalc/nalc-server-mods#104
fix deprecated function
fix bad/Nonexistent collision detection on mobs/players, use collision box for very good detection
add translation client side
2022-07-21 17:35:07 +02:00
e2182ca004 Delete depends.txt, add mod.conf 2022-07-02 21:36:09 +02:00
a5b33a6e9a Fix crash 2020-08-09 00:58:12 +02:00
8770387fbc Change craft recipes that conflict with throwing mod 2020-08-08 23:46:38 +02:00
66c69c5265 Fix undeclared global variable warning at startup
DISABLE_GOLD_SPEAR
2020-06-20 16:31:26 +02:00
662e637595 Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-06-14 22:16:47 +02:00
63d339a686 Corrige avertissement sur variable globale 2018-12-24 01:14:12 +01:00
14 changed files with 202 additions and 123 deletions

View File

@ -1,3 +1,20 @@
Version 3.2.0
- Moving from minetest. to core. API calls for future-proof newcomers-friendly maintenance.
- Properly manage default settings values in defaults.lua
- Addied full_punch_interval parameter to settings
Update 3.1.2
- Fix initial loading with fallback values for logging and Esperanto translations tweaks.
Update 3.1.1
- Fix all initial settings values and completely deprecate defaults.lua
Version 3.1:
- Initial l18n translations support
- Replace stereo sounds with mono
- Fix behaviour with initial settings
- Clean reduntant variables and deprecate defaults.lua
Version 3.0:
- First attempt to detect collisionboxes
- Implemented settings through settingtypes.txt, deprecating "spears.conf"

View File

@ -1,30 +1,32 @@
=== SPEARS for MINETEST by Echoes91 ===
=== SPEARS for LUANTI by Echoes91 ===
This mod adds spears to Minetest.
This mod adds spears to Luanti (formerly to Minetest).
How to download:
If you have this file, you probably know.
If you're reading from gitlab.com, you already know.
But in doubt, https://gitlab.com/echoes91/spears/-/archive/master/spears-master.zip
Forum topic:
https://forum.minetest.net/viewtopic.php?f=11&t=13367
https://forum.luanti.org/viewtopic.php?t=13367
How to install:
Minetest content DB is the way!
http://wiki.minetest.com/wiki/Installing_Mods
Content DB is the way!
https://wiki.luanti.org/Mods#Installation
How to use the mod:
Craft a spear with | | | (material) |
| | stick | |
| stick | | |,
Craft a spear with | | | material |
| | stick | |
| stick | | |
works also mirrored.
Spears can be thrown using right mouse button, they either hurt someone or stick where they land on; damage depends on speed and material, flight trajectory is ballistic with (unrealistic) drag.
Spears can be used to fight, but are slower and weaker than swords.
Spears can be used to dig, but are slower and weaker and pickaxes.
If you miss the target it's your fault, the spear is fine.
You can grab a spear on the fly (or maybe wait until it falls?).
You can stick a spear into a block, but if you remove the block then the spear falls (obviously).
This mod contains the word "spear" more than 100 times, if you want the exact number you can count them.
This mod contains the word "spear" more than 100 times, if you want to know the exact number there must be a sed script for that.
If you feel clever, throw a spear right above you and look at it to see what happens.
You can even throw a spear from above down to your foes, it's even easier to hit.
You can even throw a spear down to your foes from above, it's even easier to hit!
Someone once reported to have hit its own foot but it takes practice to do that.

View File

@ -1,30 +1,52 @@
-- Seems like defaults in settingtypes.txt are not taken by default
if minetest.settings:get("spears_throw_speed") == nil then
minetest.settings:set("spears_throw_speed", 13)
-- Seems like defaults in settingtypes.txt are not taken by default, let's default them
if core.settings:get("spears_throw_speed") == nil then
core.settings:set("spears_throw_speed", 13)
end
if minetest.settings:get("spears_drag_coeff") == nil then
minetest.settings:set("spears_drag_coeff", 0.1)
if core.settings:get("spears_drag_coeff") == nil then
core.settings:set("spears_drag_coeff", 0.1)
end
if minetest.settings:get("spears_node_cracky_limit") == nil then
minetest.settings:set("spears_node_cracky_limit", 3)
if core.settings:get("spears_node_cracky_limit") == nil then
core.settings:set("spears_node_cracky_limit", 3)
end
if core.settings:get("spears_full_punch_interval") == nil then
core.settings:set("spears_full_punch_interval", 1.5)
end
-- DISABLE_STONE_SPEAR = false
-- DISABLE_STEEL_SPEAR = false
-- DISABLE_COPPER_SPEAR = false
-- DISABLE_BRONZE_SPEAR = false
-- DISABLE_DIAMOND_SPEAR = false
-- DISABLE_OBSIDIAN_SPEAR = false
-- DISABLE_GOLD_SPEAR = false
-- DISABLE_IRON_SPEAR = false
-- SPEARS_THROW_SPEED = 13
SPEARS_V_ZERO = {x = 0, y = 0, z = 0}
-- SPEARS_DRAG_COEFF = 0.1
SPEARS_NODE_UNKNOWN = nil
SPEARS_NODE_THROUGH = 0
SPEARS_NODE_STICKY = 1
SPEARS_NODE_CRACKY = 2
-- SPEARS_NODE_CRACKY_LIMIT = 3
if core.settings:get("spears_enable_stone_spear") == nil then
core.settings:set_bool("spears_enable_stone_spear", true)
end
if core.get_modpath("pigiron") then
if core.settings:get("spears_enable_iron_spear") == nil then
core.settings:set_bool("spears_enable_iron_spear", true)
end
else
core.settings:set_bool("spears_enable_iron_spear", false)
end
if core.settings:get("spears_enable_steel_spear") == nil then
core.settings:set_bool("spears_enable_steel_spear", true)
end
if core.settings:get("spears_enable_copper_spear") == nil then
core.settings:set_bool("spears_enable_copper_spear", true)
end
if core.settings:get("spears_enable_bronze_spear") == nil then
core.settings:set_bool("spears_enable_bronze_spear", true)
end
if core.settings:get("spears_enable_obsidian_spear") == nil then
core.settings:set_bool("spears_enable_obsidian_spear", true)
end
if core.settings:get("spears_enable_diamond_spear") == nil then
core.settings:set_bool("spears_enable_diamond_spear", true)
end
if core.settings:get("spears_enable_gold_spear") == nil then
core.settings:set_bool("spears_enable_gold_spear", true)
end

View File

@ -11,33 +11,31 @@ function spears_throw (itemstack, player, pointed_thing)
local pointed_a = pointed_thing.above
local pointed_b = pointed_thing.under
if pointed_thing.type == "node" and vector.distance(pointed_a, throw_pos) < 1 then -- Stick into node
local node = minetest.get_node(pointed_b)
local node = core.get_node(pointed_b)
local check_node = spears_check_node(node.name)
if check_node == SPEARS_NODE_UNKNOWN then
if check_node == nil then
return false
elseif check_node == SPEARS_NODE_CRACKY then
minetest.sound_play("default_metal_footstep", {pos = pointed_a}, true)
elseif check_node == 'cracky' then
core.sound_play("default_metal_footstep", {pos = pointed_a}, true)
return false
elseif check_node == SPEARS_NODE_STICKY then
local spear_object = minetest.add_entity(vector.divide(vector.add(vector.multiply(pointed_a, 2), pointed_b), 3), spear)
elseif check_node == 'sticky' then
local spear_object = core.add_entity(vector.divide(vector.add(vector.multiply(pointed_a, 2), pointed_b), 3), spear)
spear_object:set_rotation(rotation)
spear_object:get_luaentity()._wear = wear
spear_object:get_luaentity()._stickpos = pointed_b
minetest.sound_play("default_place_node", {pos = pointed_a}, true)
core.sound_play("default_place_node", {pos = pointed_a}, true)
return false
end
else -- Avoid hitting yourself and throw
local throw_speed = tonumber(minetest.settings:get("spears_throw_speed"))
while vector.distance(player_pos, throw_pos) < 1.2 do
throw_pos = vector.add(throw_pos, vector.multiply(direction, 0.1))
end
else -- Throw
local throw_speed = tonumber(core.settings:get("spears_throw_speed"))
local player_vel = player:get_velocity()
local spear_object = minetest.add_entity(throw_pos, spear)
local spear_object = core.add_entity(throw_pos, spear)
spear_object:set_velocity(vector.add(player_vel, vector.multiply(direction, throw_speed)))
spear_object:set_rotation(rotation)
minetest.sound_play("spears_throw", {pos = player_pos}, true)
core.sound_play("spears_throw", {pos = player_pos}, true)
spear_object:get_luaentity()._wear = wear
spear_object:get_luaentity()._stickpos = nil
spear_object:get_luaentity()._owner = player:get_luaentity()
return true
end
end
@ -50,6 +48,7 @@ function spears_set_entity(spear_type, base_damage, toughness)
visual_size = {x = 0.3, y = 0.3, z = 0.3},
wield_item = "spears:spear_" .. spear_type,
collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3},
lastpos={},
},
on_activate = function (self, staticdata, dtime_s)
@ -77,60 +76,60 @@ function spears_set_entity(spear_type, base_damage, toughness)
local velocity = self.object:get_velocity()
local speed = vector.length(velocity)
if self._stickpos ~= nil then -- Spear is stuck
local node = minetest.get_node(self._stickpos)
local node = core.get_node(self._stickpos)
local check_node = spears_check_node(node.name)
if check_node ~= SPEARS_NODE_STICKY then -- Fall when node is removed
if check_node ~= 'sticky' then -- Fall when node is removed
self.object:remove()
minetest.add_item(pos, {name='spears:spear_' .. spear_type, wear = wear})
core.add_item(pos, {name='spears:spear_' .. spear_type, wear = wear})
return false
end
else -- Spear is flying
local direction = vector.normalize(velocity)
local yaw = minetest.dir_to_yaw(direction)
local yaw = core.dir_to_yaw(direction)
local pitch = math.acos(velocity.y/speed) - math.pi/3
local spearhead_pos = vector.add(pos, vector.multiply(direction, 0.5))
self.object:set_rotation({x = 0, y = yaw + math.pi/2, z = pitch})
-- Hit a target?
local objects_in_radius = minetest.get_objects_inside_radius(spearhead_pos, 1)
local objects_in_radius = core.get_objects_inside_radius(spearhead_pos, 1)
for _,object in ipairs(objects_in_radius) do
if spears_check_target(self, object, spearhead_pos) and object:get_armor_groups().fleshy then
local damage = (speed + base_damage)^1.15 - 20
object:punch(self.object, 1.0, {full_punch_interval = 1.0, damage_groups = {fleshy=damage},}, direction)
self.object:remove()
minetest.sound_play("spears_hit", {pos = pos}, true)
core.sound_play("spears_hit", {pos = pos}, true)
wear = spears_wear(wear, toughness)
minetest.add_item(pos, {name='spears:spear_' .. spear_type, wear = wear})
core.add_item(pos, {name='spears:spear_' .. spear_type, wear = wear})
return true
end
end
-- Hit a node?
local node = minetest.get_node(spearhead_pos)
local node = core.get_node(spearhead_pos)
local check_node = spears_check_node(node.name)
if check_node == SPEARS_NODE_UNKNOWN then
if check_node == nil then
self.object:remove()
minetest.add_item(pos, {name='spears:spear_' .. spear_type, wear = wear})
elseif check_node ~= SPEARS_NODE_THROUGH then
core.add_item(pos, {name='spears:spear_' .. spear_type, wear = wear})
elseif check_node ~= 'through' then
wear = spears_wear(wear, toughness)
if wear >= 65535 then
minetest.sound_play("default_tool_breaks", {pos = pos}, true)
core.sound_play("default_tool_breaks", {pos = pos}, true)
self.object:remove()
minetest.add_item(pos, {name='defaut:stick'})
core.add_item(pos, {name='defaut:stick'})
return false
elseif check_node == SPEARS_NODE_CRACKY then
minetest.sound_play("default_metal_footstep", {pos = pos}, true)
elseif check_node == 'cracky' then
core.sound_play("default_metal_footstep", {pos = pos}, true)
self.object:remove()
minetest.add_item(pos, {name='spears:spear_' .. spear_type, wear = wear})
core.add_item(pos, {name='spears:spear_' .. spear_type, wear = wear})
return false
elseif check_node == SPEARS_NODE_STICKY then
self.object:set_acceleration(SPEARS_V_ZERO)
self.object:set_velocity(SPEARS_V_ZERO)
minetest.sound_play("default_place_node", {pos = pos}, true)
elseif check_node == 'sticky' then
self.object:set_acceleration({x = 0, y = 0, z = 0})
self.object:set_velocity({x = 0, y = 0, z = 0})
core.sound_play("default_place_node", {pos = pos}, true)
self._stickpos = spearhead_pos
self._wear = wear
end
else -- Get drag
local viscosity = minetest.registered_nodes[node.name].liquid_viscosity
local drag_coeff = tonumber(minetest.settings:get("spears_drag_coeff"))
local viscosity = core.registered_nodes[node.name].liquid_viscosity
local drag_coeff = tonumber(core.settings:get("spears_drag_coeff"))
local drag = math.max(viscosity, drag_coeff)
local acceleration = vector.multiply(velocity, -drag)
acceleration.y = acceleration.y - 10 * ((7 - drag) / 7)
@ -143,21 +142,21 @@ function spears_set_entity(spear_type, base_damage, toughness)
end
function spears_check_node(node_name)
local node = minetest.registered_nodes[node_name]
local cracky_limit = tonumber(minetest.settings:get("spears_node_cracky_limit"))
local node = core.registered_nodes[node_name]
local cracky_limit = tonumber(core.settings:get("spears_node_cracky_limit"))
if node == nil then
return SPEARS_NODE_UNKNOWN
return nil
elseif node.groups.cracky ~= nil and node.groups.cracky < cracky_limit then
return SPEARS_NODE_CRACKY
return 'cracky'
elseif node.walkable and not node.buildable_to then
return SPEARS_NODE_STICKY
return 'sticky'
else
return SPEARS_NODE_THROUGH
return 'through'
end
end
function spears_wear(initial_wear, toughness)
if not minetest.settings:get_bool("creative_mode") then
if not core.settings:get_bool("creative_mode") then
local wear = initial_wear + 65535/toughness
return wear
else

View File

@ -1,14 +1,7 @@
dofile(minetest.get_modpath("spears").."/defaults.lua")
-- Welcome to spears mod
-- local input = io.open(minetest.get_modpath("spears").."/spears.conf", "r")
-- if input then
-- dofile(minetest.get_modpath("spears").."/spears.conf")
-- input:close()
-- input = nil
-- end
dofile(core.get_modpath("spears").."/defaults.lua")
dofile(core.get_modpath("spears").."/functions.lua")
dofile(core.get_modpath("spears").."/tools.lua")
dofile(minetest.get_modpath("spears").."/functions.lua")
dofile(minetest.get_modpath("spears").."/tools.lua")
minetest.log("action", "[MOD] Spears loaded with throwing speed " .. minetest.settings:get("spears_throw_speed") .. " and drag coeff. " .. minetest.settings:get("spears_drag_coeff"))
core.log("action", "[MOD] Spears loaded with throwing speed " .. (core.settings:get("spears_throw_speed")) .. " and drag coeff. " .. (core.settings:get("spears_drag_coeff")))

9
locale/spears.eo.tr Normal file
View File

@ -0,0 +1,9 @@
# textdomain: spears
Stone Spear=Ŝtona ponardego
Iron Spear=Fera ponardego
Steel Spear=Ŝtala ponardego
Copper Spear=Kupra ponardego
Bronze Spear=Bronza ponardego
Obsidian Spear=Obsidiana ponardego
Diamond Spear=Diamanta ponardego
Golden Spear=Ora ponardego

9
locale/spears.fr.tr Normal file
View File

@ -0,0 +1,9 @@
# textdomain: spears
Stone spear=Lance en pierre
Steel spear=Lance en acier
Copper spear=Lance en cuivre
Bronze spear=Lance en bronze
Obsidian spear=Lance en obsidienne
Diamond spear=Lance en diamant
Golden spear=Lance en or

9
locale/spears.it.tr Normal file
View File

@ -0,0 +1,9 @@
# textdomain: spears
Stone Spear=Lancia di Pietra
Iron Spear=Lancia di Ferro
Steel Spear=Lancia di Acciaio
Copper Spear=Lancia di Rame
Bronze Spear=Lancia di Bronzo
Obsidian Spear=Lancia di Ossidiana
Diamond Spear=Lancia di Diamante
Golden Spear=Lancia Dorata

9
locale/template.txt Normal file
View File

@ -0,0 +1,9 @@
# textdomain: spears
Stone Spear=
Iron Spear=
Steel Spear=
Copper Spear=
Bronze Spear=
Obsidian Spear=
Diamond Spear=
Golden Spear=

View File

@ -1,8 +1,7 @@
name = spears
depends = default
optional_depends = pigiron
description = Add spears to Minetest, versatile weapons that can be thrown
description = Add spears to Luanti, versatile weapons that can be thrown
author = Echoes91
title = Spears
min_minetest_version = 5.4

View File

@ -7,6 +7,9 @@ spears_drag_coeff (Drag coefficient for spears in air) float 0.1
# Crackyness limit to stick a spear into a node instead of bouncing
spears_node_cracky_limit (Cracky node level limit to stick a spear) int 3
# When used as melee weapon, the spear will do full damage if this time is spent between punches.
spears_full_punch_interval (When used as melee weapon, the spear will do full damage if this time is spent between punches.) float 1.5
spears_enable_stone_spear (Stone spear enabled) bool true
spears_enable_iron_spear (Iron spear enabled, requires pigiron mod) bool false
spears_enable_steel_spear (Steel spear enabled) bool true

Binary file not shown.

Binary file not shown.

View File

@ -1,26 +1,35 @@
local S = core.get_translator("spears")
function spears_register_spear(spear_type, desc, base_damage, toughness, material)
minetest.register_tool("spears:spear_" .. spear_type, {
description = desc .. " spear",
wield_image = "spears_spear_" .. spear_type .. ".png^[transform4",
core.register_tool("spears:spear_" .. spear_type, {
description = desc,
wield_image = "spears_spear_" .. spear_type .. ".png^[transform4",
inventory_image = "spears_spear_" .. spear_type .. ".png",
wield_scale= {x = 1.5, y = 1.5, z = 1.5},
on_secondary_use = function(itemstack, user, pointed_thing)
spears_throw(itemstack, user, pointed_thing)
if not minetest.settings:get_bool("creative_mode") then
if not core.settings:get_bool("creative_mode") then
itemstack:take_item()
end
return itemstack
end,
on_place = function(itemstack, user, pointed_thing)
if pointed_thing.type == "node" then
local node = minetest.get_node(pointed_thing.under)
if minetest.registered_nodes[node.name] and (node.name == "itemframes:pedestal" or node.name == "itemframes:frame") then
minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, user, itemstack)
return itemstack
end
end
spears_throw(itemstack, user, pointed_thing)
if not minetest.settings:get_bool("creative_mode") then
if not core.settings:get_bool("creative_mode") then
itemstack:take_item()
end
return itemstack
end,
tool_capabilities = {
full_punch_interval = 1.5,
full_punch_interval = core.settings:get("spears_full_punch_interval"),
max_drop_level=1,
groupcaps={
cracky = {times={[3]=2}, uses=toughness, maxlevel=1},
@ -33,9 +42,9 @@ function spears_register_spear(spear_type, desc, base_damage, toughness, materia
local SPEAR_ENTITY = spears_set_entity(spear_type, base_damage, toughness)
minetest.register_entity("spears:spear_" .. spear_type .. "_entity", SPEAR_ENTITY)
core.register_entity("spears:spear_" .. spear_type .. "_entity", SPEAR_ENTITY)
minetest.register_craft({
core.register_craft({
output = 'spears:spear_' .. spear_type,
recipe = {
{"", "", material},
@ -44,7 +53,7 @@ function spears_register_spear(spear_type, desc, base_damage, toughness, materia
}
})
minetest.register_craft({
core.register_craft({
output = 'spears:spear_' .. spear_type,
recipe = {
{material, "", ""},
@ -54,44 +63,43 @@ function spears_register_spear(spear_type, desc, base_damage, toughness, materia
})
end
if minetest.settings:get_bool('spears_enable_stone_spear') then
spears_register_spear('stone', 'Stone', 4, 20, 'group:stone')
minetest.log("info", "[MOD] Stone spear enabled")
if core.settings:get_bool('spears_enable_stone_spear') then
spears_register_spear('stone', S('Stone Spear'), 4, 20, 'group:stone')
end
if minetest.get_modpath("pigiron") then
if minetest.settings:get_bool('spears_enable_iron_spear') then
spears_register_spear('iron', 'Iron', 5.5, 30, 'pigiron:iron_ingot')
if core.get_modpath("pigiron") then
if core.settings:get_bool('spears_enable_iron_spear') then
spears_register_spear('iron', S('Iron Spear'), 5.5, 30, 'pigiron:iron_ingot')
end
if minetest.settings:get_bool('spears_enable_steel_spear') then
spears_register_spear('steel', 'Steel', 6, 35, 'default:steel_ingot')
if core.settings:get_bool('spears_enable_steel_spear') then
spears_register_spear('steel', S('Steel Spear'), 6, 35, 'default:steel_ingot')
end
if minetest.settings:get_bool('spears_enable_copper_spear') then
spears_register_spear('copper', 'Copper', 4.8, 30, 'default:copper_ingot')
if core.settings:get_bool('spears_enable_copper_spear') then
spears_register_spear('copper', S('Copper Spear'), 4.8, 30, 'default:copper_ingot')
end
if minetest.settings:get_bool('spears_enable_bronze_spear') then
spears_register_spear('bronze', 'Bronze', 5.5, 35, 'default:bronze_ingot')
if core.settings:get_bool('spears_enable_bronze_spear') then
spears_register_spear('bronze', S('Bronze Spear'), 5.5, 35, 'default:bronze_ingot')
end
else
if minetest.settings:get_bool('spears_enable_steel_spear') then
spears_register_spear('steel', 'Steel', 6, 30, 'default:steel_ingot')
if core.settings:get_bool('spears_enable_steel_spear') then
spears_register_spear('steel', S('Steel Spear'), 6, 30, 'default:steel_ingot')
end
if minetest.settings:get_bool('spears_enable_copper_spear') then
spears_register_spear('copper', 'Copper', 5, 30, 'default:copper_ingot')
if core.settings:get_bool('spears_enable_copper_spear') then
spears_register_spear('copper', S('Copper Spear'), 5, 30, 'default:copper_ingot')
end
if minetest.settings:get_bool('spears_enable_bronze_spear') then
spears_register_spear('bronze', 'Bronze', 6, 35, 'default:bronze_ingot')
if core.settings:get_bool('spears_enable_bronze_spear') then
spears_register_spear('bronze', S('Bronze Spear'), 6, 35, 'default:bronze_ingot')
end
end
if minetest.settings:get_bool('spears_enable_obsidian_spear') then
spears_register_spear('obsidian', 'Obsidian', 8, 30, 'default:obsidian')
if core.settings:get_bool('spears_enable_obsidian_spear') then
spears_register_spear('obsidian', S('Obsidian Spear'), 8, 30, 'default:obsidian')
end
if minetest.settings:get_bool('spears_enable_diamond_spear') then
spears_register_spear('diamond', 'Diamond', 8, 40, 'default:diamond')
if core.settings:get_bool('spears_enable_diamond_spear') then
spears_register_spear('diamond', S('Diamond Spear'), 8, 40, 'default:diamond')
end
if minetest.settings:get_bool('spears_enable_gold_spear') then
spears_register_spear('gold', 'Golden', 5, 40, 'default:gold_ingot')
if core.settings:get_bool('spears_enable_gold_spear') then
spears_register_spear('gold', S('Golden Spear'), 5, 40, 'default:gold_ingot')
end