Overhaul Part 1

Part 1 of the overhaul focused on a dependency on the new wc_crystals
This commit is contained in:
wintersknight94 2023-03-12 04:49:58 -05:00 committed by GitHub
parent bde73953d8
commit b436fc97f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 465 additions and 303 deletions

View File

@ -1,5 +1,5 @@
# NodeCore Adamant: Revised
A mod for NodeCore that adds Adamant, a new metal.
A mod for NodeCore that adds Adamant, a new mineral.
--------------------------------------------------
-----------------NodeCore Adamant-----------------
----------------A Mod For NodeCore----------------
@ -8,7 +8,7 @@ A mod for NodeCore that adds Adamant, a new metal.
-----!ADAMANT!-----
The Mythical Metal of Legend!
The Mythical Mineral of Legend!
Difficult to aquire, tedious to work, and worth every torch, broken bone and lost mattock it took to get it.
A Must-Have for Anyone Who Wishes to Live Deep Within the Earth!

143
adamantine.lua Normal file
View File

@ -0,0 +1,143 @@
local _ = {name = "air", prob = 0}
local A = {name = "air", prob = 255, force_place = true}
local D = {name = "wc_adamant:stone", prob = 255, force_place = true}
local schematic_AdamantineStalactite = {
size = {x = 3, y = 23, z = 3},
data = { -- note that data is upside down
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, D, _,
_, D, _,
_, D, _,
_, D, _,
D, D, D,
D, D, D,
D, D, D,
_, D, _,
_, _, _,
_, _, _,
_, D, _, -- ypos 0, prob 85% (218/255)
_, D, _, -- ypos 1, prob 85% (218/255)
_, D, _, -- ypos 2, prob 85% (218/255)
_, D, _, -- ypos 3, prob 85% (218/255)
_, D, _, -- ypos 4, prob 85% (218/255)
_, D, _, -- ypos 5, prob 85% (218/255)
_, D, _, -- ypos 6, prob 85% (218/255)
_, D, _, -- ypos 7, prob 85% (218/255)
_, D, _, -- ypos 8, prob 85% (218/255)
_, D, D, -- ypos 9, prob 50% (128/256) to make half of stalactites asymmetric
_, D, D, -- ypos 10, prob 50% (128/256) to make half of stalactites asymmetric
_, D, D, -- ypos 11, prob 50% (128/256) to make half of stalactites asymmetric
_, D, D, -- ypos 12, prob 50% (128/256) to make half of stalactites asymmetric
D, D, D, -- ypos 13, prob 75% (192/256)
D, D, D, -- ypos 14, prob 75% (192/256)
D, D, D, -- ypos 15, prob 100%
D, D, D, -- ypos 16, prob 100%
D, D, D, -- ypos 17, prob 100%
D, D, D, -- ypos 18, prob 100%
D, D, D, -- ypos 19, prob 75% (192/256)
D, D, D, -- ypos 20, prob 85% (218/255)
_, D, D, -- ypos 21, prob 50% (128/256) to make half of stalactites asymmetric
_, D, _, -- ypos 22, prob 100%
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, _, _,
_, D, _,
_, D, _,
_, D, _,
_, D, _,
_, D, _,
D, D, D,
D, D, D,
D, D, D,
_, D, _,
_, D, _,
_, _, _,
},
-- Y-slice probabilities do not function correctly for ceiling schematic
-- decorations because they are inverted, so ypos numbers have been inverted
-- to match, and a larger offset in place_offset_y should be used (e.g. -3).
yslice_prob = {
{ypos = 21, prob = 140},
{ypos = 20, prob = 225},
{ypos = 19, prob = 200},
{ypos = 14, prob = 200},
{ypos = 13, prob = 200},
{ypos = 12, prob = 200},
{ypos = 11, prob = 140},
{ypos = 10, prob = 140},
{ypos = 9, prob = 140},
{ypos = 8, prob = 225},
{ypos = 7, prob = 225},
{ypos = 6, prob = 225},
{ypos = 5, prob = 225},
{ypos = 4, prob = 225},
{ypos = 3, prob = 225},
{ypos = 2, prob = 225},
{ypos = 1, prob = 225},
{ypos = 0, prob = 225}
}
}
-- A stalagmite is an upsidedown stalactite, so
-- use the GreaterStalactite to create a ToweringStalagmite schematic
local schematic_AdamantineSpire = {
size = schematic_AdamantineStalactite.size,
data = {},
yslice_prob = {}
}
local array_length = #schematic_AdamantineStalactite.data + 1
for i, node in ipairs(schematic_AdamantineStalactite.data) do
schematic_AdamantineSpire.data[array_length - i] = node
end
y_size = schematic_AdamantineStalactite.size.y
for i, node in ipairs(schematic_AdamantineStalactite.yslice_prob) do
schematic_AdamantineSpire.yslice_prob[i] = {
-- we can safely lower the prob. to gain more variance because floor based schematics
-- don't have the bug where missing lines moves them away from the surface
prob = schematic_AdamantineStalactite.yslice_prob[i].prob - 20,
ypos = y_size - 1 - schematic_AdamantineStalactite.yslice_prob[i].ypos
}
end
minetest.register_decoration({
name = "Towering Adamantine Stalagmite",
deco_type = "schematic",
place_on = "group:stone",
sidelen = 80,
fill_ratio = 0.00001,
-- biomes = {"deep"},
y_max = -800,
y_min = -31000,
schematic = schematic_AdamantineSpire,
replacements = {},
flags = "place_center_x,place_center_z,force_placement,all_floors",
place_offset_y = -5
})

