From edcddc0dbeaf7de566a49e02d5e2fdd882a6dbb4 Mon Sep 17 00:00:00 2001 From: Doc Date: Tue, 20 Nov 2012 20:01:57 -0700 Subject: [PATCH] Birthstones mod for Minetest --- .gitattributes | 22 ++ .gitignore | 163 +++++++++++++ depends.txt | 1 + init.lua | 399 +++++++++++++++++++++++++++++++ textures/Alexandrite.png | Bin 0 -> 299 bytes textures/Alexandrite_block.png | Bin 0 -> 289 bytes textures/Alexandrite_overlay.png | Bin 0 -> 297 bytes textures/Amethyst.png | Bin 0 -> 441 bytes textures/Amethyst_block.png | Bin 0 -> 288 bytes textures/Amethyst_overlay.png | Bin 0 -> 503 bytes textures/Aquamarine.png | Bin 0 -> 214 bytes textures/Aquamarine_block.png | Bin 0 -> 292 bytes textures/Aquamarine_overlay.png | Bin 0 -> 266 bytes textures/Diamond.png | Bin 0 -> 216 bytes textures/Diamond_block.png | Bin 0 -> 314 bytes textures/Diamond_overlay.png | Bin 0 -> 258 bytes textures/Emerald.png | Bin 0 -> 211 bytes textures/Emerald_block.png | Bin 0 -> 687 bytes textures/Emerald_overlay.png | Bin 0 -> 236 bytes textures/Garnet.png | Bin 0 -> 186 bytes textures/Garnet_block.png | Bin 0 -> 326 bytes textures/Garnet_overlay.png | Bin 0 -> 260 bytes textures/Opal.png | Bin 0 -> 344 bytes textures/Opal_block.png | Bin 0 -> 755 bytes textures/Opal_overlay.png | Bin 0 -> 317 bytes textures/Peridot.png | Bin 0 -> 225 bytes textures/Peridot_block.png | Bin 0 -> 296 bytes textures/Peridot_overlay.png | Bin 0 -> 217 bytes textures/Ruby.png | Bin 0 -> 253 bytes textures/Ruby_block.png | Bin 0 -> 897 bytes textures/Ruby_overlay.png | Bin 0 -> 312 bytes textures/Sapphire.png | Bin 0 -> 217 bytes textures/Sapphire_block.png | Bin 0 -> 453 bytes textures/Sapphire_overlay.png | Bin 0 -> 245 bytes textures/Topaz.png | Bin 0 -> 235 bytes textures/Topaz_block.png | Bin 0 -> 280 bytes textures/Topaz_overlay.png | Bin 0 -> 231 bytes textures/Zircon.png | Bin 0 -> 229 bytes textures/Zircon_block.png | Bin 0 -> 331 bytes textures/Zircon_overlay.png | Bin 0 -> 221 bytes textures/alexandrite_axe.png | Bin 0 -> 167 bytes textures/alexandrite_pick.png | Bin 0 -> 211 bytes textures/amethyst_axe.png | Bin 0 -> 141 bytes textures/amethyst_pick.png | Bin 0 -> 245 bytes textures/aquamarine_axe.png | Bin 0 -> 143 bytes textures/aquamarine_pick.png | Bin 0 -> 212 bytes textures/diamond_axe.png | Bin 0 -> 135 bytes textures/diamond_pick.png | Bin 0 -> 218 bytes textures/emerald_axe.png | Bin 0 -> 132 bytes textures/emerald_pick.png | Bin 0 -> 216 bytes textures/garnet_axe.png | Bin 0 -> 141 bytes textures/garnet_pick.png | Bin 0 -> 213 bytes textures/opal_axe.png | Bin 0 -> 176 bytes textures/opal_pick.png | Bin 0 -> 272 bytes textures/peridot_axe.png | Bin 0 -> 141 bytes textures/peridot_pick.png | Bin 0 -> 207 bytes textures/ruby_axe.png | Bin 0 -> 134 bytes textures/ruby_pick.png | Bin 0 -> 211 bytes textures/sapphire_axe.png | Bin 0 -> 127 bytes textures/sapphire_pick.png | Bin 0 -> 213 bytes textures/topaz_axe.png | Bin 0 -> 154 bytes textures/topaz_pick.png | Bin 0 -> 203 bytes textures/zircon_axe.png | Bin 0 -> 145 bytes textures/zircon_pick.png | Bin 0 -> 217 bytes 64 files changed, 585 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 depends.txt create mode 100644 init.lua create mode 100644 textures/Alexandrite.png create mode 100644 textures/Alexandrite_block.png create mode 100644 textures/Alexandrite_overlay.png create mode 100644 textures/Amethyst.png create mode 100644 textures/Amethyst_block.png create mode 100644 textures/Amethyst_overlay.png create mode 100644 textures/Aquamarine.png create mode 100644 textures/Aquamarine_block.png create mode 100644 textures/Aquamarine_overlay.png create mode 100644 textures/Diamond.png create mode 100644 textures/Diamond_block.png create mode 100644 textures/Diamond_overlay.png create mode 100644 textures/Emerald.png create mode 100644 textures/Emerald_block.png create mode 100644 textures/Emerald_overlay.png create mode 100644 textures/Garnet.png create mode 100644 textures/Garnet_block.png create mode 100644 textures/Garnet_overlay.png create mode 100644 textures/Opal.png create mode 100644 textures/Opal_block.png create mode 100644 textures/Opal_overlay.png create mode 100644 textures/Peridot.png create mode 100644 textures/Peridot_block.png create mode 100644 textures/Peridot_overlay.png create mode 100644 textures/Ruby.png create mode 100644 textures/Ruby_block.png create mode 100644 textures/Ruby_overlay.png create mode 100644 textures/Sapphire.png create mode 100644 textures/Sapphire_block.png create mode 100644 textures/Sapphire_overlay.png create mode 100644 textures/Topaz.png create mode 100644 textures/Topaz_block.png create mode 100644 textures/Topaz_overlay.png create mode 100644 textures/Zircon.png create mode 100644 textures/Zircon_block.png create mode 100644 textures/Zircon_overlay.png create mode 100644 textures/alexandrite_axe.png create mode 100644 textures/alexandrite_pick.png create mode 100644 textures/amethyst_axe.png create mode 100644 textures/amethyst_pick.png create mode 100644 textures/aquamarine_axe.png create mode 100644 textures/aquamarine_pick.png create mode 100644 textures/diamond_axe.png create mode 100644 textures/diamond_pick.png create mode 100644 textures/emerald_axe.png create mode 100644 textures/emerald_pick.png create mode 100644 textures/garnet_axe.png create mode 100644 textures/garnet_pick.png create mode 100644 textures/opal_axe.png create mode 100644 textures/opal_pick.png create mode 100644 textures/peridot_axe.png create mode 100644 textures/peridot_pick.png create mode 100644 textures/ruby_axe.png create mode 100644 textures/ruby_pick.png create mode 100644 textures/sapphire_axe.png create mode 100644 textures/sapphire_pick.png create mode 100644 textures/topaz_axe.png create mode 100644 textures/topaz_pick.png create mode 100644 textures/zircon_axe.png create mode 100644 textures/zircon_pick.png diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ebd21a --- /dev/null +++ b/.gitignore @@ -0,0 +1,163 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.vspscc +.builds +*.dotCover + +## TODO: If you have NuGet Package Restore enabled, uncomment this +#packages/ + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp + +# ReSharper is a .NET coding add-in +_ReSharper* + +# Installshield output folder +[Ee]xpress + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Others +[Bb]in +[Oo]bj +sql +TestResults +*.Cache +ClientBin +stylecop.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML + + + +############ +## Windows +############ + +# Windows image file caches +Thumbs.db + +# Folder config file +Desktop.ini + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist +build +eggs +parts +bin +var +sdist +develop-eggs +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg + +# Mac crap +.DS_Store diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..aaa88f6 --- /dev/null +++ b/init.lua @@ -0,0 +1,399 @@ +minetest.register_node( "birthstones:diamondore", { + description = "Diamond Ore", + tile_images = { "default_stone.png^Diamond_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:diamond" 1', +}) +minetest.register_node( "birthstones:alexandriteore", { + description = "Alexandrite Ore", + tile_images = { "default_stone.png^Alexandrite_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:alexandrite" 1', +}) +minetest.register_node( "birthstones:amethystore", { + description = "Amethyst Ore", + tile_images = { "default_stone.png^Amethyst_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:amethyst" 1', +}) +minetest.register_node( "birthstones:aquamarineore", { + description = "Aquamarine Ore", + tile_images = { "default_stone.png^Aquamarine_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:aquamarine" 1', +}) +minetest.register_node( "birthstones:emeraldore", { + description = "Emerald Ore", + tile_images = { "default_stone.png^Emerald_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:emerald" 1', +}) +minetest.register_node( "birthstones:garnetore", { + description = "Garnet Ore", + tile_images = { "default_stone.png^Garnet_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:garnet" 1', +}) +minetest.register_node( "birthstones:opalore", { + description = "Opal Ore", + tile_images = { "default_stone.png^Opal_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:opal" 1', +}) +minetest.register_node( "birthstones:peridotore", { + description = "Peridot Ore", + tile_images = { "default_stone.png^Peridot_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:peridot" 1', +}) +minetest.register_node( "birthstones:rubyore", { + description = "Ruby Ore", + tile_images = { "default_stone.png^Ruby_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:ruby" 1', +}) +minetest.register_node( "birthstones:sapphireore", { + description = "Sapphire Ore", + tile_images = { "default_stone.png^Sapphire_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:sapphire" 1', +}) +minetest.register_node( "birthstones:topazore", { + description = "Topaz Ore", + tile_images = { "default_stone.png^Topaz_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:topazore" 1', +}) +minetest.register_node( "birthstones:topazore", { + description = "Topaz Ore", + tile_images = { "default_stone.png^Topaz_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:topaz" 1', +}) +minetest.register_node( "birthstones:zirconore", { + description = "Zircon Ore", + tile_images = { "default_stone.png^Zircon_overlay.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "birthstones:zircon" 1', +}) + + + +minetest.register_craftitem( "birthstones:alexandrite", { + description = "Alexandrite (January)", + inventory_image = "Alexandrite.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "birthstones:amethyst", { + description = "Amethyst (February)", + inventory_image = "Amethyst.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "birthstones:aquamarine", { + description = "Aquamarine (March)", + inventory_image = "Aquamarine.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "birthstones:diamond", { + description = "Diamond (April)", + inventory_image = "Diamond.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "birthstones:emerald", { + description = "Emerald (May)", + inventory_image = "Emerald.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "birthstones:garnet", { + description = "Garnet (June)", + inventory_image = "Garnet.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "birthstones:opal", { + description = "Opal (July)", + inventory_image = "Opal.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "birthstones:peridot", { + description = "Peridot (August)", + inventory_image = "Peridot.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "birthstones:ruby", { + description = "Ruby (September)", + inventory_image = "Ruby.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "birthstones:sapphire", { + description = "Sapphire (October)", + inventory_image = "Sapphire.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "birthstones:topaz", { + description = "Topaz (November)", + inventory_image = "Topaz.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "birthstones:zircon", { + description = "Zircon (December)", + inventory_image = "Zircon.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + + + +minetest.register_node( "birthstones:alexandriteblock", { + description = "Alexandrite Block", + tile_images = { "Alexandrite_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node( "birthstones:amethystblock", { + description = "Amethyst Block", + tile_images = { "Amethyst_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node( "birthstones:aquamarineblock", { + description = "Aquamarine Block", + tile_images = { "Aquamarine_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node( "birthstones:diamondblock", { + description = "Diamond Block", + tile_images = { "Diamond_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node( "birthstones:emeraldblock", { + description = "Emerald Block", + tile_images = { "Emerald_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node( "birthstones:garnetblock", { + description = "Garnet Block", + tile_images = { "Garnet_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node( "birthstones:opalblock", { + description = "Opal Block", + tile_images = { "Opal_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node( "birthstones:peridotblock", { + description = "Peridot Block", + tile_images = { "Peridot_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node( "birthstones:rubyblock", { + description = "Ruby Block", + tile_images = { "Ruby_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node( "birthstones:sapphireblock", { + description = "Sapphire Block", + tile_images = { "Sapphire_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node( "birthstones:topazblock", { + description = "Topaz Block", + tile_images = { "Topaz_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node( "birthstones:zirconblock", { + description = "Zircon Block", + tile_images = { "Zircon_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + + +local function registerpickrecipe(name, durability, time1, time2, time3, maxlev) +minetest.register_tool("birthstones:".. name .. "_pick", { + description = name .. " Pickaxe", + inventory_image = name .. "_pick.png", + tool_capabilities = { + max_drop_level=0, + groupcaps={ + cracky={times={[1]=time1, [2]=time2, [3]=time3}, uses=durability, maxlevel=maxlev} + } + }, +}) +minetest.register_tool("birthstones:"..name.."_axe", { + description = name.." Axe", + inventory_image = name.."_axe.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + choppy={times={[1]=time1-2.0, [2]=2.0-time2, [3]=2.0-time3}, uses=30, maxlevel=maxlev}, + fleshy={times={[2]=time2, [3]=time3}, uses=40, maxlevel=maxlev} + } + }, +}) +minetest.register_craft({ + output = "birthstones:"..name.."_pick", + recipe = {{'birthstones:'..name, 'birthstones:'..name, 'birthstones:'..name}, {'', 'default:stick', ''}, {'', 'default:stick', ''}} +}) +minetest.register_craft({ + output = "birthstones:"..name.."_axe", + recipe = {{'birthstones:'..name, 'birthstones:'..name}, {'birthstones:'..name, 'default:stick'}, {'', 'default:stick'}} +}) +end + +registerpickrecipe("zircon", 50, 4.1, 1.6, 1.05, 1) +registerpickrecipe("topaz", 38, 4.1, 1.6, 1.05, 1) +registerpickrecipe("sapphire", 40, 4.2, 1.6, 1.2, 1) +registerpickrecipe("ruby", 40, 4.2, 1.6, 1.2, 2) +registerpickrecipe("peridot", 34, 4.0, 1.5, 1.0, 1) +registerpickrecipe("opal", 32, 3.5, 1.6, 1.5, 2) +registerpickrecipe("garnet", 35, 4.0, 1.5, 1.0, 1) +registerpickrecipe("emerald", 40, 4.2, 1.6, 1.2, 2) +registerpickrecipe("diamond", 50, 4.5, 1.8, 1.3, 3) +registerpickrecipe("aquamarine", 25, 3.2, 1.40, 0.90, 1) +registerpickrecipe("amethyst", 30, 3.2, 1.40, 0.90, 1) +registerpickrecipe("alexandrite", 30, 3.2, 1.40, 0.90, 1) + +local function registerblockrecipe(name, blockname) + +minetest.register_craft({ + output = blockname, + recipe = {{name, name, name}, + {name, name, name}, + {name, name, name} + } +}) + +end + +registerblockrecipe('birthstones:alexandrite', 'birthstones:alexandriteblock') +registerblockrecipe('birthstones:amethyst', 'birthstones:amethystblock') +registerblockrecipe('birthstones:aquamarine', 'birthstones:aquamarineblock') +registerblockrecipe('birthstones:diamond', 'birthstones:diamondblock') +registerblockrecipe('birthstones:emerald', 'birthstones:emeraldblock') +registerblockrecipe('birthstones:garnet', 'birthstones:garnetblock') +registerblockrecipe('birthstones:opal', 'birthstones:opalblock') +registerblockrecipe('birthstones:peridot', 'birthstones:peridotblock') +registerblockrecipe('birthstones:ruby', 'birthstones:rubyblock') +registerblockrecipe('birthstones:sapphire', 'birthstones:sapphireblock') +registerblockrecipe('birthstones:topaz', 'birthstones:topazblock') +registerblockrecipe('birthstones:zircon', 'birthstones:zirconblock') + +local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, ore_per_chunk, height_min, height_max) + if maxp.y < height_min or minp.y > height_max then + return + end + local y_min = math.max(minp.y, height_min) + local y_max = math.min(maxp.y, height_max) + local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1) + local pr = PseudoRandom(seed) + local num_chunks = math.floor(chunks_per_volume * volume) + local chunk_size = 3 + if ore_per_chunk <= 4 then + chunk_size = 2 + end + local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk) + --print("generate_ore num_chunks: "..dump(num_chunks)) + for i=1,num_chunks do + local y0 = pr:next(y_min, y_max-chunk_size+1) + if y0 >= height_min and y0 <= height_max then + local x0 = pr:next(minp.x, maxp.x-chunk_size+1) + local z0 = pr:next(minp.z, maxp.z-chunk_size+1) + local p0 = {x=x0, y=y0, z=z0} + for x1=0,chunk_size-1 do + for y1=0,chunk_size-1 do + for z1=0,chunk_size-1 do + if pr:next(1,inverse_chance) == 1 then + local x2 = x0+x1 + local y2 = y0+y1 + local z2 = z0+z1 + local p2 = {x=x2, y=y2, z=z2} + if minetest.env:get_node(p2).name == wherein then + minetest.env:set_node(p2, {name=name}) + end + end + end + end + end + end + end +end + +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("birthstones:alexandriteore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -40) +end) +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("birthstones:amethystore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -50) +end) +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("birthstones:aquamarineore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -10) +end) +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("birthstones:diamondore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 1, -31000, -300) +end) +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("birthstones:emeraldore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 3, -31000, -100) +end) +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("birthstones:garnetore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -70) +end) +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("birthstones:peridotore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -60) +end) +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("birthstones:rubyore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 3, -31000, -120) +end) +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("birthstones:sapphireore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 3, -31000, -120) +end) +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("birthstones:topazore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -80) +end) +minetest.register_on_generated(function(minp, maxp, seed) +generate_ore("birthstones:zirconore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -70) +end) \ No newline at end of file diff --git a/textures/Alexandrite.png b/textures/Alexandrite.png new file mode 100644 index 0000000000000000000000000000000000000000..3350983f53d117e2676cd173be57d1c2828bd4d6 GIT binary patch literal 299 zcmV+`0o4A9P)<^-RW|C9Vy6K9aQasyannA80Kv7XER zn=01*_qU$$-%hLje{uYt{~*Kh8sMng_1|8*1FXJ z5~crrEvNm@jokKMU%CS9g68})V1r;`0usj?h#&(%3PHAlT$CNY<^Qy%`(W>Z!US)4 zfSg#DbsTI9$lvQ{{{S1%RdyL1CJs8Cgab6vbrD#h0(a(r1L?~D6Kik%Hx{k=?`=K> x>>{FK1fHufYj502!TXCXWh8PNGzH@8cJ literal 0 HcmV?d00001 diff --git a/textures/Alexandrite_overlay.png b/textures/Alexandrite_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..be4b8a5d0c52e25597cfe3aa41180d4775701214 GIT binary patch literal 297 zcmV+^0oMMBP)Fg8pLh(D#_ z?ti>a1YwvfV77q_C&{lM13;Qv3(vv5LzW@P-XLg5X6PoYk|0;Wyn;3KVZhUL(*K-@ zt^dQE=Kpsw=>6YQarHm8@WJcsNY_RGEmfQTi!#LhR~IS(v(*^#|05fMRU^oW$bL7F zsRX+M#>Q(a$QC<^cCZFnhP3~LQX+;cK(;7wXZ|-5t;T5pEJi>WmQFBSV9H+y#@M0? vBnHw5ixI5Rsl{6i_6Ep6e9lJ>FNy&G?Gwtlu2nU*00000NkvXXu0mjfiWGh- literal 0 HcmV?d00001 diff --git a/textures/Amethyst.png b/textures/Amethyst.png new file mode 100644 index 0000000000000000000000000000000000000000..e36b3c607f9efd6deb8c7e729fa3fe5475eef668 GIT binary patch literal 441 zcmV;q0Y?6bP)9y8`wPF$ zxK6u4iv|ueF!TM+H)qZe{mXHY_&~sTj!f_Y+2uNZB~JNk$V@%KO_!M0)ZwBWX0==D zAtC7iapMg{n4n|$=?oryRvjc_tineH%uogfTE!wYU?Bx_RKav_x;vy4dqdLv z%zzTcDFq$HVW%C~Xb&6aCc?TpuOpoyxj+k1Z40B6XMn=<314B2K`W5iLA?JF!?X>r zq5M5$(|e1o;}fxgYk27pS=%cMlPp@|%tc7F-Uf`(Zf6(!;THt-6^u}jqsDi?5p&DGD(DvBjSfCNBd@en&mIh*QwLSz>JJNJW$66_?3Nh-swX{hhasI!U%!#k|p jTyjqlL2Chj`tiO1rbwv|rA&N@00000NkvXXu0mjfYvjEu literal 0 HcmV?d00001 diff --git a/textures/Amethyst_block.png b/textures/Amethyst_block.png new file mode 100644 index 0000000000000000000000000000000000000000..31f125c2bff5fef6acd79e688f9b3cfbab0c3907 GIT binary patch literal 288 zcmV+*0pI?KP)T>ujj`Q}toK~-& z;NM=4WvBZL?~i(pGZ_SsHG6{$&b0}=1}D@2WOS;TJSreLiBj3g8{Nj&N!jkGpq7i0 z6V|$pJwBz#B=7XOn mC04S(*U0_u$T+W09?Ta3^qB5-ZoiBG0000iR*cM}5IsR%mp)4|T>Kzy4 z83V0vQFXKU8j=Tx_zky-8CU43Ste>K5|9^MY05Kxv3M}ZWn&gqX6QFBW0O&CT0i5L z749luXsaG3s@$mznu>m6(EOf={yBpuUUFLQp~wTSnl{LIzoQ<`;nojV1|&UOB+T1{ z59R5#tfIE$@zy5klxeOveI)JJA#Pu)47k>@%8dGxgsn(Ox4@KZn{LfTx1>m&{f77G z!k=@vrG6l2%4zn)v`Yciuz^#u#O&+8AMQCfRu%-0ZPMN_!TIJiPU{>U_Stf;&-Mym z^CGUsxm}>!P@=Q8plzMTp^I1CWRW<%jV1byFVWTVW>*(7mo&TcxMUJVpV}ATkO}&a ztl_J=Px{i%UQNjQ2!~{F*W4hW1*O#QO44wIbvud8m$pYcF4FB};egPumz4|NBJz@X=002ovPDHLkV1iS(^jZJ_ literal 0 HcmV?d00001 diff --git a/textures/Aquamarine.png b/textures/Aquamarine.png new file mode 100644 index 0000000000000000000000000000000000000000..fe23af17eacaaadc944c36b7116a65ab05a52f7f GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`b3I)gLn>}1CrIpBkp8Itt@H8! z%^BNvb|2VsiWgWDcuW}1 zvF&PGps2uVu)NvS_1M9^jE5_D8Gj2elXUsre&DCU;g4;sXT&yKc9b}2u)6y?$8Lt3 z`*~QGaxgdKM3g+@WsaC~@Ud(LLl1v{RFbgJ9czQ|iIb%|i@sf8WB9OTZ->QYDH~48;wb1Nx z&UQK$JM49yKkhQe#n~7Pf*!PZJyR?dBmt|?)CD`LXXOM_R0<+_Ce|47BKIV=*k*=j zhwN0u?WcoR%VN8&lA_8WD!P+bB9a91SXdpSb;obVCPh23Qqn|MIww%A${0nPBnj%137ZCPvk``eARWYf{_4ijElo00004ZLn>}1CoB-VU{~_T{`MW$ z|0gf$Y%P?IFz#Zs75?AM!+J5HP=Pn7{W3#aQ_v2k8Eyu#w^_^>_H#FOIkGL-&5@Jf zr8c82anT;;Fb*S;mPWP%Hyy4En6NBicviAu*$Ims<_Qw(6%*8Gp-)ZZi#Jp6JK!P5D&wq#EYHgJPCnp{pAZ74eV^PI+-r8uxuAye^z06 zlaq9;V33xJXUT>Yt{=@$Fl1yMdF_*NW5F>Noh=g$&aGgIWb2B`Vq|#0#+du0Yh?t` Oa}1uYelF{r5}E*8A!L96 literal 0 HcmV?d00001 diff --git a/textures/Diamond.png b/textures/Diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..7976ee59b992fbd2d3c37e9de5d836956dc3f8d2 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`^F3W0Ln>}1CrGeLJh*dv`+t7> zsxS5D-`@VeJ!T)zF$KdWDaToQwSPFS@Az@7 zEpyczL*_H>CmVU#PTu|Vk@>Q~1YZTu8NCWe6{^0j3{Ef<;GKN@rR)qv1=bT%i4tn< z<}wau%_4{Aa34}we}G3tODthqFVdQ&MBb@0D>!1NdN!< literal 0 HcmV?d00001 diff --git a/textures/Diamond_block.png b/textures/Diamond_block.png new file mode 100644 index 0000000000000000000000000000000000000000..229f453599cd7d7b8811794b86ffc59cf39c1f4e GIT binary patch literal 314 zcmV-A0mc4_P)vilhmWE~E-JVj+SEL4sw%892*jdBwb)*}Zq}?99H}|6i_Y zyT5bW_V=gl`TJ|w=JTUhF<4~)L0`hd@zARYGbw__$4!8%{oD2a^`%$HkMF0p#H3#w z0>(s52CRd48kA-V1}Sr2I7D;c5mDS zra=nO4Y>OI4_MQz0|&u0iYq{-f@}v#f(${{3^EL6D@Y#3#_9!Jeup_3WC_RsLSY4W z6}E67DmFki!U7fKccL^QdjS?EFoTG4Zsq(1|B;;y3QVkl1q2wb!e#)jgqGIR3wG55 z^uz>mGBM!-i%NoCLJx6}0k~2sRs&!O3*D8t!UY46q?i%_0H|gg+()F0=Kufz07*qo IM6N<$g1wAn+yDRo literal 0 HcmV?d00001 diff --git a/textures/Emerald.png b/textures/Emerald.png new file mode 100644 index 0000000000000000000000000000000000000000..a3b84dc5a4593fbe8437138413598f00f1ffe13e GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vpiiKLn>}1CrHdW(Du;2nO%UL zp-|*{{Uu%x@&Ej0ENKnQ6Sk%N@ZXa*!OeJuc8r8V+f2usEQ}}IW-uOec*A^z&0!6n zs4|Dl0<)$KVpjxoSBQ6fV>@%wV0Q09HYwrk2FZ|StyzjuN7|UruyzG7KUvro;l!(U zOIksC>O!^^N=Ml)Dohbg+H7)#VG`qs{kuF89mEV8q>M5c83bNLCFii1$pc-<;OXk; Jvd$@?2>>GpMNI$z literal 0 HcmV?d00001 diff --git a/textures/Emerald_block.png b/textures/Emerald_block.png new file mode 100644 index 0000000000000000000000000000000000000000..e034ca41f38366320927437b2a4827c92a21b32f GIT binary patch literal 687 zcmV;g0#N;lP)%5fEcGC~ltJiI#?Gb`z7d054nfZQAfo}t|9HP?QLW+;Ilk71 zP%fkG^gxUzgC@cbQd;rxp z>MT5!&@nfe2Bw2DWzmR&NMNzcsifwaO*=^s>mirQj2Q)E@1mNN5JUxK@zk$To!&Ua zJ=1FA2eO@b<@RIT>f#+9h5CK?62TH&y`6?a6{7VNt{ zPTrB3JZV%0tgaUv6VZw&4wH4A-CUx{2xKg18rYPST~gPW<81k(Em#$GvND&5XV*4e z87hU0_zj)nkv@&+Og8;OxsyA+=c$o0MZ8vN$oZ+*oigJaV0;@NQ{C1u>b?)zu9H@t zkp*)<*gGe~qH6RLkP|UID!-i3>PHdL2jrXY02w8}4cZguPV9`a(YB99FuqW3=6}t` Vv9txxTsi;%002ovPDHLkV1lzWMaKXD literal 0 HcmV?d00001 diff --git a/textures/Emerald_overlay.png b/textures/Emerald_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..e3dadadcb073f7ad21b1f41963cead99f37c4cfe GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`n>}3|Ln>}1CrFeu>~?x=@7#2t zKIW6p&rkmyC04V{@e}`l{=vZy^A#H&+J}|C5NpU~&1};Akk}ycfayqJ%>O`><{x?) zY=>177*d!|FeIC_DtJ4*I&&dbjA83VA>TtlZF3hNU~cdAXlyfOJD@N{^bv1H!lH~1 zjz$t9Y!-`evUhVkuldpM;w9K7@Kzn**khDUXVt^YSqEqO4@v8ckd+2maCWp?ejMY&wp z_FO&o_P>kg(*N97c>mA;(65qnz{S*b!{$V`GvVe8yE`=YALePOWKOwIWXpZXOqqE? k+g(4qgtLoZ_89=3vp!+s84)j6pko+3UHx3vIVCg!0LDB?CjbBd literal 0 HcmV?d00001 diff --git a/textures/Garnet_block.png b/textures/Garnet_block.png new file mode 100644 index 0000000000000000000000000000000000000000..82e3403d3558dc077bf3756958df5298dfbbdfab GIT binary patch literal 326 zcmV-M0lEH(P)an_vlJ$>)&VDx@& zXJ>bIufF%YcHe$>X+5B zot_sRJ_|8O@n0#o*vrg zV@;}5NaCI#Jz)%HLZlUZF_=#AlE4rHCSZamVABg@tVYiyqFgT<6Dx0D;IRc%fQWaa zdoX5o6={cHlWp`gM!W2!R_EMRPYE!`_W{*$xxA%iqAw1!_vOOe*&=z{Ah?q8R*p;e Y3mBI=|N0PsdH?_b07*qoM6N<$f*A&jH2?qr literal 0 HcmV?d00001 diff --git a/textures/Garnet_overlay.png b/textures/Garnet_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..528b21461f246e736d233da005b8321936cedf34 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`r#)R9Ln>}1CoEvMcqjf*zQr?) zBWb;PF+*|_TaH2bpZ%vVO0SVPV*gN{^E%I@!>c8i6waGv*X66goRFko=JPgBU4Dl} z7o+giD+lx%Bn{&4GPL&RF?3m+VMtl7cYU+NM#)H-qh%?a6JDBhdrf$#klq~Q9bl-p z|1gu}a>Wf9Et)NroJZo8W%Kdbh zyUCeUiHq&?S{x;oaM+q9{9}{kDdP1LZ%}dUDo`z*jZXrf9 zYdy8|`4#&%dF?d30;93fBLdsa=T>XHT8%B^PXWHl-jxWa5`k+7sF_q_ryD|A#C?an z)sX!{H@TBgw+P8iLQV>iO(E?Y5~CnZhFF(SU61U1AL}7NxB|jfh)s#u=2VK4NPmBrd^$qe%~NM;d$P{WHLLg%}1pf5o2F6Gs!-L1ZcjzQj&@A5K5t q318{uqo0>*_DE;=)mHx9f9Dg|vS0BGrM?CL0000GecyNEx(|Eh5VF6MbCOhq*g&c^l46eh zHhZXyWwJ&fckrVJUmgfMkR{)5&s}gW>6=avLI6%LeJoH-jj3ql#oAMNAUlOI9GZr zkD#2;HnUEsF*QP@MhN3EjgyB$Dw6!iQA&&Plz=4o5KvKS@C2T5O6n+*1}+o<7JSz0s2&d7_FlbV zr%n8&4J?W$EDHnkOAV{Df%W+r`@9J+Ga<4TqWqnJc*rjIaAaM(_yZf=!YX;e{8Yz` z0PA94ay4LIo-n-MEH!!?C z!@4%{b7^rWOjh*Z6hi|19)#P0>vHRXi6xsfW%hASGq>F@0XN3CI_#^7#f6Cq_9`Dj z7dCIA-$zgaoHuNJE+D`nV0eB)kF|GiwFh8yYp?_+AYgay!Y@j|1QjnF!t=UtoDb|> z6TgDBD+8nK9|EfQx>eD=*D&~(CES~s-&@#T+YskI0V7o0*oGqpIJ#`g;T8Ks0~?2( z7ggB0icwz0;9A4z&L-ZPSY6-PybfeB;G-)6yyJ&(jD5gkr-o%% z!#B_Vo5!~(Ua`&FaI+p{HbRnFsQ7$UPV|jKWDzug<8|O4-XRDIb}#UbFF3L{d-;x| l?(l;3A^28g!iUFO{2w^ugs*MF(v1KB002ovPDHLkV1k%eS@Hk? literal 0 HcmV?d00001 diff --git a/textures/Opal_overlay.png b/textures/Opal_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..6db641d66c559873f6cc1c0f42e8a18d6d1fffa2 GIT binary patch literal 317 zcmV-D0mA-?P)5-1ZW01Z{s9T0?){s6&=HH>5M&=5nwt*hTWrzqB zgm00$2B|Np9BGIu2y7tCNGA)q2or60NGM5&^c7X&K!6DK9iWB}1CrHFKY;1YB|C7nK z|A%h!{FhXg{O2uh{5PE=@yB^F_Jb9stFILNXO}!MnJHuj%Tm!vtP~+Y+A^%$i`}A(P|4!RPES>)zDrKIAOtzJW zUvkaZe~@jbb0Np7w=B%UOC;Bvkj`qbU!_>VEW|hA@B7{-to2GU4T%%14@FlbC$caz Yk literal 0 HcmV?d00001 diff --git a/textures/Peridot_block.png b/textures/Peridot_block.png new file mode 100644 index 0000000000000000000000000000000000000000..112f81b2c7e0122984082e922a1d0fcbfa443036 GIT binary patch literal 296 zcmV+@0oVSCP)!HJiLIvoT@_Aoy4Mf059N;Ws=M0wz(oQcTKa&Zj#FJeQB`s=hpZP zpW5|%ANnPOG!U2Y?O&%R&qLgEj39dk!4wFvCW65)Id~MviP&d;0CF|^pLff*N`SKr zlYp#IRRIci0}!z|TPyW6U0 zyRKKSSfmFN17jbRV4z$G>{WSJ0>|_1#`$LgQOJ|ZX!E*`!v>Qv389y#Kw8bFb!^)` uAo_VxkbrgbzsC65~1m0000}1CoE9iaCgCn`AN=G zmTx@BJMm58f&2yklotM1;QjSBY02$1L5Kg!r!e=pnX#m3IKFSlVb5gKY`b`Zt>KBI z#QJzgDMyJkiA@g`!WE^vL>oj7?rD5ywPE{*oecsFtOf^XIQTKY@N1K7xUOn2dxGJ` zM8;r+3p@vJfSLUj~*&8B-;O67?Lm&0SK{sJn%88DkM6ga7H~=7|d* R?gP4&!PC{xWt~$(696TkRSEzA literal 0 HcmV?d00001 diff --git a/textures/Ruby.png b/textures/Ruby.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f8b955db01f91b521e7c054ce07044f1f8edf9 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`M?75|Ln>}1CrHdoFlIh{?*FS- z|ND&%{?x0hefuvo!GBBIf=Bw<4N~VBKSn9+J9^|_z4Qb-E)n$=KUtWaWj#Jtt$5ZP zU?bka&+t)nflVCqy-x1`_B>a&uym+9X9~!x@J%|NeZX$PBIAHwg%~!|1Z$D`EJ=IV zY#t;qOJ88Rx)UI_ae>i`772++^IJq7lydwcnv^4VkbyyBei>hNjB+~AKMbC(elF{r5}E)Prd<#K literal 0 HcmV?d00001 diff --git a/textures/Ruby_block.png b/textures/Ruby_block.png new file mode 100644 index 0000000000000000000000000000000000000000..23ffe35a2fcf5867afc4472388dfd345b61689d5 GIT binary patch literal 897 zcmV-{1AhF8P)NklQz)#z3oM%{)hgVr^iOUcyG?kcg}g2qx}3qAK#r%*RT=Nc{`9{B^2V8 zVQ^dUb&H!<*@V>7{50IlZaGvKtG4QDW3NvDEV9z{3fF|8&~Av zgkY`3#eOEt^Nt9w`%&&VuWz(#2Uy8?>_juTf2ic1Gd6o_dl@1=JLVVTc=dQ~^ zUTtQ^uCfyGp_~k5Ik|9_^`M9K)>ak`8_9wq`PFT0|=?2gtP*a*A$_0l<>cEp&rTbR%q_}DIweJ1yUK?*jF1zlsww6h&G z*_Z8@KxMesPZ?rHj(gyO2H}3kJJn4$_x<8Hb`^`%n^=DXcG?SN)1&cz_*2q0+aL1-H zB2=zPgByaXkh2ci)~&MWv{2M6D0^oDwRmoXJ-o=a^LDU@JxSbJ#Lbj6`n2kRG^sW# zdu)^)jm&F}wJoc5Du0Z8$h+$o`E%^DC>uGoQuvKG)=L&tmVG)EkCn1vWk$G93MyW` zmeRv)4CQ#Rlg)_9vT2AG2D`}+2Xb87a<0`Y+)W1LaFVri-iZaMm_or($0G?+^$`C9 X?!T>s831-~00000NkvXXu0mjfQShvq literal 0 HcmV?d00001 diff --git a/textures/Ruby_overlay.png b/textures/Ruby_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..05fc57c86948ab0be251aac56cc3b0369ce33b64 GIT binary patch literal 312 zcmV-80muG{P)gS~=H?UkkW5l|Bh z1slm*1um&Lk3p&nDu{a5@0zy?^rdJHq9O}{4los11&*#`1o9v@feyORyj5TW4~lnV zC}ai3Nbj8odIm&G4_l~Xb{)+RIsQ48$S6MA#xWW;M2+|EZ(ZU&Mfs}-wlkeMItrgC z@LZ%|aaw(-3Q8F7p-e%A-t9#YO0dM7JKi&;rCY>!KxCr0?0000< KMNUMnLSTZS)_djv literal 0 HcmV?d00001 diff --git a/textures/Sapphire.png b/textures/Sapphire.png new file mode 100644 index 0000000000000000000000000000000000000000..fdf4143d52b98476729945d2761b1a93126af55c GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`3p`yMLn>}1CrGenD16(m;C-;3 zt*zs~N_J|Z2U|AVMIN4m4sY0xx-d^jvR2r}lq9TiTc+b~!;RPWCrVjjp0S1IuwQ-9 za^zd{E-j`vP955Y4lI-0v^Czcma=YgoKWy6>BNz=4%v{6!Xe5hw5u}Kbv5i#_+~Gc ze;}tV^V08r4rTofq zF-rqM5QP`fB87sDg*N^GOHsrihLA{%;o@-;yoe$m90vyxA%b9GVPRuq;}6IWJ!fXW z^|pBI-0jYr_hxq8*8XqfHr^ZOmV#RFASfbKf){^g^RvbFSJT=1kv&c7d`R%>S0j^n z?X6kg`EGU(RzATk+9Gn!3fq5S`X_Lu;8F0zVX5p!f*I;+BlUYrPvTsTR85{^L6Hj1 z*qeJR!Kzl4qMppEO$1khDY2p_I2R-+szBBfnnDW}QPly7N^pzZkesus+Gl__&zz8a zitjEqX6!4$H3TJ=tinA|8z&@oX=t!?DY&60cgU}Ug_NpCfUp~A00000NkvXXu0mjfwAjaQ literal 0 HcmV?d00001 diff --git a/textures/Sapphire_overlay.png b/textures/Sapphire_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b2cacea757e6b78db013cb1eed6aff0a6aa661 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`dpunnLn>}1CrB(g@ZO%;*+8V4 zaig$+`=94YC;s>^VN~D^bI4&oa?2ry!>pxMab^Uw(m&@I#!a#OUbh`%ofsVEa2D;d z6p41^ZN7N0g{QMst4%V2>8QckjsH724&3JbM{g z7$g-=1Ub~aP|i`|J|NVqcxAuf|Bc53bW9u!8FUW#EGT^URlb~OXQJ^DeyLA>6+9em sQ4iRTY8>D`nWAsQd8~hr#6ebur@PAY8U7i50Q!T$)78&qol`;+0M>+8-2eap literal 0 HcmV?d00001 diff --git a/textures/Topaz.png b/textures/Topaz.png new file mode 100644 index 0000000000000000000000000000000000000000..bf6404ea28d0ebb224d90af00173642d3fd270fc GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`n><|{Ln>}1CrE5b_@~tPKl|G0 zf9}gWFL4CdeCoOS|Lty*fATg-EXxufS@1G>e(_IY&~C_dI({N+gO%j7mf3@ zodOOqrZITv`iURd!&GEv)KYHEQG&5UuJ;7j#mfwBYkvp{ h`55cmlWfyxV30j$-92v>hbGYV44$rjF6*2UngB;zQriFk literal 0 HcmV?d00001 diff --git a/textures/Topaz_block.png b/textures/Topaz_block.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd31795cfb2ac4c673eddd7ad3fca3fc5bf02cf GIT binary patch literal 280 zcmV+z0q6dSP)%S~Z!(f9jyDYBh+XxD#V7l>H9kOyQJK_NIF>SrIl1Gfl?b`uMk923dw z?_l(qPG-xq8#S{C)zL!WPKy`XJ?^VjP4aSWb9sJdHOUTn!HiX7<=L0$KN5jpWc?Ln>}1CoE9EvBULc{d<RB%87Fzhlh8FA z8`en9W;L*s=+)jbP0l+XkKrv_F& literal 0 HcmV?d00001 diff --git a/textures/Zircon.png b/textures/Zircon.png new file mode 100644 index 0000000000000000000000000000000000000000..5633910fbf152434d2bc5ef195dec6bd34d399a8 GIT binary patch literal 229 zcmV^P)A+V8b%*EG|! z?)Hq?dLOIHBbKKj7X9_(#GBz2RUt{-;w}=6|dyMvQ{sM>vkuOd{5(r{D z3PF^op{@#WbYVh>h2h0LWC%~h2%SLK=prrl8hNS0N6+YYy0AP!b@X3TB!teyfBjG{ flbaW}J{@}lMoTE_%K!hF00000NkvXXu0mjf<^5l} literal 0 HcmV?d00001 diff --git a/textures/Zircon_block.png b/textures/Zircon_block.png new file mode 100644 index 0000000000000000000000000000000000000000..a3740bae7673d4e03b440e4450cf0131f41fa41b GIT binary patch literal 331 zcmV-R0kr;!P) zu@V765JV^S2Y$gP2n0$-m4x)f>S6-1Oe_}5#1gS8F|j{6dU#vy1bw@EJ3Z6Wv$1|Y z8lk@5n(6t}RM$(c!r*vFa0ZHn6Wa9lyT3psBB}0l7D(FNZt^bJ5I_Z20D-*}1CrFemc>Lt>e{Q*d zf9yYBTmE0c%yX8b)I`(61|9xW7*Egp&#pbM;^o!zdxBwxl|XM2gNL%m zgb9orBo57XOE60eW+}2e;WTH~#JL=sIw!0)U?{3ksP4^RcIZmn*2JS=tt-II&=Ss& VeRRF!J)nCTJYD@<);T3K0RXj1RR;h7 literal 0 HcmV?d00001 diff --git a/textures/alexandrite_axe.png b/textures/alexandrite_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..842aa4fe66fbd60fa3fe928775f132bf2d4da1e6 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`d7dtgAr-fh6C}PIIF)s`ev_%R z^qPP9IX1udFMV2ci8nAX^UwNa*S^o6zg;%RW5@Z*OT2}pw|>XF7M`mQUAgoBVqg9L z<=bxf?oy13`g}mjaovZ_c5b^EH*VAVKX;17|LpAZD)GjVh6bx<&YPvl${;81V0H4w RM}45p44$rjF6*2UngHTNMMwYu literal 0 HcmV?d00001 diff --git a/textures/alexandrite_pick.png b/textures/alexandrite_pick.png new file mode 100644 index 0000000000000000000000000000000000000000..95524d25beccdec08ecc79280623a1d2b2627420 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vpiiKLn>}1CoB-#5VH3FdhN(R z@iXm(drq2p%(4~CnZV&JazkOl!4ydrBZf4N69M6}o&Ps((^?{Z?6|-u`If&vq6gb7 zH47)@b!f>Su6NetvrzLiK5Sq8Zvi!s{T!0Dw)RMmM}@mRfA0++c?Z2?2!Xo%55H2hLc5+uk50VYk;m~@O1Ta JS?83{1OTJDNeuu1 literal 0 HcmV?d00001 diff --git a/textures/amethyst_axe.png b/textures/amethyst_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..fa581d85ea1b5c3ce1e0ad652fb04249b718d716 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`A)YRdAr-fh6C}Pg%vOAAe{)u8 zMbv+8!<1&jle4DISoOcz;0Wu)|4SvhJk49CD)PN!5}2*y>@dq=9mB;GNrCLupYD5h o3cr!vWI9=tdGV~5D`x_&xi4kzopr0Ax-wCIA2c literal 0 HcmV?d00001 diff --git a/textures/amethyst_pick.png b/textures/amethyst_pick.png new file mode 100644 index 0000000000000000000000000000000000000000..3d599631e2092f7cf2bc5ab0943d05d4358d7824 GIT binary patch literal 245 zcmVc(Z r^?&XZ3q?JJXk*KS5Mx`@U@nG<$DG`sCDgTe~DWM4fxX(0P literal 0 HcmV?d00001 diff --git a/textures/aquamarine_pick.png b/textures/aquamarine_pick.png new file mode 100644 index 0000000000000000000000000000000000000000..6e85a21b9936ddd9a4bc01c5a870a19eef975659 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vproLLn>}1CoB-V5ViOJ{vSQ2 z|0PfD{=a$K*1>nfOCP>k%k?M{+F$4`rq8U^n?M=3dxq( zQk4UGML~~L?h1t3wf%1kk}2?+^eiG;bi>+Hi{^ZAP>VF~DtCD3)T1adYa;XX35*t| zhj|!ww&mC%a$rlj&BMx2v^&*u@hR&QKxZ;| My85}Sb4q9e0IAkgRsaA1 literal 0 HcmV?d00001 diff --git a/textures/diamond_axe.png b/textures/diamond_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..fe6e449de5a4a687e18339f77239fa72eb2e34c7 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`ex5FlAr-fh6C}PQJYD_$|H*56 z{vE#lzguqq5C3V33cdoNgTe~DWM4fCtWg4 literal 0 HcmV?d00001 diff --git a/textures/diamond_pick.png b/textures/diamond_pick.png new file mode 100644 index 0000000000000000000000000000000000000000..a90b7d81149120aa2e2c9dacb434ea449963a9ef GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`3q4&NLn>}1CoB-V@!{F)dV#o_ z|40A7ddvQAa&Ex8Q@#nzYIAr0+yD22q=D}=$Ia{Q8>Cqdm91*}-`u;@!<^>{*M!wE zr78#Xih>@g+!YA5Yy008Bvars=~+bd)c}CNS%i!ti=d#Wzp$Py$$5+t+ literal 0 HcmV?d00001 diff --git a/textures/emerald_axe.png b/textures/emerald_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..5a9362f0c5a8bd19ea57476ad110a4d5779b7ccf GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`-kvUwAr-fh6D0m9%zSMBbC&VX zf5u0Q{;HoBnD8v2?LUuT0MDbzJPA^c>lhL@@i1mGRW`;jC*_9zv(_wh+T*w_t?0mt fw5qISA`A@vCybwqvaDYQG?u~B)z4*}Q$iB}TUabR literal 0 HcmV?d00001 diff --git a/textures/emerald_pick.png b/textures/emerald_pick.png new file mode 100644 index 0000000000000000000000000000000000000000..b63937000286b5251c0b99fd4cb99b684d9f5b49 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`^F3W0Ln>}1CoB+4c=O=b`GAuR z2U41q7CbZ2@MCzyre?(J-LOkV%IWq>u7CVy(|-BSb94yb@yg>5d*x-%&dDXtAwMPl zz3wn--ndYNJ(KOotyO=vPfYx$uYZDzQ#^=CVu|F@la?0@6x9+8O_Zf4IUf+UFl}Zy zA?;ehb6~Y3n?u}zXS|C{4)ZvCXVa+i=u%3_7sxd>bJ%qDMMKW)g$xW$r$bT>I5Xb{ PI+elG)z4*}Q$iB}QY26_ literal 0 HcmV?d00001 diff --git a/textures/garnet_axe.png b/textures/garnet_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..9040c0822abc113c4e7b4cad4d57b75fc412f54c GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`A)YRdAr-fh6C}PQw9k84zsYp| zmh#{HhqRww^)P?p7x1Kh!dr#2lP!MypZrv42BU)1lS$i8Mn2ielEx9qcI4KoKjlG> q{_q=h}1CoB-Nc=-53{qC** z{)<|1{ddgi;%$;-TXfQhV@Y8X2fM`iY2yF#muvm7zY)<@a@b*A#`Clv?^h`^mQ9>2 zr2evP#V5l**9BAAlASgAF7b414gHy~eE3g%+yqfMJ(WziG9%B8E$bvLeK?Ns=$$>W zPQlxFlXl*5_W$bM#%CCM3K(4ZH3M6O_>SD_5uK1_%%*TVO@o1|L6YQCEbt{f1dn5@f(Q$0KN0?5$OiR+N%6_QsVsI-d{?-X0l>n eR5Lv_Qwjj`qg|C1HILQ+0000|r@&-1_X3{V-%@|`sER@yExv%qcg@n|- z`RZT(-#K-TqWp^)J7LcDuqlMawvZP2b3!oQ2BLbekGIkSg;7f zMG!9_Rpx}(a!79v#?K>iq75w}Jozi4lRuE2eCGnC W|A}4HQZ$bM0000*qhjC#zkq-(9vCO9fcwVX6!S;F~*b%vsfv_SUiPxn1L oh2IEmGMy~Sym;2jl{10Xh@7^|-~B)T3($N9Pgg&ebxsLQ064=j(EtDd literal 0 HcmV?d00001 diff --git a/textures/peridot_pick.png b/textures/peridot_pick.png new file mode 100644 index 0000000000000000000000000000000000000000..522fe1a03da51a8b6461e0c314bc66160a1e8791 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`(>z@qLn>}1CoB+~V3+!Fe)@Jb znaQ~Vn-mS4Pa0?LeN*42>hwQx%iL8D{wE}_{QpFf<;XfKp@dtWos&zPLw-v9d);Bw zym6rjdnVhFTdV$TpP2YhU;o6f_~+ZyB_=PCym@kg18Xb$47E_>F2w}}itffb0UzCT zaL!qqe$hizvA7#PH}k|sCwSmps;$l&Sf=d#Wz Gp$P!bVoxIg literal 0 HcmV?d00001 diff --git a/textures/ruby_axe.png b/textures/ruby_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..ea90d654e1b6a0a9ed4f44155f7dfb17273380c9 GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`zMd|QAr-fh6C}PYnA7;s{^qRe z##x&icl60PFJm&D>dbqhZIh?j646zHEzu`US(dC6c-5Oz#M7}g^ym8}M?B}fH8`7c i^uUU=s;p%q3=E%Nn;M^-_5C!^U}1CoB-VasJ@PdQ)a* ziG0SSO}tE*^Ei(PH&zH(4aMpyms~-GMNM89rMUutnK&bm8`xCSMyyh&C zUUcN_hj{lXl6{_+WU^O(y6@KZbN?O%ZJQjAOFeI%s4aMAlW}9h8cAE96PI|57YNU1 z{9$tVKvv8>1vg_3okM923q_9C3#h3cos?r7=CJClL_^N(g$xWX4gTe~DWM4fK}b>W literal 0 HcmV?d00001 diff --git a/textures/sapphire_axe.png b/textures/sapphire_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a0d0a043a9f067599488ca5a30687057f59d9f GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Zk{fVAr-fh6C{`xyt8MW#r@y8 zK-;p-r!lLC{n4BMDZ5xw94rOc9WpoZdbaLr;#q&>)~Y|{L62H?HRPO4X$U;~<%*9c a14GSaQ$7=K`%^#@89ZJ6T-G@yGywoVnJY5@ literal 0 HcmV?d00001 diff --git a/textures/sapphire_pick.png b/textures/sapphire_pick.png new file mode 100644 index 0000000000000000000000000000000000000000..eb16b243c36a229883d8697117759196cae91559 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`b39!fLn>}1CoGVA@$>wF0QMtK z9b$gWXKLOwk*AaWQCJbLcWag(>+Umtp&#luY`jvxDdxx#gQxpf_p!_<3woq-S3otd z?Z4HcGX*}Ao<&4Y{cmP;=KoXH$b)(fEGC?@0_XB@-O0(=F=34)o72L!2}>nexIVh; z)}1{O*rTe`ahZp^yC|fzElB3Ss${KSMjhc#}1CoB-l$W8dce<=8u z;tZwcO_vqgrice7NO%~ZF%ZaIuJyzIM#L-oNIfRWXRDMM&CYmsPA+ktvP1IU>kgyC zhMu#Mb3^~#K4I{Gx_Am}JNpS&l}xuXqchenl1=L*ZFil##KWYJ-@r6k=PXOCV^7)) zZHL50r3{UuALUy-J>^wy_lQo&GG}1CoB;2`2FQw{h4m{ z|IF|2v0P4(ep2-COuayxB-^1BNtVkzMm#RJS91O1H=Fj$f1BevE1`s2o}H6RoS#@q z{CnMDblA{yR&s9WzuPAa{!bTA`OD9hA)w}IylJu{V|G=6zQp7;l57sMLe19v^q-bC zgRvsE!QZ$j>fkK9j*C3qQ4mdKI;Vst0HM)TI{*Lx literal 0 HcmV?d00001