--------------------------------------------------------------------------- -- Voxelis - Voxel survival sandbox for Luanti -- Copyright (C) 2024 Mad Star Studio LLC -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 3 of the License, or -- (at your option) any later version. -- -- You should have received a copy of the GNU General Public License along -- with this program; if not, see . --------------------------------------------------------------------------- -- -------------------------------------------------------------------------- -- -- Blocks -- -- -------------------------------------------------------------------------- -- -- ----------------------------- Terrain Surface ---------------------------- -- -- Grass core.register_node("vox_worldblocks:grass", { description = "Grass Block", tiles = {"vox_grass.png"}, groups = {cracky = 3} }) core.register_alias("grass", "vox_worldblocks:grass") core.register_alias("default:dirt_with_grass" , "vox_worldblocks:grass") -- Dirt core.register_node("vox_worldblocks:dirt", { description = "Dirt", tiles = {"vox_dirt.png"}, groups = {crumbly = 3} }) core.register_alias("dirt", "vox_worldblocks:dirt") core.register_alias("default:dirt", "vox_worldblocks:dirt") -- Sand -- (I don't like sand. It's coarse and rough and irritating and it gets everywhere.) core.register_node("vox_worldblocks:sand", { description = "Sand", tiles = {"vox_sand.png"}, groups = {crumbly = 3} }) core.register_alias("sand", "vox_worldblocks:sand") core.register_alias("default:sand", "vox_worldblocks:sand") -- Snow core.register_node("vox_worldblocks:snow", { description = "Snow", tiles = {"vox_snow.png"}, groups = {crumbly = 3} }) core.register_alias("snow", "vox_worldblocks:snow") core.register_alias("default:snow", "vox_worldblocks:snow") -- Packed Snow core.register_node("vox_worldblocks:packed_snow", { description = "Packed Snow", tiles = {"vox_packed_snow.png"}, groups = {crumbly = 2} }) core.register_alias("packed_snow", "vox_worldblocks:packed_snow") -- Ice core.register_node("vox_worldblocks:ice", { description = "Ice", tiles = {"vox_ice.png"}, groups = {crumbly = 3} }) core.register_alias("ice", "vox_worldblocks:ice") core.register_alias("default:ice", "vox_worldblocks:ice") -- Sulfur Crust core.register_node("vox_worldblocks:sulfur_crust", { description = "Sulfur Crust", tiles = {"vox_sulfur_crust.png"}, groups = {crumbly = 3} }) core.register_alias("sulfur_crust", "vox_worldblocks:sulfur_crust") -- ---------------------------- Terrain Subsurface --------------------------- -- -- Bedrock core.register_node("vox_worldblocks:bedrock", { description = "Bedrock", tiles = {"vox_bedrock.png"}, groups = {cracky = 1} }) core.register_alias("bedrock", "vox_worldblocks:bedrock") core.register_alias("default:bedrock", "vox_worldblocks:bedrock") -- Ash minetest.register_node("vox_worldblocks:ash_block", { description = "Ash Block", tiles = {"vox_ash_block.png"}, groups = {crumbly = 3}, drop = "vox_mats:ash", -- Drops ash when broken }) -- Gravel core.register_node("vox_worldblocks:gravel", { description = "Gravel", tiles = {"vox_gravel.png"}, groups = {crumbly = 2} }) core.register_alias("gravel", "vox_worldblocks:gravel") core.register_alias("default:gravel", "vox_worldblocks:gravel") -- Stone core.register_node("vox_worldblocks:stone", { description = "Stone", tiles = {"vox_stone.png"}, groups = {cracky = 2} }) core.register_alias("stone", "vox_worldblocks:stone") core.register_alias("mapgen_stone", "vox_worldblocks:stone") -- core.register_alias("default:stone", "vox_worldblocks:stone") -- Cobblestone core.register_node("vox_worldblocks:cobblestone", { description = "Cobblestone", tiles = {"vox_cobblestone.png"}, groups = {cracky = 2} }) core.register_alias("cobblestone", "vox_worldblocks:cobblestone") core.register_alias("default:cobble", "vox_worldblocks:cobblestone") -- Sandstone core.register_node("vox_worldblocks:sandstone", { description = "Sandstone", tiles = {"vox_sandstone.png"}, groups = {cracky = 2} }) core.register_alias("sandstone", "vox_worldblocks:sandstone") core.register_alias("default:sandstone", "vox_worldblocks:sandstone") -- Clay core.register_node("vox_worldblocks:clay", { description = "Clay", tiles = {"vox_clay.png"}, groups = {crumbly = 3} }) core.register_alias("clay", "vox_worldblocks:clay") core.register_alias("default:clay", "vox_worldblocks:clay") -- Hardened Clay core.register_node("vox_worldblocks:hardened_clay", { description = "Hardened Clay", tiles = {"vox_hardened_clay.png"}, groups = {cracky = 2} }) core.register_alias("hardened_clay", "vox_worldblocks:hardened_clay") core.register_alias("default:hardened_clay", "vox_worldblocks:hardened_clay") -- Mud core.register_node("vox_worldblocks:mud", { description = "Mud", tiles = {"vox_mud.png"}, groups = {crumbly = 3} }) core.register_alias("mud", "vox_worldblocks:mud") -- Granite core.register_node("vox_worldblocks:granite", { description = "Granite", tiles = {"vox_granite.png"}, groups = {cracky = 2} }) core.register_alias("granite", "vox_worldblocks:granite") core.register_alias("default:granite", "vox_worldblocks:granite") -- Diorite core.register_node("vox_worldblocks:diorite", { description = "Diorite", tiles = {"vox_diorite.png"}, groups = {cracky = 2} }) core.register_alias("diorite", "vox_worldblocks:diorite") core.register_alias("default:diorite", "vox_worldblocks:diorite") -- Andesite core.register_node("vox_worldblocks:andesite", { description = "Andesite", tiles = {"vox_andesite.png"}, groups = {cracky = 2} }) core.register_alias("andesite", "vox_worldblocks:andesite") core.register_alias("default:andesite", "vox_worldblocks:andesite") -- Basalt core.register_node("vox_worldblocks:basalt", { description = "Basalt", tiles = {"vox_basalt.png"}, groups = {cracky = 2} }) core.register_alias("basalt", "vox_worldblocks:basalt") core.register_alias("default:basalt", "vox_worldblocks:basalt") -- Obsidian core.register_node("vox_worldblocks:obsidian", { description = "Obsidian", tiles = {"vox_obsidian.png"}, groups = {cracky = 2} }) core.register_alias("obsidian", "vox_worldblocks:obsidian") core.register_alias("default:obsidian", "vox_worldblocks:obsidian") -- Marble core.register_node("vox_worldblocks:marble", { description = "Marble", tiles = {"vox_marble.png"}, groups = {cracky = 2} }) core.register_alias("marble", "vox_worldblocks:marble") core.register_alias("default:marble", "vox_worldblocks:marble") -- Chalk core.register_node("vox_worldblocks:chalk", { description = "Chalk", tiles = {"vox_chalk.png"}, groups = {cracky = 2} }) core.register_alias("chalk", "vox_worldblocks:chalk") core.register_alias("default:chalk", "vox_worldblocks:chalk") -- Limestone core.register_node("vox_worldblocks:limestone", { description = "Limestone", tiles = {"vox_limestone.png"}, groups = {cracky = 2} }) core.register_alias("limestone", "vox_worldblocks:limestone") core.register_alias("default:limestone", "vox_worldblocks:limestone") -- Glowing Moss core.register_node("vox_worldblocks:glowing_moss", { description = "Glowing Moss", tiles = {"vox_glowing_moss.png"}, light_source = 8, groups = {crumbly = 1} }) core.register_alias("glowing_moss", "vox_worldblocks:glowing_moss") core.register_node("vox_worldblocks:salt_crystal", { description = "Salt Crystal", tiles = {"vox_salt_crystal.png"}, groups = {cracky = 2} }) core.register_alias("salt_crystal", "vox_worldblocks:salt_crystal") core.register_node("vox_worldblocks:volcanic_rock", { description = "Volcanic Rock", tiles = {"vox_volcanic_rock.png"}, groups = {cracky = 3} }) core.register_alias("volcanic_rock", "vox_worldblocks:volcanic_rock") core.register_node("vox_worldblocks:hot_spring_stone", { description = "Hot Spring Stone", tiles = {"vox_hot_spring_stone.png"}, groups = {cracky = 2} }) core.register_alias("hot_spring_stone", "vox_worldblocks:hot_spring_stone") -- ------------------------------ Ocean ------------------------- -- -- core.register_node("vox_worldblocks:coral_red", { description = "Red Coral", tiles = {"vox_coral_red.png"}, groups = {crumbly = 1} }) core.register_alias("coral_red", "vox_worldblocks:coral_red") -- ------------------------------ Sky Island ------------------------- -- -- Cloud Block - Only pegasus can walk on it :) -- Players may stand on it, but sink partway through. If multiple blocks are -- stacked, you fall to the lowest block and still don't fall through. core.register_node("vox_worldblocks:cloud", { description = "Cloud", tiles = {"vox_cloud.png"}, groups = {crumbly = 1} }) core.register_alias("cloud", "vox_worldblocks:cloud") -- -------------------------------------------------------------------------- -- -- Liquids -- -- -------------------------------------------------------------------------- -- -- Water core.register_node("vox_worldblocks:water_source", { description = "Water Source", drawtype = "liquid", tiles = { { name = "vox_water.png", animation = { type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 2.0 } } }, alpha = 128, paramtype = "light", walkable = false, pointable = false, diggable = false, buildable_to = true, liquidtype = "source", liquid_alternative_flowing = "vox_worldblocks:water_flowing", liquid_alternative_source = "vox_worldblocks:water_source", liquid_viscosity = 1, post_effect_color = {a = 103, r = 30, g = 60, b = 90} }) core.register_alias("water_source", "vox_worldblocks:water_source") core.register_alias("default:river_water", "vox_worldblocks:water_source") core.register_alias("mapgen_water_source", "vox_worldblocks:water_source") core.register_node("vox_worldblocks:water_flowing", { description = "Flowing Water", drawtype = "flowingliquid", tiles = {"vox_water.png"}, special_tiles = { { name = "vox_water.png", backface_culling = false, animation = { type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 0.8 } } }, alpha = 160, paramtype = "light", walkable = false, pointable = false, diggable = false, buildable_to = true, liquidtype = "flowing", liquid_alternative_flowing = "vox_worldblocks:water_flowing", liquid_alternative_source = "vox_worldblocks:water_source", liquid_viscosity = 1, post_effect_color = {a = 103, r = 30, g = 60, b = 90} }) core.register_alias("water_flowing", "vox_worldblocks:water_flowing") core.register_alias("default:river_water_flowing", "vox_worldblocks:water_flowing") core.register_alias("mapgen_water_flowing", "vox_worldblocks:water_flowing") -- Hotspring Water core.register_node("vox_worldblocks:hotspring_water_source", { description = "Hotspring Water Source", drawtype = "liquid", tiles = { { name = "vox_hotspring_water.png", animation = { type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 2.0 } } }, alpha = 128, paramtype = "light", walkable = false, pointable = false, diggable = false, buildable_to = true, liquidtype = "source", liquid_alternative_flowing = "vox_worldblocks:hotspring_water_flowing", liquid_alternative_source = "vox_worldblocks:hotspring_water_source", liquid_viscosity = 1, post_effect_color = {a = 103, r = 30, g = 60, b = 90} }) core.register_alias("hotspring_water_source", "vox_worldblocks:hotspring_water_source") core.register_alias("mapgen_hotspring_water_source", "vox_worldblocks:hotspring_water_source") core.register_node("vox_worldblocks:hotspring_water_flowing", { description = "Flowing Hotspring Water", drawtype = "flowingliquid", tiles = {"vox_hotspring_water.png"}, special_tiles = { { name = "vox_hotspring_water.png", backface_culling = false, animation = { type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 0.8 } } }, alpha = 160, paramtype = "light", walkable = false, pointable = false, diggable = false, buildable_to = true, liquidtype = "flowing", liquid_alternative_flowing = "vox_worldblocks:hotspring_water_flowing", liquid_alternative_source = "vox_worldblocks:hotspring_water_source", liquid_viscosity = 1, post_effect_color = {a = 103, r = 30, g = 60, b = 90} }) core.register_alias("hotspring_water_flowing", "vox_worldblocks:hotspring_water_flowing") core.register_alias("mapgen_hotspring_water_flowing", "vox_worldblocks:hotspring_water_flowing") -- Lava core.register_node("vox_worldblocks:lava_source", { description = "Lava Source", drawtype = "liquid", tiles = { { name = "vox_lava.png", animation = { type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 2.0 } } }, alpha = 255, paramtype = "light", walkable = false, pointable = false, diggable = false, buildable_to = true, liquidtype = "source", liquid_alternative_flowing = "vox_worldblocks:lava_flowing", liquid_alternative_source = "vox_worldblocks:lava_source", liquid_viscosity = 7, post_effect_color = {a = 255, r = 255, g = 0, b = 0} }) core.register_alias("lava_source", "vox_worldblocks:lava_source") core.register_alias("default:lava_source", "vox_worldblocks:lava_source") core.register_alias("mapgen_lava_source", "vox_worldblocks:lava_source") core.register_node("vox_worldblocks:lava_flowing", { description = "Flowing Lava", drawtype = "flowingliquid", tiles = {"vox_lava.png"}, special_tiles = { { name = "vox_lava.png", backface_culling = false, animation = { type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 2.0 } } }, alpha = 255, paramtype = "light", walkable = false, pointable = false, diggable = false, buildable_to = true, liquidtype = "flowing", liquid_alternative_flowing = "vox_worldblocks:lava_flowing", liquid_alternative_source = "vox_worldblocks:lava_source", liquid_viscosity = 7, post_effect_color = {a = 255, r = 255, g = 0, b = 0} }) core.register_alias("lava_flowing", "vox_worldblocks:lava_flowing") core.register_alias("default:lava_flowing", "vox_worldblocks:lava_flowing") core.register_alias("mapgen_lava_flowing", "vox_worldblocks:lava_flowing") -- -------------------------------------------------------------------------- -- -- Ores -- -- -------------------------------------------------------------------------- -- -- Fuel: Coal, Uranium, Peat core.register_node("vox_worldblocks:coal_ore", { description = "Coal Ore", tiles = {"vox_coal_ore.png"}, groups = {cracky = 2} }) core.register_alias("coal_ore", "vox_worldblocks:coal_ore") core.register_alias("default:stone_with_coal", "vox_worldblocks:coal_ore") core.register_node("vox_worldblocks:uranium_ore", { description = "Uranium Ore", tiles = {"vox_uranium_ore.png"}, groups = {cracky = 2} }) core.register_alias("uranium_ore", "vox_worldblocks:uranium_ore") core.register_alias("default:stone_with_uranium", "vox_worldblocks:uranium_ore") core.register_node("vox_worldblocks:peat", { description = "Peat", tiles = {"vox_peat.png"}, groups = {crumbly = 2, flammable = 1} }) core.register_alias("peat", "vox_worldblocks:peat") -- Bone core.register_node("vox_worldblocks:bone_ore", { description = "Bone Ore", tiles = {"vox_bone_ore.png"}, groups = {cracky = 2} }) core.register_alias("bone_ore", "vox_worldblocks:bone_ore") core.register_alias("default:stone_with_bone", "vox_worldblocks:bone_ore") -- Sulfur core.register_node("vox_worldblocks:sulfur_ore", { description = "Sulfur Ore", tiles = {"vox_sulfur_ore.png"}, groups = {cracky = 2} }) core.register_alias("sulfur_ore", "vox_worldblocks:sulfur_ore") core.register_alias("default:stone_with_sulfur", "vox_worldblocks:sulfur_ore") -- Salt core.register_node("vox_worldblocks:salt_ore", { description = "Salt Ore", tiles = {"vox_salt_ore.png"}, groups = {crumbly = 2}, drop = "vox_mats:salt" }) core.register_alias("salt_ore", "vox_worldblocks:salt_ore") core.register_alias("default:stone_with_salt", "vox_worldblocks:salt_ore") -- Metals: Copper, Tin, Iron, Gold, Silver, Platinum, Lead, Zinc, Nickel, Cobalt, Titanium, Tungsten core.register_node("vox_worldblocks:copper_ore", { description = "Copper Ore", tiles = {"vox_copper_ore.png"}, groups = {cracky = 2} }) core.register_alias("copper_ore", "vox_worldblocks:copper_ore") core.register_alias("default:stone_with_copper", "vox_worldblocks:copper_ore") core.register_node("vox_worldblocks:tin_ore", { description = "Tin Ore", tiles = {"vox_tin_ore.png"}, groups = {cracky = 2} }) core.register_alias("tin_ore", "vox_worldblocks:tin_ore") core.register_alias("default:stone_with_tin", "vox_worldblocks:tin_ore") core.register_node("vox_worldblocks:iron_ore", { description = "Iron Ore", tiles = {"vox_iron_ore.png"}, groups = {cracky = 2} }) core.register_alias("iron_ore", "vox_worldblocks:iron_ore") core.register_alias("default:stone_with_iron", "vox_worldblocks:iron_ore") core.register_node("vox_worldblocks:gold_ore", { description = "Gold Ore", tiles = {"vox_gold_ore.png"}, groups = {cracky = 2} }) core.register_alias("gold_ore", "vox_worldblocks:gold_ore") core.register_alias("default:stone_with_gold", "vox_worldblocks:gold_ore") core.register_node("vox_worldblocks:silver_ore", { description = "Silver Ore", tiles = {"vox_silver_ore.png"}, groups = {cracky = 2} }) core.register_alias("silver_ore", "vox_worldblocks:silver_ore") core.register_alias("default:stone_with_silver", "vox_worldblocks:silver_ore") core.register_node("vox_worldblocks:platinum_ore", { description = "Platinum Ore", tiles = {"vox_platinum_ore.png"}, groups = {cracky = 2} }) core.register_alias("platinum_ore", "vox_worldblocks:platinum_ore") core.register_alias("default:stone_with_platinum", "vox_worldblocks:platinum_ore") core.register_node("vox_worldblocks:lead_ore", { description = "Lead Ore", tiles = {"vox_lead_ore.png"}, groups = {cracky = 2} }) core.register_alias("lead_ore", "vox_worldblocks:lead_ore") core.register_alias("default:stone_with_lead", "vox_worldblocks:lead_ore") core.register_node("vox_worldblocks:zinc_ore", { description = "Zinc Ore", tiles = {"vox_zinc_ore.png"}, groups = {cracky = 2} }) core.register_alias("zinc_ore", "vox_worldblocks:zinc_ore") core.register_alias("default:stone_with_zinc", "vox_worldblocks:zinc_ore") core.register_node("vox_worldblocks:nickel_ore", { description = "Nickel Ore", tiles = {"vox_nickel_ore.png"}, groups = {cracky = 2} }) core.register_alias("nickel_ore", "vox_worldblocks:nickel_ore") core.register_alias("default:stone_with_nickel", "vox_worldblocks:nickel_ore") core.register_node("vox_worldblocks:cobalt_ore", { description = "Cobalt Ore", tiles = {"vox_cobalt_ore.png"}, groups = {cracky = 2} }) core.register_alias("cobalt_ore", "vox_worldblocks:cobalt_ore") core.register_alias("default:stone_with_cobalt", "vox_worldblocks:cobalt_ore") core.register_node("vox_worldblocks:titanium_ore", { description = "Titanium Ore", tiles = {"vox_titanium_ore.png"}, groups = {cracky = 2} }) core.register_alias("titanium_ore", "vox_worldblocks:titanium_ore") core.register_alias("default:stone_with_titanium", "vox_worldblocks:titanium_ore") core.register_node("vox_worldblocks:tungsten_ore", { description = "Tungsten Ore", tiles = {"vox_tungsten_ore.png"}, groups = {cracky = 2} }) core.register_alias("tungsten_ore", "vox_worldblocks:tungsten_ore") core.register_alias("default:stone_with_tungsten", "vox_worldblocks:tungsten_ore") -- Gems: Diamond, Emerald, Ruby, Sapphire, Topaz, Amethyst, Opal, Onyx, Garnet, Peridot, Aquamarine, Citrine, Tourmaline, Zircon, Tanzanite, Spinel, Lapis Lazuli, Malachite, Azurite, Turquoise, Amber, Moonstone, Sunstone, Bloodstone, Agate, Jasper, Chalcedony, Chrysoprase, Carnelian, Sardonyx, Heliotrope, Alexandrite, Tiger's Eye, Serpentine, Rhodonite core.register_node("vox_worldblocks:diamond_ore", { description = "Diamond Ore", tiles = {"vox_diamond_ore.png"}, groups = {cracky = 2} }) core.register_alias("diamond_ore", "vox_worldblocks:diamond_ore") core.register_alias("default:stone_with_diamond", "vox_worldblocks:diamond_ore") core.register_node("vox_worldblocks:emerald_ore", { description = "Emerald Ore", tiles = {"vox_emerald_ore.png"}, groups = {cracky = 2} }) core.register_alias("emerald_ore", "vox_worldblocks:emerald_ore") core.register_alias("default:stone_with_emerald", "vox_worldblocks:emerald_ore") core.register_node("vox_worldblocks:ruby_ore", { description = "Ruby Ore", tiles = {"vox_ruby_ore.png"}, groups = {cracky = 2} }) core.register_alias("ruby_ore", "vox_worldblocks:ruby_ore") core.register_alias("default:stone_with_ruby", "vox_worldblocks:ruby_ore") core.register_node("vox_worldblocks:sapphire_ore", { description = "Sapphire Ore", tiles = {"vox_sapphire_ore.png"}, groups = {cracky = 2} }) core.register_alias("sapphire_ore", "vox_worldblocks:sapphire_ore") core.register_alias("default:stone_with_sapphire", "vox_worldblocks:sapphire_ore") core.register_node("vox_worldblocks:topaz_ore", { description = "Topaz Ore", tiles = {"vox_topaz_ore.png"}, groups = {cracky = 2} }) core.register_alias("topaz_ore", "vox_worldblocks:topaz_ore") core.register_alias("default:stone_with_topaz", "vox_worldblocks:topaz_ore") core.register_node("vox_worldblocks:amethyst_ore", { description = "Amethyst Ore", tiles = {"vox_amethyst_ore.png"}, groups = {cracky = 2} }) core.register_alias("amethyst_ore", "vox_worldblocks:amethyst_ore") core.register_alias("default:stone_with_amethyst", "vox_worldblocks:amethyst_ore") core.register_node("vox_worldblocks:opal_ore", { description = "Opal Ore", tiles = {"vox_opal_ore.png"}, groups = {cracky = 2} }) core.register_alias("opal_ore", "vox_worldblocks:opal_ore") core.register_alias("default:stone_with_opal", "vox_worldblocks:opal_ore") core.register_node("vox_worldblocks:onyx_ore", { description = "Onyx Ore", tiles = {"vox_onyx_ore.png"}, groups = {cracky = 2} }) core.register_alias("onyx_ore", "vox_worldblocks:onyx_ore") core.register_alias("default:stone_with_onyx", "vox_worldblocks:onyx_ore") core.register_node("vox_worldblocks:garnet_ore", { description = "Garnet Ore", tiles = {"vox_garnet_ore.png"}, groups = {cracky = 2} }) core.register_alias("garnet_ore", "vox_worldblocks:garnet_ore") core.register_alias("default:stone_with_garnet", "vox_worldblocks:garnet_ore") core.register_node("vox_worldblocks:peridot_ore", { description = "Peridot Ore", tiles = {"vox_peridot_ore.png"}, groups = {cracky = 2} }) core.register_alias("peridot_ore", "vox_worldblocks:peridot_ore") core.register_alias("default:stone_with_peridot", "vox_worldblocks:peridot_ore") core.register_node("vox_worldblocks:aquamarine_ore", { description = "Aquamarine Ore", tiles = {"vox_aquamarine_ore.png"}, groups = {cracky = 2} }) core.register_alias("aquamarine_ore", "vox_worldblocks:aquamarine_ore") core.register_alias("default:stone_with_aquamarine", "vox_worldblocks:aquamarine_ore") core.register_node("vox_worldblocks:citrine_ore", { description = "Citrine Ore", tiles = {"vox_citrine_ore.png"}, groups = {cracky = 2} }) core.register_alias("citrine_ore", "vox_worldblocks:citrine_ore") core.register_alias("default:stone_with_citrine", "vox_worldblocks:citrine_ore") core.register_node("vox_worldblocks:tourmaline_ore", { description = "Tourmaline Ore", tiles = {"vox_tourmaline_ore.png"}, groups = {cracky = 2} }) core.register_alias("tourmaline_ore", "vox_worldblocks:tourmaline_ore") core.register_alias("default:stone_with_tourmaline", "vox_worldblocks:tourmaline_ore") core.register_node("vox_worldblocks:zircon_ore", { description = "Zircon Ore", tiles = {"vox_zircon_ore.png"}, groups = {cracky = 2} }) core.register_alias("zircon_ore", "vox_worldblocks:zircon_ore") core.register_alias("default:stone_with_zircon", "vox_worldblocks:zircon_ore") core.register_node("vox_worldblocks:tanzanite_ore", { description = "Tanzanite Ore", tiles = {"vox_tanzanite_ore.png"}, groups = {cracky = 2} }) core.register_alias("tanzanite_ore", "vox_worldblocks:tanzanite_ore") core.register_alias("default:stone_with_tanzanite", "vox_worldblocks:tanzanite_ore") core.register_node("vox_worldblocks:spinel_ore", { description = "Spinel Ore", tiles = {"vox_spinel_ore.png"}, groups = {cracky = 2} }) core.register_alias("spinel_ore", "vox_worldblocks:spinel_ore") core.register_alias("default:stone_with_spinel", "vox_worldblocks:spinel_ore") core.register_node("vox_worldblocks:lapis_lazuli_ore", { description = "Lapis Lazuli Ore", tiles = {"vox_lapis_lazuli_ore.png"}, groups = {cracky = 2} }) core.register_alias("lapis_lazuli_ore", "vox_worldblocks:lapis_lazuli_ore") core.register_alias("default:stone_with_lapis_lazuli", "vox_worldblocks:lapis_lazuli_ore") core.register_node("vox_worldblocks:malachite_ore", { description = "Malachite Ore", tiles = {"vox_malachite_ore.png"}, groups = {cracky = 2} }) core.register_alias("malachite_ore", "vox_worldblocks:malachite_ore") core.register_alias("default:stone_with_malachite", "vox_worldblocks:malachite_ore") core.register_node("vox_worldblocks:azurite_ore", { description = "Azurite Ore", tiles = {"vox_azurite_ore.png"}, groups = {cracky = 2} }) core.register_alias("azurite_ore", "vox_worldblocks:azurite_ore") core.register_alias("default:stone_with_azurite", "vox_worldblocks:azurite_ore") core.register_node("vox_worldblocks:turquoise_ore", { description = "Turquoise Ore", tiles = {"vox_turquoise_ore.png"}, groups = {cracky = 2} }) core.register_alias("turquoise_ore", "vox_worldblocks:turquoise_ore") core.register_alias("default:stone_with_turquoise", "vox_worldblocks:turquoise_ore") core.register_node("vox_worldblocks:amber_ore", { description = "Amber Ore", tiles = {"vox_amber_ore.png"}, groups = {cracky = 2} }) core.register_alias("amber_ore", "vox_worldblocks:amber_ore") core.register_alias("default:stone_with_amber", "vox_worldblocks:amber_ore") core.register_node("vox_worldblocks:moonstone_ore", { description = "Moonstone Ore", tiles = {"vox_moonstone_ore.png"}, groups = {cracky = 2} }) core.register_alias("moonstone_ore", "vox_worldblocks:moonstone_ore") core.register_alias("default:stone_with_moonstone", "vox_worldblocks:moonstone_ore") core.register_node("vox_worldblocks:sunstone_ore", { description = "Sunstone Ore", tiles = {"vox_sunstone_ore.png"}, groups = {cracky = 2} }) core.register_alias("sunstone_ore", "vox_worldblocks:sunstone_ore") core.register_alias("default:stone_with_sunstone", "vox_worldblocks:sunstone_ore") core.register_node("vox_worldblocks:bloodstone_ore", { description = "Bloodstone Ore", tiles = {"vox_bloodstone_ore.png"}, groups = {cracky = 2} }) core.register_alias("bloodstone_ore", "vox_worldblocks:bloodstone_ore") core.register_alias("default:stone_with_bloodstone", "vox_worldblocks:bloodstone_ore") core.register_node("vox_worldblocks:agate_ore", { description = "Agate Ore", tiles = {"vox_agate_ore.png"}, groups = {cracky = 2} }) core.register_alias("agate_ore", "vox_worldblocks:agate_ore") core.register_alias("default:stone_with_agate", "vox_worldblocks:agate_ore") core.register_node("vox_worldblocks:jasper_ore", { description = "Jasper Ore", tiles = {"vox_jasper_ore.png"}, groups = {cracky = 2} }) core.register_alias("jasper_ore", "vox_worldblocks:jasper_ore") core.register_alias("default:stone_with_jasper", "vox_worldblocks:jasper_ore") core.register_node("vox_worldblocks:chalcedony_ore", { description = "Chalcedony Ore", tiles = {"vox_chalcedony_ore.png"}, groups = {cracky = 2} }) core.register_alias("chalcedony_ore", "vox_worldblocks:chalcedony_ore") core.register_alias("default:stone_with_chalcedony", "vox_worldblocks:chalcedony_ore") core.register_node("vox_worldblocks:chrysoprase_ore", { description = "Chrysoprase Ore", tiles = {"vox_chrysoprase_ore.png"}, groups = {cracky = 2} }) core.register_alias("chrysoprase_ore", "vox_worldblocks:chrysoprase_ore") core.register_alias("default:stone_with_chrysoprase", "vox_worldblocks:chrysoprase_ore") core.register_node("vox_worldblocks:carnelian_ore", { description = "Carnelian Ore", tiles = {"vox_carnelian_ore.png"}, groups = {cracky = 2} }) core.register_alias("carnelian_ore", "vox_worldblocks:carnelian_ore") core.register_alias("default:stone_with_carnelian", "vox_worldblocks:carnelian_ore") -- ---------------------------- Blocks with Multiple Colors -------------------------- -- -- Register colored (fill in the blank) dynamically for color_name, color_hex in pairs(vox_colors) do -- Skip any non-color functions or keys if type(color_hex) == "string" and vox_colors.validate(color_hex) then -- Register Colored Stone variant core.register_node("vox_worldblocks:stone_" .. color_name:lower(), { description = color_name .. " Stone", tiles = {"vox_stone_colorize.png^[multiply:" .. color_hex}, groups = {cracky = 2}, }) core.register_alias("stone_" .. color_name:lower(), "vox_worldblocks:stone_" .. color_name:lower()) -- Register Terracotta variant core.register_node("vox_worldblocks:terracotta_" .. color_name:lower(), { description = color_name .. " Terracotta", tiles = {"vox_terracotta_colorize.png^[multiply:" .. color_hex}, groups = {cracky = 2}, }) core.register_alias("terracotta_" .. color_name:lower(), "vox_worldblocks:terracotta_" .. color_name:lower()) end end -- ---------------------------- Dyeable Nodes -------------------------- -- -- List of dyeable things local dyeable_blocks = {"sand", "terracotta", "marble", "cobblestone", "sandstone"} -- Debug: Check if dyeable_blocks is defined correctly assert(type(dyeable_blocks) == "table", "[vox_worldblocks] 'dyeable_blocks' must be a table!") -- Register base things and their dyeable variants for _, base_block in pairs(dyeable_blocks) do if type(base_block) == "string" then vox_coloring.register_dyeable("vox_worldblocks", base_block) else minetest.log("error", "[vox_worldblocks] Invalid block name in dyeable_blocks: " .. tostring(base_block)) end end