39
admin.lua Normal file
View File

@ -0,0 +1,39 @@
-- LUALOCALS < ---------------------------------------------------------
local minetest, nodecore
= minetest, nodecore
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
-- ================================================================== --
local adzedef
adzedef = {
description = "Adamin Adze",
inventory_image = "(nc_lode_tempered.png^[mask:nc_lode_adze.png)^" .. modname .. "_tip_adze.png",
groups = {
flammable = 1
},
tool_capabilities = nodecore.toolcaps({
uses = 100.0,
snappy = 12,
choppy = 12,
crumbly = 12,
cracky = 12,
}),
sounds = nodecore.sounds("nc_optics_glassy"),
tool_wears_to = "nc_woodwork:adze"
}
minetest.register_tool(modname .. ":adze_admin", adzedef)
-- ================================================================== --
nodecore.register_aism({
label = "adaminze vanish",
interval = 1,
chance = 1,
itemnames = {modname.. ":adze_admin"},
action = function(stack, data)
if not data.inv then -- Check if in inventory
stack:set_name("")
nodecore.sound_play("nc_api_craft_hiss", {gain = 0.2, pos = data.pos, fade = 0.5})
return stack
end
end
})

View File

@ -1,14 +1,25 @@
-- LUALOCALS < ---------------------------------------------------------
local include, nodecore
= include, nodecore
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
-- ================================================================== --
include("shard")
include("nodes")
include("smelt")
include("tools")
include("infused")
-- LUALOCALS < ---------------------------------------------------------
local include, nodecore
= include, nodecore
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
-- ================================================================== --
include("shard")
include("nodes")
--<>--
include("smelt")
include("tools")
--<>--
include("adamantine")
--<>--
include("admin")

View File

@ -1,5 +1,9 @@
depends = nc_api_all, nc_items, nc_terrain, nc_fire, nc_lode, nc_igneous, nc_lux, nc_woodwork
depends = nc_api_all, nc_items, nc_terrain, nc_fire, nc_lode, nc_igneous, nc_lux, nc_woodwork, wc_crystals
author = Winter94
description = Adds Adamant, a new metal ore, deep underground/
description = Adds Adamant, a new metal ore, deep underground.
name = wc_adamant
title = NodeCore Adamant: Revised

