Initial commit
449
games/devtest/mods/basetools/init.lua
Normal file
@@ -0,0 +1,449 @@
|
||||
--
|
||||
-- Tool definitions
|
||||
--
|
||||
|
||||
--[[ TOOLS SUMMARY:
|
||||
|
||||
Tool types:
|
||||
|
||||
* Hand: basic tool/weapon (special capabilities in creative mode)
|
||||
* Pickaxe: dig cracky
|
||||
* Axe: dig choppy
|
||||
* Shovel: dig crumbly
|
||||
* Shears: dig snappy
|
||||
* Sword: deal damage
|
||||
* Dagger: deal damage, but faster
|
||||
|
||||
Tool materials:
|
||||
|
||||
* Wood: dig nodes of rating 3
|
||||
* Stone: dig nodes of rating 3 or 2
|
||||
* Steel: dig nodes of rating 3, 2 or 1
|
||||
* Mese: dig "everything" instantly
|
||||
* n-Uses: can be used n times before breaking
|
||||
]]
|
||||
|
||||
-- The hand
|
||||
if minetest.settings:get_bool("creative_mode") then
|
||||
local digtime = 42
|
||||
local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256}
|
||||
|
||||
minetest.register_item(":", {
|
||||
type = "none",
|
||||
wield_image = "wieldhand.png",
|
||||
wield_scale = {x = 1, y = 1, z = 2.5},
|
||||
range = 10,
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.5,
|
||||
max_drop_level = 3,
|
||||
groupcaps = {
|
||||
crumbly = caps,
|
||||
cracky = caps,
|
||||
snappy = caps,
|
||||
choppy = caps,
|
||||
oddly_breakable_by_hand = caps,
|
||||
-- dig_immediate group doesn't use value 1. Value 3 is instant dig
|
||||
dig_immediate =
|
||||
{times = {[2] = digtime, [3] = 0}, uses = 0, maxlevel = 256},
|
||||
},
|
||||
damage_groups = {fleshy = 10},
|
||||
}
|
||||
})
|
||||
else
|
||||
minetest.register_item(":", {
|
||||
type = "none",
|
||||
wield_image = "wieldhand.png",
|
||||
wield_scale = {x = 1, y = 1, z = 2.5},
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.9,
|
||||
max_drop_level = 0,
|
||||
groupcaps = {
|
||||
crumbly = {times = {[2] = 3.00, [3] = 0.70}, uses = 0, maxlevel = 1},
|
||||
snappy = {times = {[3] = 0.40}, uses = 0, maxlevel = 1},
|
||||
oddly_breakable_by_hand =
|
||||
{times = {[1] = 3.50, [2] = 2.00, [3] = 0.70}, uses = 0}
|
||||
},
|
||||
damage_groups = {fleshy = 1},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
-- Mese Pickaxe: special tool that digs "everything" instantly
|
||||
minetest.register_tool("basetools:pick_mese", {
|
||||
description = "Mese Pickaxe".."\n"..
|
||||
"Digs diggable nodes instantly",
|
||||
inventory_image = "basetools_mesepick.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=3,
|
||||
groupcaps={
|
||||
cracky={times={[1]=0.0, [2]=0.0, [3]=0.0}, maxlevel=255},
|
||||
crumbly={times={[1]=0.0, [2]=0.0, [3]=0.0}, maxlevel=255},
|
||||
snappy={times={[1]=0.0, [2]=0.0, [3]=0.0}, maxlevel=255},
|
||||
choppy={times={[1]=0.0, [2]=0.0, [3]=0.0}, maxlevel=255},
|
||||
dig_immediate={times={[1]=0.0, [2]=0.0, [3]=0.0}, maxlevel=255},
|
||||
},
|
||||
damage_groups = {fleshy=100},
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
--
|
||||
-- Pickaxes: Dig cracky
|
||||
--
|
||||
|
||||
minetest.register_tool("basetools:pick_wood", {
|
||||
description = "Wooden Pickaxe".."\n"..
|
||||
"Digs cracky=3",
|
||||
inventory_image = "basetools_woodpick.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
cracky={times={[3]=2.00}, uses=30, maxlevel=0}
|
||||
},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("basetools:pick_stone", {
|
||||
description = "Stone Pickaxe".."\n"..
|
||||
"Digs cracky=2..3",
|
||||
inventory_image = "basetools_stonepick.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
cracky={times={[2]=1.20, [3]=0.80}, uses=60, maxlevel=0}
|
||||
},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("basetools:pick_steel", {
|
||||
description = "Steel Pickaxe".."\n"..
|
||||
"Digs cracky=1..3",
|
||||
inventory_image = "basetools_steelpick.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
cracky={times={[1]=4.00, [2]=1.60, [3]=1.00}, uses=90, maxlevel=0}
|
||||
},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("basetools:pick_steel_l1", {
|
||||
description = "Steel Pickaxe Level 1".."\n"..
|
||||
"Digs cracky=1..3".."\n"..
|
||||
"maxlevel=1",
|
||||
inventory_image = "basetools_steelpick_l1.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
cracky={times={[1]=4.00, [2]=1.60, [3]=1.00}, uses=90, maxlevel=1}
|
||||
},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("basetools:pick_steel_l2", {
|
||||
description = "Steel Pickaxe Level 2".."\n"..
|
||||
"Digs cracky=1..3".."\n"..
|
||||
"maxlevel=2",
|
||||
inventory_image = "basetools_steelpick_l2.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
cracky={times={[1]=4.00, [2]=1.60, [3]=1.00}, uses=90, maxlevel=2}
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
--
|
||||
-- Shovels (dig crumbly)
|
||||
--
|
||||
|
||||
minetest.register_tool("basetools:shovel_wood", {
|
||||
description = "Wooden Shovel".."\n"..
|
||||
"Digs crumbly=3",
|
||||
inventory_image = "basetools_woodshovel.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
crumbly={times={[3]=0.50}, uses=30, maxlevel=0}
|
||||
},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("basetools:shovel_stone", {
|
||||
description = "Stone Shovel".."\n"..
|
||||
"Digs crumbly=2..3",
|
||||
inventory_image = "basetools_stoneshovel.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
crumbly={times={[2]=0.50, [3]=0.30}, uses=60, maxlevel=0}
|
||||
},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("basetools:shovel_steel", {
|
||||
description = "Steel Shovel".."\n"..
|
||||
"Digs crumbly=1..3",
|
||||
inventory_image = "basetools_steelshovel.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
crumbly={times={[1]=1.00, [2]=0.70, [3]=0.60}, uses=90, maxlevel=0}
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
--
|
||||
-- Axes (dig choppy)
|
||||
--
|
||||
|
||||
minetest.register_tool("basetools:axe_wood", {
|
||||
description = "Wooden Axe".."\n"..
|
||||
"Digs choppy=3",
|
||||
inventory_image = "basetools_woodaxe.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
choppy={times={[3]=0.80}, uses=30, maxlevel=0},
|
||||
},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("basetools:axe_stone", {
|
||||
description = "Stone Axe".."\n"..
|
||||
"Digs choppy=2..3",
|
||||
inventory_image = "basetools_stoneaxe.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
choppy={times={[2]=1.00, [3]=0.60}, uses=60, maxlevel=0},
|
||||
},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("basetools:axe_steel", {
|
||||
description = "Steel Axe".."\n"..
|
||||
"Digs choppy=1..3",
|
||||
inventory_image = "basetools_steelaxe.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
choppy={times={[1]=2.00, [2]=0.80, [3]=0.40}, uses=90, maxlevel=0},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
--
|
||||
-- Shears (dig snappy)
|
||||
--
|
||||
|
||||
minetest.register_tool("basetools:shears_wood", {
|
||||
description = "Wooden Shears".."\n"..
|
||||
"Digs snappy=3",
|
||||
inventory_image = "basetools_woodshears.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
snappy={times={[3]=1.00}, uses=30, maxlevel=0},
|
||||
},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("basetools:shears_stone", {
|
||||
description = "Stone Shears".."\n"..
|
||||
"Digs snappy=2..3",
|
||||
inventory_image = "basetools_stoneshears.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
snappy={times={[2]=1.00, [3]=0.50}, uses=60, maxlevel=0},
|
||||
},
|
||||
},
|
||||
})
|
||||
minetest.register_tool("basetools:shears_steel", {
|
||||
description = "Steel Shears".."\n"..
|
||||
"Digs snappy=1..3",
|
||||
inventory_image = "basetools_steelshears.png",
|
||||
tool_capabilities = {
|
||||
max_drop_level=1,
|
||||
groupcaps={
|
||||
snappy={times={[1]=1.00, [2]=0.50, [3]=0.25}, uses=90, maxlevel=0},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
--
|
||||
-- Swords (deal damage)
|
||||
--
|
||||
|
||||
minetest.register_tool("basetools:sword_wood", {
|
||||
description = "Wooden Sword".."\n"..
|
||||
"Damage: fleshy=2",
|
||||
inventory_image = "basetools_woodsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy=2},
|
||||
}
|
||||
})
|
||||
minetest.register_tool("basetools:sword_stone", {
|
||||
description = "Stone Sword".."\n"..
|
||||
"Damage: fleshy=5",
|
||||
inventory_image = "basetools_stonesword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=0,
|
||||
damage_groups = {fleshy=5},
|
||||
}
|
||||
})
|
||||
minetest.register_tool("basetools:sword_steel", {
|
||||
description = "Steel Sword".."\n"..
|
||||
"Damage: fleshy=10",
|
||||
inventory_image = "basetools_steelsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=1,
|
||||
damage_groups = {fleshy=10},
|
||||
}
|
||||
})
|
||||
minetest.register_tool("basetools:sword_titanium", {
|
||||
description = "Titanium Sword".."\n"..
|
||||
"Damage: fleshy=100",
|
||||
inventory_image = "basetools_titaniumsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=1,
|
||||
damage_groups = {fleshy=100},
|
||||
}
|
||||
})
|
||||
minetest.register_tool("basetools:sword_blood", {
|
||||
description = "Blood Sword".."\n"..
|
||||
"Damage: fleshy=1000",
|
||||
inventory_image = "basetools_bloodsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=1,
|
||||
damage_groups = {fleshy=1000},
|
||||
}
|
||||
})
|
||||
|
||||
-- Max. damage sword
|
||||
minetest.register_tool("basetools:sword_mese", {
|
||||
description = "Mese Sword".."\n"..
|
||||
"Damage: fleshy=32767, fiery=32767, icy=32767".."\n"..
|
||||
"Full Punch Interval: 0.0s",
|
||||
inventory_image = "basetools_mesesword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.0,
|
||||
max_drop_level=1,
|
||||
damage_groups = {fleshy=32767, fiery=32767, icy=32767},
|
||||
}
|
||||
})
|
||||
|
||||
-- Fire/Ice sword: Deal damage to non-fleshy damage groups
|
||||
minetest.register_tool("basetools:sword_fire", {
|
||||
description = "Fire Sword".."\n"..
|
||||
"Damage: icy=10",
|
||||
inventory_image = "basetools_firesword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=0,
|
||||
damage_groups = {icy=10},
|
||||
}
|
||||
})
|
||||
minetest.register_tool("basetools:sword_ice", {
|
||||
description = "Ice Sword".."\n"..
|
||||
"Damage: fiery=10",
|
||||
inventory_image = "basetools_icesword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=0,
|
||||
damage_groups = {fiery=10},
|
||||
}
|
||||
})
|
||||
minetest.register_tool("basetools:sword_elemental", {
|
||||
description = "Elemental Sword".."\n"..
|
||||
"Damage: fiery=10, icy=10",
|
||||
inventory_image = "basetools_elementalsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
max_drop_level=0,
|
||||
damage_groups = {fiery=10, icy=10},
|
||||
}
|
||||
})
|
||||
|
||||
-- Healing weapons: heal HP
|
||||
minetest.register_tool("basetools:dagger_heal", {
|
||||
description = "Healing Dagger".."\n"..
|
||||
"Heal: fleshy=1".."\n"..
|
||||
"Full Punch Interval: 0.5s",
|
||||
inventory_image = "basetools_healdagger.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.5,
|
||||
damage_groups = {fleshy=-1},
|
||||
}
|
||||
})
|
||||
minetest.register_tool("basetools:sword_heal", {
|
||||
description = "Healing Sword".."\n"..
|
||||
"Heal: fleshy=10",
|
||||
inventory_image = "basetools_healsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy=-10},
|
||||
}
|
||||
})
|
||||
minetest.register_tool("basetools:sword_heal_super", {
|
||||
description = "Super Healing Sword".."\n"..
|
||||
"Heal: fleshy=32768, fiery=32768, icy=32768",
|
||||
inventory_image = "basetools_superhealsword.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy=-32768, fiery=-32768, icy=-32768},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
--
|
||||
-- Dagger: Low damage, fast punch interval
|
||||
--
|
||||
minetest.register_tool("basetools:dagger_wood", {
|
||||
description = "Wooden Dagger".."\n"..
|
||||
"Damage: fleshy=1".."\n"..
|
||||
"Full Punch Interval: 0.5s",
|
||||
inventory_image = "basetools_wooddagger.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.5,
|
||||
max_drop_level=0,
|
||||
damage_groups = {fleshy=1},
|
||||
}
|
||||
})
|
||||
minetest.register_tool("basetools:dagger_steel", {
|
||||
description = "Steel Dagger".."\n"..
|
||||
"Damage: fleshy=2".."\n"..
|
||||
"Full Punch Interval: 0.5s",
|
||||
inventory_image = "basetools_steeldagger.png",
|
||||
tool_capabilities = {
|
||||
full_punch_interval = 0.5,
|
||||
max_drop_level=0,
|
||||
damage_groups = {fleshy=2},
|
||||
}
|
||||
})
|
||||
|
||||
-- Test tool uses and punch_attack_uses
|
||||
local uses = { 1, 2, 3, 5, 10, 50, 100, 1000, 10000, 65535 }
|
||||
for i=1, #uses do
|
||||
local u = uses[i]
|
||||
local color = string.format("#FF00%02X", math.floor(((i-1)/#uses) * 255))
|
||||
minetest.register_tool("basetools:pick_uses_"..string.format("%05d", u), {
|
||||
description = u.."-Uses Pickaxe".."\n"..
|
||||
"Digs cracky=3",
|
||||
inventory_image = "basetools_usespick.png^[colorize:"..color..":127",
|
||||
tool_capabilities = {
|
||||
max_drop_level=0,
|
||||
groupcaps={
|
||||
cracky={times={[3]=0.1, [2]=0.2, [1]=0.3}, uses=u, maxlevel=0}
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_tool("basetools:sword_uses_"..string.format("%05d", u), {
|
||||
description = u.."-Uses Sword".."\n"..
|
||||
"Damage: fleshy=1",
|
||||
inventory_image = "basetools_usessword.png^[colorize:"..color..":127",
|
||||
tool_capabilities = {
|
||||
damage_groups = {fleshy=1},
|
||||
punch_attack_uses = u,
|
||||
},
|
||||
})
|
||||
end
|
||||
2
games/devtest/mods/basetools/mod.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
name = basetools
|
||||
description = Contains basic digging tools
|
||||
BIN
games/devtest/mods/basetools/textures/basetools_bloodsword.png
Normal file
|
After Width: | Height: | Size: 165 B |
|
After Width: | Height: | Size: 177 B |
BIN
games/devtest/mods/basetools/textures/basetools_firesword.png
Normal file
|
After Width: | Height: | Size: 166 B |
BIN
games/devtest/mods/basetools/textures/basetools_healdagger.png
Normal file
|
After Width: | Height: | Size: 162 B |
BIN
games/devtest/mods/basetools/textures/basetools_healsword.png
Normal file
|
After Width: | Height: | Size: 170 B |
BIN
games/devtest/mods/basetools/textures/basetools_icesword.png
Normal file
|
After Width: | Height: | Size: 170 B |
BIN
games/devtest/mods/basetools/textures/basetools_mesepick.png
Normal file
|
After Width: | Height: | Size: 156 B |
BIN
games/devtest/mods/basetools/textures/basetools_mesesword.png
Normal file
|
After Width: | Height: | Size: 163 B |
BIN
games/devtest/mods/basetools/textures/basetools_steelaxe.png
Normal file
|
After Width: | Height: | Size: 131 B |
BIN
games/devtest/mods/basetools/textures/basetools_steeldagger.png
Normal file
|
After Width: | Height: | Size: 154 B |
BIN
games/devtest/mods/basetools/textures/basetools_steelpick.png
Normal file
|
After Width: | Height: | Size: 159 B |
BIN
games/devtest/mods/basetools/textures/basetools_steelpick_l1.png
Normal file
|
After Width: | Height: | Size: 190 B |
BIN
games/devtest/mods/basetools/textures/basetools_steelpick_l2.png
Normal file
|
After Width: | Height: | Size: 177 B |
BIN
games/devtest/mods/basetools/textures/basetools_steelshears.png
Normal file
|
After Width: | Height: | Size: 208 B |
BIN
games/devtest/mods/basetools/textures/basetools_steelshovel.png
Normal file
|
After Width: | Height: | Size: 140 B |
BIN
games/devtest/mods/basetools/textures/basetools_steelsword.png
Normal file
|
After Width: | Height: | Size: 163 B |
BIN
games/devtest/mods/basetools/textures/basetools_stoneaxe.png
Normal file
|
After Width: | Height: | Size: 130 B |
BIN
games/devtest/mods/basetools/textures/basetools_stonepick.png
Normal file
|
After Width: | Height: | Size: 155 B |
BIN
games/devtest/mods/basetools/textures/basetools_stoneshears.png
Normal file
|
After Width: | Height: | Size: 224 B |
BIN
games/devtest/mods/basetools/textures/basetools_stoneshovel.png
Normal file
|
After Width: | Height: | Size: 134 B |
BIN
games/devtest/mods/basetools/textures/basetools_stonesword.png
Normal file
|
After Width: | Height: | Size: 159 B |
|
After Width: | Height: | Size: 192 B |
|
After Width: | Height: | Size: 160 B |
BIN
games/devtest/mods/basetools/textures/basetools_usespick.png
Normal file
|
After Width: | Height: | Size: 161 B |
BIN
games/devtest/mods/basetools/textures/basetools_usessword.png
Normal file
|
After Width: | Height: | Size: 133 B |
BIN
games/devtest/mods/basetools/textures/basetools_woodaxe.png
Normal file
|
After Width: | Height: | Size: 121 B |
BIN
games/devtest/mods/basetools/textures/basetools_wooddagger.png
Normal file
|
After Width: | Height: | Size: 139 B |
BIN
games/devtest/mods/basetools/textures/basetools_woodpick.png
Normal file
|
After Width: | Height: | Size: 149 B |
BIN
games/devtest/mods/basetools/textures/basetools_woodshears.png
Normal file
|
After Width: | Height: | Size: 212 B |
BIN
games/devtest/mods/basetools/textures/basetools_woodshovel.png
Normal file
|
After Width: | Height: | Size: 133 B |
BIN
games/devtest/mods/basetools/textures/basetools_woodsword.png
Normal file
|
After Width: | Height: | Size: 139 B |