From 93308c9f14e50fe979ec39c9f8e5b9b30713546c Mon Sep 17 00:00:00 2001 From: Quentin Bazin Date: Wed, 18 Mar 2020 00:33:48 +0100 Subject: [PATCH] Basic texture pack system added (see #34). --- source/client/core/ClientApplication.cpp | 9 +++-- source/client/graphics/TextureAtlas.cpp | 32 ++++++++++++++---- source/client/graphics/TextureAtlas.hpp | 2 +- source/client/states/ServerConnectState.cpp | 3 +- source/client/states/ServerConnectState.hpp | 4 +++ source/client/states/ServerLoadingState.cpp | 8 ++++- source/client/states/ServerLoadingState.hpp | 4 +++ source/client/states/TitleScreenState.cpp | 8 +++-- source/client/states/TitleScreenState.hpp | 4 +++ source/server/core/ServerApplication.cpp | 6 ++-- .../minecraft}/blocks/bricks.png | Bin .../minecraft}/blocks/cactus_side.png | Bin .../minecraft}/blocks/cactus_top.png | Bin .../minecraft}/blocks/clay.png | Bin .../minecraft}/blocks/coal_ore.png | Bin .../minecraft}/blocks/cobblestone.png | Bin .../blocks/crafting_table_front.png | Bin .../minecraft}/blocks/crafting_table_side.png | Bin .../minecraft}/blocks/crafting_table_top.png | Bin .../minecraft}/blocks/dandelion.png | Bin .../minecraft}/blocks/deadbush.png | Bin .../minecraft}/blocks/dirt.png | Bin .../minecraft}/blocks/furnace_front.png | Bin .../minecraft}/blocks/furnace_front_on.png | Bin .../minecraft}/blocks/furnace_side.png | Bin .../minecraft}/blocks/furnace_top.png | Bin .../minecraft}/blocks/glass.png | Bin .../minecraft}/blocks/glowstone.png | Bin .../minecraft}/blocks/grass.png | Bin .../minecraft}/blocks/grass_block_side.png | Bin .../blocks/grass_block_side_orig.png | Bin .../blocks/grass_block_side_overlay.png | Bin .../minecraft}/blocks/grass_block_top.png | Bin .../minecraft}/blocks/iron_ore.png | Bin .../minecraft}/blocks/lava.png | Bin .../minecraft}/blocks/netherrack.png | Bin .../minecraft}/blocks/oak_leaves.png | Bin .../minecraft}/blocks/oak_log.png | Bin .../minecraft}/blocks/oak_log_top.png | Bin .../minecraft}/blocks/oak_planks.png | Bin .../minecraft}/blocks/obsidian.png | Bin .../minecraft}/blocks/portal.png | Bin .../minecraft}/blocks/reeds.png | Bin .../minecraft}/blocks/sand.png | Bin .../minecraft}/blocks/soul_sand.png | Bin .../minecraft}/blocks/stone.png | Bin .../minecraft}/blocks/stone_bricks.png | Bin .../minecraft}/blocks/undefined.png | Bin .../minecraft}/blocks/water.png | Bin .../minecraft}/gui/creative_window.png | Bin .../minecraft}/gui/furnace.png | Bin .../minecraft}/gui/inventory.png | Bin .../minecraft}/gui/tabs.png | Bin .../minecraft}/gui/workbench.png | Bin .../minecraft}/items/brick.png | Bin .../minecraft}/items/charcoal.png | Bin .../minecraft}/items/clay_ball.png | Bin .../minecraft}/items/coal.png | Bin .../minecraft}/items/diamond.png | Bin .../minecraft}/items/diamond_axe.png | Bin .../minecraft}/items/diamond_hoe.png | Bin .../minecraft}/items/diamond_pickaxe.png | Bin .../minecraft}/items/diamond_shovel.png | Bin .../minecraft}/items/diamond_sword.png | Bin .../minecraft}/items/gold_ingot.png | Bin .../minecraft}/items/golden_axe.png | Bin .../minecraft}/items/golden_hoe.png | Bin .../minecraft}/items/golden_pickaxe.png | Bin .../minecraft}/items/golden_shovel.png | Bin .../minecraft}/items/golden_sword.png | Bin .../minecraft}/items/iron_axe.png | Bin .../minecraft}/items/iron_hoe.png | Bin .../minecraft}/items/iron_ingot.png | Bin .../minecraft}/items/iron_pickaxe.png | Bin .../minecraft}/items/iron_shovel.png | Bin .../minecraft}/items/iron_sword.png | Bin .../minecraft}/items/reeds_item.png | Bin .../minecraft}/items/stick.png | Bin .../minecraft}/items/stone_axe.png | Bin .../minecraft}/items/stone_hoe.png | Bin .../minecraft}/items/stone_pickaxe.png | Bin .../minecraft}/items/stone_shovel.png | Bin .../minecraft}/items/stone_sword.png | Bin .../minecraft}/items/wooden_axe.png | Bin .../minecraft}/items/wooden_hoe.png | Bin .../minecraft}/items/wooden_pickaxe.png | Bin .../minecraft}/items/wooden_shovel.png | Bin .../minecraft}/items/wooden_sword.png | Bin 88 files changed, 62 insertions(+), 18 deletions(-) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/bricks.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/cactus_side.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/cactus_top.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/clay.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/coal_ore.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/cobblestone.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/crafting_table_front.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/crafting_table_side.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/crafting_table_top.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/dandelion.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/deadbush.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/dirt.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/furnace_front.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/furnace_front_on.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/furnace_side.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/furnace_top.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/glass.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/glowstone.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/grass.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/grass_block_side.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/grass_block_side_orig.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/grass_block_side_overlay.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/grass_block_top.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/iron_ore.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/lava.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/netherrack.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/oak_leaves.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/oak_log.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/oak_log_top.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/oak_planks.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/obsidian.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/portal.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/reeds.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/sand.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/soul_sand.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/stone.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/stone_bricks.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/undefined.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/blocks/water.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/gui/creative_window.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/gui/furnace.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/gui/inventory.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/gui/tabs.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/gui/workbench.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/brick.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/charcoal.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/clay_ball.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/coal.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/diamond.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/diamond_axe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/diamond_hoe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/diamond_pickaxe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/diamond_shovel.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/diamond_sword.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/gold_ingot.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/golden_axe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/golden_hoe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/golden_pickaxe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/golden_shovel.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/golden_sword.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/iron_axe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/iron_hoe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/iron_ingot.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/iron_pickaxe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/iron_shovel.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/iron_sword.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/reeds_item.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/stick.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/stone_axe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/stone_hoe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/stone_pickaxe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/stone_shovel.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/stone_sword.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/wooden_axe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/wooden_hoe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/wooden_pickaxe.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/wooden_shovel.png (100%) rename {mods/default/textures_mc => texturepacks/minecraft}/items/wooden_sword.png (100%) diff --git a/source/client/core/ClientApplication.cpp b/source/client/core/ClientApplication.cpp index dad16853c..083f1b054 100644 --- a/source/client/core/ClientApplication.cpp +++ b/source/client/core/ClientApplication.cpp @@ -51,12 +51,13 @@ void ClientApplication::init() { m_argumentParser.addArgument("port", {"-p", "--port", true}); m_argumentParser.addArgument("singleplayer", {"-s", "--singleplayer", false}); m_argumentParser.addArgument("multiplayer", {"-m", "--multiplayer", false}); - m_argumentParser.addArgument("working_dir", {"-w", "--working-dir", true}); + m_argumentParser.addArgument("working-dir", {"-w", "--working-dir", true}); + m_argumentParser.addArgument("texture-pack", {"-t", "--texture-pack", true}); gk::CoreApplication::init(); - if (m_argumentParser.getArgument("working_dir").isFound) - fs::current_path(m_argumentParser.getArgument("working_dir").parameter); + if (m_argumentParser.getArgument("working-dir").isFound) + fs::current_path(m_argumentParser.getArgument("working-dir").parameter); if (m_argumentParser.getArgument("host").isFound) m_host = m_argumentParser.getArgument("host").parameter; @@ -81,6 +82,8 @@ void ClientApplication::init() { Registry::setInstance(m_registry); auto &titleScreen = m_stateStack.push(m_port); + if (m_argumentParser.getArgument("texture-pack").isFound) + titleScreen.setTexturePack(m_argumentParser.getArgument("texture-pack").parameter); if (m_argumentParser.getArgument("singleplayer").isFound) titleScreen.startSingleplayer(false); else if (m_argumentParser.getArgument("multiplayer").isFound) diff --git a/source/client/graphics/TextureAtlas.cpp b/source/client/graphics/TextureAtlas.cpp index 83088a986..a9364d144 100644 --- a/source/client/graphics/TextureAtlas.cpp +++ b/source/client/graphics/TextureAtlas.cpp @@ -105,24 +105,44 @@ void TextureAtlas::packTextures() { m_texture.loadFromSurface(atlas.get()); } -void TextureAtlas::loadFromRegistry() { - addFile("mods/default/textures/blocks/", "undefined.png"); +#include + +void TextureAtlas::loadFromRegistry(const std::string &texturePack) { + if (!gk::Filesystem::fileExists("texturepacks/" + texturePack)) + throw EXCEPTION("Texture pack '" + texturePack +"' doesn't exist"); + + if (texturePack.empty()) + addFile("mods/default/textures/blocks/", "undefined.png"); + else + addFile("texturepacks/" + texturePack + "/blocks/", "undefined.png"); for (auto &block : Registry::getInstance().blocks()) { + std::string path; + if (texturePack.empty()) + path = "mods/" + block->modName() + "/textures/blocks/"; + else + path = "texturepacks/" + texturePack + "/blocks/"; + const TilesDef &tiles = block->tiles(); for (auto &textureFilename : tiles.textureFilenames()) - addFile("mods/" + block->modName() + "/textures/blocks/", textureFilename); + addFile(path, textureFilename); for (auto &textureFilename : tiles.altTextureFilenames()) - addFile("mods/" + block->modName() + "/textures/blocks/", textureFilename); + addFile(path, textureFilename); } for (auto &item : Registry::getInstance().items()) { if (!item.isBlock() || !item.tiles().textureFilenames().empty()) { + std::string path; + if (texturePack.empty()) + path = "mods/" + item.modName() + "/textures/items/"; + else + path = "texturepacks/" + texturePack + "/items/"; + const TilesDef &tiles = item.tiles(); for (auto &textureFilename : tiles.textureFilenames()) - addFile("mods/" + item.modName() + "/textures/items/", textureFilename); + addFile(path, textureFilename); for (auto &textureFilename : tiles.altTextureFilenames()) - addFile("mods/" + item.modName() + "/textures/items/", textureFilename); + addFile(path, textureFilename); } } diff --git a/source/client/graphics/TextureAtlas.hpp b/source/client/graphics/TextureAtlas.hpp index b844c5488..ac331a40a 100644 --- a/source/client/graphics/TextureAtlas.hpp +++ b/source/client/graphics/TextureAtlas.hpp @@ -44,7 +44,7 @@ class TextureAtlas { void addFile(const std::string &path, const std::string &filename); void packTextures(); - void loadFromRegistry(); + void loadFromRegistry(const std::string &texturePack = ""); u16 getTextureID(const std::string &filename) const; gk::FloatRect getTexCoords(const std::string &filename, bool normalized = true) const; diff --git a/source/client/states/ServerConnectState.cpp b/source/client/states/ServerConnectState.cpp index 2283b5592..6b9628ba0 100644 --- a/source/client/states/ServerConnectState.cpp +++ b/source/client/states/ServerConnectState.cpp @@ -59,7 +59,8 @@ ServerConnectState::ServerConnectState(gk::ApplicationState *parent) : Interface auto &game = m_stateStack->push(); game.connect(host, port); - m_stateStack->push(game, true, this); + auto &serverLoadingState = m_stateStack->push(game, true, this); + serverLoadingState.setTexturePack(m_texturePack); }); m_cancelButton.setText("Cancel"); diff --git a/source/client/states/ServerConnectState.hpp b/source/client/states/ServerConnectState.hpp index cc893b244..6edfc41b1 100644 --- a/source/client/states/ServerConnectState.hpp +++ b/source/client/states/ServerConnectState.hpp @@ -39,6 +39,8 @@ class ServerConnectState : public InterfaceState { void update() override; + void setTexturePack(const std::string &texturePack) { m_texturePack = texturePack; } + private: void draw(gk::RenderTarget &target, gk::RenderStates states) const override; @@ -46,6 +48,8 @@ class ServerConnectState : public InterfaceState { TextButton m_connectButton; TextButton m_cancelButton; + + std::string m_texturePack; }; #endif // SERVERCONNECTSTATE_HPP_ diff --git a/source/client/states/ServerLoadingState.cpp b/source/client/states/ServerLoadingState.cpp index 4efd990af..da95d36a2 100644 --- a/source/client/states/ServerLoadingState.cpp +++ b/source/client/states/ServerLoadingState.cpp @@ -78,7 +78,13 @@ void ServerLoadingState::update() { gk::Mouse::setCursorGrabbed(true); } else if (!m_game.textureAtlas().isReady()) { - m_game.textureAtlas().loadFromRegistry(); + try { + m_game.textureAtlas().loadFromRegistry(m_texturePack); + } + catch (gk::Exception &e) { + m_game.client().disconnect(); + throw e; + } } } } diff --git a/source/client/states/ServerLoadingState.hpp b/source/client/states/ServerLoadingState.hpp index 83c6d2d1f..02639457c 100644 --- a/source/client/states/ServerLoadingState.hpp +++ b/source/client/states/ServerLoadingState.hpp @@ -42,6 +42,8 @@ class ServerLoadingState : public InterfaceState { void update() override; + void setTexturePack(const std::string &texturePack) { m_texturePack = texturePack; } + private: void draw(gk::RenderTarget &target, gk::RenderStates states) const override; @@ -51,6 +53,8 @@ class ServerLoadingState : public InterfaceState { bool m_showLoadingState; mutable bool m_hasBeenRendered = false; + + std::string m_texturePack; }; #endif // SERVERLOADINGSTATE_HPP_ diff --git a/source/client/states/TitleScreenState.cpp b/source/client/states/TitleScreenState.cpp index 169205fec..021a69332 100644 --- a/source/client/states/TitleScreenState.cpp +++ b/source/client/states/TitleScreenState.cpp @@ -46,7 +46,7 @@ TitleScreenState::TitleScreenState(u16 port) : m_port(port) { }); m_menuWidget.addButton("Multiplayer", [this] (TextButton &) { - m_stateStack->push(this); + m_stateStack->push(this).setTexturePack(m_texturePack); }); m_menuWidget.addButton("Options...", [this] (TextButton &) { @@ -92,7 +92,8 @@ void TitleScreenState::update() { game.setSingleplayer(true); game.connect("localhost", m_port); - m_stateStack->push(game, m_showLoadingState, this); + auto &serverLoadingState = m_stateStack->push(game, m_showLoadingState, this); + serverLoadingState.setTexturePack(m_texturePack); } } @@ -116,7 +117,8 @@ void TitleScreenState::startMultiplayer(const std::string &host) { auto &game = m_stateStack->push(); game.connect(host, m_port); - m_stateStack->push(game, false, this); + auto &serverLoadingState = m_stateStack->push(game, false, this); + serverLoadingState.setTexturePack(m_texturePack); } void TitleScreenState::onGuiScaleChanged(const GuiScaleChangedEvent &event) { diff --git a/source/client/states/TitleScreenState.hpp b/source/client/states/TitleScreenState.hpp index cd88c5685..36c1d264b 100644 --- a/source/client/states/TitleScreenState.hpp +++ b/source/client/states/TitleScreenState.hpp @@ -51,6 +51,8 @@ class TitleScreenState : public InterfaceState { void startSingleplayer(bool showLoadingState); void startMultiplayer(const std::string &host); + void setTexturePack(const std::string &texturePack) { m_texturePack = texturePack; } + private: void onGuiScaleChanged(const GuiScaleChangedEvent &event); void onServerOnlineEvent(const ServerOnlineEvent &event); @@ -69,6 +71,8 @@ class TitleScreenState : public InterfaceState { bool m_isServerOnline = false; bool m_isServerLaunched = false; + + std::string m_texturePack; }; #endif // TITLESCREENSTATE_HPP_ diff --git a/source/server/core/ServerApplication.cpp b/source/server/core/ServerApplication.cpp index 14a1e4fef..b67372112 100644 --- a/source/server/core/ServerApplication.cpp +++ b/source/server/core/ServerApplication.cpp @@ -45,12 +45,12 @@ void ServerApplication::init() { BlockGeometry::initOrientation(); m_argumentParser.addArgument("port", {"-p", "--port", true}); - m_argumentParser.addArgument("working_dir", {"-w", "--working-dir", true}); + m_argumentParser.addArgument("working-dir", {"-w", "--working-dir", true}); m_argumentParser.parse(); - if (m_argumentParser.getArgument("working_dir").isFound) - fs::current_path(m_argumentParser.getArgument("working_dir").parameter); + if (m_argumentParser.getArgument("working-dir").isFound) + fs::current_path(m_argumentParser.getArgument("working-dir").parameter); if (m_argumentParser.getArgument("port").isFound) m_port = std::stoi(m_argumentParser.getArgument("port").parameter); diff --git a/mods/default/textures_mc/blocks/bricks.png b/texturepacks/minecraft/blocks/bricks.png similarity index 100% rename from mods/default/textures_mc/blocks/bricks.png rename to texturepacks/minecraft/blocks/bricks.png diff --git a/mods/default/textures_mc/blocks/cactus_side.png b/texturepacks/minecraft/blocks/cactus_side.png similarity index 100% rename from mods/default/textures_mc/blocks/cactus_side.png rename to texturepacks/minecraft/blocks/cactus_side.png diff --git a/mods/default/textures_mc/blocks/cactus_top.png b/texturepacks/minecraft/blocks/cactus_top.png similarity index 100% rename from mods/default/textures_mc/blocks/cactus_top.png rename to texturepacks/minecraft/blocks/cactus_top.png diff --git a/mods/default/textures_mc/blocks/clay.png b/texturepacks/minecraft/blocks/clay.png similarity index 100% rename from mods/default/textures_mc/blocks/clay.png rename to texturepacks/minecraft/blocks/clay.png diff --git a/mods/default/textures_mc/blocks/coal_ore.png b/texturepacks/minecraft/blocks/coal_ore.png similarity index 100% rename from mods/default/textures_mc/blocks/coal_ore.png rename to texturepacks/minecraft/blocks/coal_ore.png diff --git a/mods/default/textures_mc/blocks/cobblestone.png b/texturepacks/minecraft/blocks/cobblestone.png similarity index 100% rename from mods/default/textures_mc/blocks/cobblestone.png rename to texturepacks/minecraft/blocks/cobblestone.png diff --git a/mods/default/textures_mc/blocks/crafting_table_front.png b/texturepacks/minecraft/blocks/crafting_table_front.png similarity index 100% rename from mods/default/textures_mc/blocks/crafting_table_front.png rename to texturepacks/minecraft/blocks/crafting_table_front.png diff --git a/mods/default/textures_mc/blocks/crafting_table_side.png b/texturepacks/minecraft/blocks/crafting_table_side.png similarity index 100% rename from mods/default/textures_mc/blocks/crafting_table_side.png rename to texturepacks/minecraft/blocks/crafting_table_side.png diff --git a/mods/default/textures_mc/blocks/crafting_table_top.png b/texturepacks/minecraft/blocks/crafting_table_top.png similarity index 100% rename from mods/default/textures_mc/blocks/crafting_table_top.png rename to texturepacks/minecraft/blocks/crafting_table_top.png diff --git a/mods/default/textures_mc/blocks/dandelion.png b/texturepacks/minecraft/blocks/dandelion.png similarity index 100% rename from mods/default/textures_mc/blocks/dandelion.png rename to texturepacks/minecraft/blocks/dandelion.png diff --git a/mods/default/textures_mc/blocks/deadbush.png b/texturepacks/minecraft/blocks/deadbush.png similarity index 100% rename from mods/default/textures_mc/blocks/deadbush.png rename to texturepacks/minecraft/blocks/deadbush.png diff --git a/mods/default/textures_mc/blocks/dirt.png b/texturepacks/minecraft/blocks/dirt.png similarity index 100% rename from mods/default/textures_mc/blocks/dirt.png rename to texturepacks/minecraft/blocks/dirt.png diff --git a/mods/default/textures_mc/blocks/furnace_front.png b/texturepacks/minecraft/blocks/furnace_front.png similarity index 100% rename from mods/default/textures_mc/blocks/furnace_front.png rename to texturepacks/minecraft/blocks/furnace_front.png diff --git a/mods/default/textures_mc/blocks/furnace_front_on.png b/texturepacks/minecraft/blocks/furnace_front_on.png similarity index 100% rename from mods/default/textures_mc/blocks/furnace_front_on.png rename to texturepacks/minecraft/blocks/furnace_front_on.png diff --git a/mods/default/textures_mc/blocks/furnace_side.png b/texturepacks/minecraft/blocks/furnace_side.png similarity index 100% rename from mods/default/textures_mc/blocks/furnace_side.png rename to texturepacks/minecraft/blocks/furnace_side.png diff --git a/mods/default/textures_mc/blocks/furnace_top.png b/texturepacks/minecraft/blocks/furnace_top.png similarity index 100% rename from mods/default/textures_mc/blocks/furnace_top.png rename to texturepacks/minecraft/blocks/furnace_top.png diff --git a/mods/default/textures_mc/blocks/glass.png b/texturepacks/minecraft/blocks/glass.png similarity index 100% rename from mods/default/textures_mc/blocks/glass.png rename to texturepacks/minecraft/blocks/glass.png diff --git a/mods/default/textures_mc/blocks/glowstone.png b/texturepacks/minecraft/blocks/glowstone.png similarity index 100% rename from mods/default/textures_mc/blocks/glowstone.png rename to texturepacks/minecraft/blocks/glowstone.png diff --git a/mods/default/textures_mc/blocks/grass.png b/texturepacks/minecraft/blocks/grass.png similarity index 100% rename from mods/default/textures_mc/blocks/grass.png rename to texturepacks/minecraft/blocks/grass.png diff --git a/mods/default/textures_mc/blocks/grass_block_side.png b/texturepacks/minecraft/blocks/grass_block_side.png similarity index 100% rename from mods/default/textures_mc/blocks/grass_block_side.png rename to texturepacks/minecraft/blocks/grass_block_side.png diff --git a/mods/default/textures_mc/blocks/grass_block_side_orig.png b/texturepacks/minecraft/blocks/grass_block_side_orig.png similarity index 100% rename from mods/default/textures_mc/blocks/grass_block_side_orig.png rename to texturepacks/minecraft/blocks/grass_block_side_orig.png diff --git a/mods/default/textures_mc/blocks/grass_block_side_overlay.png b/texturepacks/minecraft/blocks/grass_block_side_overlay.png similarity index 100% rename from mods/default/textures_mc/blocks/grass_block_side_overlay.png rename to texturepacks/minecraft/blocks/grass_block_side_overlay.png diff --git a/mods/default/textures_mc/blocks/grass_block_top.png b/texturepacks/minecraft/blocks/grass_block_top.png similarity index 100% rename from mods/default/textures_mc/blocks/grass_block_top.png rename to texturepacks/minecraft/blocks/grass_block_top.png diff --git a/mods/default/textures_mc/blocks/iron_ore.png b/texturepacks/minecraft/blocks/iron_ore.png similarity index 100% rename from mods/default/textures_mc/blocks/iron_ore.png rename to texturepacks/minecraft/blocks/iron_ore.png diff --git a/mods/default/textures_mc/blocks/lava.png b/texturepacks/minecraft/blocks/lava.png similarity index 100% rename from mods/default/textures_mc/blocks/lava.png rename to texturepacks/minecraft/blocks/lava.png diff --git a/mods/default/textures_mc/blocks/netherrack.png b/texturepacks/minecraft/blocks/netherrack.png similarity index 100% rename from mods/default/textures_mc/blocks/netherrack.png rename to texturepacks/minecraft/blocks/netherrack.png diff --git a/mods/default/textures_mc/blocks/oak_leaves.png b/texturepacks/minecraft/blocks/oak_leaves.png similarity index 100% rename from mods/default/textures_mc/blocks/oak_leaves.png rename to texturepacks/minecraft/blocks/oak_leaves.png diff --git a/mods/default/textures_mc/blocks/oak_log.png b/texturepacks/minecraft/blocks/oak_log.png similarity index 100% rename from mods/default/textures_mc/blocks/oak_log.png rename to texturepacks/minecraft/blocks/oak_log.png diff --git a/mods/default/textures_mc/blocks/oak_log_top.png b/texturepacks/minecraft/blocks/oak_log_top.png similarity index 100% rename from mods/default/textures_mc/blocks/oak_log_top.png rename to texturepacks/minecraft/blocks/oak_log_top.png diff --git a/mods/default/textures_mc/blocks/oak_planks.png b/texturepacks/minecraft/blocks/oak_planks.png similarity index 100% rename from mods/default/textures_mc/blocks/oak_planks.png rename to texturepacks/minecraft/blocks/oak_planks.png diff --git a/mods/default/textures_mc/blocks/obsidian.png b/texturepacks/minecraft/blocks/obsidian.png similarity index 100% rename from mods/default/textures_mc/blocks/obsidian.png rename to texturepacks/minecraft/blocks/obsidian.png diff --git a/mods/default/textures_mc/blocks/portal.png b/texturepacks/minecraft/blocks/portal.png similarity index 100% rename from mods/default/textures_mc/blocks/portal.png rename to texturepacks/minecraft/blocks/portal.png diff --git a/mods/default/textures_mc/blocks/reeds.png b/texturepacks/minecraft/blocks/reeds.png similarity index 100% rename from mods/default/textures_mc/blocks/reeds.png rename to texturepacks/minecraft/blocks/reeds.png diff --git a/mods/default/textures_mc/blocks/sand.png b/texturepacks/minecraft/blocks/sand.png similarity index 100% rename from mods/default/textures_mc/blocks/sand.png rename to texturepacks/minecraft/blocks/sand.png diff --git a/mods/default/textures_mc/blocks/soul_sand.png b/texturepacks/minecraft/blocks/soul_sand.png similarity index 100% rename from mods/default/textures_mc/blocks/soul_sand.png rename to texturepacks/minecraft/blocks/soul_sand.png diff --git a/mods/default/textures_mc/blocks/stone.png b/texturepacks/minecraft/blocks/stone.png similarity index 100% rename from mods/default/textures_mc/blocks/stone.png rename to texturepacks/minecraft/blocks/stone.png diff --git a/mods/default/textures_mc/blocks/stone_bricks.png b/texturepacks/minecraft/blocks/stone_bricks.png similarity index 100% rename from mods/default/textures_mc/blocks/stone_bricks.png rename to texturepacks/minecraft/blocks/stone_bricks.png diff --git a/mods/default/textures_mc/blocks/undefined.png b/texturepacks/minecraft/blocks/undefined.png similarity index 100% rename from mods/default/textures_mc/blocks/undefined.png rename to texturepacks/minecraft/blocks/undefined.png diff --git a/mods/default/textures_mc/blocks/water.png b/texturepacks/minecraft/blocks/water.png similarity index 100% rename from mods/default/textures_mc/blocks/water.png rename to texturepacks/minecraft/blocks/water.png diff --git a/mods/default/textures_mc/gui/creative_window.png b/texturepacks/minecraft/gui/creative_window.png similarity index 100% rename from mods/default/textures_mc/gui/creative_window.png rename to texturepacks/minecraft/gui/creative_window.png diff --git a/mods/default/textures_mc/gui/furnace.png b/texturepacks/minecraft/gui/furnace.png similarity index 100% rename from mods/default/textures_mc/gui/furnace.png rename to texturepacks/minecraft/gui/furnace.png diff --git a/mods/default/textures_mc/gui/inventory.png b/texturepacks/minecraft/gui/inventory.png similarity index 100% rename from mods/default/textures_mc/gui/inventory.png rename to texturepacks/minecraft/gui/inventory.png diff --git a/mods/default/textures_mc/gui/tabs.png b/texturepacks/minecraft/gui/tabs.png similarity index 100% rename from mods/default/textures_mc/gui/tabs.png rename to texturepacks/minecraft/gui/tabs.png diff --git a/mods/default/textures_mc/gui/workbench.png b/texturepacks/minecraft/gui/workbench.png similarity index 100% rename from mods/default/textures_mc/gui/workbench.png rename to texturepacks/minecraft/gui/workbench.png diff --git a/mods/default/textures_mc/items/brick.png b/texturepacks/minecraft/items/brick.png similarity index 100% rename from mods/default/textures_mc/items/brick.png rename to texturepacks/minecraft/items/brick.png diff --git a/mods/default/textures_mc/items/charcoal.png b/texturepacks/minecraft/items/charcoal.png similarity index 100% rename from mods/default/textures_mc/items/charcoal.png rename to texturepacks/minecraft/items/charcoal.png diff --git a/mods/default/textures_mc/items/clay_ball.png b/texturepacks/minecraft/items/clay_ball.png similarity index 100% rename from mods/default/textures_mc/items/clay_ball.png rename to texturepacks/minecraft/items/clay_ball.png diff --git a/mods/default/textures_mc/items/coal.png b/texturepacks/minecraft/items/coal.png similarity index 100% rename from mods/default/textures_mc/items/coal.png rename to texturepacks/minecraft/items/coal.png diff --git a/mods/default/textures_mc/items/diamond.png b/texturepacks/minecraft/items/diamond.png similarity index 100% rename from mods/default/textures_mc/items/diamond.png rename to texturepacks/minecraft/items/diamond.png diff --git a/mods/default/textures_mc/items/diamond_axe.png b/texturepacks/minecraft/items/diamond_axe.png similarity index 100% rename from mods/default/textures_mc/items/diamond_axe.png rename to texturepacks/minecraft/items/diamond_axe.png diff --git a/mods/default/textures_mc/items/diamond_hoe.png b/texturepacks/minecraft/items/diamond_hoe.png similarity index 100% rename from mods/default/textures_mc/items/diamond_hoe.png rename to texturepacks/minecraft/items/diamond_hoe.png diff --git a/mods/default/textures_mc/items/diamond_pickaxe.png b/texturepacks/minecraft/items/diamond_pickaxe.png similarity index 100% rename from mods/default/textures_mc/items/diamond_pickaxe.png rename to texturepacks/minecraft/items/diamond_pickaxe.png diff --git a/mods/default/textures_mc/items/diamond_shovel.png b/texturepacks/minecraft/items/diamond_shovel.png similarity index 100% rename from mods/default/textures_mc/items/diamond_shovel.png rename to texturepacks/minecraft/items/diamond_shovel.png diff --git a/mods/default/textures_mc/items/diamond_sword.png b/texturepacks/minecraft/items/diamond_sword.png similarity index 100% rename from mods/default/textures_mc/items/diamond_sword.png rename to texturepacks/minecraft/items/diamond_sword.png diff --git a/mods/default/textures_mc/items/gold_ingot.png b/texturepacks/minecraft/items/gold_ingot.png similarity index 100% rename from mods/default/textures_mc/items/gold_ingot.png rename to texturepacks/minecraft/items/gold_ingot.png diff --git a/mods/default/textures_mc/items/golden_axe.png b/texturepacks/minecraft/items/golden_axe.png similarity index 100% rename from mods/default/textures_mc/items/golden_axe.png rename to texturepacks/minecraft/items/golden_axe.png diff --git a/mods/default/textures_mc/items/golden_hoe.png b/texturepacks/minecraft/items/golden_hoe.png similarity index 100% rename from mods/default/textures_mc/items/golden_hoe.png rename to texturepacks/minecraft/items/golden_hoe.png diff --git a/mods/default/textures_mc/items/golden_pickaxe.png b/texturepacks/minecraft/items/golden_pickaxe.png similarity index 100% rename from mods/default/textures_mc/items/golden_pickaxe.png rename to texturepacks/minecraft/items/golden_pickaxe.png diff --git a/mods/default/textures_mc/items/golden_shovel.png b/texturepacks/minecraft/items/golden_shovel.png similarity index 100% rename from mods/default/textures_mc/items/golden_shovel.png rename to texturepacks/minecraft/items/golden_shovel.png diff --git a/mods/default/textures_mc/items/golden_sword.png b/texturepacks/minecraft/items/golden_sword.png similarity index 100% rename from mods/default/textures_mc/items/golden_sword.png rename to texturepacks/minecraft/items/golden_sword.png diff --git a/mods/default/textures_mc/items/iron_axe.png b/texturepacks/minecraft/items/iron_axe.png similarity index 100% rename from mods/default/textures_mc/items/iron_axe.png rename to texturepacks/minecraft/items/iron_axe.png diff --git a/mods/default/textures_mc/items/iron_hoe.png b/texturepacks/minecraft/items/iron_hoe.png similarity index 100% rename from mods/default/textures_mc/items/iron_hoe.png rename to texturepacks/minecraft/items/iron_hoe.png diff --git a/mods/default/textures_mc/items/iron_ingot.png b/texturepacks/minecraft/items/iron_ingot.png similarity index 100% rename from mods/default/textures_mc/items/iron_ingot.png rename to texturepacks/minecraft/items/iron_ingot.png diff --git a/mods/default/textures_mc/items/iron_pickaxe.png b/texturepacks/minecraft/items/iron_pickaxe.png similarity index 100% rename from mods/default/textures_mc/items/iron_pickaxe.png rename to texturepacks/minecraft/items/iron_pickaxe.png diff --git a/mods/default/textures_mc/items/iron_shovel.png b/texturepacks/minecraft/items/iron_shovel.png similarity index 100% rename from mods/default/textures_mc/items/iron_shovel.png rename to texturepacks/minecraft/items/iron_shovel.png diff --git a/mods/default/textures_mc/items/iron_sword.png b/texturepacks/minecraft/items/iron_sword.png similarity index 100% rename from mods/default/textures_mc/items/iron_sword.png rename to texturepacks/minecraft/items/iron_sword.png diff --git a/mods/default/textures_mc/items/reeds_item.png b/texturepacks/minecraft/items/reeds_item.png similarity index 100% rename from mods/default/textures_mc/items/reeds_item.png rename to texturepacks/minecraft/items/reeds_item.png diff --git a/mods/default/textures_mc/items/stick.png b/texturepacks/minecraft/items/stick.png similarity index 100% rename from mods/default/textures_mc/items/stick.png rename to texturepacks/minecraft/items/stick.png diff --git a/mods/default/textures_mc/items/stone_axe.png b/texturepacks/minecraft/items/stone_axe.png similarity index 100% rename from mods/default/textures_mc/items/stone_axe.png rename to texturepacks/minecraft/items/stone_axe.png diff --git a/mods/default/textures_mc/items/stone_hoe.png b/texturepacks/minecraft/items/stone_hoe.png similarity index 100% rename from mods/default/textures_mc/items/stone_hoe.png rename to texturepacks/minecraft/items/stone_hoe.png diff --git a/mods/default/textures_mc/items/stone_pickaxe.png b/texturepacks/minecraft/items/stone_pickaxe.png similarity index 100% rename from mods/default/textures_mc/items/stone_pickaxe.png rename to texturepacks/minecraft/items/stone_pickaxe.png diff --git a/mods/default/textures_mc/items/stone_shovel.png b/texturepacks/minecraft/items/stone_shovel.png similarity index 100% rename from mods/default/textures_mc/items/stone_shovel.png rename to texturepacks/minecraft/items/stone_shovel.png diff --git a/mods/default/textures_mc/items/stone_sword.png b/texturepacks/minecraft/items/stone_sword.png similarity index 100% rename from mods/default/textures_mc/items/stone_sword.png rename to texturepacks/minecraft/items/stone_sword.png diff --git a/mods/default/textures_mc/items/wooden_axe.png b/texturepacks/minecraft/items/wooden_axe.png similarity index 100% rename from mods/default/textures_mc/items/wooden_axe.png rename to texturepacks/minecraft/items/wooden_axe.png diff --git a/mods/default/textures_mc/items/wooden_hoe.png b/texturepacks/minecraft/items/wooden_hoe.png similarity index 100% rename from mods/default/textures_mc/items/wooden_hoe.png rename to texturepacks/minecraft/items/wooden_hoe.png diff --git a/mods/default/textures_mc/items/wooden_pickaxe.png b/texturepacks/minecraft/items/wooden_pickaxe.png similarity index 100% rename from mods/default/textures_mc/items/wooden_pickaxe.png rename to texturepacks/minecraft/items/wooden_pickaxe.png diff --git a/mods/default/textures_mc/items/wooden_shovel.png b/texturepacks/minecraft/items/wooden_shovel.png similarity index 100% rename from mods/default/textures_mc/items/wooden_shovel.png rename to texturepacks/minecraft/items/wooden_shovel.png diff --git a/mods/default/textures_mc/items/wooden_sword.png b/texturepacks/minecraft/items/wooden_sword.png similarity index 100% rename from mods/default/textures_mc/items/wooden_sword.png rename to texturepacks/minecraft/items/wooden_sword.png