117
nodes.lua
View File

@ -1,59 +1,58 @@
-- LUALOCALS < ---------------------------------------------------------
local ItemStack, error, minetest, nodecore, pairs, type
= ItemStack, error, minetest, nodecore, pairs, type
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
-- ================================================================== --
minetest.register_node(modname .. ":cobble", {
description = "Shiny Cobble",
tiles = {modname .. ".png^nc_terrain_cobble.png"},
color = "turquoise",
groups = {
cracky = 3,
lux_absorb = 12,
metallic = 1,
adamant_cobble = 1
},
sounds = nodecore.sounds("nc_terrain_stony"),
alternate_loose = {
repack_level = 2,
groups = {
cracky = 0,
crumbly = 2,
falling_repose = 3,
metallic = 1,
adamant_cobble = 1
},
sounds = nodecore.sounds("nc_terrain_chompy")
}
})
-- ================================================================== --
minetest.register_node(modname .. ":block", {
description = "Adamant Crystal",
tiles = {modname .. ".png"},
groups = {
cracky = 4,
lux_absorb = 12,
metallic = 1,
adamant_crystal = 1
},
sounds = nodecore.sounds("nc_optics_glassy")
})
minetest.register_node(modname .. ":block_infused", {
description = "Lambent Adamant Crystal",
tiles = {modname .. ".png^(nc_lux_gravel.png^[opacity:25)"},
groups = {
cracky = 4,
metallic = 1,
lux_emit = 1
},
light_source = 1,
sounds = nodecore.sounds("nc_optics_glassy")
})
-- ================================================================== --
-- LUALOCALS < ---------------------------------------------------------
local ItemStack, error, minetest, nodecore, pairs, type
= ItemStack, error, minetest, nodecore, pairs, type
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
------------------------------------------------------------------------
local crystal = "wc_crystals.png^[colorize:#40e0d0:120"
-- ================================================================== --
minetest.register_node(modname .. ":stone", {
description = "Raw Adamantine",
tiles = {"nc_terrain_stone.png^[colorize:#40e0d0:60"}, --TURQUOISE
-- drawtype = "glasslike",
-- use_texture_alpha = "blend",
-- paramtype = "light",
groups = {
cracky = 5,
lux_absorb = 24,
adamant = 1,
adamant_stone = 1
},
sounds = nodecore.sounds("nc_optics_glassy"),
drop_in_place = modname.. ":cobble",
})
--<>----------------------------------------------------------------<>--
minetest.register_node(modname .. ":cobble", {
description = "Adamantine Cobble",
tiles = {crystal.. "^(nc_terrain_cobble.png^[colorize:#40e0d0:60)"},
drawtype = "allfaces_optional",
use_texture_alpha = "blend",
paramtype = "light",
groups = {
cracky = 4,
lux_absorb = 24,
adamant = 1,
adamant_cobble = 1
},
sounds = nodecore.sounds("nc_terrain_stony"),
alternate_loose = {
repack_level = 2,
groups = {
cracky = 0,
crumbly = 4,
falling_repose = 3,
-- adamant = 1,
-- adamant_cobble = 1
},
sounds = nodecore.sounds("nc_terrain_chompy")
}
})
--<>----------------------------------------------------------------<>--
-- ================================================================== --
minetest.register_alias(modname.. ":block", "wc_crystals:adamant")
minetest.register_alias(modname.. ":block_infused", "wc_crystals:luxite")
minetest.register_alias(modname.. ":shard", "wc_crystals:adamant_crystal")
minetest.register_alias(modname.. ":shard_infused", "wc_crystals:luxite_crystal")
-- ================================================================== --

View File

