123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350 |
- --
- -- 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:
- * Dirt: dig nodes of rating 3, one use only
- * 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
- ]]
- -- 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
- --
- -- This should break after only 1 use
- minetest.register_tool("basetools:pick_dirt", {
- description = "Dirt Pickaxe".."\n"..
- "Digs cracky=3".."\n"..
- "1 use only",
- inventory_image = "basetools_dirtpick.png",
- tool_capabilities = {
- max_drop_level=0,
- groupcaps={
- cracky={times={[3]=2.00}, uses=1, maxlevel=0}
- },
- },
- })
- 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=4",
- inventory_image = "basetools_stonesword.png",
- tool_capabilities = {
- full_punch_interval = 1.0,
- max_drop_level=0,
- damage_groups = {fleshy=4},
- }
- })
- minetest.register_tool("basetools:sword_steel", {
- description = "Steel Sword".."\n"..
- "Damage: fleshy=6",
- inventory_image = "basetools_steelsword.png",
- tool_capabilities = {
- full_punch_interval = 1.0,
- max_drop_level=1,
- damage_groups = {fleshy=6},
- }
- })
- -- Fire/Ice sword: Deal damage to non-fleshy damage groups
- minetest.register_tool("basetools:sword_fire", {
- description = "Fire Sword".."\n"..
- "Damage: icy=6",
- inventory_image = "basetools_firesword.png",
- tool_capabilities = {
- full_punch_interval = 1.0,
- max_drop_level=0,
- damage_groups = {icy=6},
- }
- })
- minetest.register_tool("basetools:sword_ice", {
- description = "Ice Sword".."\n"..
- "Damage: fiery=6",
- inventory_image = "basetools_icesword.png",
- tool_capabilities = {
- full_punch_interval = 1.0,
- max_drop_level=0,
- damage_groups = {fiery=6},
- }
- })
- --
- -- Dagger: Low damage, fast punch interval
- --
- 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},
- }
- })
|