From 6e171fcda66eee8d1336020f6f76211807cbf174 Mon Sep 17 00:00:00 2001 From: Noodlemire Date: Sun, 8 Dec 2019 20:48:27 -0500 Subject: [PATCH] update 1.0.1 --- README.md | 2 +- changelog.txt | 16 ++ mods/entitycontrol/init.lua | 8 +- mods/voxeldungeon/README.md | 2 +- mods/voxeldungeon/blobs.lua | 226 ++++++++++-------- mods/voxeldungeon/changelog.txt | 18 ++ mods/voxeldungeon/commoneffects.lua | 47 ---- mods/voxeldungeon/generator.lua | 24 +- mods/voxeldungeon/init.lua | 1 - mods/voxeldungeon/items.lua | 96 ++++---- mods/voxeldungeon/mobs.lua | 2 +- mods/voxeldungeon/particles.lua | 90 ++++--- mods/voxeldungeon/plants.lua | 2 +- mods/voxeldungeon/potions.lua | 69 ++---- mods/voxeldungeon/scrolls.lua | 2 +- mods/voxeldungeon/smartvectortable.lua | 20 +- .../textures/voxeldungeon_particle_toxic.png | Bin 5684 -> 0 bytes mods/voxeldungeon/tools.lua | 19 ++ mods/voxeldungeon/utils.lua | 63 +++++ textures/voxeldungeon/default_cobble.png | Bin 0 -> 1570 bytes .../voxeldungeon/default_desert_cobble.png | Bin 0 -> 1778 bytes textures/voxeldungeon/default_desert_sand.png | Bin 0 -> 350 bytes .../voxeldungeon/default_desert_sandstone.png | Bin 0 -> 275 bytes .../default_desert_sandstone_block.png | Bin 0 -> 587 bytes .../default_desert_sandstone_brick.png | Bin 0 -> 630 bytes .../voxeldungeon/default_desert_stone.png | Bin 0 -> 280 bytes .../default_desert_stone_block.png | Bin 0 -> 4368 bytes .../default_desert_stone_brick.png | Bin 0 -> 4420 bytes textures/voxeldungeon/default_dirt.png | Bin 0 -> 1773 bytes textures/voxeldungeon/default_dry_grass.png | Bin 0 -> 1506 bytes textures/voxeldungeon/default_dry_grass_1.png | Bin 0 -> 219 bytes textures/voxeldungeon/default_dry_grass_2.png | Bin 0 -> 265 bytes textures/voxeldungeon/default_dry_grass_3.png | Bin 0 -> 295 bytes textures/voxeldungeon/default_dry_grass_4.png | Bin 0 -> 316 bytes textures/voxeldungeon/default_dry_grass_5.png | Bin 0 -> 339 bytes .../voxeldungeon/default_dry_grass_side.png | Bin 0 -> 1433 bytes textures/voxeldungeon/default_grass.png | Bin 0 -> 1528 bytes textures/voxeldungeon/default_grass_1.png | Bin 0 -> 300 bytes textures/voxeldungeon/default_grass_2.png | Bin 0 -> 336 bytes textures/voxeldungeon/default_grass_3.png | Bin 0 -> 418 bytes textures/voxeldungeon/default_grass_4.png | Bin 0 -> 503 bytes textures/voxeldungeon/default_grass_5.png | Bin 0 -> 628 bytes textures/voxeldungeon/default_grass_side.png | Bin 0 -> 1530 bytes textures/voxeldungeon/default_mossycobble.png | Bin 0 -> 2012 bytes textures/voxeldungeon/default_sand.png | Bin 0 -> 1236 bytes textures/voxeldungeon/default_sandstone.png | Bin 0 -> 258 bytes .../voxeldungeon/default_sandstone_block.png | Bin 0 -> 4548 bytes .../voxeldungeon/default_sandstone_brick.png | Bin 0 -> 439 bytes textures/voxeldungeon/default_stone.png | Bin 0 -> 233 bytes textures/voxeldungeon/default_stone_block.png | Bin 0 -> 498 bytes textures/voxeldungeon/default_stone_brick.png | Bin 0 -> 4196 bytes .../voxeldungeon_armor_cactus.png | Bin .../voxeldungeon_armor_cactus_preview.png | Bin .../voxeldungeon_armor_cloth.png | Bin .../voxeldungeon_armor_cloth_preview.png | Bin .../voxeldungeon_armor_demonite.png | Bin .../voxeldungeon_armor_demonite_preview.png | Bin .../voxeldungeon_armor_diamond.png | Bin .../voxeldungeon_armor_diamond_preview.png | Bin .../voxeldungeon_armor_leather.png | Bin .../voxeldungeon_armor_leather_preview.png | Bin .../voxeldungeon}/voxeldungeon_armor_mail.png | Bin .../voxeldungeon_armor_mail_preview.png | Bin .../voxeldungeon}/voxeldungeon_armor_mese.png | Bin .../voxeldungeon_armor_mese_preview.png | Bin .../voxeldungeon_armor_plate.png | Bin .../voxeldungeon_armor_plate_preview.png | Bin .../voxeldungeon_armor_scale.png | Bin .../voxeldungeon_armor_scale_preview.png | Bin .../voxeldungeon_armor_steel.png | Bin .../voxeldungeon_armor_steel_preview.png | Bin .../voxeldungeon}/voxeldungeon_armor_wood.png | Bin .../voxeldungeon_armor_wood_preview.png | Bin .../voxeldungeon}/voxeldungeon_blank.png | Bin .../voxeldungeon_buff_blindness.png | Bin .../voxeldungeon_buff_burning.png | Bin .../voxeldungeon_buff_crippled.png | Bin .../voxeldungeon_buff_frozen.png | Bin .../voxeldungeon_buff_herbal_armor.png | Bin .../voxeldungeon_buff_herbal_healing.png | Bin .../voxeldungeon_buff_levitation.png | Bin .../voxeldungeon_buff_poisoned.png | Bin .../voxeldungeon_buff_rooted.png | Bin .../voxeldungeon}/voxeldungeon_buffs.png | Bin .../voxeldungeon_foilage_caves_tallgrass.png | Bin ...xeldungeon_foilage_caves_tallgrass_top.png | Bin .../voxeldungeon_foilage_cities_tallgrass.png | Bin ...eldungeon_foilage_cities_tallgrass_top.png | Bin .../voxeldungeon_foilage_halls_tallgrass.png | Bin ...xeldungeon_foilage_halls_tallgrass_top.png | Bin ...voxeldungeon_foilage_prisons_tallgrass.png | Bin ...ldungeon_foilage_prisons_tallgrass_top.png | Bin .../voxeldungeon_foilage_sewers_tallgrass.png | Bin ...eldungeon_foilage_sewers_tallgrass_top.png | Bin .../voxeldungeon}/voxeldungeon_gems.png | Bin .../voxeldungeon_icon_caves_tallgrass.png | Bin .../voxeldungeon_icon_cities_tallgrass.png | Bin .../voxeldungeon_icon_halls_tallgrass.png | Bin .../voxeldungeon_icon_mob_albino.png | Bin .../voxeldungeon_icon_mob_bandit.png | Bin .../voxeldungeon_icon_mob_bee.png | Bin .../voxeldungeon_icon_mob_crab.png | Bin .../voxeldungeon_icon_mob_mimic.png | Bin .../voxeldungeon_icon_mob_piranha.png | Bin .../voxeldungeon_icon_mob_rat.png | Bin .../voxeldungeon_icon_mob_scout.png | Bin .../voxeldungeon_icon_mob_skeleton.png | Bin .../voxeldungeon_icon_mob_statue.png | Bin .../voxeldungeon_icon_mob_thief.png | Bin .../voxeldungeon_icon_mob_wraith.png | Bin .../voxeldungeon_icon_potion_frost.png | Bin .../voxeldungeon_icon_potion_haste.png | Bin .../voxeldungeon_icon_potion_healing.png | Bin .../voxeldungeon_icon_potion_invisibility.png | Bin .../voxeldungeon_icon_potion_levitation.png | Bin .../voxeldungeon_icon_potion_liquidflame.png | Bin .../voxeldungeon_icon_potion_might.png | Bin .../voxeldungeon_icon_potion_mindvision.png | Bin .../voxeldungeon_icon_potion_paralyticgas.png | Bin .../voxeldungeon_icon_potion_purification.png | Bin .../voxeldungeon_icon_potion_strength.png | Bin .../voxeldungeon_icon_potion_toxicgas.png | Bin .../voxeldungeon_icon_prisons_tallgrass.png | Bin .../voxeldungeon_icon_scroll_enchantment.png | Bin .../voxeldungeon_icon_scroll_identify.png | Bin .../voxeldungeon_icon_scroll_lullaby.png | Bin .../voxeldungeon_icon_scroll_magicmapping.png | Bin .../voxeldungeon_icon_scroll_mirrorimage.png | Bin .../voxeldungeon_icon_scroll_psionicblast.png | Bin .../voxeldungeon_icon_scroll_rage.png | Bin .../voxeldungeon_icon_scroll_recharging.png | Bin .../voxeldungeon_icon_scroll_removecurse.png | Bin ...voxeldungeon_icon_scroll_teleportation.png | Bin .../voxeldungeon_icon_scroll_terror.png | Bin .../voxeldungeon_icon_scroll_upgrade.png | Bin .../voxeldungeon_icon_sewers_tallgrass.png | Bin .../voxeldungeon_icons_sewers_door.png | Bin .../voxeldungeon}/voxeldungeon_item_ankh.png | Bin .../voxeldungeon}/voxeldungeon_item_bomb.png | Bin .../voxeldungeon_item_demonite_ingot.png | Bin .../voxeldungeon_item_demonite_lump.png | Bin .../voxeldungeon}/voxeldungeon_item_dew.png | Bin ...oxeldungeon_item_food_chargrilled_meat.png | Bin .../voxeldungeon_item_food_cooked_meat.png | Bin .../voxeldungeon_item_food_mystery_meat.png | Bin .../voxeldungeon_item_food_pasty.png | Bin .../voxeldungeon_item_food_ration.png | Bin .../voxeldungeon}/voxeldungeon_item_gold.png | Bin .../voxeldungeon_item_honeypot.png | Bin .../voxeldungeon_item_potion_amber.png | Bin .../voxeldungeon_item_potion_azure.png | Bin .../voxeldungeon_item_potion_bistre.png | Bin .../voxeldungeon_item_potion_charcoal.png | Bin .../voxeldungeon_item_potion_crimson.png | Bin .../voxeldungeon_item_potion_golden.png | Bin .../voxeldungeon_item_potion_indigo.png | Bin .../voxeldungeon_item_potion_ivory.png | Bin .../voxeldungeon_item_potion_jade.png | Bin .../voxeldungeon_item_potion_magenta.png | Bin .../voxeldungeon_item_potion_silver.png | Bin .../voxeldungeon_item_potion_turquoise.png | Bin .../voxeldungeon_item_scroll_berkanan.png | Bin .../voxeldungeon_item_scroll_gyfu.png | Bin .../voxeldungeon_item_scroll_isaz.png | Bin .../voxeldungeon_item_scroll_kaunan.png | Bin .../voxeldungeon_item_scroll_laguz.png | Bin .../voxeldungeon_item_scroll_mannaz.png | Bin .../voxeldungeon_item_scroll_naudiz.png | Bin .../voxeldungeon_item_scroll_odal.png | Bin .../voxeldungeon_item_scroll_raido.png | Bin .../voxeldungeon_item_scroll_sowilo.png | Bin .../voxeldungeon_item_scroll_tiwaz.png | Bin .../voxeldungeon_item_scroll_yngvi.png | Bin .../voxeldungeon_item_seed_dreamweed.png | Bin .../voxeldungeon_item_seed_earthroot.png | Bin .../voxeldungeon_item_seed_fadeleaf.png | Bin .../voxeldungeon_item_seed_firebloom.png | Bin .../voxeldungeon_item_seed_icecap.png | Bin .../voxeldungeon_item_seed_rotberry.png | Bin .../voxeldungeon_item_seed_sorrowmoss.png | Bin .../voxeldungeon_item_seed_sungrass.png | Bin .../voxeldungeon}/voxeldungeon_item_torch.png | Bin .../voxeldungeon_items_shattered.png | Bin .../voxeldungeon_items_vanilla.png | Bin .../voxeldungeon_node_chest_back.png | Bin .../voxeldungeon_node_chest_bottom.png | Bin .../voxeldungeon_node_chest_front.png | Bin .../voxeldungeon_node_chest_icon.png | Bin .../voxeldungeon_node_chest_left.png | Bin .../voxeldungeon_node_chest_right.png | Bin .../voxeldungeon_node_chest_top.png | Bin .../voxeldungeon_ore_caves_coal.png | Bin .../voxeldungeon_ore_caves_gold.png | Bin .../voxeldungeon_ore_caves_iron.png | Bin .../voxeldungeon_ore_caves_mese.png | Bin .../voxeldungeon_ore_cities_coal.png | Bin .../voxeldungeon_ore_cities_diamond.png | Bin .../voxeldungeon_ore_cities_gold.png | Bin .../voxeldungeon_ore_cities_iron.png | Bin .../voxeldungeon_ore_cities_mese.png | Bin .../voxeldungeon_ore_halls_coal.png | Bin .../voxeldungeon_ore_halls_demonite.png | Bin .../voxeldungeon_ore_halls_diamond.png | Bin .../voxeldungeon_ore_halls_gold.png | Bin .../voxeldungeon_ore_halls_iron.png | Bin .../voxeldungeon_ore_halls_mese.png | Bin .../voxeldungeon_ore_prisons_coal.png | Bin .../voxeldungeon_ore_prisons_gold.png | Bin .../voxeldungeon_ore_prisons_iron.png | Bin .../voxeldungeon_ore_sewers_coal.png | Bin .../voxeldungeon_ore_sewers_gold.png | Bin .../voxeldungeon_overlay_greyout.png | Bin .../voxeldungeon_particle_flame.png | Bin 0 -> 794 bytes .../voxeldungeon_particle_grass.png | Bin .../voxeldungeon_particle_poison (copy).png | Bin .../voxeldungeon_particle_poison.png | Bin 0 -> 84 bytes .../voxeldungeon_particle_shaft.png | Bin .../voxeldungeon_particle_toxic.png | Bin 0 -> 6157 bytes .../voxeldungeon_plant_blindweed.png | Bin .../voxeldungeon_plant_earthroot.png | Bin .../voxeldungeon_plant_fadeleaf.png | Bin .../voxeldungeon_plant_firebloom.png | Bin .../voxeldungeon_plant_icecap.png | Bin .../voxeldungeon_plant_rotberry.png | Bin .../voxeldungeon_plant_sorrowmoss.png | Bin .../voxeldungeon_plant_sungrass.png | Bin .../voxeldungeon_terrain_features.png | Bin .../voxeldungeon_tiles_caves_bookshelf.png | Bin .../voxeldungeon_tiles_caves_floor.png | Bin .../voxeldungeon_tiles_caves_grass.png | Bin .../voxeldungeon_tiles_caves_special.png | Bin .../voxeldungeon_tiles_caves_stone.png | Bin .../voxeldungeon_tiles_caves_wall.png | Bin ...voxeldungeon_tiles_caves_wall_embedded.png | Bin .../voxeldungeon_tiles_cities_bookshelf.png | Bin .../voxeldungeon_tiles_cities_floor.png | Bin .../voxeldungeon_tiles_cities_grass.png | Bin .../voxeldungeon_tiles_cities_special.png | Bin .../voxeldungeon_tiles_cities_stone.png | Bin .../voxeldungeon_tiles_cities_wall.png | Bin ...voxeldungeon_tiles_cities_wall_decayed.png | Bin .../voxeldungeon_tiles_embers.png | Bin .../voxeldungeon_tiles_halls_bookshelf.png | Bin .../voxeldungeon_tiles_halls_floor.png | Bin .../voxeldungeon_tiles_halls_grass.png | Bin .../voxeldungeon_tiles_halls_special.png | Bin .../voxeldungeon_tiles_halls_stone.png | Bin .../voxeldungeon_tiles_halls_wall.png | Bin ...oxeldungeon_tiles_halls_wall_decorated.png | Bin .../voxeldungeon_tiles_prisons_bookshelf.png | Bin .../voxeldungeon_tiles_prisons_floor.png | Bin .../voxeldungeon_tiles_prisons_grass.png | Bin .../voxeldungeon_tiles_prisons_special.png | Bin .../voxeldungeon_tiles_prisons_stone.png | Bin .../voxeldungeon_tiles_prisons_wall.png | Bin .../voxeldungeon_tiles_prisons_wall_torch.png | Bin .../voxeldungeon_tiles_sewers_bookshelf.png | Bin .../voxeldungeon_tiles_sewers_door.png | Bin .../voxeldungeon_tiles_sewers_floor.png | Bin .../voxeldungeon_tiles_sewers_floor_slab.png | Bin .../voxeldungeon_tiles_sewers_grass.png | Bin .../voxeldungeon_tiles_sewers_moss.png | Bin .../voxeldungeon_tiles_sewers_pedestal.png | Bin ...oxeldungeon_tiles_sewers_pedestal_side.png | Bin .../voxeldungeon_tiles_sewers_special.png | Bin .../voxeldungeon_tiles_sewers_stone.png | Bin .../voxeldungeon_tiles_sewers_trap_alarm.png | Bin .../voxeldungeon_tiles_sewers_trap_fire.png | Bin ...oxeldungeon_tiles_sewers_trap_gripping.png | Bin ...dungeon_tiles_sewers_trap_paralyticgas.png | Bin ...eldungeon_tiles_sewers_trap_poisondart.png | Bin ...xeldungeon_tiles_sewers_trap_summoning.png | Bin ...oxeldungeon_tiles_sewers_trap_teleport.png | Bin ...oxeldungeon_tiles_sewers_trap_toxicgas.png | Bin ...voxeldungeon_tiles_sewers_trap_wornout.png | Bin .../voxeldungeon_tiles_sewers_wall.png | Bin .../voxeldungeon_tiles_sewers_wall_pipe.png | Bin .../voxeldungeon_tiles_sewers_water.png | Bin .../voxeldungeon_tiles_sewers_water0.png | Bin .../voxeldungeon_tool_armor_cactus.png | Bin .../voxeldungeon_tool_armor_cloth.png | Bin .../voxeldungeon_tool_armor_demonite.png | Bin .../voxeldungeon_tool_armor_diamond.png | Bin .../voxeldungeon_tool_armor_leather.png | Bin .../voxeldungeon_tool_armor_mail.png | Bin .../voxeldungeon_tool_armor_mese.png | Bin .../voxeldungeon_tool_armor_plate.png | Bin .../voxeldungeon_tool_armor_scale.png | Bin .../voxeldungeon_tool_armor_steel.png | Bin .../voxeldungeon_tool_armor_wood.png | Bin .../voxeldungeon_tool_pickaxe_demonite.png | Bin .../voxeldungeon_tool_wand_magicmissile.png | Bin .../voxeldungeon_tool_weapon_battleaxe.png | Bin .../voxeldungeon_tool_weapon_dagger.png | Bin .../voxeldungeon_tool_weapon_glaive.png | Bin .../voxeldungeon_tool_weapon_greatsword.png | Bin .../voxeldungeon_tool_weapon_handaxe.png | Bin ...voxeldungeon_tool_weapon_knuckleduster.png | Bin .../voxeldungeon_tool_weapon_longsword.png | Bin .../voxeldungeon_tool_weapon_mace.png | Bin .../voxeldungeon_tool_weapon_quarterstaff.png | Bin .../voxeldungeon_tool_weapon_scimitar.png | Bin .../voxeldungeon_tool_weapon_shortsword.png | Bin .../voxeldungeon_tool_weapon_spear.png | Bin ...voxeldungeon_tool_weapon_stonegauntlet.png | Bin .../voxeldungeon_tool_weapon_sword.png | Bin ...oxeldungeon_tool_weapon_sword_demonite.png | Bin .../voxeldungeon_tool_weapon_warhammer.png | Bin .../voxeldungeon_ui_itemslot.png | Bin 309 files changed, 414 insertions(+), 293 deletions(-) create mode 100644 changelog.txt create mode 100644 mods/voxeldungeon/changelog.txt delete mode 100644 mods/voxeldungeon/commoneffects.lua delete mode 100644 mods/voxeldungeon/textures/voxeldungeon_particle_toxic.png create mode 100644 textures/voxeldungeon/default_cobble.png create mode 100644 textures/voxeldungeon/default_desert_cobble.png create mode 100644 textures/voxeldungeon/default_desert_sand.png create mode 100644 textures/voxeldungeon/default_desert_sandstone.png create mode 100644 textures/voxeldungeon/default_desert_sandstone_block.png create mode 100644 textures/voxeldungeon/default_desert_sandstone_brick.png create mode 100644 textures/voxeldungeon/default_desert_stone.png create mode 100644 textures/voxeldungeon/default_desert_stone_block.png create mode 100644 textures/voxeldungeon/default_desert_stone_brick.png create mode 100644 textures/voxeldungeon/default_dirt.png create mode 100644 textures/voxeldungeon/default_dry_grass.png create mode 100644 textures/voxeldungeon/default_dry_grass_1.png create mode 100644 textures/voxeldungeon/default_dry_grass_2.png create mode 100644 textures/voxeldungeon/default_dry_grass_3.png create mode 100644 textures/voxeldungeon/default_dry_grass_4.png create mode 100644 textures/voxeldungeon/default_dry_grass_5.png create mode 100644 textures/voxeldungeon/default_dry_grass_side.png create mode 100644 textures/voxeldungeon/default_grass.png create mode 100644 textures/voxeldungeon/default_grass_1.png create mode 100644 textures/voxeldungeon/default_grass_2.png create mode 100644 textures/voxeldungeon/default_grass_3.png create mode 100644 textures/voxeldungeon/default_grass_4.png create mode 100644 textures/voxeldungeon/default_grass_5.png create mode 100644 textures/voxeldungeon/default_grass_side.png create mode 100644 textures/voxeldungeon/default_mossycobble.png create mode 100644 textures/voxeldungeon/default_sand.png create mode 100644 textures/voxeldungeon/default_sandstone.png create mode 100644 textures/voxeldungeon/default_sandstone_block.png create mode 100644 textures/voxeldungeon/default_sandstone_brick.png create mode 100644 textures/voxeldungeon/default_stone.png create mode 100644 textures/voxeldungeon/default_stone_block.png create mode 100644 textures/voxeldungeon/default_stone_brick.png rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_cactus.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_cactus_preview.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_cloth.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_cloth_preview.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_demonite.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_demonite_preview.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_diamond.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_diamond_preview.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_leather.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_leather_preview.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_mail.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_mail_preview.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_mese.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_mese_preview.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_plate.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_plate_preview.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_scale.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_scale_preview.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_steel.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_steel_preview.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_wood.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_armor_wood_preview.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_blank.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_buff_blindness.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_buff_burning.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_buff_crippled.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_buff_frozen.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_buff_herbal_armor.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_buff_herbal_healing.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_buff_levitation.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_buff_poisoned.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_buff_rooted.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_buffs.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_foilage_caves_tallgrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_foilage_caves_tallgrass_top.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_foilage_cities_tallgrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_foilage_cities_tallgrass_top.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_foilage_halls_tallgrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_foilage_halls_tallgrass_top.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_foilage_prisons_tallgrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_foilage_prisons_tallgrass_top.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_foilage_sewers_tallgrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_foilage_sewers_tallgrass_top.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_gems.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_caves_tallgrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_cities_tallgrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_halls_tallgrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_albino.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_bandit.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_bee.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_crab.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_mimic.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_piranha.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_rat.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_scout.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_skeleton.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_statue.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_thief.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_mob_wraith.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_frost.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_haste.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_healing.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_invisibility.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_levitation.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_liquidflame.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_might.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_mindvision.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_paralyticgas.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_purification.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_strength.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_potion_toxicgas.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_prisons_tallgrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_enchantment.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_identify.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_lullaby.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_magicmapping.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_mirrorimage.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_psionicblast.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_rage.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_recharging.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_removecurse.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_teleportation.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_terror.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_scroll_upgrade.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icon_sewers_tallgrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_icons_sewers_door.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_ankh.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_bomb.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_demonite_ingot.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_demonite_lump.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_dew.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_food_chargrilled_meat.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_food_cooked_meat.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_food_mystery_meat.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_food_pasty.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_food_ration.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_gold.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_honeypot.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_amber.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_azure.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_bistre.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_charcoal.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_crimson.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_golden.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_indigo.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_ivory.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_jade.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_magenta.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_silver.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_potion_turquoise.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_berkanan.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_gyfu.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_isaz.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_kaunan.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_laguz.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_mannaz.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_naudiz.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_odal.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_raido.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_sowilo.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_tiwaz.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_scroll_yngvi.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_seed_dreamweed.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_seed_earthroot.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_seed_fadeleaf.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_seed_firebloom.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_seed_icecap.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_seed_rotberry.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_seed_sorrowmoss.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_seed_sungrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_item_torch.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_items_shattered.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_items_vanilla.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_node_chest_back.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_node_chest_bottom.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_node_chest_front.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_node_chest_icon.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_node_chest_left.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_node_chest_right.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_node_chest_top.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_caves_coal.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_caves_gold.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_caves_iron.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_caves_mese.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_cities_coal.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_cities_diamond.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_cities_gold.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_cities_iron.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_cities_mese.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_halls_coal.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_halls_demonite.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_halls_diamond.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_halls_gold.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_halls_iron.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_halls_mese.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_prisons_coal.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_prisons_gold.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_prisons_iron.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_sewers_coal.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ore_sewers_gold.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_overlay_greyout.png (100%) create mode 100644 textures/voxeldungeon/voxeldungeon_particle_flame.png rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_particle_grass.png (100%) rename mods/voxeldungeon/textures/voxeldungeon_particle_poison.png => textures/voxeldungeon/voxeldungeon_particle_poison (copy).png (100%) create mode 100644 textures/voxeldungeon/voxeldungeon_particle_poison.png rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_particle_shaft.png (100%) create mode 100644 textures/voxeldungeon/voxeldungeon_particle_toxic.png rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_plant_blindweed.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_plant_earthroot.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_plant_fadeleaf.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_plant_firebloom.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_plant_icecap.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_plant_rotberry.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_plant_sorrowmoss.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_plant_sungrass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_terrain_features.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_caves_bookshelf.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_caves_floor.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_caves_grass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_caves_special.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_caves_stone.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_caves_wall.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_caves_wall_embedded.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_cities_bookshelf.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_cities_floor.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_cities_grass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_cities_special.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_cities_stone.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_cities_wall.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_cities_wall_decayed.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_embers.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_halls_bookshelf.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_halls_floor.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_halls_grass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_halls_special.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_halls_stone.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_halls_wall.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_halls_wall_decorated.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_prisons_bookshelf.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_prisons_floor.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_prisons_grass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_prisons_special.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_prisons_stone.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_prisons_wall.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_prisons_wall_torch.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_bookshelf.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_door.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_floor.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_floor_slab.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_grass.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_moss.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_pedestal.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_pedestal_side.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_special.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_stone.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_trap_alarm.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_trap_fire.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_trap_gripping.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_trap_paralyticgas.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_trap_poisondart.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_trap_summoning.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_trap_teleport.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_trap_toxicgas.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_trap_wornout.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_wall.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_wall_pipe.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_water.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tiles_sewers_water0.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_armor_cactus.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_armor_cloth.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_armor_demonite.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_armor_diamond.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_armor_leather.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_armor_mail.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_armor_mese.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_armor_plate.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_armor_scale.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_armor_steel.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_armor_wood.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_pickaxe_demonite.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_wand_magicmissile.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_battleaxe.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_dagger.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_glaive.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_greatsword.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_handaxe.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_knuckleduster.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_longsword.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_mace.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_quarterstaff.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_scimitar.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_shortsword.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_spear.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_stonegauntlet.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_sword.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_sword_demonite.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_tool_weapon_warhammer.png (100%) rename {mods/voxeldungeon/textures => textures/voxeldungeon}/voxeldungeon_ui_itemslot.png (100%) diff --git a/README.md b/README.md index 681508d..90b824c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------------------------------------- -#Voxel Dungeon +Voxel Dungeon ------------------------------------------------------------------------------------------------------------- This is a recreation and adaptation of an Android rogue-like game, Pixel Dungeon by Watabou, using Minetest's engine. In particular, it is about exploring and digging into the five layers of the underground, in which access to the next layer is granted only upon summoning and defeating the boss of the current layer. Each of the sections is characterized by distinct terrain, monsters, and new ores. The boss of the final layer will grant the Amulet of Yendor; the player who picks this up will win the game. diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..4a51bb1 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,16 @@ +Alpha 1.0.1: + Blobs: + No longer are anchored to entities + All of any one type are tied to the same instance; multiple blobs no longer repeatedly apply their effect when stacked inside of each other + A single blob also only applies its effect once per time frame + The applying of blob effects has been greatly streamlined and causes much less lag than before + New blobs no longer teleport some of themselves to any locations where previous blobs existed. + TL;DR: They actually work now. + + Fixed: + Throwable items not being taken from the inventory in survival when thrown + Random level algorithm of weapons and armor causing +3 and +2 equipment to become much more common than intended. + Particles sometimes appearing far farther away from where they're intended to spawn + + Visual: + Added some textures of grass, dirt, and cobblestone originating from Sprouted Pixel Dungeon diff --git a/mods/entitycontrol/init.lua b/mods/entitycontrol/init.lua index a532889..5c58ce5 100644 --- a/mods/entitycontrol/init.lua +++ b/mods/entitycontrol/init.lua @@ -86,13 +86,19 @@ end +function entitycontrol.isAlive(index) + local ent = entitycontrol.get_entity(index) + + if ent and ent:get_pos() then return true end +end + function entitycontrol.getFirstEmptyIndex(index) index = index or 1 local ent = entitycontrol.get_entity(index) if index > entitycontrol.count_entities() then return nil - elseif ent and ent:get_pos() then + elseif entitycontrol.isAlive(index) then return entitycontrol.getFirstEmptyIndex(index + 1) else return index diff --git a/mods/voxeldungeon/README.md b/mods/voxeldungeon/README.md index 681508d..90b824c 100644 --- a/mods/voxeldungeon/README.md +++ b/mods/voxeldungeon/README.md @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------------------------------------- -#Voxel Dungeon +Voxel Dungeon ------------------------------------------------------------------------------------------------------------- This is a recreation and adaptation of an Android rogue-like game, Pixel Dungeon by Watabou, using Minetest's engine. In particular, it is about exploring and digging into the five layers of the underground, in which access to the next layer is granted only upon summoning and defeating the boss of the current layer. Each of the sections is characterized by distinct terrain, monsters, and new ores. The boss of the final layer will grant the Amulet of Yendor; the player who picks this up will win the game. diff --git a/mods/voxeldungeon/blobs.lua b/mods/voxeldungeon/blobs.lua index b251616..57d0128 100644 --- a/mods/voxeldungeon/blobs.lua +++ b/mods/voxeldungeon/blobs.lua @@ -20,10 +20,9 @@ along with this program. If not, see --]] voxeldungeon.blobs = {} ---voxeldungeon.blobs.blob_instances = {} voxeldungeon.blobs.registered_blobs = {} -local TIMESCALE = 2 +local TIMESCALE = 1 local function expandUpon(posses, spreadcondition) local newposses = voxeldungeon.smartVectorTable() @@ -32,13 +31,15 @@ local function expandUpon(posses, spreadcondition) local p = posses.getVector(i) local a = posses.getValue(i) - for _, n in pairs(voxeldungeon.utils.NEIGHBORS7) do - local newpos = vector.add(p, n) - if spreadcondition(newpos) then - if not posses.get(newpos) and not newposses.get(newpos) then - newposses.set(newpos, 0) - elseif posses.get(newpos) then - newposses.set(newpos, posses.get(newpos)) + if a > 0 then + for _, n in pairs(voxeldungeon.utils.NEIGHBORS7) do + local newpos = vector.add(p, n) + if spreadcondition(newpos) then + if not posses.get(newpos) and not newposses.get(newpos) then + newposses.set(newpos, 0) + elseif posses.get(newpos) then + newposses.set(newpos, posses.get(newpos)) + end end end end @@ -47,115 +48,148 @@ local function expandUpon(posses, spreadcondition) return newposses end -function voxeldungeon.blobs.register(nme, spreadcondition, effect) - local name = "voxeldungeon:blob_"..nme +function voxeldungeon.blobs.register(name, spreadcondition, effect) + name = "voxeldungeon:blob_"..name - minetest.register_entity(name, - { - physical = false, - --textures = {"voxeldungeon_blank.png"}, - collisionbox = {0, 0, 0, 0, 0, 0}, + voxeldungeon.blobs.registered_blobs[name] = {} + local blob = voxeldungeon.blobs.registered_blobs[name] + + blob.posses = voxeldungeon.smartVectorTable() + blob.offload = voxeldungeon.smartVectorTable() + blob.volume = 0 + blob.timer = TIMESCALE - posses = voxeldungeon.smartVectorTable(), - offload = voxeldungeon.smartVectorTable(), - volume = 1000, - offvolume = 1000, - timer = TIMESCALE, + blob.on_step = function(dtime) + if blob.timer > 0 then + blob.timer = blob.timer - dtime + return + end - on_activate = function(self) - end, - - on_step = function(self, dtime) - if self.timer > 0 then - self.timer = self.timer - dtime - return - end - - self.timer = TIMESCALE + blob.timer = TIMESCALE - if self.volume > 0 then - self.volume = 0 + if blob.volume > 0 then + blob.volume = 0 - self._evolve(self) + blob.evolve() - local temp = self.offload - self.offload = self.posses - self.posses = temp + local temp = blob.offload + blob.offload = blob.posses + blob.posses = temp - self.offvolume = self.volume - else - self.object:remove() - return - end - end, + for i = 1, blob.posses.size() do + local p = blob.posses.getVector(i) + local v = blob.posses.getValue(i) - _evolve = function(self) - if not self.posses.get(self.object:get_pos()) then return end + local objs = {} - if self.offvolume / self.posses.size() >= 5 then - self.posses = expandUpon(self.posses, spreadcondition) - end + for _, player in ipairs(minetest.get_connected_players()) do + local pos = vector.round(player:get_pos()) - for i = 1, self.posses.size() do - local p = self.posses.getVector(i) - local a = self.posses.getValue(i) + if vector.equals(pos, p) then + table.insert(objs, player) + end + end - if spreadcondition(p) then - local count = 1 - local sum = a or 0 + for e = 1, entitycontrol.count_entities() do + local entity = entitycontrol.get_entity(e) - for _, n in pairs(voxeldungeon.utils.NEIGHBORS6) do - local neighbor = vector.add(p, n) - if not voxeldungeon.utils.solid(neighbor) then - sum = sum + (self.posses.get(neighbor) or 0) - count = count + 1 + if entitycontrol.isAlive(e) then + local pos = vector.round(entity:get_pos()) + + if vector.equals(pos, p) then + table.insert(objs, entity) end end - - local value = 0 - if sum >= count then - value = math.floor(sum / count) - 1 - end - - self.offload.set(p, value) - self.volume = self.volume + value - effect(p, value) - else - self.offload.del(p) end + + effect(blob, p, v, objs) end - end, + end + end - _seed = function(self, amount) - self.volume = amount - self.offvolume = self.volume - self.posses.set(self.object:get_pos(), self.volume) - end, - }) - - voxeldungeon.blobs.registered_blobs[name] = minetest.registered_entities[name] + blob.evolve = function() + blob.offload = expandUpon(blob.posses, spreadcondition) + + for i = 1, blob.offload.size() do + local p = blob.offload.getVector(i) + + if spreadcondition(p) then + local count = 1 + local sum = blob.posses.getValue(i) or 0 + + for _, n in pairs(voxeldungeon.utils.NEIGHBORS6) do + local neighbor = vector.add(p, n) + if not voxeldungeon.utils.solid(neighbor) then + sum = sum + (blob.posses.get(neighbor) or 0) + count = count + 1 + end + end + + local value = 0 + if sum >= count then + value = math.floor(sum / count) - 1 + end + + blob.offload.set(p, value) + blob.volume = blob.volume + value + else + blob.offload.del(p) + end + end + end + + blob.seed = function(pos, amount) + blob.volume = blob.volume + amount + blob.posses.set(pos, amount) + end + + minetest.register_globalstep(blob.on_step) end -function voxeldungeon.blobs.seed(nme, pos, amount) - local name = "voxeldungeon:blob_"..nme +function voxeldungeon.blobs.seed(name, pos, amount) + name = "voxeldungeon:blob_"..name pos = vector.round(pos) - local obj = minetest.add_entity(pos, name) - if obj then - local blob = obj:get_luaentity() - blob._seed(blob, amount) - end + voxeldungeon.blobs.registered_blobs[name].seed(pos, amount) end -voxeldungeon.blobs.register("toxicgas", function(pos) - return not voxeldungeon.utils.solid(pos) -end, function(pos, amount) - local objs = minetest.get_objects_inside_radius(pos, 1) - for _, obj in pairs(objs) do - obj:set_hp(obj:get_hp() - 1) + + +voxeldungeon.blobs.register("fire", + function(pos) + local node = minetest.get_node_or_nil(pos) + return true--node and minetest.get_item_group(node.name, "flammable") >= 1 + end, + + function(blob, pos, amount, objs) + for _, obj in ipairs(objs) do + if obj:is_player() then + obj:set_hp(obj:get_hp() - 2) + else + voxeldungeon.mobs.damage(obj, 2, "fire") + end + end + + voxeldungeon.particles.factory("flame", pos, 1, TIMESCALE) end - - if math.random(5) == 1 then - voxeldungeon.particles.burst("toxic", pos, 1) +) + +voxeldungeon.blobs.register("toxicgas", + function(pos) + return not voxeldungeon.utils.solid(pos) + end, + + function(blob, pos, amount, objs) + for _, obj in ipairs(objs) do + if obj:is_player() then + obj:set_hp(obj:get_hp() - voxeldungeon.utils.getChapter(pos)) + else + voxeldungeon.mobs.damage(obj, voxeldungeon.utils.getChapter(pos), "toxic gas") + end + end + + if voxeldungeon.utils.randomDecimal(blob.posses.size() / (blob.posses.size() + 2)) <= 1/3 then + voxeldungeon.particles.burst("toxic", pos, 1) + end end -end) +) diff --git a/mods/voxeldungeon/changelog.txt b/mods/voxeldungeon/changelog.txt new file mode 100644 index 0000000..aaddeb4 --- /dev/null +++ b/mods/voxeldungeon/changelog.txt @@ -0,0 +1,18 @@ +Alpha 1.0.1: + Blobs: + No longer are anchored to entities + All of any one type are tied to the same instance; multiple blobs no longer repeatedly apply their effect when stacked inside of each other + A single blob also only applies its effect once per time frame + The applying of blob effects has been greatly streamlined and causes much less lag than before + New blobs no longer teleport some of themselves to any locations where previous blobs existed. + TL;DR: They actually work now. + + Fixed: + Throwable items not being taken from the inventory in survival when thrown + Random level algorithm of weapons and armor causing +3 and +2 equipment to become much more common than intended. + Particles sometimes appearing far farther away from where they're intended to spawn + Punching often dealing no damage to rats. + + Visual: + Added some textures of grass, dirt, and cobblestone originating from Sprouted Pixel Dungeon + Toxic particles now spin diff --git a/mods/voxeldungeon/commoneffects.lua b/mods/voxeldungeon/commoneffects.lua deleted file mode 100644 index 65d7118..0000000 --- a/mods/voxeldungeon/commoneffects.lua +++ /dev/null @@ -1,47 +0,0 @@ ---[[ -Voxel Dungeon -Copyright (C) 2019 Noodlemire - -Pixel Dungeon -Copyright (C) 2012-2015 Oleg Dolya - -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. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see ---]] - ---A set of methods commonly caused by a variety of mechanics - -function voxeldungeon.randomteleport(obj) - for try = 1, 10 do - local p = obj:get_pos() - - local testpos = - { - x = p.x + math.random(-100, 100), - y = p.y + 0.5, - z = p.z + math.random(-100, 100) - } - - if not minetest.registered_nodes[minetest.get_node(testpos).name].walkable then - obj:set_pos(testpos) - - minetest.sound_play("voxeldungeon_teleport", - { - pos = obj:get_pos(), - gain = 1.0, - max_hear_distance = 32, - }) - return - end - end -end diff --git a/mods/voxeldungeon/generator.lua b/mods/voxeldungeon/generator.lua index e5d3c18..0445a7a 100644 --- a/mods/voxeldungeon/generator.lua +++ b/mods/voxeldungeon/generator.lua @@ -259,19 +259,24 @@ local weaponChances = { }, } -function voxeldungeon.generator.randomArmor(t) - local tier = t or 1 - local arm = voxeldungeon.utils.randomChances(armorChances[tier]) +local function randomLevel() local level = 0 for i = 3, 1, -1 do - if math.random(3 * i) == 1 then + if math.random(math.pow(3, i)) == 1 then level = i end end + return level +end + +function voxeldungeon.generator.randomArmor(t) + local tier = t or 1 + local arm = voxeldungeon.utils.randomChances(armorChances[tier]) + local itemstack = ItemStack({name = arm, count = 1, wear = 0, metadata = ""}) - voxeldungeon.tools.setLevelOf(itemstack, level) + voxeldungeon.tools.setLevelOf(itemstack, randomLevel()) return itemstack end @@ -308,16 +313,9 @@ end function voxeldungeon.generator.randomWeapon(t) local tier = t or 1 local wep = voxeldungeon.utils.randomChances(weaponChances[tier]) - local level = 0 - - for i = 3, 1, -1 do - if math.random(3 * i) == 1 then - level = i - end - end local itemstack = ItemStack({name = wep, count = 1, wear = 0, metadata = ""}) - voxeldungeon.tools.setLevelOf(itemstack, level) + voxeldungeon.tools.setLevelOf(itemstack, randomLevel()) return itemstack end diff --git a/mods/voxeldungeon/init.lua b/mods/voxeldungeon/init.lua index 7a690fc..fa275d5 100644 --- a/mods/voxeldungeon/init.lua +++ b/mods/voxeldungeon/init.lua @@ -30,7 +30,6 @@ voxeldungeon.wp = minetest.get_worldpath()..'/' --Load library files dofile(mp.."utils.lua") dofile(mp.."override.lua") -dofile(mp.."commoneffects.lua") dofile(mp.."smartvectortable.lua") dofile(mp.."glog.lua") dofile(mp.."playerhandler.lua") diff --git a/mods/voxeldungeon/items.lua b/mods/voxeldungeon/items.lua index b5c5490..158a3d1 100644 --- a/mods/voxeldungeon/items.lua +++ b/mods/voxeldungeon/items.lua @@ -19,39 +19,64 @@ You should have received a copy of the GNU General Public License along with this program. If not, see --]] -minetest.register_craftitem("voxeldungeon:bomb", { - description = voxeldungeon.utils.itemDescription("Bomb\n \nThis is a relatively small bomb, filled with black powder. Conveniently, its fuse is lit automatically when the bomb is thrown.\n \nRight-click while holding a bomb to throw it."), - inventory_image = "voxeldungeon_item_bomb.png", - on_place = function(itemstack, placer, pointed_thing) - tnt.boom(pointed_thing.above, {radius = 2, damage_radius = 2}) - end, - on_secondary_use = function(itemstack, user, pointed_thing) +local function get_pointed_pos(pointed_thing) + if pointed_thing.type == "node" then + return pointed_thing.above + elseif pointed_thing.type == "object" then + return pointed_thing.ref:get_pos() + end +end + +function voxeldungeon.register_throwingitem(name, desc, callback, itemdef, entdef) + itemdef = itemdef or {} + entdef = entdef or {} + + itemdef.description = voxeldungeon.utils.itemDescription(desc) + itemdef.inventory_image = itemdef.inventory_image or "voxeldungeon_item_"..name..".png" + + itemdef.on_place = function(itemstack, placer, pointed_thing) + callback(get_pointed_pos(pointed_thing)) + + return voxeldungeon.utils.take_item(placer, itemstack) + end + + itemdef.on_secondary_use = function(itemstack, user, pointed_thing) local pos = vector.add(user:get_pos(), {x=0, y=1, z=0}) local offset = vector.multiply(user:get_look_dir(), 2) - local projectile = minetest.add_entity(vector.add(pos, offset), "voxeldungeon:thrown_bomb") + local projectile = minetest.add_entity(vector.add(pos, offset), "voxeldungeon:thrown_"..name) projectile:set_velocity(vector.multiply(offset, 8)) projectile:set_acceleration({x = 0, y = -12, z = 0}) + + return voxeldungeon.utils.take_item(user, itemstack) end -}) -minetest.register_entity("voxeldungeon:thrown_bomb", { - initial_properties = { + + entdef.initial_properties = { visual = "sprite", pointable = false, - textures = {"voxeldungeon_item_bomb.png"}, - }, + textures = {(itemdef.inventory_image or "voxeldungeon_item_"..name..".png")}, + } - on_step = function(self, dtime) + entdef.on_step = function(self, dtime) local pos = self.object:get_pos() if voxeldungeon.utils.solid(vector.add(pos, vector.normalize(self.object:get_velocity()))) then - tnt.boom(pos, {radius = 2, damage_radius = 2}) + callback(pos) self.object:remove() end end -}) + + minetest.register_craftitem("voxeldungeon:"..name, itemdef) + minetest.register_entity("voxeldungeon:thrown_"..name, entdef) +end + + + +voxeldungeon.register_throwingitem("bomb", "Bomb\n \nThis is a relatively small bomb, filled with black powder. Conveniently, its fuse is lit automatically when the bomb is thrown.\n \nRight-click while holding a bomb to throw it.", function(pos) + tnt.boom(pos, {radius = 2, damage_radius = 2}) +end) minetest.register_craftitem("voxeldungeon:demonite_lump", { description = "Demonite Lump", @@ -88,42 +113,9 @@ minetest.register_craftitem("voxeldungeon:gold", { stack_max = 99999, }) -minetest.register_craftitem("voxeldungeon:honeypot", { - description = voxeldungeon.utils.itemDescription("Honeypot\n \nThis large honeypot is only really lined with honey, instead it houses a giant bee! These sorts of massive bees usually stay in their hives, perhaps the pot is some sort of specialized trapper's cage? The bee seems pretty content inside the pot with its honey, and buzzes at you warily when you look at it.\n \nRight-click while holding a honeypot to throw it."), - inventory_image = "voxeldungeon_item_honeypot.png", - - on_place = function(itemstack, placer, pointed_thing) - minetest.add_entity(pointed_thing.above, "voxeldungeon:bee") - end, - - on_secondary_use = function(itemstack, user, pointed_thing) - local pos = vector.add(user:get_pos(), {x=0, y=1, z=0}) - local offset = vector.multiply(user:get_look_dir(), 2) - - local projectile = minetest.add_entity(vector.add(pos, offset), "voxeldungeon:thrown_honeypot") - projectile:set_velocity(vector.multiply(offset, 8)) - projectile:set_acceleration({x = 0, y = -12, z = 0}) - end -}) -minetest.register_entity("voxeldungeon:thrown_honeypot", { - initial_properties = { - visual = "sprite", - pointable = false, - textures = {"voxeldungeon_item_honeypot.png"}, - }, - - on_step = function(self, dtime) - local pos = self.object:get_pos() - - if voxeldungeon.utils.solid(vector.add(pos, vector.normalize(self.object:get_velocity()))) then - minetest.add_entity(pos, "voxeldungeon:bee") - - self.object:remove() - end - end -}) - - +voxeldungeon.register_throwingitem("honeypot", "Honeypot\n \nThis large honeypot is only really lined with honey, instead it houses a giant bee! These sorts of massive bees usually stay in their hives, perhaps the pot is some sort of specialized trapper's cage? The bee seems pretty content inside the pot with its honey, and buzzes at you warily when you look at it.\n \nRight-click while holding a honeypot to throw it.", function(pos) + minetest.add_entity(pos, "voxeldungeon:bee") +end) minetest.override_item("default:torch", { description = voxeldungeon.utils.itemDescription("Torch\n \nIt's an indispensable item in the underground, which is notorious for its poor ambient lighting."), diff --git a/mods/voxeldungeon/mobs.lua b/mods/voxeldungeon/mobs.lua index acb3074..4be7858 100644 --- a/mods/voxeldungeon/mobs.lua +++ b/mods/voxeldungeon/mobs.lua @@ -61,7 +61,7 @@ mobs:register_mob("voxeldungeon:rat", { damage = 3, hp_min = 8, hp_max = 8, - armor = 99, + armor = 100, collisionbox = {-0.4, -0.5, -0.4, 0.4, 0.5, 0.4}, visual = "sprite", textures = {"voxeldungeon_icon_mob_rat.png"}, diff --git a/mods/voxeldungeon/particles.lua b/mods/voxeldungeon/particles.lua index 3d9644f..d199a1b 100644 --- a/mods/voxeldungeon/particles.lua +++ b/mods/voxeldungeon/particles.lua @@ -24,30 +24,40 @@ voxeldungeon.particles = {} local registered_particles = {} local registered_factories = {} -function voxeldungeon.particles.register_particle(name, radius, lifespan, gravity, transformation, drawtype, yscale) +local function randomVel() + return math.random(-1/3, 1/3) +end + +function voxeldungeon.particles.register_particle(name, radius, lifespan, gravity, initialize, transformation, drawtype, yscale, frames) local scale = radius * 0.125 + frames = frames or 1 minetest.register_entity("voxeldungeon:particle_"..name, { - physical = false, - timer = 0, + _timer = 0, - textures = {"voxeldungeon_particle_"..name..".png"}, - visual_size = - { - x = scale, - y = scale * (yscale or 1) + initial_properties = { + physical = false, + textures = {"voxeldungeon_particle_"..name..".png"}, + visual_size = + { + x = scale, + y = scale * (yscale or 1) + }, + collisionbox = {0, 0, 0, 0, 0, 0}, + visual = drawtype or "sprite", + spritediv = {x = 1, y = frames} }, - collisionbox = {0, 0, 0, 0, 0, 0}, - visual = drawtype or "sprite", on_activate = function(self, staticdata) local obj = self.object + obj:setvelocity( { - x=(math.random(0,60)-30)/45, - y=(math.random(0,60)-30)/45, - z=(math.random(0,60)-30)/45 + x = randomVel(), + y = randomVel(), + z = randomVel(), }) + local v = obj:get_velocity() local ax = v.x if ax ~= 0 then ax = -ax / math.abs(ax) / lifespan / 2 end @@ -58,13 +68,15 @@ function voxeldungeon.particles.register_particle(name, radius, lifespan, gravit obj:setacceleration({x=ax, y=ay+gravity, z=az}) obj:setyaw(math.random(0,359)/180*math.pi) + + if initialize then initialize(self) end end, on_step = function(self, dtime) - transformation(self, lifespan) + if transformation then transformation(self, lifespan) end - self.timer = self.timer+dtime - if self.timer >= lifespan then + self._timer = self._timer+dtime + if self._timer >= lifespan then self.object:remove() end end, @@ -74,8 +86,8 @@ function voxeldungeon.particles.register_particle(name, radius, lifespan, gravit { visual_size = { - x = scale + self.timer * change, - y = scale * (yscale or 1) + self.timer * change + x = scale + self._timer * change, + y = scale * (yscale or 1) + self._timer * change } }) end, @@ -84,8 +96,24 @@ end -voxeldungeon.particles.register_particle("poison", 1, 0.6, -1, function(self, lifespan) - local timer = self.timer +voxeldungeon.particles.register_particle("flame", 8, 0.8, 1, + function(self) + local gbyte = math.random(155, 222) + local ghex = voxeldungeon.utils.tohex(gbyte) + self.object:settexturemod("^[colorize:#FF"..ghex.."00") + end, + + function(self, lifespan) + self.resize(self, -0.125) + end +) + +voxeldungeon.particles.register_particle("grass", 1, 1.2, 1, nil, function(self, lifespan) + self.resize(self, -0.075) +end) + +voxeldungeon.particles.register_particle("poison", 1, 0.6, -1, nil, function(self, lifespan) + local timer = self._timer local sbyte = 150 + (lifespan - timer) / lifespan * 100 local shex = voxeldungeon.utils.tohex(sbyte) @@ -96,24 +124,26 @@ voxeldungeon.particles.register_particle("poison", 1, 0.6, -1, function(self, li self.resize(self, 0.125) end) -voxeldungeon.particles.register_particle("grass", 1, 1.2, 1, function(self, lifespan) - self.resize(self, -0.075) -end) +voxeldungeon.particles.register_particle("shaft", 2, 1.2, 0, nil, nil, "upright_sprite", 8) -voxeldungeon.particles.register_particle("shaft", 2, 1.2, 0, function(self, lifespan) end, "upright_sprite", 8) +voxeldungeon.particles.register_particle("toxic", 8, 3, 0, + function(self) + self.object:set_sprite({x = 0, y = 0}, 12, voxeldungeon.utils.randomDecimal(0.4, 0.3), false) + end, -voxeldungeon.particles.register_particle("toxic", 8, 3, 0, function(self, lifespan) - self.resize(self, 0.05) -end) + function(self, lifespan) + self.resize(self, 0.25) + end, "sprite", 1, 12 +) function voxeldungeon.particles.burst(name, pos, amount) pos = vector.add(pos, { - x = math.random(-0.5, 0.5), - y = math.random(-0.5, 0.5), - z = math.random(-0.5, 0.5), + x = voxeldungeon.utils.randomDecimal(0.25, -0.25), + y = voxeldungeon.utils.randomDecimal(0.25, -0.25), + z = voxeldungeon.utils.randomDecimal(0.25, -0.25), }) for i = 1, amount do diff --git a/mods/voxeldungeon/plants.lua b/mods/voxeldungeon/plants.lua index 2c190c7..4e8cc56 100644 --- a/mods/voxeldungeon/plants.lua +++ b/mods/voxeldungeon/plants.lua @@ -161,7 +161,7 @@ end voxeldungeon.register_plant("fadeleaf", "Fadeleaf\n \nTouching a Fadeleaf will teleport any creature to a random place within 100 blocks.", function(pos, objs) for i = 1, #objs do - voxeldungeon.randomteleport(objs[i]) + voxeldungeon.utils.randomteleport(objs[i]) end end) diff --git a/mods/voxeldungeon/potions.lua b/mods/voxeldungeon/potions.lua index dd6a89a..75e5251 100644 --- a/mods/voxeldungeon/potions.lua +++ b/mods/voxeldungeon/potions.lua @@ -29,7 +29,6 @@ local potion_defs = voxeldungeon.playerhandler.changeSTR(user, 1) voxeldungeon.glog.p("Newfound strength surges through your body.", user) voxeldungeon.tools.updateStrdiffArmor(user) - return voxeldungeon.utils.take_item(user, itemstack) end }, { @@ -43,6 +42,14 @@ local potion_defs = { name = "liquidflame", desc = "Liquid Flame", + + shatter = function(pos) + --[[for _, n in ipairs(voxeldungeon.utils.NEIGHBORS27) do + local f = vector.add(pos, n) + + voxeldungeon.blobs.seed("fire", f, 200) + end--]] + end }, { name = "might", @@ -154,36 +161,25 @@ local function default_shatter(pos, color) end local function register_potion(name, desc, color, drink, shatter) - minetest.register_entity("voxeldungeon:thrownpotion_"..color, { - initial_properties = { - visual = "sprite", - pointable = false, - textures = {"voxeldungeon_item_potion_"..color..".png"}, - }, - - on_step = function(self, dtime) - if voxeldungeon.utils.solid(vector.add(self.object:get_pos(), vector.normalize(self.object:get_velocity()))) then - if shatter then - shatter(self.object:get_pos()) - else - default_shatter(self.object:get_pos(), color) - end - - self.object:remove() - end - end - }) - - minetest.register_craftitem("voxeldungeon:potion_"..name, - { - description = voxeldungeon.utils.itemDescription("Potion of "..desc.. + voxeldungeon.register_throwingitem("potion_"..name, "Potion of "..desc.. "\n \nLeft click while holding a potion to drink it.".. - "\nRight click while holding a potion to throw it."), + "\nRight click while holding a potion to throw it.", + function(pos) + if shatter then + shatter(pos) + else + default_shatter(pos, color) + end + end, + + { inventory_image = "voxeldungeon_item_potion_"..color..".png", _cornerLR = "voxeldungeon_icon_potion_"..name..".png", - on_use = drink or function(itemstack, user) - if shatter then + on_use = function(itemstack, user) + if drink then + drink(itemstack, user) + elseif shatter then shatter(user:get_pos()) else default_shatter(user:get_pos(), color) @@ -191,25 +187,6 @@ local function register_potion(name, desc, color, drink, shatter) return voxeldungeon.utils.take_item(user, itemstack) end, - - on_place = function(itemstack, placer, pointed_thing) - if shatter then - shatter(pointed_thing.above) - else - default_shatter(pointed_thing.above, color) - end - - return voxeldungeon.utils.take_item(placer, itemstack) - end, - - on_secondary_use = function(itemstack, user, pointed_thing) - local pos = vector.add(user:get_pos(), {x=0, y=1, z=0}) - local offset = vector.multiply(user:get_look_dir(), 2) - - local projectile = minetest.add_entity(vector.add(pos, offset), "voxeldungeon:thrownpotion_"..color) - projectile:set_velocity(vector.multiply(offset, 8)) - projectile:set_acceleration({x = 0, y = -12, z = 0}) - end, }) end diff --git a/mods/voxeldungeon/scrolls.lua b/mods/voxeldungeon/scrolls.lua index 1a90f95..8d556f8 100644 --- a/mods/voxeldungeon/scrolls.lua +++ b/mods/voxeldungeon/scrolls.lua @@ -111,7 +111,7 @@ local scroll_defs = desc = "Teleportation\n \nThe spell on this parchment instantly transports the reader to a random location up to 100 blocks away. It can be used to escape a dangerous situation, but an unlucky reader might find himself in an even more dangerous place.", read = function(itemstack, user, pointed_thing) - voxeldungeon.randomteleport(user) + voxeldungeon.utils.randomteleport(user) return voxeldungeon.utils.take_item(user, itemstack) end }, diff --git a/mods/voxeldungeon/smartvectortable.lua b/mods/voxeldungeon/smartvectortable.lua index a546f73..b60de33 100644 --- a/mods/voxeldungeon/smartvectortable.lua +++ b/mods/voxeldungeon/smartvectortable.lua @@ -25,8 +25,6 @@ function voxeldungeon.smartVectorTable() svt.table = {} svt.set = function(keyVect, value) - if not keyVect or not value then return end - for _, v in ipairs(svt.table) do if vector.equals(keyVect, v.k) then v.v = value @@ -37,6 +35,11 @@ function voxeldungeon.smartVectorTable() table.insert(svt.table, {k = keyVect, v = value}) end + svt.add = function(keyVect, value) + local old = svt.get(keyVect) or 0 + svt.set(keyVect, old + value) + end + svt.del = function(keyVect) for i, v in ipairs(svt.table) do if vector.equals(keyVect, v.k) then @@ -57,10 +60,12 @@ function voxeldungeon.smartVectorTable() end svt.getVector = function(i) + if not svt.table[i] then return end return svt.table[i].k end svt.getValue = function(i) + if not svt.table[i] then return end return svt.table[i].v end @@ -68,6 +73,17 @@ function voxeldungeon.smartVectorTable() return #svt.table end + svt.combineWith = function(other) + for i = 1, other.size() do + local k = other.getVector(i) + local v = other.getValue(i) + + local old = svt.get(k) or 0 + + svt.set(k, old + v) + end + end + --[[ svt.iterator = function() local function SVTiterate(i) diff --git a/mods/voxeldungeon/textures/voxeldungeon_particle_toxic.png b/mods/voxeldungeon/textures/voxeldungeon_particle_toxic.png deleted file mode 100644 index 233b25b349c0180a601e53a16e6b8e86b66b0418..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5684 zcmV-47R%|0P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3*rmK(d0g#Tj|vjljv9N2T-4rclDB>4 z-BlkkLp+;0Q>e!w`i zRYezl3^B$OCFg2#$)}KFN-3w3YIfP@kYi3c=aOr&#gUSs#F9!brPRut)vFpRcUP{c zwb|yHZ=uDOT5hG)PWW`+LytZ6+)J;+4mbP=BaSrkD5Fj@2_-fC3^UF&^DMJ2Vr{wQ zS6FeSl~-By>9y5PS@_`n7$Hfi9 zREEPm+PXStZw-Sj>xS*Mtuali&b7I>)5daBm40T``ro~(&lhy|%l2g#wWl>w?%O_9 zo4QJyZ5I8yLj8CNAv4@`c|kF5mA-m1%OAhA-dvBmu1I+JbWI=Bkb$@w!y6+*hSc1G ziPkD6*x43;i(Jk~dA8Q@bGr+28TpLi@l)a^;#u5O-MWWU&C;Wo&Cgs7@2U}=1mMGuO{G~4iHwx?942&s~eZeYpx7F6t-M* z^d1%=kM3B+OrDb{nO}Cmn$8~17VZY_@>#rkuKu}p_qK9#*8R3@R&W=N70%N4!inq! zZE9}o7|}*RYs^&a;ObhZv*0(*CtP^~ z4ABj4+EE7}=Om4DXr;1wA})%x61$h3OhPBCPhXNI5~u8;`ABRV0(?a<)tznL^*nD^ z=YBl2M-Vs51n-ypaK)L$-8r}_R`r~shUUWvb1eR$k%nheHuxOl7!B4Dn(aiVE8PH6 zc@fep^p-l=EygZJH-937@fYbd8@RCI#A>~k9{sA-r-5oNtqcp3Oy;^^fM&5JHV87= zSVhpRQ6Rt&JuDQ96;%oqn;5K)X|T~{!`ZY?bq8t(D$5Q8QpEbRZ$adl>r8c!>M0b6 z68y%04&~pB9RBwAl+K5M0okN5$LjRqh0~8J$#`$O5?7 zgc@u&1N^izl6P?+!kv$~OFp+8j1MLZpC}FFE#f8^^?0*iO_z)nNs2dFXJ7)d$1j=D=Q2_hlNsrEZ9;Q z7XkK)6H`Qpx0~nP_z1j{%+6AZ zGV!s&KtKXl0LolxR1g*14%0&sF;v+q6$*GYie{h9T0#}EMy!I0UNAe4AW-pZ*x#r} zxDVa?)OaE!3p^!46`7hdg&3I!o(BaPFKQ?gmfNnqdALR0Nkge;P9o;tOs59fH7dY5 zDcJ_wbo*@@c0(cwnkZ5n3KS|pt5i$vkcUT&B3RHW6nCv8tEd^-W~R36qHSk|*j==N z3q}o8E@Oy-L})w1I4xXMn$(oobt>Taj21$Bnc! z!f4yfW14aV6|<*P5~IBrdK*LqSJRfK@H%uvh#NGE^pg!fX~0+^w!uaSq6uC@07Rrj zMK#i;k}NZD0>MFjf%u?$(Hq#%esD|MaYnI*tI_=ygh~-85&i(!odc(crcM#g02cVM zV9KmiKfRJ`SfiJbOQ9~;cnY3zlBAFitQ8%O6Co-ZxY%`z<)hZnVY=MfKkcLi6mCf# zDF>?1Zk8iZA8;q4K<--)7@Qg zg|)#%;HXP-p$5oE1TD+rQ;K^S+z36OkffzS>`M+(?U}Z8b$wEhKt%Dc%spU%pfCU(OcwX``fC zh-gfHt3|XaDT?Acyr+@=Y>hY+fJ)S$LsdDXA};2Twp_7?qyv@Mz;b4$$jt<-l;A>v z6j=5raiM&_FHQT>?-l zS$=^HCOG%d0C=3LQNMh&DW0vZ_3otRq!*b`R%?g;kQQ1Oq3=O;LPZ3vCeBcbPP#h@ zZI&mzc6KfdpPwD+Nnws!M6`)QTK4vf*Q44ad(LNT`%Ng%VC=HjyJmH#zb6Iuf&$it zKEVPAKOco;#Z5i_Fpc{CJbN18JxhmgO1p4M`o52UM^_8*%4NWP7&xxoOND63XDg}D z0qc~cVHaJQ43z~%$L{AII|jS$h|U&6Y7B{{K-hN*4>At`Zqof&Q1jBxnF_$e*CnDI zN@z9an~9cm0m~JPh9=6Bx@Xwb;Z2YUM&nxoGN7v=P?MoeKeitPQn0KTlbPbC)N}-Nku6YQDdlW~+H&n(KG`yMSC7>rrWBK4nY$1PXO7(xGnYa18Kuz2;4loYu>hBdM~Y$zmwLVAZ}A1*=IYiqV58iqj!( z=!~t@@=if_twtF~Nj>rO0_Sqbm zErgt;_;;q@ZA$D{|58KK`4`>sa}l9PPU)KbSR&(f-cC8Kl5;-MP<0<&wRkuK5mDyh z3;Tx)(QQ`rQ*fK~ zU3h+@zJC=DT1JT{se)s>P=pS!4}+OG+%e-UktCSLt6Te^b&UtqmLphnAC0vE=5F+! z$%R0Xi8mz9!I0AR96d{@i=>>!6sc+DL^qw@sr7Oa8&3PCL&+NYAPW;}B8jXApj;*l z0LKvBvrh`Bs@uXbbGLAaowQB1Rc^m00G?9s_DRh-Y|wIyEEPurzb0weRVUOYb!nn> z-cxL$73Em?oRiLTPV<-}MycwG_Tqf7-SnKh2rVN=r9~bq@F}txDTDivUeTk#3i%dT z(oXg;OfS$LRSo>_{9MW9WQNKHUaz)Ph`E&T9@1e9i+kCYoTC{esK-_%IuR^VD#{ZA z#V6#!NDBJI(=oTq(9-`)y9!)Gx;;snH`0FH{lB{Ve{;)z$|o<~PiB`sAYMZ^#eXya z^_cg?%!vAulog24=wG*P4)XRzO5pKK&+7PK^H=( zK;CeS@2(GJoo%{Z=`aRWNy^6U(<8SFu9h~DVPOJrK{$m(2!xKLtd<<{6^K_9c6>Pb z5WUf$f))HpjyU!?ah4F@#PjnvQqckIitobCeFtXjJ%@0_@Rn`JtDaBiXpi%C6#be( z{rc6OV&D9j0YP&{zhi$ZCbrC1KRlYU8;SQp6FFA8#pl=$n#A~OHojk@zFpLtJXRsC zor1Kc?gSL1XK|ma0L;?Q&xa`9%(kn6bIvBy+g((RbINv01S>UR7D5B9suV&^TDEAC z5K~_Ps6`945pJzmO8K=E{~QyK(?sp>iJz721|-~;S5ye5oP$HEW#F=n?&MgJ8NvD6 z5FioLe4ZpK{R@e~AG;_HaH6N6sIFx;zaLma`FjuQQVJM1a$f$nb)1sk(SFk6G;o$4 z_fd<4ge^!BY1RV^=)%;H+z_~>uu`SZyBJjyUG z0a7vE2Ni7oddUx0h(;FiM2#tr351-d+TF+3B;W5pcc0OJ^WE%fk8AF*-$wnzy1uMj zeYoVV{KE`CtWEvh!han#ha*XiJCbzgnkPiiU0_I%Fs^cH)G9KPnr)U4`qV^rOmccV z=h$Hd9PGz)#@tWmG_@bk0f$DJ@_0t^g?co}<2A?r+QpU5K~)2#&Z3zn=!K*jq?NTDO!p2FjMEgeZtMk~@uG8+PNj$!}5# z2~wLWv?bsSa~f)0M6DcBmXc1%rQ`vUIr6`Lx>Eh&f``$*m`q&$)o33duDB-qYOvp! zOAa%y#pJ=(+y4G$w9UkCW)rFPtKrm-misRZr~c+bc2(5>0Yxz4^xxl0Q2+n{I!Q!9 zR0!8?j=>E8AP57m%i>JBEPhZV(th9)Xra@@bMbJ2paKk7z(DoQ>tHGw=Q3t}CF}+& a3pLt4+!|JW%O)=X0000 --]] + + voxeldungeon.tools = {} + + +if not minetest.settings:get_bool("creative_mode") then + minetest.override_item("", { + tool_capabilities = { + full_punch_interval = 0.667, + max_drop_level = 0, + groupcaps = { + crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1}, + snappy = {times={[3]=0.40}, uses=0, maxlevel=1}, + oddly_breakable_by_hand = {times={[1]=3.50,[2]=2.00,[3]=0.70}, uses=0} + }, + damage_groups = {fleshy = 1}, + } + }) +end + minetest.override_item("default:pick_wood", { max_drop_level=1 }) diff --git a/mods/voxeldungeon/utils.lua b/mods/voxeldungeon/utils.lua index 9702b9e..1b5eca7 100644 --- a/mods/voxeldungeon/utils.lua +++ b/mods/voxeldungeon/utils.lua @@ -87,6 +87,37 @@ voxeldungeon.utils.NEIGHBORS26 = {x = 1, y = 1, z = 1}, } +voxeldungeon.utils.NEIGHBORS27 = +{ + {x = -1, y = -1, z = -1}, + {x = 0, y = -1, z = -1}, + {x = 1, y = -1, z = -1}, + {x = -1, y = 0, z = -1}, + {x = 0, y = 0, z = -1}, + {x = 1, y = 0, z = -1}, + {x = -1, y = 1, z = -1}, + {x = 0, y = 1, z = -1}, + {x = 1, y = 1, z = -1}, + {x = -1, y = -1, z = 0}, + {x = 0, y = -1, z = 0}, + {x = 1, y = -1, z = 0}, + {x = -1, y = 0, z = 0}, + {x = 0, y = 0, z = 0}, + {x = 1, y = 0, z = 0}, + {x = -1, y = 1, z = 0}, + {x = 0, y = 1, z = 0}, + {x = 1, y = 1, z = 0}, + {x = -1, y = -1, z = 1}, + {x = 0, y = -1, z = 1}, + {x = 1, y = -1, z = 1}, + {x = -1, y = 0, z = 1}, + {x = 0, y = 0, z = 1}, + {x = 1, y = 0, z = 1}, + {x = -1, y = 1, z = 1}, + {x = 0, y = 1, z = 1}, + {x = 1, y = 1, z = 1}, +} + voxeldungeon.utils.surface_valid_ground = {"default:dirt_with_grass", "default:dirt_with_coniferous_litter", "default:dirt_with_rainforest_litter", @@ -226,6 +257,38 @@ function voxeldungeon.utils.randomChances(chanceTable) end end +function voxeldungeon.utils.randomDecimal(upper, lower) + upper = upper or 1 + lower = lower or 0 + + return lower + (math.random(0, 10000) / 10000) * (upper - lower) +end + +function voxeldungeon.utils.randomteleport(obj) + for try = 1, 10 do + local p = obj:get_pos() + + local testpos = + { + x = p.x + math.random(-100, 100), + y = p.y + 0.5, + z = p.z + math.random(-100, 100) + } + + if not minetest.registered_nodes[minetest.get_node(testpos).name].walkable then + obj:set_pos(testpos) + + minetest.sound_play("voxeldungeon_teleport", + { + pos = obj:get_pos(), + gain = 1.0, + max_hear_distance = 32, + }) + return + end + end +end + function voxeldungeon.utils.round(num) return math.floor(num + .5) end diff --git a/textures/voxeldungeon/default_cobble.png b/textures/voxeldungeon/default_cobble.png new file mode 100644 index 0000000000000000000000000000000000000000..6b24b719b3d704fd1c0b2053885d9a6f0a127986 GIT binary patch literal 1570 zcmV+-2Hp9IP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1YulH@21{pS>O1SBDr<6xGEzQG)S1O}XGoLSWo zW2zDY(E6TatMc!ks{WA&0()iHc^jC8B#u|MzIHH)H$1K^tgEi?FP*u}Ar8s9uZ)=s}Z{`#*q`&!ExT{KqGV9%gV6KblF zi-%;1x|o&W!hi3%?n)CM`JvkmzCL zO8i1>d54xpYQJ(#0D(GiL~=7%py6CjiMkmigotxZF^~ z&JrWGS)2h92($%au%I2H12BYM0E*%{lEFg|0A|eMBpM%b;QmpY&q2=)mNH%^m48ogONY2=bYOCdW|uk zJD}&noKn)8@_8$I54oMOphkA+Om(UVT`406cOFL68OJFtfyiBlk#|s#4%tMEnGS)S zzD9SN(q=CB)D_KvB@ek)-CaA2KuJqB~Frs>VYE6sLWi@Sm-fBm|FSKFLjS- zCLc^0JATgzOrAr{&H{ZCLeK^NmcaKM<9Rs%qZ9Sitsg zD2;Z)Klm$_$`%@|gpEpW9E^_*OWivbEmQC<{~L(P?u41%>L*=St9x%h>W2(Gc{8zG z*-vLbTG7gNKZ$Y~zU*AJu?uLmOX7yrLv@)|FKME7v0>}EUp3{a>CC8l4J^FW*52=) zy4JcTiq6Gq7vJdklBASxJz8D$`n|nBwS+6YD6RI>Yc=xTY;jj+2X5-B484`E{#^W9 z6Ht2V_788v^%i-lC0O~Y?Nq%m6vFXY>Go>U@4ZmH(ew5J(0IK!^9ShMYPAb}&z}Vs z8Ex2moGLq8u996}0{XoNy|;l7JF{Er`IZ|eUui)K@jn1Qo&+duOWptg0dGk}K~yNu zT~a}6Bry!sN=6X3+c72+$R*@w^Yvvfxdfy1IBiCBiyTBuSf4CeB~_L6=X$*&A^@1# zzVE6!HhFn{LqszZk+I1`F16Oy+SnxQ`wjpx#@_pJ9R9rTdrAornHh2!n>2v2$>Y;A zs;YN7j^jK}_&H_;mXQB{M8OaildGWNWGg@<8I zcbHd)5K>Aa@?ZY(=^1@`DW%prJ;^yEVkw20=ij*=bWh*^{cWvHC1%!p7m<{bV~8lm zh=`%q+IuG==Qf4Yy0edm1DLI}P!Zkj)R1J7I* U{Q_ zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bx%cr&RA zu6clwtfgDBN0op6uIevbOwKE9oVUT+4VMl&aKwY(K3AFdF-M#3zsE)Mm(=42#$9li zG3oUDDs%pjx91%TJ$xW@Q;^dPuZCTm^StrZBfbPR!kK@yW?yR=(M4^M20MZpCe*PE z1b1Xfx|+ps_%nEReFO}@#VwKE@|Lz8BT*nG*(zzuiXv4ilyOg#;G^ck4tM6n(&xN5 z4xD5Y65R$>b`m6u7na0DM6?n!g1f!~Z;(}o-oA$pp* zf?v!n?bOmJ?H6JIgzCi2^aLN{ywn1$0728!>=9tx_OZln=)*1P1Q5s>+y}qN<%Sw} zmT1^EaE1gBY?j23rOh!rA}#CzP=x0!ns*>T#&Cv{tVJxa@!%0`L&s546 zSaHB6NCa3~8}P?z4-Q2mMjKpTcE5)`CeSD8WRguT`4m#joF(gQ zvdu309C9pFKqXalF~t^Fd4+vWJ#R71VFf>>(NZbP3`& ztleMG#&ii?Af}Yzq&B2YOBI3r{n^^0T&V4tOpY#Sbm83J5*{OUF|=};BJ4Iwc}PU^ zA@leU!mh|oW4?IN_As2rEFvo1-5rf@{k%+bXe%o$9a3pXbtgTLw|jp^H_hIpp}@eT z%GBO}I^ci*zdbI40wUy=IlTepzg)Q}@NG%lx|J zCneS+PinBhAGy;rHM-b~@x$I}cb^}FFI7BR?GV*vTixI?iALBTCM(~dm^4s#+8?-{ z_%3Dejp6E`_{wn3bCp!cF4Z^bj;ME}YYU#vVrTk^X2ycFGQlM!c6f+n>#-!mJI%&?~^**Dk@Mh^JYiQnOizZcs}3U6}i z2HJ<2VPRzY*+nI7C%e|)mDcZzT==dY2)~rog?ZtbaN=w4N4>4lPi<{k{JEQ|wU@UV z?|8Cg^Lh}ddZxnrYV=WZ3YgveUqJeF$Mjei3z^mLz`c@SW%Y3gQS%hC=DN(3Cg(!P zM}OJAZ^Ss&URrS&S;9YvpC$OIUEO)0zBRtL`KSJ-ZUyp|>-Bi^aCG9JK8^YHjHCy% z8E2yRJw`2?&GqE;*-F13kfz(J@1RQ`Iu1_Z_1y8iNvS_}si$85g5U~(S`m0?1AGTlH5H3k-VXC-=DpzN>KlNcPdi(? zA~mrRMvrcPZN7h<{a*(loo|dD#Y!MGwsuLL0bnTIsqTCOK#EW~-#oM(KRe$PsUczj ziH^2@zgSgeo&h*{+3jW*=gUo9q~_Dv$K|H}ptY@CnP;a#_hk}k83ZTt{_&ZPyuSSW z?g#?$A;GRRYJ2C%ieTmKcI5}|tMJGhJ|O#je!geLXuiU8zO z7K3o?x&lz<8R?)$ADR^Dq;e#SXD)8=F>6JcL%}f`E)FuZxS8ZV_)`d z>s|~COLWxFfhc*FB7C*SZbY2uh$J}Q2u9=Ik0tSC>-Qp5y=kJnTW>g)VO-szWtfbW zNb;07*qoM6N<$f(uh@1^@s6 literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_desert_sand.png b/textures/voxeldungeon/default_desert_sand.png new file mode 100644 index 0000000000000000000000000000000000000000..371b8c7eed21d9eb5d70b924ab7f16c465b1348b GIT binary patch literal 350 zcmV-k0iphhP)v$(>-=u4l@i zVa=gn!j@asuxi+|Y1go2(W7A7wQI+oUD2#%yp>+Okyy5eR3N$$qyPW_yh%hsR2b6@ z!Uqz=APfY+lSJ%k(JfnqiCg$auyV}>hW-HS!-))U`GAG zt##cOyk`I-RcDXuvi0-c8QZ+G3tH>&q#6!Fn#;vGrHc$digUA^IZCPwU;8h2<~ z^r0ECM`y>KoSSfbUhL_4@uwCfo?V#W|MB`opn9H?AirRS{|LZ&BtQ))KFQO?F+^gj zY=5Abiz0^;>qnWVZ|nCv2g|R#+mMyM|68{PYJOuJ@iByxrF-{(Pq#!X($3X?*93J>!o)n}qPZ;+=0_KQ}w-`0ShD zjR~$_Sf^iE%(7yN?0!+@g$ITAmKX;*Fope5{x_-h&nNNxmXCK_ Px{krq)z4*}Q$iB}e|B}q literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_desert_sandstone_block.png b/textures/voxeldungeon/default_desert_sandstone_block.png new file mode 100644 index 0000000000000000000000000000000000000000..8fc54e75bc0a0eab48724341a18f42a53829c327 GIT binary patch literal 587 zcmV-R0<`^!P)i_Vr7>zrCP4=%i$R zRQ7}9-*;aNLa|tDC8{{5=X;eg4P*P*9rucxqxvgn@>QGWMFS&to6_`$;M8)n* zV{XSSG1At8ybAhjR{KuV^AY1&Jw*g+F~WIEdI4t^U|r9??hh#Av&1RpnF z03$MJgB`Y8m<|K;#i7r4$K~}6B@{knVipu1n2whFT6kJKi9+&)-gbBwvAyQD1b$u? ZegUJ`SZq;McX|K-002ovPDHLkV1kz<5KjOA literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_desert_sandstone_brick.png b/textures/voxeldungeon/default_desert_sandstone_brick.png new file mode 100644 index 0000000000000000000000000000000000000000..ab58db52350591442c6a84101fa9fd57c84a694a GIT binary patch literal 630 zcmV-+0*U>JP)evs_wbs z^FM!=<@*b|fksN^wJ`RQU(apJkOJe_kxF8-f-jHH=yW@=ouBAi$!RMLeZdC33+Kzm zbnMZ{07MUVxgr6)3tX;_Y~3!hHljq?KeDT58Wh21l++lb$anXw$!cnEG{ev!wcvbO zaWKES6BZ+K_tky_A= z3l9$uxLa*7pDoj!sdYEU$3GkN`S}s=0@Ja_+K5krX;7pXIlWwQAK&B7-?(grX;3^r zC5WE3YpMs{1=_Bu?ivlzGcO4xHDfOkrR*6wpH_yxkYmBSfH4{kU>A=x-Hz(#aW-IG ztXQ?8RfS+PclQV8C1F>Oo{l|s^+4jXDO%wxvMr*!iqnTgjuCTz*m1T>VwYGaFo(8c z%9)5H*o@SIcmt$lI`+&RGCk{~#iSa-)yFFbTLnI_w4>|@NHV|Po*n7lm>E#UxJN}zWzL_tjIsHbpG5e&N z=)ZQ${H`gqx7Q|Uh@M=$G5u1|jLJ=OYdI%yZ+mES?MnE*Q)OO1jbHq%)VDgjZ~LUv zdY5;9-S+j>&YVS3UQd=T?B?pWmme0-1o@r8)78&qol`;+007KyjQ{`u literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_desert_stone_block.png b/textures/voxeldungeon/default_desert_stone_block.png new file mode 100644 index 0000000000000000000000000000000000000000..9eb8e92434f5cf377adc6c24624060471499373f GIT binary patch literal 4368 zcmeHJYc!PY8XlFLB_t^t-TL;Q{ih%M$6m{`*7LmYb3fO6z1MTCd)@2K^}~6n zDeEZ%001>FPjrCnsj)H@*UDCNs||PnKt3}mkSGWsCjhxT4ucg<2MQ9obRb>GVgLZb zp&CMzbktmR>50XHqGwKjtgtDPQ}>V8@3y4jZ14@@Sd(y4`gn<+hd6EdZtrhjtqaZT zcikKpwR=>dapUWpoEuE6MiX9+zxV7N>tnV}ZBiySX(IhqvmMho zrQc{vkp8mqTS<9Z6Wlsf=&+UsS@7-~q}fF=Oa<@wNx$^g*rB@{qwb&5w^oR@o3Ob*yOq|*Yd&c1F$?JQi781TqD(<`$&1{ImsE`2L({q4HG4@#|kZO_P~iNys9uxG|cOelrUd)DyGNmL9es{9LlAfm_?CyMJ%?1$}0 z9Bm8v*u2={QMpe^Gn(6SK!f60Se=nII9^47KGemxRw?1l4&pv}TJYhdYmdQyY~x8T z0{7-=hlGAMDJBMtMegXjcWW|84c6Ct!SL7#yBDEzR@Vol*`c>3CZ%_V$F6eQEcN?z zE<2N|75MiUhjgOKp<7ay+w>%_K3ZIOl>0%H0o7SEde=5R>s@!5x^ZiHQ+HXx!Kymd zzK(d_j=1*wr|c-n&)&|o4MP&~!OJ=J%k84c-aofXF5+HNX3B4Dxbi%8=2*+XmDYlb z@Xc9|37X!GUd?FHjZyU%_KNv#YeuB(Pw_oKq6T6m&cMVf z^EyvsTU#T;fo9Q6rnQsV+3s*%j}(zQ+?}UoBr}YLJ*A`t{jCzhMp{RO`_WKZuF!6 z*7xRdbB3mFjluD~>C;x?)H>M6^_qUYuKkCL(o8>ksX5{^fn9>pXE=j$-klM~xsuuB zBRGu;dtyU%jC@gi2l>O?rid$38)+%$b?tU;zmIkxIkC4Rg!^W=d}?db*rK3_u&ndt;DM#q&JIHTZLh=^0kwjVE&gs(X()#9 z>zv^%y<)>$Q^0fW_s1v9_ivNS2?4w^OLPnVf*|>onC#n$-(42Gu8gBKi|_i~vnh!= ze}}T?*sQBr@a0!kccGhiW6i8BdW=Fc6Anb-Z}mIBAL^Pve9eFRwOHw?@Acz{QCIR_ z7hD!n@~40a!nKi!=P+}oZ|RKnXATdUis`2N?N9GiiZl8a_4vY#szl}jSU-lPrad3W z=zKc8>v3(G`aQ?Eg4$`q(ISs0nFTk7q=W6=*VZf>guyPQ$?5nEbQyZ|*2$`J_($a-RM-CD)1v4V{rL&PSncKJX-E~Yj^4S@DV{k}gW2qZ*l_OJ(jzHK zzj`vujXYo(%(lw~F`XB9pO?;ELRz!6AC+C5dISI{MY3e2pNREAP&sTcnZ}{e!9q4y zCISFJIt#gEY7|`nq|lkH7$?xj+xI{~7R?DnfMKn%TsL|I%QJ~b$0y+esYy{(2O7wE zmoid_kP)!y0y0p@j*j6YgifFzya?I*N*DqH{(uOgoIpgZAJC1%qXX^0c3^8OjF1&? z1KOnwMDl11L;%|TCxvY11d0#{xCjU&At3>rU<>B(m=LIgg9F6c24Z7lB|}*86JrEq zp;ZjuXoce69B4Y9%9AvB z{w9}jUA^VLOoJT7+XD^Ak=OT>ZIrm4Bt8J3qO~&R04GGcvY>*%3yV>BqoSatx+dBu zKT{T}@j|->>h@R_sA#qVRngUf4|lYfrsnyd?w$OT6A^yP*2OgOqbA!oG?qSioSmMz!=0hJex^erKqgWG*>7q90mdVyDowl2%*<}A8gONy$I9nk zg?!D^1lc^n2sq*+i`^g8FSK{;W%p*oyxDq=h20xZV!t*WAXqXsUI{aqMNmoK>$!@q smUozAhz=?5g|1~RydA!U+Su2+ecDsYaisL2kxV$i3xh+~qQdw63m|L&SO5S3 literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_desert_stone_brick.png b/textures/voxeldungeon/default_desert_stone_brick.png new file mode 100644 index 0000000000000000000000000000000000000000..a603d18fb552dcd68166c4b3fa3ff31ac1da4580 GIT binary patch literal 4420 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 P00000NkvXXu0mjf41YqD literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_dry_grass.png b/textures/voxeldungeon/default_dry_grass.png new file mode 100644 index 0000000000000000000000000000000000000000..8d1aafac65bee10aecb111000db9b11944c1a3c9 GIT binary patch literal 1506 zcmV<81s(c{P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1YwlIti8{bv=k1SBCI%i&oyJGjdq0XB9VlJ2Rx zraPo%^gKtRRsHjCQ~$_=8nrU)ybacBc}y??qkQrDdg`%H8E7*;&j*fAP}>(MJIPK{ z=*;n!4*7ZBu3ZdmUI0H7Xt}|=V;2v(xcF|ZVgPloD7wR-4 z2a{BZhMJY-`Uhf(Q*N6xlOmiP2z1Cp%(B8Zu7~ z17^|$Wcq@Jjsg|(gp{!okx_&z78riR@Rz}h=K^vRL5zW@d|m3N1HW0VWi2%VknG{8 zmBfYEae!V%>Ys8<0D*Sk#-qUJT93K`OM)PeGJ8od>NHIxhKpM?2taa4S2}7q zSYpICOE5qJfwn*l7PLcj0EW;DKv5z`GMEGbV8$Xrq9L+^jTat?Z_#lu&LZQKORESz zOqQHr6DSH;#<1|m87~})Ol+9hvSZJIqq1a;Woxaoz2~AMXB<20obxWY=*b(;-g@V~ z4?YGABrVCo1{Zt?Ax7~TjfxyaJIaX|6DCR~ak9xJpF)aR=#x$6Y_rQgha3wQDyDF; z#T8#di503)NmWz1+UlyWp~fa$Yt&5RW}9oig%%fT2dZ!Df1m~jYB-SU=iEX~q|S9i z!vyp>!yPk03=Ih4t|K6X#*UfxU<`KTI%YbcbOoaX$sL;lIx4UNp{an}U}1M5_iNmg z)cPmf@Hfb*4&7fs4ppTGZX47}pM-fJHoLIbR8#9f7=}Lfy>b#F`Y1mo2P{Rzz*1U@ zLs&g(JB7LO{%GHgVgYbi6&IIooSqPZtwWf#v<$BIx%F?DLQWX_Nl=^ua++c-pJ7+@|9PIMG@?C%^XAgyE-WX2q*cq6~E3S)IOQP1HA4sRm>aK0mshm~_w~9}#;Qc$P z4(`h&G4{-qXN$b__?~hHSq4`CpNMsB^;XbLAwSj;(&`cQ#P!}wKKwA1%-QQWn^s0< zIuh4M6t~)LYnRFcKy@LwxORc|wKP~yzWmLltmXrRpVM&fsa0003MNklF|yKciU47?KFWD6x3O2?700ipOche}=j=r)a{1s~e-eNVKbt%@o zdzL1GdH1L97{1H(cJx&M@5quT0l@}<7~XxH%o1ba_DpdVGl4pm7z=;o4V>F&U2;#c zR;*>)3BYo(W*Vl!v5|VVowp~AT+KbRE=OMlTeit~pLY+`^g&Gtln?->?h^1<)5b$* zU05~^vdA_eSDr;{DW96sugmq8dK7E_z$iI0Y2_PFNf84z$GS`U#o$k+(avIxW2BLO zrM{=rYMNQWmTz-3lwx$3Nw7WcJD>NfZzX)7KJGvHya6$dU%p87oOjmvAOHXW07*qo IM6N<$f*bMEk^lez literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_dry_grass_1.png b/textures/voxeldungeon/default_dry_grass_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5cf68a3bafd6853e2c93a48a0d4b8c1ea465d306 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv3GfMV1=4%x2JW99d}v|N*;U~e z)<#@f7ja`##NF-D_jg1;+7Yh7ML)4Eal|aXmR^K;5eHl%+WjVFimdKI;Vst E0L8FByZ`_I literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_dry_grass_2.png b/textures/voxeldungeon/default_dry_grass_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c925aceb891921ae4808b3489c77720f76c239e9 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vt8QlA-noJM=La8J7<711 z@QLMNr&olYT@`*|ZN#N@5mz@x-q;jzYfIGK?a}vlL_gXU^LTe`>LP21s-)EC%*XLirAtVbF z^7nLc43W5ew%1Xp!GME#`xdcm*1!L=S&#p7Y-9E;WBOB8BYVvC-L^FoFG-4idlKV( zUMxXs?;^M9Y*7hC4i`C;#9B{jp5!&*dbj=7e*JF@Y3+=s`x;iL0*z+yboFyt=akR{ E0HnTK9smFU literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_dry_grass_3.png b/textures/voxeldungeon/default_dry_grass_3.png new file mode 100644 index 0000000000000000000000000000000000000000..4e4d84e4382a9eb2d9540fff6ea5ab6db738bb89 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vt8QlA-noJM=La8J7<711 z@QLMNr&olYT@`*|ZN#N@5mz@x-q;jzYfIGK?a}vlL_gXU^LTe`>LP21s-)EC%*Ri@gt@STZ zDA&`)F+}3>*4~3mhYdKK;CGAD*j$&SML>%gJYD@<);T3K0RT#GaYFzA literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_dry_grass_4.png b/textures/voxeldungeon/default_dry_grass_4.png new file mode 100644 index 0000000000000000000000000000000000000000..d315849e0b655c9908bbf278d1b7389af7d9e3cc GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;Vt8QlA-noJM=La8J7<711 z@QLMNr&olYT@`*|ZN#N@5mz@x-q;jzYfIGK?a}vlL_gXU^LTe`>LP21s-)EC%H&EU7@@gnh zsL9jCF+}3>RKG^SBMKbdtz6r9cl_VNpZB4v!Bc_bPqk2Bq*j>g1HBVT(r)2mYkOsO z?7Da%MN#^|XQsouk{7AYtV^k_zP8Bb&y1tJ0&7D3Eu({s=JH%HDbL{5wOUr==5zU5 z`M$@D?HAquKGt&mvOCLK+~>gCSuPW%ta`re!;WRYp79?qX60S(6EqL#8U{~SKbLh* G2~7ZCq=hj4BSQm47L-f^6u{XBF-QE^^cSrn#U2zY0CqCVm_-ucY!521s-)EC$Q4yWF`LZTZ zXr`x&V~E7%(0)gu!v-A8*V~R*a9aGY&wctWdQ@0+Qek%> zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-_blIti8{bv=k1SBB|mcz4Zb}-8y0gmHN+_!UU z=4)z9C!}T2P`wGD~UwyGrAprvU0RftW3AQic_B{RVZuoB+m;z2Fb>{$0sI)})D|rPkga2zx4uBz zWDS=}g2iS_2FNJz0>mKT6;S~KVKjoWWsVfE7z4nJ&631GB*slN9a(JKqp;Q@P1Yr?TnLU@4G$^a6YSg4TQVfx!M2#_~ zm=h+lmgFQ!Q%ou4Y%z0inX~QAwj$?(g-R$~q-cpHm0V3eHB_!rwZ@uiZrG@W#!Z^G z*iy?Kx=G3P(78+39((F}nAQf3FnGw&5l0&NWbI(}ZTtpnaIl7psku&1*37Cp9W56y z&l#Sa8Dkj07}v>w2^uG7K0*jMnVX#Xgw_>|mLyMZ8u;u$jKa_XdBDltlev$1bB6U# zyx}Lzxk=r>z#O_xFTCBb*5*lA7h}5%C#IgpBqA`(V?R2z6ftJ|Yc*kOW(GEBDKBG> z=w%yg=li8|4vvk$<<&ww_vRf5AxU4x>aAt)ykE!sg(cO3d9DP_V%5Y2kGG( z7xvE%%eXe#IaqW$vQ5_Zd1s}w^YyM0I@}6kT=#>W9=ig+oVz>k@6K_hAEI26*Ja~o zM^MPoO}m}f>vr@P2qiujrm=mJJ(BOuv$Su4-dn7OCtA?XEJ^kbwWp2!aQ%iL@p9Pl6vHOkEvBD( zIU}3_?&^NldlKSQjt#GMV|r*uc4DEPc|CP?THLwl2hsU#u-YxQ_$L}R~h-GO7@RhN-+r0sL5l)vKT@`A7prN@QT^-~!lDKb`cuk_p zfl4F)N{YR29WBy<^0~c~2Le4DMM{eP0O%L9+X(iw3$mBR_7vTdy`R%_uX*xDYhdhW zOI--iM28}>_^aIARrjy6=CX0^Jbhid;vE3@83H!|Xi7UutM({fI{L^*K2F1APvN`X zbhRE5>XhCj@Ef!Htqp^9<5cZQAICOhX-vt5e~`s>cK&}y{{=_G-q4c0?*0uk&8L2L ziXq?t009k2L_t(I%k7fAYC=H}g})u_)*Zwygm9lqQrQU!DJ^UzZ4k>~9zlF62_c=x zj<$PKgxOqw2zh{ncNB&kY>%cw)P`f;R*rZPwE^H- zpES`=1EMxqwi8azT`U_1+jEYa+dGbVivX56;aE1rqY68Ks%+UV#JU{s#bb5{p2p7$ z!wZi0;)U-FKQa4haFQfyL)3=u9dT7BMs3hk&{V3>`QF_-J>U8B;~fy9QX|gh>j3b& zd}x9Cn3}$g#*;+|uKe096moa3hB$s&jkXY+N?R1kL6@f^;{CUuowm+&~< ngs#(Xxb|oMjMZ|~@{fuysvDYWO1l=m00000NkvXXu0mjfmEo@( literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_grass.png b/textures/voxeldungeon/default_grass.png new file mode 100644 index 0000000000000000000000000000000000000000..a79fc4a40e710ca009f08687e3e393a64ad8d81e GIT binary patch literal 1528 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1aYk?bf8{I4i31SBCo!ogswUIrKb2{0bp!|cwh zI?SSLfbjDi?%u2*>dYAvDGeVi^?r!cs2s1X9D z8#UY%CGOjt4zEAaXWvKE5lk`}ttlp(O-IIvglsBWEPx3s?pSorm^DXBJ9(XnGI3uE z>?u-a!^pM`tmHXz;lRY1c4oG~bmoFRZtU?g28~=$O$pT*>Xsh|{ATdYs5KkK2vJXu z2UeOFQR4v{jNI;Ori5TUc#{tB9OnfWVp$oK4s*~0CbJC}o8U`Z+y%gDCpr&(p)ZX! z>MF4sTQnJDrNB63L5Ic@c|^+;l%S-U6I8r&vD=c+Sl3cf zeuN!+sRnJgqpx;v>wN*isw*-bXL`7La5OIhWUZIa`3Ty2%=s;{BOnoiaZR^P^7u!aX~)R}5_{$x#8 zy>E`X3v7Kx8fVHFSyaY-V?YH>jWZL_T58NS&P*h&3L#BW8aD+^0(45D-I1i?$=!>& zuXzK-`ZwO_8|I)<_dhU4u=9hr1#6{s!rU1fRoE~!tkt($3Q7MegRPv?W(BRd>@>Hw zu4SMo=c0=!ny22ny(aX**g${OR(j0W-7)qpj0)WFV{<6^uw=9MMcvw5!+RoWxY{tS z9q>4ff@Jboj3I9zBT-W3_V%Pb8H4YO#)u66PGz8c%ve`ng~u{9X{}?dLgc(mchjET zjgu&cN^fH%qjYJ&A%|%-BWY$xx7D9xoVi8X`boX z<4GD|3zue5z_SEl4UrwNSkh9MuHW6cO9j9zfuqyu|E?2<+54J6R(RjrGc07X{$xxt zye((ddFJ^Zt_XeEB=e&D8NLL)^r{?Uyy(GRJZ;{ z!L5(YZO{4Q=2IJn&s}ZN6EAJ{DKK~_>xW#f&H8|=DdYeK9^T^?XI*2tD|z*inDI7& zuf7(S1g>>|ZRzmV(--~n*H5OFD}1ik>sRY=_ya32&b6i^{>3K~o<(zw`VRaDdH7nP zME$S*KamI9V=Vbj7XSbOE=fc|R4C6~QoCvcF%TSYRD|OQ%5udOYgZ{vAYFba{~dw~ z*%%?5;|Srnq?ltZtVYYuK1MUzy??x}6%rAH)}=7!i9ySyNQ9ZCln4ngGXroJ_hYAn zn%R_RhXRL9c`lcN<{XZeQUZVsho(FW3Dl(k+l(pCZKp$wh1)&FRm{YoEwshF$Q#(U z>!7~J%*@QogaZhhnM6q3+FI&fCgkljd^Pvzped!g6fcwZeN&!eQ1_u9I}Y*@0K!@^ zh1o^mLv>KX5;t?aOvshbqP6Vo$Bup-jyFBbOxj_ToEf+Bj;FYYF{rn#_2w6Yn@X*n zX2v$saKBvN&FOyZJX@FIf3r1|VyqPp!`oB+x=O@zujhJNE53iP0CtavLG$NHBK9wK euBX2rNW?#UBIhsSArnUc0000!lvI6;x#X;^) zj5kl})B`yR$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?e43O!qUodcYvxt&^iv>2;5 p`>>Vo6x$8!s*JJ@C(S!0d?DO(&ZoVb?*ZM&;OXk;vd$@?2>_H&Zh8O! literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_grass_2.png b/textures/voxeldungeon/default_grass_2.png new file mode 100644 index 0000000000000000000000000000000000000000..03729a007860cc2cbf4c060fb6792555b46882ba GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;x#X;^) zj5kl})B`yR$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?e4f{`8 zJEGz|DKUcQ`?Zaq)YBG5Snd8i_x8}>E zony)8Ppn<`=}Y?AnGPlMewtR?e!lt5y{ygGlWLcJNn8K^S)RIBLrOJcg2g>XgN{B1 znREOvO13Q9Uy?L!w{TqaD_0KhHj7f1#Vq$V0#`>ox>7h({fi%~rBBeKs;Ng`={#*x cmr|Kn2Kz}fJy85}Sb4q9e039)dO#lD@ literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_grass_3.png b/textures/voxeldungeon/default_grass_3.png new file mode 100644 index 0000000000000000000000000000000000000000..92ca1b5d8d28ddfa4b16968380d5efd246727cbb GIT binary patch literal 418 zcmV;T0bTxyP)y{D4^009n3L_t(I%k7dqOT$nUhM#+reo&g2 zR4G=sZk=4*-1LX_xA-eMDTt$VFw#;4(V-!=O>1o`ghYEBLL;Jx&`mtcJ@B6Az3;hP zB_eE6dL#PZ;I9~{_UX~D22-;vh1Xbpn_xWG`F9MKhWrGlW;xgWq%0bs?yS^WXjI?w z-cPbKoToXkHX6^h>=$FD*Ta)p#KV0o0E7M%fO;jnNmg;TZye>R+@0drN4)7};P!4N zPG%oKrxScy?Y0{NU=I3IYLADg1CJ64|FT8z`3%`Q!CRgq)ni6Y563nLB9QAA01JIV z*Dr}4-Yo#wvkO?R$*Adx<(dFEwgEuHg77J&_>urHtY1m3V$!hS9fgu^ZRYN%qW}N^ M07*qoM6N<$g2;fZTmS$7 literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_grass_4.png b/textures/voxeldungeon/default_grass_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c782a33be6b05c3e5003dc4e9134aaa365abba35 GIT binary patch literal 503 zcmVy{D4^00Co3L_t(I%k7cNN&_(zhQFEV4ZKaQ zs1`V>rqYn=c<8yh8P3Weef6egQw^%)p=T-$aSg8dXEqh!LYf_eR#n?_6mBTB|jVPi_HNS*ijsc(a>zYB;;-iL0Z`NdF&{Udo&ly$BXTB|hp?N t0l7|O)K~bm1u8=e{1746344dz@&%>Lzd3jIMcM!W002ovPDHLkV1nDL(uM#4 literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_grass_5.png b/textures/voxeldungeon/default_grass_5.png new file mode 100644 index 0000000000000000000000000000000000000000..b727e9cf3693f8fb494018f8c5b888f2a758b7a1 GIT binary patch literal 628 zcmV-)0*n2LP)y{D4^00H1hL_t(I%cYY~Zqq;%hre;gj_W3o z-BclI)s_peMyPjT$u-~*T!1wTP5~@gm{o;DOw~9INo?6k>cmcm#njF}7D&uyJa69n z&G&mx7D_4pXNk8TuKy`9m$ovCOzg*v{lMMI{wtDMWFnV`cgA)wm$o{$^eew&agZF2 zmj}XzS!BX<8>)O|6dMYl=F|@?T)Ik>-#ZqfcqU5p41ITQ?IMrk9Dq@5RK3Whttty0 zM<-soO7wrHB@qDqpPA}4)&ig~mODa5>Fd+S9~-a31b{)3@7VbId8E!-rU2-;k0O`0 zGD@!(9Si?vt^neA4M5;W04(FhLG%3ZQJF<1q+chgTRlJ_1xoG6T-UQC&lrG zU|kb zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-|Y((^V9eCH{01Oi|^4(m*AkmF}rRBY=j|4beu z+M*1BXuE`D)&BXrtG{rt)~t;6!A0jZ4iin}go~iBqwRUgNSk>+4%%l@k2e^zV3sBH zX5W=9KlI%>!_dPGvTqCIbi;SYK5aQ8wfhar+Uxrfu5a%(^xjr>$vBk3t)!Lg**-l^`sIn}`@Ce8xi4Z=C)L1$eFmRVElCEcte*pA>#GdM_F^B0~1GYlXO& z2M#pKDB}z@078A^W@mwqaUSXhtN=kf%N&qk(s`N4mM(6|B!EEAVqW|rUk7SDSz_SZ zA{Y`tpdE=NN7^%cA|o6CP(tJ^hBFW#Yq=swHX;t#1n>yHvBuNXWy?#Btpa?kIPt(H zN&;BMSn$W201hQ9)>vzu^)}dOlXBvWv(7p1#-2-Fyz$mM?|tymry#)u8(i=qgcwrf zDAHaC<k(*TxlkG6g?{cpBJc-+>0e0Gx0-XE+7=r_ z?{#Zd$AuX?d3g%e+$#NHH7=_bt$4@gkd@luegWroQkBIMq9l*4B)#}9UwWewo z^@Jv^GBLdt0C%qaQstve;FmfPI*r{Fzaii|{*&3CbbF%08SMkfs;JBRzWqw`pWDjj zmjYrjo-{ckc|q~DU#xa!iI>7_%l^?k9)5Lem<<(P zEOsAq8*IT##Nk@+`gVD0B9C}_S;X?dQCT1^*lRdd3T2RR02s55e9n;F>`I z009a~L_t(I%k7dePQySDMc=MmA&S*11;vOHpp+;jWt19@kb+Yn&XFUSnlnT$t(*Y4 z*dkiFuv|r$!i>FkTv79@nVmm>{*2aa_UrDu2J66Op868eT;VcLJV&ep5uvK8fnzlg z5dfC*+q)b5$|E8)p`CCtozjGsc#h0*|IkkaATZ%Hp~b4z`qCFvxe4u+Sjy4ds?D^Z zZuH${{)#i?8tBe2+Vm?waUvp!2x*U1RV9i@e_b~U&G$}wGTr&>^m`~7Ef#rc0Jg7B z9WWeIdp_PijZx+2_g$yEYvUX#$2vG3N;4rozN|Z)a6BxF%sDnK7I|rkyfo=SmyrI_ gKVh@)UHqfR58V%tqCzkcbpQYW07*qoM6N<$f?n|3@&Et; literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_mossycobble.png b/textures/voxeldungeon/default_mossycobble.png new file mode 100644 index 0000000000000000000000000000000000000000..ad1a3afc9244e084263e26f874c911423d2e7fba GIT binary patch literal 2012 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 QK_CEoYiHC0OTXBE0UvOKv;Y7A literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_sandstone_brick.png b/textures/voxeldungeon/default_sandstone_brick.png new file mode 100644 index 0000000000000000000000000000000000000000..e7150e501eb86a104943df66da3d22057dc5f86a GIT binary patch literal 439 zcmV;o0Z9IdP)W=}$i$S(#h1*-na;_a&&!C?%#P8_pwrEg)XtUE&zRQIo7U5w z*wmof)T7(hq}|u2-`T3<;Hl@~uW{5bbpQYW32;bRa{vGf6951U69E94oEQKA00(qQ zO+^Ra1sDMn9_Z8JoB#j-$w@>(R2b6@j_p!|Fc1Jwp+G3&+2p7uUt#1CGX{#Kj4(;lbMmJPf2<>i7=6DWUQ?E4ml+CL6o;9t#XB(8sK1CjD|uE z%4#AK)KX+db#TPMNs-xN+z3bb?7D6mTsQUeWpMKww1Jv`_OIVkzH7N>5Hj(W`Wn4@ z5&;ra@;aXZF|9!%ppU9L9_)q9GZ?dHUY8@F8ViD|#l&HHv|nUWXnj?Zp;|LHLvV|m h`p&^^8Qplj4F80g73Sg>o{sT(o z#%yuM$yd=fnb9=#SI9P*L)BLM+P&n>W-)I3eaq&%;LKj$$;#hC)^|Thr!d;&t;ucLK6ViF;-~+ literal 0 HcmV?d00001 diff --git a/textures/voxeldungeon/default_stone_block.png b/textures/voxeldungeon/default_stone_block.png new file mode 100644 index 0000000000000000000000000000000000000000..3b771e725e32c342a26dcee06ec7b7cb5800d974 GIT binary patch literal 498 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 Z`oP^rDys)=#32&h01sCmc!M)G=`ScLs@(tp literal 0 HcmV?d00001 diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_cactus.png b/textures/voxeldungeon/voxeldungeon_armor_cactus.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_cactus.png rename to textures/voxeldungeon/voxeldungeon_armor_cactus.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_cactus_preview.png b/textures/voxeldungeon/voxeldungeon_armor_cactus_preview.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_cactus_preview.png rename to textures/voxeldungeon/voxeldungeon_armor_cactus_preview.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_cloth.png b/textures/voxeldungeon/voxeldungeon_armor_cloth.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_cloth.png rename to textures/voxeldungeon/voxeldungeon_armor_cloth.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_cloth_preview.png b/textures/voxeldungeon/voxeldungeon_armor_cloth_preview.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_cloth_preview.png rename to textures/voxeldungeon/voxeldungeon_armor_cloth_preview.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_demonite.png b/textures/voxeldungeon/voxeldungeon_armor_demonite.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_demonite.png rename to textures/voxeldungeon/voxeldungeon_armor_demonite.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_demonite_preview.png b/textures/voxeldungeon/voxeldungeon_armor_demonite_preview.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_demonite_preview.png rename to textures/voxeldungeon/voxeldungeon_armor_demonite_preview.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_diamond.png b/textures/voxeldungeon/voxeldungeon_armor_diamond.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_diamond.png rename to textures/voxeldungeon/voxeldungeon_armor_diamond.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_diamond_preview.png b/textures/voxeldungeon/voxeldungeon_armor_diamond_preview.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_diamond_preview.png rename to textures/voxeldungeon/voxeldungeon_armor_diamond_preview.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_leather.png b/textures/voxeldungeon/voxeldungeon_armor_leather.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_leather.png rename to textures/voxeldungeon/voxeldungeon_armor_leather.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_leather_preview.png b/textures/voxeldungeon/voxeldungeon_armor_leather_preview.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_leather_preview.png rename to textures/voxeldungeon/voxeldungeon_armor_leather_preview.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_mail.png b/textures/voxeldungeon/voxeldungeon_armor_mail.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_mail.png rename to textures/voxeldungeon/voxeldungeon_armor_mail.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_mail_preview.png b/textures/voxeldungeon/voxeldungeon_armor_mail_preview.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_mail_preview.png rename to textures/voxeldungeon/voxeldungeon_armor_mail_preview.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_mese.png b/textures/voxeldungeon/voxeldungeon_armor_mese.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_mese.png rename to textures/voxeldungeon/voxeldungeon_armor_mese.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_mese_preview.png b/textures/voxeldungeon/voxeldungeon_armor_mese_preview.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_mese_preview.png rename to textures/voxeldungeon/voxeldungeon_armor_mese_preview.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_plate.png b/textures/voxeldungeon/voxeldungeon_armor_plate.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_plate.png rename to textures/voxeldungeon/voxeldungeon_armor_plate.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_plate_preview.png b/textures/voxeldungeon/voxeldungeon_armor_plate_preview.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_plate_preview.png rename to textures/voxeldungeon/voxeldungeon_armor_plate_preview.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_scale.png b/textures/voxeldungeon/voxeldungeon_armor_scale.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_scale.png rename to textures/voxeldungeon/voxeldungeon_armor_scale.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_scale_preview.png b/textures/voxeldungeon/voxeldungeon_armor_scale_preview.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_scale_preview.png rename to textures/voxeldungeon/voxeldungeon_armor_scale_preview.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_steel.png b/textures/voxeldungeon/voxeldungeon_armor_steel.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_steel.png rename to textures/voxeldungeon/voxeldungeon_armor_steel.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_steel_preview.png b/textures/voxeldungeon/voxeldungeon_armor_steel_preview.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_steel_preview.png rename to textures/voxeldungeon/voxeldungeon_armor_steel_preview.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_wood.png b/textures/voxeldungeon/voxeldungeon_armor_wood.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_wood.png rename to textures/voxeldungeon/voxeldungeon_armor_wood.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_armor_wood_preview.png b/textures/voxeldungeon/voxeldungeon_armor_wood_preview.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_armor_wood_preview.png rename to textures/voxeldungeon/voxeldungeon_armor_wood_preview.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_blank.png b/textures/voxeldungeon/voxeldungeon_blank.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_blank.png rename to textures/voxeldungeon/voxeldungeon_blank.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_buff_blindness.png b/textures/voxeldungeon/voxeldungeon_buff_blindness.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_buff_blindness.png rename to textures/voxeldungeon/voxeldungeon_buff_blindness.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_buff_burning.png b/textures/voxeldungeon/voxeldungeon_buff_burning.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_buff_burning.png rename to textures/voxeldungeon/voxeldungeon_buff_burning.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_buff_crippled.png b/textures/voxeldungeon/voxeldungeon_buff_crippled.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_buff_crippled.png rename to textures/voxeldungeon/voxeldungeon_buff_crippled.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_buff_frozen.png b/textures/voxeldungeon/voxeldungeon_buff_frozen.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_buff_frozen.png rename to textures/voxeldungeon/voxeldungeon_buff_frozen.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_buff_herbal_armor.png b/textures/voxeldungeon/voxeldungeon_buff_herbal_armor.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_buff_herbal_armor.png rename to textures/voxeldungeon/voxeldungeon_buff_herbal_armor.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_buff_herbal_healing.png b/textures/voxeldungeon/voxeldungeon_buff_herbal_healing.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_buff_herbal_healing.png rename to textures/voxeldungeon/voxeldungeon_buff_herbal_healing.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_buff_levitation.png b/textures/voxeldungeon/voxeldungeon_buff_levitation.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_buff_levitation.png rename to textures/voxeldungeon/voxeldungeon_buff_levitation.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_buff_poisoned.png b/textures/voxeldungeon/voxeldungeon_buff_poisoned.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_buff_poisoned.png rename to textures/voxeldungeon/voxeldungeon_buff_poisoned.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_buff_rooted.png b/textures/voxeldungeon/voxeldungeon_buff_rooted.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_buff_rooted.png rename to textures/voxeldungeon/voxeldungeon_buff_rooted.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_buffs.png b/textures/voxeldungeon/voxeldungeon_buffs.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_buffs.png rename to textures/voxeldungeon/voxeldungeon_buffs.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_foilage_caves_tallgrass.png b/textures/voxeldungeon/voxeldungeon_foilage_caves_tallgrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_foilage_caves_tallgrass.png rename to textures/voxeldungeon/voxeldungeon_foilage_caves_tallgrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_foilage_caves_tallgrass_top.png b/textures/voxeldungeon/voxeldungeon_foilage_caves_tallgrass_top.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_foilage_caves_tallgrass_top.png rename to textures/voxeldungeon/voxeldungeon_foilage_caves_tallgrass_top.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_foilage_cities_tallgrass.png b/textures/voxeldungeon/voxeldungeon_foilage_cities_tallgrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_foilage_cities_tallgrass.png rename to textures/voxeldungeon/voxeldungeon_foilage_cities_tallgrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_foilage_cities_tallgrass_top.png b/textures/voxeldungeon/voxeldungeon_foilage_cities_tallgrass_top.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_foilage_cities_tallgrass_top.png rename to textures/voxeldungeon/voxeldungeon_foilage_cities_tallgrass_top.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_foilage_halls_tallgrass.png b/textures/voxeldungeon/voxeldungeon_foilage_halls_tallgrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_foilage_halls_tallgrass.png rename to textures/voxeldungeon/voxeldungeon_foilage_halls_tallgrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_foilage_halls_tallgrass_top.png b/textures/voxeldungeon/voxeldungeon_foilage_halls_tallgrass_top.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_foilage_halls_tallgrass_top.png rename to textures/voxeldungeon/voxeldungeon_foilage_halls_tallgrass_top.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_foilage_prisons_tallgrass.png b/textures/voxeldungeon/voxeldungeon_foilage_prisons_tallgrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_foilage_prisons_tallgrass.png rename to textures/voxeldungeon/voxeldungeon_foilage_prisons_tallgrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_foilage_prisons_tallgrass_top.png b/textures/voxeldungeon/voxeldungeon_foilage_prisons_tallgrass_top.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_foilage_prisons_tallgrass_top.png rename to textures/voxeldungeon/voxeldungeon_foilage_prisons_tallgrass_top.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_foilage_sewers_tallgrass.png b/textures/voxeldungeon/voxeldungeon_foilage_sewers_tallgrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_foilage_sewers_tallgrass.png rename to textures/voxeldungeon/voxeldungeon_foilage_sewers_tallgrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_foilage_sewers_tallgrass_top.png b/textures/voxeldungeon/voxeldungeon_foilage_sewers_tallgrass_top.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_foilage_sewers_tallgrass_top.png rename to textures/voxeldungeon/voxeldungeon_foilage_sewers_tallgrass_top.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_gems.png b/textures/voxeldungeon/voxeldungeon_gems.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_gems.png rename to textures/voxeldungeon/voxeldungeon_gems.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_caves_tallgrass.png b/textures/voxeldungeon/voxeldungeon_icon_caves_tallgrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_caves_tallgrass.png rename to textures/voxeldungeon/voxeldungeon_icon_caves_tallgrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_cities_tallgrass.png b/textures/voxeldungeon/voxeldungeon_icon_cities_tallgrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_cities_tallgrass.png rename to textures/voxeldungeon/voxeldungeon_icon_cities_tallgrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_halls_tallgrass.png b/textures/voxeldungeon/voxeldungeon_icon_halls_tallgrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_halls_tallgrass.png rename to textures/voxeldungeon/voxeldungeon_icon_halls_tallgrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_albino.png b/textures/voxeldungeon/voxeldungeon_icon_mob_albino.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_albino.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_albino.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_bandit.png b/textures/voxeldungeon/voxeldungeon_icon_mob_bandit.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_bandit.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_bandit.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_bee.png b/textures/voxeldungeon/voxeldungeon_icon_mob_bee.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_bee.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_bee.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_crab.png b/textures/voxeldungeon/voxeldungeon_icon_mob_crab.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_crab.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_crab.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_mimic.png b/textures/voxeldungeon/voxeldungeon_icon_mob_mimic.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_mimic.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_mimic.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_piranha.png b/textures/voxeldungeon/voxeldungeon_icon_mob_piranha.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_piranha.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_piranha.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_rat.png b/textures/voxeldungeon/voxeldungeon_icon_mob_rat.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_rat.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_rat.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_scout.png b/textures/voxeldungeon/voxeldungeon_icon_mob_scout.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_scout.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_scout.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_skeleton.png b/textures/voxeldungeon/voxeldungeon_icon_mob_skeleton.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_skeleton.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_skeleton.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_statue.png b/textures/voxeldungeon/voxeldungeon_icon_mob_statue.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_statue.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_statue.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_thief.png b/textures/voxeldungeon/voxeldungeon_icon_mob_thief.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_thief.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_thief.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_mob_wraith.png b/textures/voxeldungeon/voxeldungeon_icon_mob_wraith.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_mob_wraith.png rename to textures/voxeldungeon/voxeldungeon_icon_mob_wraith.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_frost.png b/textures/voxeldungeon/voxeldungeon_icon_potion_frost.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_frost.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_frost.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_haste.png b/textures/voxeldungeon/voxeldungeon_icon_potion_haste.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_haste.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_haste.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_healing.png b/textures/voxeldungeon/voxeldungeon_icon_potion_healing.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_healing.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_healing.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_invisibility.png b/textures/voxeldungeon/voxeldungeon_icon_potion_invisibility.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_invisibility.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_invisibility.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_levitation.png b/textures/voxeldungeon/voxeldungeon_icon_potion_levitation.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_levitation.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_levitation.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_liquidflame.png b/textures/voxeldungeon/voxeldungeon_icon_potion_liquidflame.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_liquidflame.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_liquidflame.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_might.png b/textures/voxeldungeon/voxeldungeon_icon_potion_might.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_might.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_might.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_mindvision.png b/textures/voxeldungeon/voxeldungeon_icon_potion_mindvision.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_mindvision.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_mindvision.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_paralyticgas.png b/textures/voxeldungeon/voxeldungeon_icon_potion_paralyticgas.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_paralyticgas.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_paralyticgas.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_purification.png b/textures/voxeldungeon/voxeldungeon_icon_potion_purification.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_purification.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_purification.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_strength.png b/textures/voxeldungeon/voxeldungeon_icon_potion_strength.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_strength.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_strength.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_potion_toxicgas.png b/textures/voxeldungeon/voxeldungeon_icon_potion_toxicgas.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_potion_toxicgas.png rename to textures/voxeldungeon/voxeldungeon_icon_potion_toxicgas.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_prisons_tallgrass.png b/textures/voxeldungeon/voxeldungeon_icon_prisons_tallgrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_prisons_tallgrass.png rename to textures/voxeldungeon/voxeldungeon_icon_prisons_tallgrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_enchantment.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_enchantment.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_enchantment.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_enchantment.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_identify.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_identify.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_identify.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_identify.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_lullaby.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_lullaby.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_lullaby.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_lullaby.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_magicmapping.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_magicmapping.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_magicmapping.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_magicmapping.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_mirrorimage.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_mirrorimage.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_mirrorimage.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_mirrorimage.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_psionicblast.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_psionicblast.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_psionicblast.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_psionicblast.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_rage.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_rage.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_rage.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_rage.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_recharging.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_recharging.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_recharging.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_recharging.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_removecurse.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_removecurse.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_removecurse.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_removecurse.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_teleportation.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_teleportation.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_teleportation.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_teleportation.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_terror.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_terror.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_terror.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_terror.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_scroll_upgrade.png b/textures/voxeldungeon/voxeldungeon_icon_scroll_upgrade.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_scroll_upgrade.png rename to textures/voxeldungeon/voxeldungeon_icon_scroll_upgrade.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icon_sewers_tallgrass.png b/textures/voxeldungeon/voxeldungeon_icon_sewers_tallgrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icon_sewers_tallgrass.png rename to textures/voxeldungeon/voxeldungeon_icon_sewers_tallgrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_icons_sewers_door.png b/textures/voxeldungeon/voxeldungeon_icons_sewers_door.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_icons_sewers_door.png rename to textures/voxeldungeon/voxeldungeon_icons_sewers_door.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_ankh.png b/textures/voxeldungeon/voxeldungeon_item_ankh.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_ankh.png rename to textures/voxeldungeon/voxeldungeon_item_ankh.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_bomb.png b/textures/voxeldungeon/voxeldungeon_item_bomb.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_bomb.png rename to textures/voxeldungeon/voxeldungeon_item_bomb.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_demonite_ingot.png b/textures/voxeldungeon/voxeldungeon_item_demonite_ingot.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_demonite_ingot.png rename to textures/voxeldungeon/voxeldungeon_item_demonite_ingot.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_demonite_lump.png b/textures/voxeldungeon/voxeldungeon_item_demonite_lump.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_demonite_lump.png rename to textures/voxeldungeon/voxeldungeon_item_demonite_lump.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_dew.png b/textures/voxeldungeon/voxeldungeon_item_dew.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_dew.png rename to textures/voxeldungeon/voxeldungeon_item_dew.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_food_chargrilled_meat.png b/textures/voxeldungeon/voxeldungeon_item_food_chargrilled_meat.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_food_chargrilled_meat.png rename to textures/voxeldungeon/voxeldungeon_item_food_chargrilled_meat.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_food_cooked_meat.png b/textures/voxeldungeon/voxeldungeon_item_food_cooked_meat.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_food_cooked_meat.png rename to textures/voxeldungeon/voxeldungeon_item_food_cooked_meat.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_food_mystery_meat.png b/textures/voxeldungeon/voxeldungeon_item_food_mystery_meat.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_food_mystery_meat.png rename to textures/voxeldungeon/voxeldungeon_item_food_mystery_meat.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_food_pasty.png b/textures/voxeldungeon/voxeldungeon_item_food_pasty.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_food_pasty.png rename to textures/voxeldungeon/voxeldungeon_item_food_pasty.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_food_ration.png b/textures/voxeldungeon/voxeldungeon_item_food_ration.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_food_ration.png rename to textures/voxeldungeon/voxeldungeon_item_food_ration.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_gold.png b/textures/voxeldungeon/voxeldungeon_item_gold.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_gold.png rename to textures/voxeldungeon/voxeldungeon_item_gold.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_honeypot.png b/textures/voxeldungeon/voxeldungeon_item_honeypot.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_honeypot.png rename to textures/voxeldungeon/voxeldungeon_item_honeypot.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_amber.png b/textures/voxeldungeon/voxeldungeon_item_potion_amber.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_amber.png rename to textures/voxeldungeon/voxeldungeon_item_potion_amber.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_azure.png b/textures/voxeldungeon/voxeldungeon_item_potion_azure.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_azure.png rename to textures/voxeldungeon/voxeldungeon_item_potion_azure.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_bistre.png b/textures/voxeldungeon/voxeldungeon_item_potion_bistre.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_bistre.png rename to textures/voxeldungeon/voxeldungeon_item_potion_bistre.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_charcoal.png b/textures/voxeldungeon/voxeldungeon_item_potion_charcoal.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_charcoal.png rename to textures/voxeldungeon/voxeldungeon_item_potion_charcoal.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_crimson.png b/textures/voxeldungeon/voxeldungeon_item_potion_crimson.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_crimson.png rename to textures/voxeldungeon/voxeldungeon_item_potion_crimson.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_golden.png b/textures/voxeldungeon/voxeldungeon_item_potion_golden.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_golden.png rename to textures/voxeldungeon/voxeldungeon_item_potion_golden.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_indigo.png b/textures/voxeldungeon/voxeldungeon_item_potion_indigo.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_indigo.png rename to textures/voxeldungeon/voxeldungeon_item_potion_indigo.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_ivory.png b/textures/voxeldungeon/voxeldungeon_item_potion_ivory.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_ivory.png rename to textures/voxeldungeon/voxeldungeon_item_potion_ivory.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_jade.png b/textures/voxeldungeon/voxeldungeon_item_potion_jade.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_jade.png rename to textures/voxeldungeon/voxeldungeon_item_potion_jade.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_magenta.png b/textures/voxeldungeon/voxeldungeon_item_potion_magenta.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_magenta.png rename to textures/voxeldungeon/voxeldungeon_item_potion_magenta.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_silver.png b/textures/voxeldungeon/voxeldungeon_item_potion_silver.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_silver.png rename to textures/voxeldungeon/voxeldungeon_item_potion_silver.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_potion_turquoise.png b/textures/voxeldungeon/voxeldungeon_item_potion_turquoise.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_potion_turquoise.png rename to textures/voxeldungeon/voxeldungeon_item_potion_turquoise.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_berkanan.png b/textures/voxeldungeon/voxeldungeon_item_scroll_berkanan.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_berkanan.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_berkanan.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_gyfu.png b/textures/voxeldungeon/voxeldungeon_item_scroll_gyfu.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_gyfu.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_gyfu.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_isaz.png b/textures/voxeldungeon/voxeldungeon_item_scroll_isaz.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_isaz.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_isaz.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_kaunan.png b/textures/voxeldungeon/voxeldungeon_item_scroll_kaunan.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_kaunan.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_kaunan.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_laguz.png b/textures/voxeldungeon/voxeldungeon_item_scroll_laguz.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_laguz.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_laguz.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_mannaz.png b/textures/voxeldungeon/voxeldungeon_item_scroll_mannaz.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_mannaz.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_mannaz.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_naudiz.png b/textures/voxeldungeon/voxeldungeon_item_scroll_naudiz.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_naudiz.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_naudiz.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_odal.png b/textures/voxeldungeon/voxeldungeon_item_scroll_odal.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_odal.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_odal.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_raido.png b/textures/voxeldungeon/voxeldungeon_item_scroll_raido.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_raido.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_raido.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_sowilo.png b/textures/voxeldungeon/voxeldungeon_item_scroll_sowilo.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_sowilo.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_sowilo.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_tiwaz.png b/textures/voxeldungeon/voxeldungeon_item_scroll_tiwaz.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_tiwaz.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_tiwaz.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_scroll_yngvi.png b/textures/voxeldungeon/voxeldungeon_item_scroll_yngvi.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_scroll_yngvi.png rename to textures/voxeldungeon/voxeldungeon_item_scroll_yngvi.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_seed_dreamweed.png b/textures/voxeldungeon/voxeldungeon_item_seed_dreamweed.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_seed_dreamweed.png rename to textures/voxeldungeon/voxeldungeon_item_seed_dreamweed.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_seed_earthroot.png b/textures/voxeldungeon/voxeldungeon_item_seed_earthroot.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_seed_earthroot.png rename to textures/voxeldungeon/voxeldungeon_item_seed_earthroot.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_seed_fadeleaf.png b/textures/voxeldungeon/voxeldungeon_item_seed_fadeleaf.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_seed_fadeleaf.png rename to textures/voxeldungeon/voxeldungeon_item_seed_fadeleaf.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_seed_firebloom.png b/textures/voxeldungeon/voxeldungeon_item_seed_firebloom.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_seed_firebloom.png rename to textures/voxeldungeon/voxeldungeon_item_seed_firebloom.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_seed_icecap.png b/textures/voxeldungeon/voxeldungeon_item_seed_icecap.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_seed_icecap.png rename to textures/voxeldungeon/voxeldungeon_item_seed_icecap.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_seed_rotberry.png b/textures/voxeldungeon/voxeldungeon_item_seed_rotberry.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_seed_rotberry.png rename to textures/voxeldungeon/voxeldungeon_item_seed_rotberry.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_seed_sorrowmoss.png b/textures/voxeldungeon/voxeldungeon_item_seed_sorrowmoss.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_seed_sorrowmoss.png rename to textures/voxeldungeon/voxeldungeon_item_seed_sorrowmoss.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_seed_sungrass.png b/textures/voxeldungeon/voxeldungeon_item_seed_sungrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_seed_sungrass.png rename to textures/voxeldungeon/voxeldungeon_item_seed_sungrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_item_torch.png b/textures/voxeldungeon/voxeldungeon_item_torch.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_item_torch.png rename to textures/voxeldungeon/voxeldungeon_item_torch.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_items_shattered.png b/textures/voxeldungeon/voxeldungeon_items_shattered.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_items_shattered.png rename to textures/voxeldungeon/voxeldungeon_items_shattered.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_items_vanilla.png b/textures/voxeldungeon/voxeldungeon_items_vanilla.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_items_vanilla.png rename to textures/voxeldungeon/voxeldungeon_items_vanilla.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_node_chest_back.png b/textures/voxeldungeon/voxeldungeon_node_chest_back.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_node_chest_back.png rename to textures/voxeldungeon/voxeldungeon_node_chest_back.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_node_chest_bottom.png b/textures/voxeldungeon/voxeldungeon_node_chest_bottom.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_node_chest_bottom.png rename to textures/voxeldungeon/voxeldungeon_node_chest_bottom.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_node_chest_front.png b/textures/voxeldungeon/voxeldungeon_node_chest_front.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_node_chest_front.png rename to textures/voxeldungeon/voxeldungeon_node_chest_front.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_node_chest_icon.png b/textures/voxeldungeon/voxeldungeon_node_chest_icon.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_node_chest_icon.png rename to textures/voxeldungeon/voxeldungeon_node_chest_icon.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_node_chest_left.png b/textures/voxeldungeon/voxeldungeon_node_chest_left.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_node_chest_left.png rename to textures/voxeldungeon/voxeldungeon_node_chest_left.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_node_chest_right.png b/textures/voxeldungeon/voxeldungeon_node_chest_right.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_node_chest_right.png rename to textures/voxeldungeon/voxeldungeon_node_chest_right.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_node_chest_top.png b/textures/voxeldungeon/voxeldungeon_node_chest_top.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_node_chest_top.png rename to textures/voxeldungeon/voxeldungeon_node_chest_top.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_caves_coal.png b/textures/voxeldungeon/voxeldungeon_ore_caves_coal.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_caves_coal.png rename to textures/voxeldungeon/voxeldungeon_ore_caves_coal.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_caves_gold.png b/textures/voxeldungeon/voxeldungeon_ore_caves_gold.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_caves_gold.png rename to textures/voxeldungeon/voxeldungeon_ore_caves_gold.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_caves_iron.png b/textures/voxeldungeon/voxeldungeon_ore_caves_iron.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_caves_iron.png rename to textures/voxeldungeon/voxeldungeon_ore_caves_iron.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_caves_mese.png b/textures/voxeldungeon/voxeldungeon_ore_caves_mese.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_caves_mese.png rename to textures/voxeldungeon/voxeldungeon_ore_caves_mese.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_cities_coal.png b/textures/voxeldungeon/voxeldungeon_ore_cities_coal.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_cities_coal.png rename to textures/voxeldungeon/voxeldungeon_ore_cities_coal.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_cities_diamond.png b/textures/voxeldungeon/voxeldungeon_ore_cities_diamond.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_cities_diamond.png rename to textures/voxeldungeon/voxeldungeon_ore_cities_diamond.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_cities_gold.png b/textures/voxeldungeon/voxeldungeon_ore_cities_gold.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_cities_gold.png rename to textures/voxeldungeon/voxeldungeon_ore_cities_gold.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_cities_iron.png b/textures/voxeldungeon/voxeldungeon_ore_cities_iron.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_cities_iron.png rename to textures/voxeldungeon/voxeldungeon_ore_cities_iron.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_cities_mese.png b/textures/voxeldungeon/voxeldungeon_ore_cities_mese.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_cities_mese.png rename to textures/voxeldungeon/voxeldungeon_ore_cities_mese.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_halls_coal.png b/textures/voxeldungeon/voxeldungeon_ore_halls_coal.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_halls_coal.png rename to textures/voxeldungeon/voxeldungeon_ore_halls_coal.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_halls_demonite.png b/textures/voxeldungeon/voxeldungeon_ore_halls_demonite.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_halls_demonite.png rename to textures/voxeldungeon/voxeldungeon_ore_halls_demonite.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_halls_diamond.png b/textures/voxeldungeon/voxeldungeon_ore_halls_diamond.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_halls_diamond.png rename to textures/voxeldungeon/voxeldungeon_ore_halls_diamond.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_halls_gold.png b/textures/voxeldungeon/voxeldungeon_ore_halls_gold.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_halls_gold.png rename to textures/voxeldungeon/voxeldungeon_ore_halls_gold.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_halls_iron.png b/textures/voxeldungeon/voxeldungeon_ore_halls_iron.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_halls_iron.png rename to textures/voxeldungeon/voxeldungeon_ore_halls_iron.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_halls_mese.png b/textures/voxeldungeon/voxeldungeon_ore_halls_mese.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_halls_mese.png rename to textures/voxeldungeon/voxeldungeon_ore_halls_mese.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_prisons_coal.png b/textures/voxeldungeon/voxeldungeon_ore_prisons_coal.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_prisons_coal.png rename to textures/voxeldungeon/voxeldungeon_ore_prisons_coal.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_prisons_gold.png b/textures/voxeldungeon/voxeldungeon_ore_prisons_gold.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_prisons_gold.png rename to textures/voxeldungeon/voxeldungeon_ore_prisons_gold.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_prisons_iron.png b/textures/voxeldungeon/voxeldungeon_ore_prisons_iron.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_prisons_iron.png rename to textures/voxeldungeon/voxeldungeon_ore_prisons_iron.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_sewers_coal.png b/textures/voxeldungeon/voxeldungeon_ore_sewers_coal.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_sewers_coal.png rename to textures/voxeldungeon/voxeldungeon_ore_sewers_coal.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ore_sewers_gold.png b/textures/voxeldungeon/voxeldungeon_ore_sewers_gold.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ore_sewers_gold.png rename to textures/voxeldungeon/voxeldungeon_ore_sewers_gold.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_overlay_greyout.png b/textures/voxeldungeon/voxeldungeon_overlay_greyout.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_overlay_greyout.png rename to textures/voxeldungeon/voxeldungeon_overlay_greyout.png diff --git a/textures/voxeldungeon/voxeldungeon_particle_flame.png b/textures/voxeldungeon/voxeldungeon_particle_flame.png new file mode 100644 index 0000000000000000000000000000000000000000..6107997e476adf0707a1602c4ac24caecfabcd65 GIT binary patch literal 794 zcmV+#1LgdQP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=HYZrnHwhX3mndj#=Il#ZiMpf~98_m%B`elW`FeqCNYMxU`DPm~R!WB0;KE}M}Q%6yc>&u|)O5xQ9 zj9D+I~gLEpyByo|_2vlj&q=C6pM~=#q9W!%h zIdoZ^3wMb^qFZROOOYX2SUOJ;(I9;1LPy+k#Ost1c@RvQ;Eb^3KP9|n@Qke0BWgs1 z-P2Vo&@Q9wE6f0d*2T?^0>8*T!Z%&;BAG zn;IWoqKIush6D&=A~8x7o!N<0I0H~c<}At$1jvjBl4KQ0V3W~Dh>bN)hbHSMd+BxXkfFmy8b0zU zqfVM=r7(5cOw(tcW!8mWTe5W7O3PPXW!0P7MfG3u1JvlE#s{fw=QlNI-M6E|1?~5Y zZDt_GN+9l=02-P%vzSShH@VF$7RISCMv}JK42m^S0z#d{w&-T}Aon!4fLg!Bjh`VG zHo9Lxj>DAixV=Jc>^EUQh@Gc!*E9-FU*TNwS$&1LI$|C_@pj|6Z@5kP8hY!Wn8UM% zug=Tp3LHaTy~Y1MqcFnQ7 z?00PG(`5AV94-8{DfplGH}@=$DVnqx)Bpeg7)eAyR2b7^U?3L!|IhHBffPWphJmyn Y04*>J_5Xk$asU7T07*qoM6N<$f)G}Do&W#< literal 0 HcmV?d00001 diff --git a/mods/voxeldungeon/textures/voxeldungeon_particle_grass.png b/textures/voxeldungeon/voxeldungeon_particle_grass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_particle_grass.png rename to textures/voxeldungeon/voxeldungeon_particle_grass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_particle_poison.png b/textures/voxeldungeon/voxeldungeon_particle_poison (copy).png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_particle_poison.png rename to textures/voxeldungeon/voxeldungeon_particle_poison (copy).png diff --git a/textures/voxeldungeon/voxeldungeon_particle_poison.png b/textures/voxeldungeon/voxeldungeon_particle_poison.png new file mode 100644 index 0000000000000000000000000000000000000000..e9e4fbff1c8ea5b5e7955bf5c2eee00e5ca94cd3 GIT binary patch literal 84 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ry%*9TgAsieWw;%dH0CIUeT^vI= dWRnvrP5>1iV|cV?PZ3C*!PC{xWt~$(69BRr6eR!v literal 0 HcmV?d00001 diff --git a/mods/voxeldungeon/textures/voxeldungeon_particle_shaft.png b/textures/voxeldungeon/voxeldungeon_particle_shaft.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_particle_shaft.png rename to textures/voxeldungeon/voxeldungeon_particle_shaft.png diff --git a/textures/voxeldungeon/voxeldungeon_particle_toxic.png b/textures/voxeldungeon/voxeldungeon_particle_toxic.png new file mode 100644 index 0000000000000000000000000000000000000000..c77a33f1c438f70a1fc7a735e7adb518d8c9d719 GIT binary patch literal 6157 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 literal 0 HcmV?d00001 diff --git a/mods/voxeldungeon/textures/voxeldungeon_plant_blindweed.png b/textures/voxeldungeon/voxeldungeon_plant_blindweed.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_plant_blindweed.png rename to textures/voxeldungeon/voxeldungeon_plant_blindweed.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_plant_earthroot.png b/textures/voxeldungeon/voxeldungeon_plant_earthroot.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_plant_earthroot.png rename to textures/voxeldungeon/voxeldungeon_plant_earthroot.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_plant_fadeleaf.png b/textures/voxeldungeon/voxeldungeon_plant_fadeleaf.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_plant_fadeleaf.png rename to textures/voxeldungeon/voxeldungeon_plant_fadeleaf.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_plant_firebloom.png b/textures/voxeldungeon/voxeldungeon_plant_firebloom.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_plant_firebloom.png rename to textures/voxeldungeon/voxeldungeon_plant_firebloom.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_plant_icecap.png b/textures/voxeldungeon/voxeldungeon_plant_icecap.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_plant_icecap.png rename to textures/voxeldungeon/voxeldungeon_plant_icecap.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_plant_rotberry.png b/textures/voxeldungeon/voxeldungeon_plant_rotberry.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_plant_rotberry.png rename to textures/voxeldungeon/voxeldungeon_plant_rotberry.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_plant_sorrowmoss.png b/textures/voxeldungeon/voxeldungeon_plant_sorrowmoss.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_plant_sorrowmoss.png rename to textures/voxeldungeon/voxeldungeon_plant_sorrowmoss.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_plant_sungrass.png b/textures/voxeldungeon/voxeldungeon_plant_sungrass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_plant_sungrass.png rename to textures/voxeldungeon/voxeldungeon_plant_sungrass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_terrain_features.png b/textures/voxeldungeon/voxeldungeon_terrain_features.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_terrain_features.png rename to textures/voxeldungeon/voxeldungeon_terrain_features.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_caves_bookshelf.png b/textures/voxeldungeon/voxeldungeon_tiles_caves_bookshelf.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_caves_bookshelf.png rename to textures/voxeldungeon/voxeldungeon_tiles_caves_bookshelf.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_caves_floor.png b/textures/voxeldungeon/voxeldungeon_tiles_caves_floor.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_caves_floor.png rename to textures/voxeldungeon/voxeldungeon_tiles_caves_floor.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_caves_grass.png b/textures/voxeldungeon/voxeldungeon_tiles_caves_grass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_caves_grass.png rename to textures/voxeldungeon/voxeldungeon_tiles_caves_grass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_caves_special.png b/textures/voxeldungeon/voxeldungeon_tiles_caves_special.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_caves_special.png rename to textures/voxeldungeon/voxeldungeon_tiles_caves_special.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_caves_stone.png b/textures/voxeldungeon/voxeldungeon_tiles_caves_stone.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_caves_stone.png rename to textures/voxeldungeon/voxeldungeon_tiles_caves_stone.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_caves_wall.png b/textures/voxeldungeon/voxeldungeon_tiles_caves_wall.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_caves_wall.png rename to textures/voxeldungeon/voxeldungeon_tiles_caves_wall.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_caves_wall_embedded.png b/textures/voxeldungeon/voxeldungeon_tiles_caves_wall_embedded.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_caves_wall_embedded.png rename to textures/voxeldungeon/voxeldungeon_tiles_caves_wall_embedded.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_cities_bookshelf.png b/textures/voxeldungeon/voxeldungeon_tiles_cities_bookshelf.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_cities_bookshelf.png rename to textures/voxeldungeon/voxeldungeon_tiles_cities_bookshelf.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_cities_floor.png b/textures/voxeldungeon/voxeldungeon_tiles_cities_floor.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_cities_floor.png rename to textures/voxeldungeon/voxeldungeon_tiles_cities_floor.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_cities_grass.png b/textures/voxeldungeon/voxeldungeon_tiles_cities_grass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_cities_grass.png rename to textures/voxeldungeon/voxeldungeon_tiles_cities_grass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_cities_special.png b/textures/voxeldungeon/voxeldungeon_tiles_cities_special.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_cities_special.png rename to textures/voxeldungeon/voxeldungeon_tiles_cities_special.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_cities_stone.png b/textures/voxeldungeon/voxeldungeon_tiles_cities_stone.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_cities_stone.png rename to textures/voxeldungeon/voxeldungeon_tiles_cities_stone.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_cities_wall.png b/textures/voxeldungeon/voxeldungeon_tiles_cities_wall.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_cities_wall.png rename to textures/voxeldungeon/voxeldungeon_tiles_cities_wall.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_cities_wall_decayed.png b/textures/voxeldungeon/voxeldungeon_tiles_cities_wall_decayed.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_cities_wall_decayed.png rename to textures/voxeldungeon/voxeldungeon_tiles_cities_wall_decayed.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_embers.png b/textures/voxeldungeon/voxeldungeon_tiles_embers.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_embers.png rename to textures/voxeldungeon/voxeldungeon_tiles_embers.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_halls_bookshelf.png b/textures/voxeldungeon/voxeldungeon_tiles_halls_bookshelf.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_halls_bookshelf.png rename to textures/voxeldungeon/voxeldungeon_tiles_halls_bookshelf.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_halls_floor.png b/textures/voxeldungeon/voxeldungeon_tiles_halls_floor.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_halls_floor.png rename to textures/voxeldungeon/voxeldungeon_tiles_halls_floor.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_halls_grass.png b/textures/voxeldungeon/voxeldungeon_tiles_halls_grass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_halls_grass.png rename to textures/voxeldungeon/voxeldungeon_tiles_halls_grass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_halls_special.png b/textures/voxeldungeon/voxeldungeon_tiles_halls_special.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_halls_special.png rename to textures/voxeldungeon/voxeldungeon_tiles_halls_special.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_halls_stone.png b/textures/voxeldungeon/voxeldungeon_tiles_halls_stone.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_halls_stone.png rename to textures/voxeldungeon/voxeldungeon_tiles_halls_stone.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_halls_wall.png b/textures/voxeldungeon/voxeldungeon_tiles_halls_wall.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_halls_wall.png rename to textures/voxeldungeon/voxeldungeon_tiles_halls_wall.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_halls_wall_decorated.png b/textures/voxeldungeon/voxeldungeon_tiles_halls_wall_decorated.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_halls_wall_decorated.png rename to textures/voxeldungeon/voxeldungeon_tiles_halls_wall_decorated.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_bookshelf.png b/textures/voxeldungeon/voxeldungeon_tiles_prisons_bookshelf.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_bookshelf.png rename to textures/voxeldungeon/voxeldungeon_tiles_prisons_bookshelf.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_floor.png b/textures/voxeldungeon/voxeldungeon_tiles_prisons_floor.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_floor.png rename to textures/voxeldungeon/voxeldungeon_tiles_prisons_floor.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_grass.png b/textures/voxeldungeon/voxeldungeon_tiles_prisons_grass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_grass.png rename to textures/voxeldungeon/voxeldungeon_tiles_prisons_grass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_special.png b/textures/voxeldungeon/voxeldungeon_tiles_prisons_special.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_special.png rename to textures/voxeldungeon/voxeldungeon_tiles_prisons_special.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_stone.png b/textures/voxeldungeon/voxeldungeon_tiles_prisons_stone.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_stone.png rename to textures/voxeldungeon/voxeldungeon_tiles_prisons_stone.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_wall.png b/textures/voxeldungeon/voxeldungeon_tiles_prisons_wall.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_wall.png rename to textures/voxeldungeon/voxeldungeon_tiles_prisons_wall.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_wall_torch.png b/textures/voxeldungeon/voxeldungeon_tiles_prisons_wall_torch.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_prisons_wall_torch.png rename to textures/voxeldungeon/voxeldungeon_tiles_prisons_wall_torch.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_bookshelf.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_bookshelf.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_bookshelf.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_bookshelf.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_door.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_door.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_door.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_door.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_floor.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_floor.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_floor.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_floor.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_floor_slab.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_floor_slab.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_floor_slab.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_floor_slab.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_grass.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_grass.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_grass.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_grass.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_moss.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_moss.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_moss.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_moss.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_pedestal.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_pedestal.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_pedestal.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_pedestal.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_pedestal_side.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_pedestal_side.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_pedestal_side.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_pedestal_side.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_special.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_special.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_special.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_special.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_stone.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_stone.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_stone.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_stone.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_alarm.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_alarm.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_alarm.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_alarm.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_fire.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_fire.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_fire.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_fire.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_gripping.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_gripping.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_gripping.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_gripping.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_paralyticgas.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_paralyticgas.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_paralyticgas.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_paralyticgas.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_poisondart.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_poisondart.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_poisondart.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_poisondart.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_summoning.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_summoning.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_summoning.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_summoning.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_teleport.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_teleport.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_teleport.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_teleport.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_toxicgas.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_toxicgas.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_toxicgas.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_toxicgas.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_wornout.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_wornout.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_trap_wornout.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_trap_wornout.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_wall.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_wall.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_wall.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_wall.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_wall_pipe.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_wall_pipe.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_wall_pipe.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_wall_pipe.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_water.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_water.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_water.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_water.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_water0.png b/textures/voxeldungeon/voxeldungeon_tiles_sewers_water0.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tiles_sewers_water0.png rename to textures/voxeldungeon/voxeldungeon_tiles_sewers_water0.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_armor_cactus.png b/textures/voxeldungeon/voxeldungeon_tool_armor_cactus.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_armor_cactus.png rename to textures/voxeldungeon/voxeldungeon_tool_armor_cactus.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_armor_cloth.png b/textures/voxeldungeon/voxeldungeon_tool_armor_cloth.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_armor_cloth.png rename to textures/voxeldungeon/voxeldungeon_tool_armor_cloth.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_armor_demonite.png b/textures/voxeldungeon/voxeldungeon_tool_armor_demonite.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_armor_demonite.png rename to textures/voxeldungeon/voxeldungeon_tool_armor_demonite.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_armor_diamond.png b/textures/voxeldungeon/voxeldungeon_tool_armor_diamond.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_armor_diamond.png rename to textures/voxeldungeon/voxeldungeon_tool_armor_diamond.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_armor_leather.png b/textures/voxeldungeon/voxeldungeon_tool_armor_leather.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_armor_leather.png rename to textures/voxeldungeon/voxeldungeon_tool_armor_leather.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_armor_mail.png b/textures/voxeldungeon/voxeldungeon_tool_armor_mail.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_armor_mail.png rename to textures/voxeldungeon/voxeldungeon_tool_armor_mail.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_armor_mese.png b/textures/voxeldungeon/voxeldungeon_tool_armor_mese.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_armor_mese.png rename to textures/voxeldungeon/voxeldungeon_tool_armor_mese.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_armor_plate.png b/textures/voxeldungeon/voxeldungeon_tool_armor_plate.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_armor_plate.png rename to textures/voxeldungeon/voxeldungeon_tool_armor_plate.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_armor_scale.png b/textures/voxeldungeon/voxeldungeon_tool_armor_scale.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_armor_scale.png rename to textures/voxeldungeon/voxeldungeon_tool_armor_scale.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_armor_steel.png b/textures/voxeldungeon/voxeldungeon_tool_armor_steel.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_armor_steel.png rename to textures/voxeldungeon/voxeldungeon_tool_armor_steel.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_armor_wood.png b/textures/voxeldungeon/voxeldungeon_tool_armor_wood.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_armor_wood.png rename to textures/voxeldungeon/voxeldungeon_tool_armor_wood.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_pickaxe_demonite.png b/textures/voxeldungeon/voxeldungeon_tool_pickaxe_demonite.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_pickaxe_demonite.png rename to textures/voxeldungeon/voxeldungeon_tool_pickaxe_demonite.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_wand_magicmissile.png b/textures/voxeldungeon/voxeldungeon_tool_wand_magicmissile.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_wand_magicmissile.png rename to textures/voxeldungeon/voxeldungeon_tool_wand_magicmissile.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_battleaxe.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_battleaxe.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_battleaxe.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_battleaxe.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_dagger.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_dagger.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_dagger.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_dagger.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_glaive.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_glaive.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_glaive.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_glaive.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_greatsword.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_greatsword.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_greatsword.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_greatsword.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_handaxe.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_handaxe.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_handaxe.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_handaxe.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_knuckleduster.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_knuckleduster.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_knuckleduster.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_knuckleduster.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_longsword.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_longsword.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_longsword.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_longsword.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_mace.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_mace.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_mace.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_mace.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_quarterstaff.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_quarterstaff.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_quarterstaff.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_quarterstaff.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_scimitar.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_scimitar.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_scimitar.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_scimitar.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_shortsword.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_shortsword.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_shortsword.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_shortsword.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_spear.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_spear.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_spear.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_spear.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_stonegauntlet.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_stonegauntlet.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_stonegauntlet.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_stonegauntlet.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_sword.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_sword.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_sword.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_sword.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_sword_demonite.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_sword_demonite.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_sword_demonite.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_sword_demonite.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_tool_weapon_warhammer.png b/textures/voxeldungeon/voxeldungeon_tool_weapon_warhammer.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_tool_weapon_warhammer.png rename to textures/voxeldungeon/voxeldungeon_tool_weapon_warhammer.png diff --git a/mods/voxeldungeon/textures/voxeldungeon_ui_itemslot.png b/textures/voxeldungeon/voxeldungeon_ui_itemslot.png similarity index 100% rename from mods/voxeldungeon/textures/voxeldungeon_ui_itemslot.png rename to textures/voxeldungeon/voxeldungeon_ui_itemslot.png