@ -1,56 +1,28 @@
-- LUALOCALS < ---------------------------------------------------------
local ItemStack, minetest, nodecore
= ItemStack, minetest, nodecore
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
-- ================================================================== --
minetest.register_craftitem(modname..":ore", {
description = "Shiny Rock",
inventory_image = "nc_stonework_stone.png",
wield_image = "nc_stonework_stone.png",
wield_scale = {x = 1.25, y = 1.25, z = 1.75},
sounds = nodecore.sounds("nc_terrain_stony"),
color = "turquoise",
groups = {
cracky = 1,
adamanty = 1,
metallic = 1,
shiny_rock = 1
}
})
minetest.register_craftitem(modname..":shard", {
description = "Adamant Shard",
inventory_image = modname .. "_shard.png",
wield_image = modname .. "_shard.png",
wield_scale = {x = 1.25, y = 1.25, z = 1.75},
sounds = nodecore.sounds("nc_optics_glassy"),
groups = {
cracky = 1,
metallic = 1,
shiny_rock = 1
}
})
-- ================================================================== --
minetest.override_item("nc_lode:ore", {drop = {items={{items={modname..":ore"},rarity=10}}}})
-- ================================================================== --
minetest.register_craftitem(modname..":shard_infused", {
description = "Infused Adamant Shard",
inventory_image = modname .. "_shard.png^(nc_lux_gravel.png^[opacity:75)",
wield_image = modname .. "_shard.png^(nc_lux_gravel.png^[opacity:75)",
wield_scale = {x = 1.25, y = 1.25, z = 1.75},
sounds = nodecore.sounds("nc_optics_glassy"),
groups = {
cracky = 1,
adamanty = 1,
metallic = 1,
lux_emit = 1,
shiny_rock = 1
},
light_source = 1
})
-- LUALOCALS < ---------------------------------------------------------
local ItemStack, minetest, nodecore
= ItemStack, minetest, nodecore
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
local shiny = "nc_stonework_stone.png^[colorize:#40e0d0:60" --TURQUOISE
--local shiny = modname.. "_shard.png"
-- ================================================================== --
minetest.register_alias(modname.. ":shard", "wc_crystals:adamant_crystal")
minetest.register_alias(modname.. ":shard_infused", "wc_crystals:luxite_crystal")
-- ================================================================== --
minetest.register_craftitem(modname..":ore", {
description = "Adamantine Chip",
inventory_image = shiny,
wield_image = shiny,
wield_scale = {x = 1.25, y = 1.25, z = 1.75},
sounds = nodecore.sounds("nc_terrain_stony"),
groups = {
cracky = 1,
adamanty = 1,
shiny_rock = 1
}
})
-- ================================================================== --
minetest.override_item("nc_lode:ore", {drop = {items={{items={modname..":ore"},rarity=100}}}})
minetest.override_item("nc_lux:stone", {drop = {items={{items={modname..":ore"},rarity=100}}}})
-- ================================================================== --

137
smelt.lua
View File

