diff --git a/Minecraft.Client/Common/Media/MediaWindows64.arc b/Minecraft.Client/Common/Media/MediaWindows64.arc index e34d7788..7ac6c2f8 100644 Binary files a/Minecraft.Client/Common/Media/MediaWindows64.arc and b/Minecraft.Client/Common/Media/MediaWindows64.arc differ diff --git a/Minecraft.Client/Windows64Media/strings.h b/Minecraft.Client/Windows64Media/strings.h index e6d534b9..5e4fe229 100644 --- a/Minecraft.Client/Windows64Media/strings.h +++ b/Minecraft.Client/Windows64Media/strings.h @@ -2415,4 +2415,5 @@ #define IDS_DESC_LILAC 2409 #define IDS_DESC_LARGE_FERN 2410 #define IDS_DESC_ROSE_BUSH 2411 -#define IDS_DESC_PEONY 2412 \ No newline at end of file +#define IDS_DESC_PEONY 2412 +#define IDS_ENDERMITE 2413 \ No newline at end of file diff --git a/Minecraft.World/EntityIO.cpp b/Minecraft.World/EntityIO.cpp index fa5f569f..bcd0f16c 100644 --- a/Minecraft.World/EntityIO.cpp +++ b/Minecraft.World/EntityIO.cpp @@ -115,7 +115,7 @@ void EntityIO::staticCtor() setId(Endermite::create, eTYPE_ENDERMITE, L"Endermite", 67, eMinecraftColour_Mob_Endermite_Colour1, - eMinecraftColour_Mob_Endermite_Colour2, IDS_RABBIT);//change IDS_Endermite later + eMinecraftColour_Mob_Endermite_Colour2, IDS_ENDERMITE);//change IDS_Endermite later setId(Villager::create, eTYPE_VILLAGER, L"Villager", 120, eMinecraftColour_Mob_Villager_Colour1, eMinecraftColour_Mob_Villager_Colour2, IDS_VILLAGER); diff --git a/Minecraft.World/LeafTile2.cpp b/Minecraft.World/LeafTile2.cpp index d20c5d87..319ff1b8 100644 --- a/Minecraft.World/LeafTile2.cpp +++ b/Minecraft.World/LeafTile2.cpp @@ -100,37 +100,36 @@ void LeafTile2::playerDestroy(Level *level, shared_ptr player, int x, in } } -void LeafTile2::spawnResources(Level *level, int x, int y, int z, int data, float odds, int playerBonusLevel) -{ - if (!level->isClientSide) - { - int chance = 20; - if (playerBonusLevel > 0) - { - chance -= 2 << playerBonusLevel; - if (chance < 10) chance = 10; - } +void LeafTile2::spawnResources(Level* level, int x, int y, int z, int data, float odds, int playerBonusLevel) { + if (!level->isClientSide) + { + int chance = 20; + if (playerBonusLevel > 0) + { + chance -= 2 << playerBonusLevel; + if (chance < 10) chance = 10; + } - if (level->random->nextInt(chance) == 0) - { - - - popResource(level, x, y, z, std::make_shared(Tile::sapling_Id, 1, (data & 3) + 4)); - } + if (level->random->nextInt(chance) == 0) + { - - if ((data & 3) == 1) - { - int appleChance = 200; - if (playerBonusLevel > 0) - { - appleChance -= 10 << playerBonusLevel; - if (appleChance < 40) appleChance = 40; - } - if (level->random->nextInt(appleChance) == 0) - { - popResource(level, x, y, z, std::make_shared(Item::apple_Id, 1, 0)); - } - } - } -} \ No newline at end of file + + popResource(level, x, y, z, std::make_shared(Tile::sapling_Id, 1, (data & 3) + 4)); + } + + + if ((data & 3) == 1) + { + int appleChance = 200; + if (playerBonusLevel > 0) + { + appleChance -= 10 << playerBonusLevel; + if (appleChance < 40) appleChance = 40; + } + if (level->random->nextInt(appleChance) == 0) + { + popResource(level, x, y, z, std::make_shared(Item::apple_Id, 1, 0)); + } + } + } +} diff --git a/Minecraft.World/StoneTile.h b/Minecraft.World/StoneTile.h index 0a959ffe..01c86590 100644 --- a/Minecraft.World/StoneTile.h +++ b/Minecraft.World/StoneTile.h @@ -6,6 +6,7 @@ class Random; class StoneTile : public Tile { public: + static const int TYPE_DEFAULT = 0; static const int GRANITE = 1; static const int POLISHED_GRANITE = 2; static const int DIORITE = 3; diff --git a/Minecraft.World/Tile.cpp b/Minecraft.World/Tile.cpp index 3541df86..7709d8b4 100644 --- a/Minecraft.World/Tile.cpp +++ b/Minecraft.World/Tile.cpp @@ -16,7 +16,7 @@ #include "net.minecraft.world.h" #include "net.minecraft.h" #include "Tile.h" -#include "Tallgrass2.h" + #include "facing.h" @@ -552,6 +552,7 @@ void Tile::staticCtor() Item::items[treeTrunk_Id] = (new MultiTextureTileItem(Tile::treeTrunk_Id - 256, treeTrunk, (int*)TreeTile::TREE_NAMES, 6))->setIconName(L"log")->setDescriptionId(IDS_TILE_LOG)->setUseDescriptionId(IDS_DESC_LOG); Item::items[wood_Id] = (new MultiTextureTileItem(Tile::wood_Id - 256, Tile::wood, (int*)WoodTile::WOOD_NAMES, 6, IDS_TILE_PLANKS))->setIconName(L"wood")->setDescriptionId(IDS_TILE_OAKWOOD_PLANKS)->setUseDescriptionId(IDS_DESC_LOG); // <- TODO Item::items[monsterStoneEgg_Id] = ( new MultiTextureTileItem(Tile::monsterStoneEgg_Id - 256, monsterStoneEgg, (int *)StoneMonsterTile::STONE_MONSTER_NAMES, 3))->setIconName(L"monsterStoneEgg")->setDescriptionId(IDS_TILE_STONE_SILVERFISH)->setUseDescriptionId(IDS_DESC_STONE_SILVERFISH); // 4J - Brought forward from post-1.2 to fix stacking problem + Item::items[stone_Id] = ( new MultiTextureTileItem(Tile::stone_Id - 256,Tile::stone,(int*)StoneTile::STONE_NAMES, StoneTile::STONE_NAMES_LENGTH))->setIconName(L"stone")->setDescriptionId(IDS_TILE_STONE); Item::items[stoneBrick_Id] = ( new MultiTextureTileItem(Tile::stoneBrick_Id - 256, stoneBrick,(int *)SmoothStoneBrickTile::SMOOTH_STONE_BRICK_NAMES, 4))->setIconName(L"stonebricksmooth")->setDescriptionId(IDS_TILE_STONE_BRICK_SMOOTH); Item::items[sandStone_Id] = ( new MultiTextureTileItem(sandStone_Id - 256, sandStone, SandStoneTile::SANDSTONE_NAMES, SandStoneTile::SANDSTONE_BLOCK_NAMES) )->setIconName(L"sandStone")->setDescriptionId(IDS_TILE_SANDSTONE)->setUseDescriptionId(IDS_DESC_SANDSTONE); Item::items[quartzBlock_Id] = ( new MultiTextureTileItem(quartzBlock_Id - 256, quartzBlock, QuartzBlockTile::BLOCK_NAMES, QuartzBlockTile::QUARTZ_BLOCK_NAMES) )->setIconName(L"quartzBlock")->setDescriptionId(IDS_TILE_QUARTZ_BLOCK)->setUseDescriptionId(IDS_DESC_QUARTZ_BLOCK); @@ -562,7 +563,7 @@ void Tile::staticCtor() Item::items[sapling_Id] = (new MultiTextureTileItem(Tile::sapling_Id - 256, Tile::sapling, Sapling::SAPLING_NAMES, Sapling::SAPLING_NAMES_SIZE))->setIconName(L"sapling")->setDescriptionId(IDS_TILE_SAPLING)->setUseDescriptionId(IDS_DESC_SAPLING);; //Item::items[sapling2_Id] = ( new MultiTextureTileItem(Tile::sapling2_Id - 256, Tile::sapling2, Sapling2::SAPLING_NAMES, 2) )->setIconName(L"sapling2")->setDescriptionId(IDS_TILE_SAPLING)->setUseDescriptionId(IDS_DESC_SAPLING); Item::items[leaves_Id] = ( new LeafTileItem(Tile::leaves_Id - 256) )->setIconName(L"leaves")->setDescriptionId(IDS_TILE_LEAVES)->setUseDescriptionId(IDS_DESC_LEAVES); - Item::items[leaves2_Id] = ( new LeafTileItem(Tile::leaves2_Id - 256) )->setIconName(L"leaves_acacia")->setDescriptionId(IDS_TILE_LEAVES)->setUseDescriptionId(IDS_DESC_LEAVES); + Item::items[leaves2_Id] = ( new LeafTileItem2(Tile::leaves2_Id - 256) )->setIconName(L"leaves_acacia")->setDescriptionId(IDS_TILE_LEAVES)->setUseDescriptionId(IDS_DESC_LEAVES); Item::items[vine_Id] = ( new ColoredTileItem(Tile::vine_Id - 256, false))->setDescriptionId(IDS_TILE_VINE)->setUseDescriptionId(IDS_DESC_VINE); int idsData[3] = {IDS_TILE_SHRUB, IDS_TILE_TALL_GRASS, IDS_TILE_FERN}; intArray ids = intArray(idsData, 3); @@ -574,12 +575,16 @@ void Tile::staticCtor() Item::items[cobbleWall_Id] = ( new MultiTextureTileItem(cobbleWall_Id - 256, cobbleWall, (int *)WallTile::COBBLE_NAMES, 2) )->setDescriptionId(IDS_TILE_COBBLESTONE_WALL)->setUseDescriptionId(IDS_DESC_COBBLESTONE_WALL); Item::items[anvil_Id] = ( new AnvilTileItem(anvil) )->setDescriptionId(IDS_TILE_ANVIL)->setUseDescriptionId(IDS_DESC_ANVIL); Item::items[dirt_Id] = (new MultiTextureTileItem(Tile::dirt_Id - 256, dirt, (int*)DirtTile::DIRT_NAMES, 3))->setIconName(L"dirt")->setDescriptionId(IDS_TILE_DIRT)->setUseDescriptionId(IDS_DESC_DIRT); - Item::items[stone_Id] = (new MultiTextureTileItem(Tile::stone_Id - 256, dirt, (int*)StoneTile::STONE_NAMES, 3))->setIconName(L"stone")->setDescriptionId(IDS_TILE_STONE)->setUseDescriptionId(IDS_DESC_STONE); + Item::items[rose_Id] = (new MultiTextureTileItem(Tile::rose_Id - 256, rose, (int*)Rose::FLOWER_NAMES, Rose::FLOWER_NAMES_LENGTH))->setIconName(L"flower_rose")->setDescriptionId(IDS_TILE_ROSE)->setUseDescriptionId(IDS_DESC_FLOWER); Item::items[sand_Id] = (new MultiTextureTileItem(Tile::sand_Id - 256, sand, (int*)SandTile::SAND_NAMES, SandTile::SAND_NAMES_LENGTH))->setIconName(L"sand")->setDescriptionId(IDS_TILE_SAND)->setUseDescriptionId(IDS_DESC_SAND); Item::items[red_sandstone_Id] = (new MultiTextureTileItem(Tile::red_sandstone_Id - 256, red_sandstone, (int*)RedSandStoneTile::SANDSTONE_NAMES, RedSandStoneTile::SANDSTONE_BLOCK_NAMES))->setIconName(L"red_sandstone")->setDescriptionId(IDS_TILE_SANDSTONE)->setUseDescriptionId(IDS_DESC_SANDSTONE); Item::items[tree2Trunk_Id] = (new MultiTextureTileItem(Tile::tree2Trunk_Id - 256, tree2Trunk, (int*)TreeTile2::TREE_NAMES, TreeTile2::TREE_NAMES_LENGTH))->setIconName(L"log")->setDescriptionId(IDS_TILE_LOG)->setUseDescriptionId(IDS_DESC_LOG); Item::items[sponge_Id] = (new MultiTextureTileItem(Tile::sponge_Id - 256, sponge, (int*)Sponge::SPONGE_NAMES, Sponge::SPONGE_NAMES_LENGTH))->setIconName(L"sponge")->setDescriptionId(IDS_TILE_SPONGE)->setUseDescriptionId(IDS_DESC_SPONGE); + + + + int tallgrass2IdsData[TallGrass2::VARIANT_COUNT] = { IDS_TILE_SUNFLOWER, // 0 - Sunflower, not implemented yet IDS_TILE_LILAC, // 1 - Lilac @@ -588,7 +593,7 @@ void Tile::staticCtor() IDS_TILE_ROSE_BUSH, // 4 - Rose Bush IDS_TILE_PEONY, // 5 - Peony }; - intArray tallgrass2Ids = intArray(tallgrass2IdsData, 5); + intArray tallgrass2Ids = intArray(tallgrass2IdsData, 6); Item::items[tallgrass2_Id] = static_cast((new TallGrass2TileItem(Tile::tallgrass2_Id - 256))->setDescriptionId(IDS_TILE_DOUBLE_TALL_GRASS)->setUseDescriptionId(IDS_DESC_TALL_GRASS))->setDescriptionPostfixes(tallgrass2Ids); for (int i = 0; i < 256; i++) diff --git a/Minecraft.World/cmake/sources/Common.cmake b/Minecraft.World/cmake/sources/Common.cmake index 30ae7bc3..366a2bee 100644 --- a/Minecraft.World/cmake/sources/Common.cmake +++ b/Minecraft.World/cmake/sources/Common.cmake @@ -1094,6 +1094,8 @@ set(_MINECRAFT_WORLD_COMMON_NET_MINECRAFT_WORLD_ITEM "${CMAKE_CURRENT_SOURCE_DIR}/ItemInstance.h" "${CMAKE_CURRENT_SOURCE_DIR}/LeafTileItem.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/LeafTileItem.h" + "${CMAKE_CURRENT_SOURCE_DIR}/LeafTileItem2.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/LeafTileItem2.h" "${CMAKE_CURRENT_SOURCE_DIR}/LeashItem.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/LeashItem.h" "${CMAKE_CURRENT_SOURCE_DIR}/MapItem.cpp" diff --git a/Minecraft.World/net.minecraft.world.level.tile.h b/Minecraft.World/net.minecraft.world.level.tile.h index 462cef37..7f59186b 100644 --- a/Minecraft.World/net.minecraft.world.level.tile.h +++ b/Minecraft.World/net.minecraft.world.level.tile.h @@ -57,6 +57,7 @@ #include "JukeboxTile.h" #include "LadderTile.h" #include "LeafTile.h" +#include "LeafTile2.h" #include "LevelEvent.h" #include "LeverTile.h" #include "LiquidTile.h" @@ -127,7 +128,7 @@ #include "WoodButtonTile.h" #include "WorkbenchTile.h" #include "WoodTile.h" -#include "HalfSlabTile.h" + #include "WoodSlabTile.h" #include "WoolCarpetTile.h" #include "Rose.h" @@ -135,9 +136,10 @@ #include "RedSandStoneTile.h" #include "TreeTile2.h" #include "SeaLanternTile.h" -#include "LeafTile2.h" + #include "PrismarineTile.h" +#include "Tallgrass2.h" #include "PackedIceTile.h" -#include "Tallgrass2.h" +