@ -1,83 +1,54 @@
-- LUALOCALS < ---------------------------------------------------------
local ItemStack, error, minetest, nodecore, pairs, type
= ItemStack, error, minetest, nodecore, pairs, type
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
-- ================================================================== --
nodecore.register_craft({
label = "heat adamant cobble",
action = "cook",
touchgroups = {lava = 3},
duration = 30,
cookfx = true,
indexkeys = {"group:adamant_cobble"},
nodes = {
{
match = {groups = {adamant_cobble = true}},
replace = modname .. ":block"
}
}
})
-- ================================================================== --
nodecore.register_craft({
label = "pack shiny rocks to cobble",
action = "pummel",
indexkeys = {modname .. ":ore"},
nodes = {
{
match = {name = modname .. ":ore", count = 8},
replace = modname .. ":cobble_loose"
}
},
toolgroups = {thumpy = 3}
})
nodecore.register_craft({
label = "break shiny cobble to rocks",
action = "pummel",
indexkeys = {modname .. ":cobble_loose"},
nodes = {
{match = modname .. ":cobble_loose", replace = "air"}
},
items = {
{name = modname .. ":ore", count = 8, scatter = 5}
},
toolgroups = {cracky = 2},
itemscatter = 5
})
-- ================================================================== --
nodecore.register_craft({
label = "crack crystal to shards",
action = "pummel",
indexkeys = {modname .. ":block"},
nodes = {
{match = modname .. ":block", replace = "air"}
},
items = {
{name = modname .. ":shard", count = 4, scatter = 5}
},
toolgroups = {cracky = 4, thumpy = 5},
itemscatter = 5
})
nodecore.register_craft({
label = "crack infused crystal to shards",
action = "pummel",
indexkeys = {modname .. ":block_infused"},
nodes = {
{match = modname .. ":block_infused", replace = "air"}
},
items = {
{name = modname .. ":shard_infused", count = 4, scatter = 9}
},
toolgroups = {cracky = 3, thumpy = 4},
itemscatter = 9
})
-- ================================================================== --
-- LUALOCALS < ---------------------------------------------------------
local ItemStack, minetest, nodecore
= ItemStack, minetest, nodecore
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
-- ================================================================== --
local crystal = "wc_crystals:adamant"
nodecore.register_craft({
label = "heat adamant cobble",
action = "cook",
touchgroups = {lava = 3},
neargroups = {coolant = 0},
duration = 30,
cookfx = true,
indexkeys = {"group:adamant_cobble"},
nodes = {
{
match = {groups = {adamant_cobble = true}},
replace = crystal
}
}
})
------------------------------------------------------------------------
nodecore.register_cook_abm({nodenames = {"group:adamant_cobble"}, neighbors = {"group:lava"}})
nodecore.register_cook_abm({nodenames = {"wc_crystals:adamant"}})
-- ================================================================== --
nodecore.register_craft({
label = "pack shiny rocks to cobble",
action = "pummel",
indexkeys = {modname .. ":ore"},
nodes = {
{
match = {name = modname .. ":ore", count = 8},
replace = modname .. ":cobble_loose"
}
},
toolgroups = {thumpy = 4}
})
------------------------------------------------------------------------
nodecore.register_craft({
label = "break shiny cobble to rocks",
action = "pummel",
indexkeys = {"group:adamant_cobble"},
nodes = {
{match = {groups = {adamant_cobble = true}}, replace = "air"}
},
items = {
{name = modname .. ":ore", count = 8, scatter = 5}
},
toolgroups = {cracky = 3},
itemscatter = 5
})
-- ================================================================== --

BIN
textures/Thumbs.db Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 699 B

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 B

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 B

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 B

After

Width:  |  Height:  |  Size: 184 B

197
tools.lua
View File

@ -1,87 +1,110 @@
-- LUALOCALS < ---------------------------------------------------------
local minetest, nodecore
= minetest, nodecore
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
-- ================================================================== --
local function tooltip(name, group)
local tool = modname .. ":tool_" .. name:lower()
local wood = "nc_woodwork:tool_" .. name:lower()
minetest.register_tool(tool, {
description = "Adamant-Tipped " .. name,
inventory_image = "nc_woodwork_tool_" .. name:lower() .. ".png^"
.. modname .. "_tip_" .. name:lower() .. ".png",
tool_wears_to = wood,
groups = {
flammable = 2,
metallic = 1
},
tool_capabilities = nodecore.toolcaps({
uses = 0.01,
[group] = 7
}),
on_ignite = modname .. ":shard",
sounds = nodecore.sounds("nc_optics_glassy")
})
nodecore.register_craft({
label = "assemble " .. tool,
action = "stackapply",
wield = {name = modname .. ":shard"},
consumewield = 1,
indexkeys = {wood},
nodes = {{match = wood, replace = "air"}},
items = {tool}
})
end
tooltip("Mallet", "thumpy")
tooltip("Spade", "crumbly")
tooltip("Hatchet", "choppy")
tooltip("Pick", "cracky")
-- ================================================================== --
local adzedef
adzedef = {
description = "Adamant-Tipped Adze",
inventory_image = "nc_woodwork_adze.png^" .. modname .. "_tip_adze.png",
groups = {
flammable = 2
},
tool_capabilities = nodecore.toolcaps({
uses = 0.025,
choppy = 5,
crumbly = 6,
cracky = 4,
}),
on_ignite = modname .. ":shard",
sounds = nodecore.sounds("nc_optics_glassy"),
tool_wears_to = "nc_woodwork:adze"
}
minetest.register_tool(modname .. ":adze", adzedef)
nodecore.register_craft({
label = "assemble adamant adze",
action = "stackapply",
wield = {name = modname .. ":shard"},
consumewield = 1,
indexkeys = {"nc_woodwork:adze"},
nodes = {
{
match = {
name = "nc_woodwork:adze",
wear = 0.05
},
replace = "air"
},
},
items = {
{name = modname .. ":adze"}
},
})
-- ================================================================== --
-- LUALOCALS < ---------------------------------------------------------
local minetest, nodecore
= minetest, nodecore
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
-- ================================================================== --
local function tooltip(name, group)
local tool = modname .. ":tool_" .. name:lower()
local wood = "nc_woodwork:tool_" .. name:lower()
minetest.register_tool(tool, {
description = "Adamantine-Tipped " .. name,
inventory_image = "nc_woodwork_tool_" .. name:lower() .. ".png^"
.. modname .. "_tip_" .. name:lower() .. ".png",
tool_wears_to = wood,
groups = {
flammable = 2,
crystalline = 1
},
tool_capabilities = nodecore.toolcaps({
uses = 0.5,
[group] = 7
}),
on_ignite = modname .. ":ore",
sounds = nodecore.sounds("nc_optics_glassy")
})
nodecore.register_craft({
label = "assemble " .. tool,
action = "stackapply",
wield = {name = modname .. ":ore"},
consumewield = 1,
indexkeys = {wood},
nodes = {{match = wood, replace = "air"}},
items = {tool}
})
end
tooltip("Mallet", "thumpy")
tooltip("Spade", "crumbly")
tooltip("Hatchet", "choppy")
tooltip("Pick", "cracky")
-- ================================================================== --
local adzedef
adzedef = {
description = "Adamantine-Tipped Adze",
inventory_image = "nc_woodwork_adze.png^" .. modname .. "_tip_adze.png",
groups = {
flammable = 2,
crystalline = 1,
},
tool_capabilities = nodecore.toolcaps({
uses = 0.5,
choppy = 5,
crumbly = 6,
cracky = 4,
}),
on_ignite = modname .. ":ore",
sounds = nodecore.sounds("nc_optics_glassy"),
tool_wears_to = "nc_woodwork:adze"
}
minetest.register_tool(modname .. ":adze", adzedef)
nodecore.register_craft({
label = "assemble adamant adze",
action = "stackapply",
wield = {name = modname .. ":ore"},
consumewield = 1,
indexkeys = {"nc_woodwork:adze"},
nodes = {
{
match = {
name = "nc_woodwork:adze",
wear = 0.05
},
replace = "air"
},
},
items = {
{name = modname .. ":adze"}
},
})
-- ================================================================== --
minetest.override_item("wc_crystals:adze_adamant",{
light_source = 1, glow = 1
})
------------------------------------------------------------------------
minetest.override_item("wc_crystals:mace_adamant",{
light_source = 1, glow = 1
})
------------------------------------------------------------------------
minetest.override_item("wc_crystals:tool_pick_adamant",{
light_source = 1, glow = 1
})
------------------------------------------------------------------------
minetest.override_item("wc_crystals:tool_spade_adamant",{
light_source = 1, glow = 1
})
------------------------------------------------------------------------
minetest.override_item("wc_crystals:tool_hatchet_adamant",{
light_source = 1, glow = 1
})
------------------------------------------------------------------------
minetest.override_item("wc_crystals:tool_mallet_adamant",{
light_source = 1, glow = 1
})
------------------------------------------------------------------------