diff --git a/Minecraft.Client/Common/Media/MediaWindows64.arc b/Minecraft.Client/Common/Media/MediaWindows64.arc index 6ce552c5..20b2d76e 100644 Binary files a/Minecraft.Client/Common/Media/MediaWindows64.arc and b/Minecraft.Client/Common/Media/MediaWindows64.arc differ diff --git a/Minecraft.Client/Common/res/TitleUpdate/res/items.png b/Minecraft.Client/Common/res/TitleUpdate/res/items.png index 5456083c..7e3f8b05 100644 Binary files a/Minecraft.Client/Common/res/TitleUpdate/res/items.png and b/Minecraft.Client/Common/res/TitleUpdate/res/items.png differ diff --git a/Minecraft.Client/Common/res/TitleUpdate/res/terrain.png b/Minecraft.Client/Common/res/TitleUpdate/res/terrain.png index 0246b41d..38a5ff2c 100644 Binary files a/Minecraft.Client/Common/res/TitleUpdate/res/terrain.png and b/Minecraft.Client/Common/res/TitleUpdate/res/terrain.png differ diff --git a/Minecraft.Client/Common/res/TitleUpdate/res/terrainMipMapLevel2.png b/Minecraft.Client/Common/res/TitleUpdate/res/terrainMipMapLevel2.png index 02686b3e..6a1d1937 100644 Binary files a/Minecraft.Client/Common/res/TitleUpdate/res/terrainMipMapLevel2.png and b/Minecraft.Client/Common/res/TitleUpdate/res/terrainMipMapLevel2.png differ diff --git a/Minecraft.Client/Common/res/TitleUpdate/res/terrainMipMapLevel3.png b/Minecraft.Client/Common/res/TitleUpdate/res/terrainMipMapLevel3.png index dddef615..231e66c3 100644 Binary files a/Minecraft.Client/Common/res/TitleUpdate/res/terrainMipMapLevel3.png and b/Minecraft.Client/Common/res/TitleUpdate/res/terrainMipMapLevel3.png differ diff --git a/Minecraft.Client/PreStitchedTextureMap.cpp b/Minecraft.Client/PreStitchedTextureMap.cpp index 33e0b59e..d7189f39 100644 --- a/Minecraft.Client/PreStitchedTextureMap.cpp +++ b/Minecraft.Client/PreStitchedTextureMap.cpp @@ -522,11 +522,11 @@ void PreStitchedTextureMap::loadUVs() ADD_ICON(10, 15, L"dyePowder_orange") ADD_ICON(11, 0, L"leggingsCloth_overlay") - //ADD_ICON(11, 1, L"unused") - //ADD_ICON(11, 2, L"unused") - //ADD_ICON(11, 3, L"unused") - //ADD_ICON(11, 4, L"unused") - //ADD_ICON(11, 5, L"unused") + ADD_ICON(11, 1, L"doorSpruce") + ADD_ICON(11, 2, L"doorBirch") + ADD_ICON(11, 3, L"doorJungle") + ADD_ICON(11, 4, L"doorAcacia") + ADD_ICON(11, 5, L"doorDark") //ADD_ICON(11, 6, L"unused") ADD_ICON(11, 7, L"minecart_hopper") ADD_ICON(11, 8, L"hopper") @@ -986,5 +986,25 @@ void PreStitchedTextureMap::loadUVs() ADD_ICON(19, 13, L"glass_pane_top_silver"); ADD_ICON(19, 14, L"glass_pane_top_white"); ADD_ICON(19, 15, L"glass_pane_top_yellow"); + + ADD_ICON(20, 0, L"door_spruce_upper"); + ADD_ICON(20, 1, L"door_birch_upper"); + ADD_ICON(20, 2, L"door_jungle_upper"); + ADD_ICON(20, 3, L"door_acacia_upper"); + ADD_ICON(20, 4, L"door_dark_upper"); + ADD_ICON(20, 5, L"log_acacia_top"); + ADD_ICON(20, 6, L"log_acacia"); + ADD_ICON(20, 7, L"planks_acacia"); + ADD_ICON(20, 8, L"log_dark_top"); + ADD_ICON(20, 9, L"log_dark"); + ADD_ICON(20, 10, L"planks_dark"); + ADD_ICON(20, 11, L"iron_trapdoor"); + ADD_ICON(20, 12, L"inverted_daylight_detector"); + + ADD_ICON(21, 0, L"door_spruce_lower"); + ADD_ICON(21, 1, L"door_birch_lower"); + ADD_ICON(21, 2, L"door_jungle_lower"); + ADD_ICON(21, 3, L"door_acacia_lower"); + ADD_ICON(21, 4, L"door_dark_lower"); } } diff --git a/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml b/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml index 36b521dd..becae532 100644 --- a/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml +++ b/Minecraft.Client/Windows64Media/loc/stringsGeneric.xml @@ -2310,7 +2310,7 @@ Can also be used for low-level lighting. - Wooden Door + Oak Door @@ -3322,7 +3322,7 @@ Can also be used for low-level lighting. - Wooden Door + Oak Door @@ -3394,7 +3394,7 @@ Can also be used for low-level lighting. - Fence + Oak Fence @@ -3538,7 +3538,7 @@ Can also be used for low-level lighting. - Fence Gate + Oak Fence Gate @@ -8811,4 +8811,124 @@ All Ender Chests in a world are linked. Items placed into an Ender Chest are acc Cure + + + Acacia Wood + + + + Dark Oak Wood + + + + Acacia Wood Planks + + + + Dark Oak Wood Planks + + + + Acacia Wood Stairs + + + + Dark Oak Wood Stairs + + + + Acacia Wood Slab + + + + Dark Oak Wood Slab + + + + Dark Oak Wood Slab + + + + Iron Trapdoor + + + + Spruce Door + + + + Birch Door + + + + Jungle Door + + + + Acacia Door + + + + Dark Oak Door + + + + Spruce Fence + + + + Birch Fence + + + + Jungle Fence + + + + Acacia Fence + + + + Dark Oak Fence + + + + Spruce Fence Gate + + + + Birch Fence Gate + + + + Jungle Fence Gate + + + + Acacia Fence Gate + + + + Dark Oak Fence Gate + + + + Spruce Door + + + + Birch Door + + + + Jungle Door + + + + Acacia Door + + + + Dark Oak Door + \ No newline at end of file diff --git a/Minecraft.Client/Windows64Media/strings.h b/Minecraft.Client/Windows64Media/strings.h index 63e3a7f4..5ec460af 100644 --- a/Minecraft.Client/Windows64Media/strings.h +++ b/Minecraft.Client/Windows64Media/strings.h @@ -1,7 +1,7 @@ #pragma once // Auto-generated by StringTable builder — do not edit manually. // Source language: en-US -// Total strings: 2286 +// Total strings: 2315 #define IDS_NULL 0 #define IDS_OK 1 @@ -2165,127 +2165,156 @@ #define IDS_TUTORIAL_TASK_MINECART_PUSHING 2159 #define IDS_CONNECTION_FAILED_NO_SD_SPLITSCREEN 2160 #define IDS_TOOLTIPS_CURE 2161 -#define IDS_LANG_SYSTEM 2162 -#define IDS_LANG_ENGLISH 2163 -#define IDS_LANG_GERMAN 2164 -#define IDS_LANG_SPANISH 2165 -#define IDS_LANG_SPANISH_SPAIN 2166 -#define IDS_LANG_SPANISH_LATIN_AMERICA 2167 -#define IDS_LANG_FRENCH 2168 -#define IDS_LANG_ITALIAN 2169 -#define IDS_LANG_PORTUGUESE 2170 -#define IDS_LANG_PORTUGUESE_PORTUGAL 2171 -#define IDS_LANG_PORTUGUESE_BRAZIL 2172 -#define IDS_LANG_JAPANESE 2173 -#define IDS_LANG_KOREAN 2174 -#define IDS_LANG_CHINESE_TRADITIONAL 2175 -#define IDS_LANG_CHINESE_SIMPLIFIED 2176 -#define IDS_LANG_DANISH 2177 -#define IDS_LANG_FINISH 2178 -#define IDS_LANG_DUTCH 2179 -#define IDS_LANG_POLISH 2180 -#define IDS_LANG_RUSSIAN 2181 -#define IDS_LANG_SWEDISH 2182 -#define IDS_LANG_NORWEGIAN 2183 -#define IDS_LANG_GREEK 2184 -#define IDS_LANG_TURKISH 2185 -#define IDS_LEADERBOARD_KILLS_EASY 2186 -#define IDS_LEADERBOARD_KILLS_NORMAL 2187 -#define IDS_LEADERBOARD_KILLS_HARD 2188 -#define IDS_LEADERBOARD_MINING_BLOCKS_PEACEFUL 2189 -#define IDS_LEADERBOARD_MINING_BLOCKS_EASY 2190 -#define IDS_LEADERBOARD_MINING_BLOCKS_NORMAL 2191 -#define IDS_LEADERBOARD_MINING_BLOCKS_HARD 2192 -#define IDS_LEADERBOARD_FARMING_PEACEFUL 2193 -#define IDS_LEADERBOARD_FARMING_EASY 2194 -#define IDS_LEADERBOARD_FARMING_NORMAL 2195 -#define IDS_LEADERBOARD_FARMING_HARD 2196 -#define IDS_LEADERBOARD_TRAVELLING_PEACEFUL 2197 -#define IDS_LEADERBOARD_TRAVELLING_EASY 2198 -#define IDS_LEADERBOARD_TRAVELLING_NORMAL 2199 -#define IDS_LEADERBOARD_TRAVELLING_HARD 2200 -#define IDS_TIPS_GAMETIP_0 2201 -#define IDS_TIPS_GAMETIP_1 2202 -#define IDS_TIPS_GAMETIP_48 2203 -#define IDS_TIPS_GAMETIP_44 2204 -#define IDS_TIPS_GAMETIP_45 2205 -#define IDS_TIPS_TRIVIA_4 2206 -#define IDS_TIPS_TRIVIA_17 2207 -#define IDS_HOW_TO_PLAY_MULTIPLAYER 2208 -#define IDS_HOW_TO_PLAY_SOCIALMEDIA 2209 -#define IDS_HOW_TO_PLAY_CREATIVE 2210 -#define IDS_TUTORIAL_TASK_FLY 2211 -#define IDS_TOOLTIPS_SELECTDEVICE 2212 -#define IDS_TOOLTIPS_CHANGEDEVICE 2213 -#define IDS_TOOLTIPS_VIEW_GAMERCARD 2214 -#define IDS_TOOLTIPS_VIEW_GAMERPROFILE 2215 -#define IDS_TOOLTIPS_INVITE_PARTY 2216 -#define IDS_CONFIRM_START_CREATIVE 2217 -#define IDS_CONFIRM_START_SAVEDINCREATIVE 2218 -#define IDS_CONFIRM_START_SAVEDINCREATIVE_CONTINUE 2219 -#define IDS_CONFIRM_START_HOST_PRIVILEGES 2220 -#define IDS_CONNECTION_LOST_LIVE 2221 -#define IDS_CONNECTION_LOST_LIVE_NO_EXIT 2222 -#define IDS_AWARD_AVATAR1 2223 -#define IDS_AWARD_AVATAR2 2224 -#define IDS_AWARD_AVATAR3 2225 -#define IDS_AWARD_THEME 2226 -#define IDS_UNLOCK_ACHIEVEMENT_TEXT 2227 -#define IDS_UNLOCK_AVATAR_TEXT 2228 -#define IDS_UNLOCK_GAMERPIC_TEXT 2229 -#define IDS_UNLOCK_THEME_TEXT 2230 -#define IDS_UNLOCK_ACCEPT_INVITE 2231 -#define IDS_UNLOCK_GUEST_TEXT 2232 -#define IDS_LEADERBOARD_GAMERTAG 2233 -#define IDS_GROUPNAME_POTIONS_480 2234 -#define IDS_RETURNEDTOTITLESCREEN_TEXT 2235 -#define IDS_TRIALOVER_TEXT 2236 -#define IDS_FATAL_ERROR_TEXT 2237 -#define IDS_NO_MULTIPLAYER_PRIVILEGE_JOIN_TEXT 2238 -#define IDS_NO_MULTIPLAYER_PRIVILEGE_HOST_TEXT 2239 -#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_SINGLE_LOCAL 2240 -#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_ALL_LOCAL 2241 -#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_REMOTE 2242 -#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_CREATE 2243 -#define IDS_SAVE_ICON_MESSAGE 2244 -#define IDS_GAMEOPTION_HOST_PRIVILEGES 2245 -#define IDS_CHECKBOX_DISPLAY_SPLITSCREENGAMERTAGS 2246 -#define IDS_ACHIEVEMENTS 2247 -#define IDS_LABEL_GAMERTAGS 2248 -#define IDS_IN_GAME_GAMERTAGS 2249 -#define IDS_SOCIAL_DEFAULT_DESCRIPTION 2250 -#define IDS_TITLE_UPDATE_NAME 2251 -#define IDS_PLATFORM_NAME 2252 -#define IDS_BACK_BUTTON 2253 -#define IDS_HOST_OPTION_DISABLES_ACHIEVEMENTS 2254 -#define IDS_KICK_PLAYER_DESCRIPTION 2255 -#define IDS_USING_TRIAL_TEXUREPACK_WARNING 2256 -#define IDS_WORLD_SIZE_TITLE_SMALL 2257 -#define IDS_WORLD_SIZE_TITLE_MEDIUM 2258 -#define IDS_WORLD_SIZE_TITLE_LARGE 2259 -#define IDS_WORLD_SIZE_TITLE_CLASSIC 2260 -#define IDS_WORLD_SIZE 2261 -#define IDS_GAMEOPTION_WORLD_SIZE 2262 -#define IDS_DISABLE_SAVING 2263 -#define IDS_GAMEOPTION_DISABLE_SAVING 2264 -#define IDS_RICHPRESENCE_GAMESTATE 2265 -#define IDS_RICHPRESENCE_IDLE 2266 -#define IDS_RICHPRESENCE_MENUS 2267 -#define IDS_RICHPRESENCE_MULTIPLAYER 2268 -#define IDS_RICHPRESENCE_MULTIPLAYEROFFLINE 2269 -#define IDS_RICHPRESENCE_MULTIPLAYER_1P 2270 -#define IDS_RICHPRESENCE_MULTIPLAYER_1POFFLINE 2271 -#define IDS_RICHPRESENCESTATE_BLANK 2272 -#define IDS_RICHPRESENCESTATE_RIDING_PIG 2273 -#define IDS_RICHPRESENCESTATE_RIDING_MINECART 2274 -#define IDS_RICHPRESENCESTATE_BOATING 2275 -#define IDS_RICHPRESENCESTATE_FISHING 2276 -#define IDS_RICHPRESENCESTATE_CRAFTING 2277 -#define IDS_RICHPRESENCESTATE_FORGING 2278 -#define IDS_RICHPRESENCESTATE_NETHER 2279 -#define IDS_RICHPRESENCESTATE_CD 2280 -#define IDS_RICHPRESENCESTATE_MAP 2281 -#define IDS_RICHPRESENCESTATE_ENCHANTING 2282 -#define IDS_RICHPRESENCESTATE_BREWING 2283 -#define IDS_RICHPRESENCESTATE_ANVIL 2284 -#define IDS_RICHPRESENCESTATE_TRADING 2285 +#define IDS_TILE_LOG_ACACIA 2162 +#define IDS_TILE_LOG_DARK_OAK 2163 +#define IDS_TILE_ACACIA_PLANKS 2164 +#define IDS_TILE_DARK_OAK_PLANKS 2165 +#define IDS_TILE_STAIRS_ACACIAWOOD 2166 +#define IDS_TILE_STAIRS_DARKWOOD 2167 +#define IDS_TILE_STONESLAB_ACACIA 2168 +#define IDS_TILE_STONESLAB_DARK_OAK 2169 +#define IDS_TILE_IRON_TRAPDOOR 2170 +#define IDS_TILE_DOOR_SPRUCE 2171 +#define IDS_TILE_DOOR_BIRCH 2172 +#define IDS_TILE_DOOR_JUNGLE 2173 +#define IDS_TILE_DOOR_ACACIA 2174 +#define IDS_TILE_DOOR_DARK 2175 +#define IDS_TILE_SPRUCE_FENCE 2176 +#define IDS_TILE_BIRCH_FENCE 2177 +#define IDS_TILE_JUNGLE_FENCE 2178 +#define IDS_TILE_ACACIA_FENCE 2179 +#define IDS_TILE_DARK_FENCE 2180 +#define IDS_TILE_SPRUCE_GATE 2181 +#define IDS_TILE_BIRCH_GATE 2182 +#define IDS_TILE_JUNGLE_GATE 2183 +#define IDS_TILE_ACACIA_GATE 2184 +#define IDS_TILE_DARK_GATE 2185 +#define IDS_ITEM_DOOR_SPRUCE 2186 +#define IDS_ITEM_DOOR_BIRCH 2187 +#define IDS_ITEM_DOOR_JUNGLE 2188 +#define IDS_ITEM_DOOR_ACACIA 2189 +#define IDS_ITEM_DOOR_DARK 2190 +#define IDS_LANG_SYSTEM 2191 +#define IDS_LANG_ENGLISH 2192 +#define IDS_LANG_GERMAN 2193 +#define IDS_LANG_SPANISH 2194 +#define IDS_LANG_SPANISH_SPAIN 2195 +#define IDS_LANG_SPANISH_LATIN_AMERICA 2196 +#define IDS_LANG_FRENCH 2197 +#define IDS_LANG_ITALIAN 2198 +#define IDS_LANG_PORTUGUESE 2199 +#define IDS_LANG_PORTUGUESE_PORTUGAL 2200 +#define IDS_LANG_PORTUGUESE_BRAZIL 2201 +#define IDS_LANG_JAPANESE 2202 +#define IDS_LANG_KOREAN 2203 +#define IDS_LANG_CHINESE_TRADITIONAL 2204 +#define IDS_LANG_CHINESE_SIMPLIFIED 2205 +#define IDS_LANG_DANISH 2206 +#define IDS_LANG_FINISH 2207 +#define IDS_LANG_DUTCH 2208 +#define IDS_LANG_POLISH 2209 +#define IDS_LANG_RUSSIAN 2210 +#define IDS_LANG_SWEDISH 2211 +#define IDS_LANG_NORWEGIAN 2212 +#define IDS_LANG_GREEK 2213 +#define IDS_LANG_TURKISH 2214 +#define IDS_LEADERBOARD_KILLS_EASY 2215 +#define IDS_LEADERBOARD_KILLS_NORMAL 2216 +#define IDS_LEADERBOARD_KILLS_HARD 2217 +#define IDS_LEADERBOARD_MINING_BLOCKS_PEACEFUL 2218 +#define IDS_LEADERBOARD_MINING_BLOCKS_EASY 2219 +#define IDS_LEADERBOARD_MINING_BLOCKS_NORMAL 2220 +#define IDS_LEADERBOARD_MINING_BLOCKS_HARD 2221 +#define IDS_LEADERBOARD_FARMING_PEACEFUL 2222 +#define IDS_LEADERBOARD_FARMING_EASY 2223 +#define IDS_LEADERBOARD_FARMING_NORMAL 2224 +#define IDS_LEADERBOARD_FARMING_HARD 2225 +#define IDS_LEADERBOARD_TRAVELLING_PEACEFUL 2226 +#define IDS_LEADERBOARD_TRAVELLING_EASY 2227 +#define IDS_LEADERBOARD_TRAVELLING_NORMAL 2228 +#define IDS_LEADERBOARD_TRAVELLING_HARD 2229 +#define IDS_TIPS_GAMETIP_0 2230 +#define IDS_TIPS_GAMETIP_1 2231 +#define IDS_TIPS_GAMETIP_48 2232 +#define IDS_TIPS_GAMETIP_44 2233 +#define IDS_TIPS_GAMETIP_45 2234 +#define IDS_TIPS_TRIVIA_4 2235 +#define IDS_TIPS_TRIVIA_17 2236 +#define IDS_HOW_TO_PLAY_MULTIPLAYER 2237 +#define IDS_HOW_TO_PLAY_SOCIALMEDIA 2238 +#define IDS_HOW_TO_PLAY_CREATIVE 2239 +#define IDS_TUTORIAL_TASK_FLY 2240 +#define IDS_TOOLTIPS_SELECTDEVICE 2241 +#define IDS_TOOLTIPS_CHANGEDEVICE 2242 +#define IDS_TOOLTIPS_VIEW_GAMERCARD 2243 +#define IDS_TOOLTIPS_VIEW_GAMERPROFILE 2244 +#define IDS_TOOLTIPS_INVITE_PARTY 2245 +#define IDS_CONFIRM_START_CREATIVE 2246 +#define IDS_CONFIRM_START_SAVEDINCREATIVE 2247 +#define IDS_CONFIRM_START_SAVEDINCREATIVE_CONTINUE 2248 +#define IDS_CONFIRM_START_HOST_PRIVILEGES 2249 +#define IDS_CONNECTION_LOST_LIVE 2250 +#define IDS_CONNECTION_LOST_LIVE_NO_EXIT 2251 +#define IDS_AWARD_AVATAR1 2252 +#define IDS_AWARD_AVATAR2 2253 +#define IDS_AWARD_AVATAR3 2254 +#define IDS_AWARD_THEME 2255 +#define IDS_UNLOCK_ACHIEVEMENT_TEXT 2256 +#define IDS_UNLOCK_AVATAR_TEXT 2257 +#define IDS_UNLOCK_GAMERPIC_TEXT 2258 +#define IDS_UNLOCK_THEME_TEXT 2259 +#define IDS_UNLOCK_ACCEPT_INVITE 2260 +#define IDS_UNLOCK_GUEST_TEXT 2261 +#define IDS_LEADERBOARD_GAMERTAG 2262 +#define IDS_GROUPNAME_POTIONS_480 2263 +#define IDS_RETURNEDTOTITLESCREEN_TEXT 2264 +#define IDS_TRIALOVER_TEXT 2265 +#define IDS_FATAL_ERROR_TEXT 2266 +#define IDS_NO_MULTIPLAYER_PRIVILEGE_JOIN_TEXT 2267 +#define IDS_NO_MULTIPLAYER_PRIVILEGE_HOST_TEXT 2268 +#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_SINGLE_LOCAL 2269 +#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_ALL_LOCAL 2270 +#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_REMOTE 2271 +#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_CREATE 2272 +#define IDS_SAVE_ICON_MESSAGE 2273 +#define IDS_GAMEOPTION_HOST_PRIVILEGES 2274 +#define IDS_CHECKBOX_DISPLAY_SPLITSCREENGAMERTAGS 2275 +#define IDS_ACHIEVEMENTS 2276 +#define IDS_LABEL_GAMERTAGS 2277 +#define IDS_IN_GAME_GAMERTAGS 2278 +#define IDS_SOCIAL_DEFAULT_DESCRIPTION 2279 +#define IDS_TITLE_UPDATE_NAME 2280 +#define IDS_PLATFORM_NAME 2281 +#define IDS_BACK_BUTTON 2282 +#define IDS_HOST_OPTION_DISABLES_ACHIEVEMENTS 2283 +#define IDS_KICK_PLAYER_DESCRIPTION 2284 +#define IDS_USING_TRIAL_TEXUREPACK_WARNING 2285 +#define IDS_WORLD_SIZE_TITLE_SMALL 2286 +#define IDS_WORLD_SIZE_TITLE_MEDIUM 2287 +#define IDS_WORLD_SIZE_TITLE_LARGE 2288 +#define IDS_WORLD_SIZE_TITLE_CLASSIC 2289 +#define IDS_WORLD_SIZE 2290 +#define IDS_GAMEOPTION_WORLD_SIZE 2291 +#define IDS_DISABLE_SAVING 2292 +#define IDS_GAMEOPTION_DISABLE_SAVING 2293 +#define IDS_RICHPRESENCE_GAMESTATE 2294 +#define IDS_RICHPRESENCE_IDLE 2295 +#define IDS_RICHPRESENCE_MENUS 2296 +#define IDS_RICHPRESENCE_MULTIPLAYER 2297 +#define IDS_RICHPRESENCE_MULTIPLAYEROFFLINE 2298 +#define IDS_RICHPRESENCE_MULTIPLAYER_1P 2299 +#define IDS_RICHPRESENCE_MULTIPLAYER_1POFFLINE 2300 +#define IDS_RICHPRESENCESTATE_BLANK 2301 +#define IDS_RICHPRESENCESTATE_RIDING_PIG 2302 +#define IDS_RICHPRESENCESTATE_RIDING_MINECART 2303 +#define IDS_RICHPRESENCESTATE_BOATING 2304 +#define IDS_RICHPRESENCESTATE_FISHING 2305 +#define IDS_RICHPRESENCESTATE_CRAFTING 2306 +#define IDS_RICHPRESENCESTATE_FORGING 2307 +#define IDS_RICHPRESENCESTATE_NETHER 2308 +#define IDS_RICHPRESENCESTATE_CD 2309 +#define IDS_RICHPRESENCESTATE_MAP 2310 +#define IDS_RICHPRESENCESTATE_ENCHANTING 2311 +#define IDS_RICHPRESENCESTATE_BREWING 2312 +#define IDS_RICHPRESENCESTATE_ANVIL 2313 +#define IDS_RICHPRESENCESTATE_TRADING 2314 diff --git a/Minecraft.World/DaylightDetectorTile.cpp b/Minecraft.World/DaylightDetectorTile.cpp index 0bfc949b..2da1ec7c 100644 --- a/Minecraft.World/DaylightDetectorTile.cpp +++ b/Minecraft.World/DaylightDetectorTile.cpp @@ -8,8 +8,9 @@ #include "JavaMath.h" #include "DaylightDetectorTile.h" -DaylightDetectorTile::DaylightDetectorTile(int id) : BaseEntityTile(id, Material::wood, isSolidRender() ) +DaylightDetectorTile::DaylightDetectorTile(int id, bool inverted) : BaseEntityTile(id, Material::wood, isSolidRender() ) { + this->inverted = inverted; updateDefaultShape(); } @@ -72,12 +73,27 @@ void DaylightDetectorTile::updateSignalStrength(Level *level, int x, int y, int target = Redstone::SIGNAL_MAX; } + if (inverted) + target = Redstone::SIGNAL_MAX - target; + if (current != target) { level->setData(x, y, z, target, UPDATE_ALL); } } +bool DaylightDetectorTile::use(Level* level, int x, int y, int z, shared_ptr player, int clickedFace, float clickX, float clickY, float clickZ, bool soundOnly/*=false*/) +{ + if (inverted) + { + level->setTileAndData(x, y, z, Tile::daylightDetector_Id, 0, UPDATE_CLIENTS); + } else { + level->setTileAndData(x, y, z, Tile::invertedDaylightDetector_Id, 0, UPDATE_CLIENTS); + } + + return true; +} + bool DaylightDetectorTile::isCubeShaped() { return false; @@ -109,6 +125,11 @@ Icon *DaylightDetectorTile::getTexture(int face, int data) void DaylightDetectorTile::registerIcons(IconRegister *iconRegister) { - icons[0] = iconRegister->registerIcon(getIconName() + L"_top"); + if (inverted) { + icons[0] = iconRegister->registerIcon(L"inverted_" + getIconName()); + } + else { + icons[0] = iconRegister->registerIcon(getIconName() + L"_top"); + } icons[1] = iconRegister->registerIcon(getIconName() + L"_side"); } \ No newline at end of file diff --git a/Minecraft.World/DaylightDetectorTile.h b/Minecraft.World/DaylightDetectorTile.h index 635504d2..13b20c6d 100644 --- a/Minecraft.World/DaylightDetectorTile.h +++ b/Minecraft.World/DaylightDetectorTile.h @@ -7,9 +7,10 @@ class DaylightDetectorTile : public BaseEntityTile friend class ChunkRebuildData; private: Icon *icons[2]; + bool inverted; public: - DaylightDetectorTile(int id); + DaylightDetectorTile(int id, bool inverted); virtual void updateDefaultShape(); // 4J Added override virtual void updateShape(LevelSource *level, int x, int y, int z, int forceData = -1, shared_ptr forceEntity = shared_ptr()); @@ -24,4 +25,5 @@ public: virtual shared_ptr newTileEntity(Level *level); virtual Icon *getTexture(int face, int data); virtual void registerIcons(IconRegister *iconRegister); + bool use(Level* level, int x, int y, int z, shared_ptr player, int clickedFace, float clickX, float clickY, float clickZ, bool soundOnly = false); // 4J added soundOnly param }; \ No newline at end of file diff --git a/Minecraft.World/DoorItem.cpp b/Minecraft.World/DoorItem.cpp index 97de0f65..24f9ca59 100644 --- a/Minecraft.World/DoorItem.cpp +++ b/Minecraft.World/DoorItem.cpp @@ -12,9 +12,10 @@ using namespace std; #include "GenericStats.h" #include "DoorItem.h" -DoorItem::DoorItem(int id, Material *material) : Item(id) +DoorItem::DoorItem(int id, Material *material, const wstring& doorType) : Item(id) { this->material = material; + this->doorType = doorType; maxStackSize = 1; } @@ -25,8 +26,13 @@ bool DoorItem::useOn(shared_ptr instance, shared_ptr playe Tile *tile; - if (material == Material::wood) tile = Tile::door_wood; - else tile = Tile::door_iron; + if (doorType == L"doorWood") tile = Tile::door_wood; + else if (doorType == L"doorIron") tile = Tile::door_iron; + else if (doorType == L"doorSpruce") tile = Tile::door_spruce; + else if (doorType == L"doorBirch") tile = Tile::door_birch; + else if (doorType == L"doorJungle") tile = Tile::door_jungle; + else if (doorType == L"doorAcacia") tile = Tile::door_acacia; + else if (doorType == L"doorDark") tile = Tile::door_dark; if (!player->mayUseItemAt(x, y, z, face, instance) || !player->mayUseItemAt(x, y + 1, z, face, instance)) return false; if (!tile->mayPlace(level, x, y, z)) return false; diff --git a/Minecraft.World/DoorItem.h b/Minecraft.World/DoorItem.h index 843c768b..836cfe91 100644 --- a/Minecraft.World/DoorItem.h +++ b/Minecraft.World/DoorItem.h @@ -11,10 +11,12 @@ class DoorItem : public Item { private: Material *material; + wstring doorType; public: - DoorItem(int id, Material *material); + DoorItem(int id, Material *material, const wstring& doorType); virtual bool useOn(shared_ptr instance, shared_ptr player, Level *level, int x, int y, int z, int face, float clickX, float clickY, float clickZ, bool bTestUseOnOnly=false); static void place(Level *level, int x, int y, int z, int dir, Tile *tile); }; + \ No newline at end of file diff --git a/Minecraft.World/DoorTile.cpp b/Minecraft.World/DoorTile.cpp index 8b70e6d9..51f6c118 100644 --- a/Minecraft.World/DoorTile.cpp +++ b/Minecraft.World/DoorTile.cpp @@ -8,18 +8,15 @@ #include "net.minecraft.world.h" #include "net.minecraft.h" -const wstring DoorTile::TEXTURES[] = { L"doorWood_lower", L"doorWood_upper", L"doorIron_lower", L"doorIron_upper" }; +static std::map doorItemMap = { + { L"doorWood", Item::door_wood }, + { L"doorIron", Item::door_iron }, + { L"doorSpruce", Item::door_spruce } +}; -DoorTile::DoorTile(int id, Material *material) : Tile(id, material,isSolidRender()) +DoorTile::DoorTile(int id, Material *material, const wstring& doorType) : Tile(id, material,isSolidRender()) { - if (material == Material::metal) - { - texBase = 2; - } - else - { - texBase = 0; - } + this->doorType = doorType; float r = 0.5f; float h = 1.0f; @@ -288,8 +285,7 @@ void DoorTile::neighborChanged(Level *level, int x, int y, int z, int type) int DoorTile::getResource(int data, Random *random, int playerBonusLevel) { if ((data & 8) != 0) return 0; - if (material == Material::metal) return Item::door_iron->id; - return Item::door_wood->id; + return doorItemMap[doorType]->id; } HitResult *DoorTile::clip(Level *level, int xt, int yt, int zt, Vec3 *a, Vec3 *b) diff --git a/Minecraft.World/DoorTile.h b/Minecraft.World/DoorTile.h index a4e4f62f..a2876d1c 100644 --- a/Minecraft.World/DoorTile.h +++ b/Minecraft.World/DoorTile.h @@ -22,16 +22,16 @@ public: static const int C_LOWER_DATA_MASK = 7; static const int C_IS_UPPER_MASK = 8; static const int C_RIGHT_HINGE_MASK = 16; + wstring doorType; private: static const int DOOR_TILE_TEXTURE_COUNT = 4; - static const wstring TEXTURES[]; int texBase; Icon *iconTop[2]; Icon *iconBottom[2]; protected: - DoorTile(int id, Material *material); + DoorTile(int id, Material *material, const wstring& doorType); public: virtual Icon *getTexture(int face, int data); virtual Icon *getTexture(LevelSource *level, int x, int y, int z, int face); diff --git a/Minecraft.World/FenceGateTile.cpp b/Minecraft.World/FenceGateTile.cpp index bd1326a9..9caebb8d 100644 --- a/Minecraft.World/FenceGateTile.cpp +++ b/Minecraft.World/FenceGateTile.cpp @@ -2,6 +2,7 @@ #include "FenceGateTile.h" #include "AABB.h" #include "net.minecraft.world.level.h" +#include "net.minecraft.world.h" #include "net.minecraft.h" #include "LevelEvent.h" @@ -11,7 +12,7 @@ FenceGateTile::FenceGateTile(int id) : DirectionalTile(id, Material::wood, isSol Icon *FenceGateTile::getTexture(int face, int data) { - return Tile::wood->getTexture(face); + return icon; } bool FenceGateTile::mayPlace(Level *level, int x, int y, int z) @@ -139,7 +140,7 @@ bool FenceGateTile::isOpen(int data) void FenceGateTile::registerIcons(IconRegister *iconRegister) { - // None + icon = iconRegister->registerIcon(getIconName()); } bool FenceGateTile::shouldRenderFace(LevelSource *level, int x, int y, int z, int face) diff --git a/Minecraft.World/FenceGateTile.h b/Minecraft.World/FenceGateTile.h index 125a776d..585908d3 100644 --- a/Minecraft.World/FenceGateTile.h +++ b/Minecraft.World/FenceGateTile.h @@ -5,7 +5,7 @@ class FenceGateTile : public DirectionalTile { private: static const int OPEN_BIT = 4; - + Icon* icon; public: FenceGateTile(int id); Icon *getTexture(int face, int data); @@ -22,5 +22,5 @@ public: virtual bool use(Level *level, int x, int y, int z, shared_ptr player, int clickedFace, float clickX, float clickY, float clickZ, bool soundOnly = false); // 4J added soundOnly param virtual void neighborChanged(Level *level, int x, int y, int z, int type); static bool isOpen(int data); - void registerIcons(IconRegister *iconRegister); + virtual void registerIcons(IconRegister* iconRegister); }; diff --git a/Minecraft.World/FenceTile.cpp b/Minecraft.World/FenceTile.cpp index 83c31167..1ccddb20 100644 --- a/Minecraft.World/FenceTile.cpp +++ b/Minecraft.World/FenceTile.cpp @@ -9,6 +9,11 @@ FenceTile::FenceTile(int id, const wstring &texture, Material *material) : Tile( this->texture = texture; } +static const int fences[] = { + Tile::fence_Id, Tile::netherFence_Id, Tile::spruceFence_Id, + Tile::birchFence_Id, Tile::jungleFence_Id, Tile::acaciaFence_Id, Tile::darkFence_Id +}; + void FenceTile::addAABBs(Level *level, int x, int y, int z, AABB *box, AABBList *boxes, shared_ptr source) { bool n = connectsTo(level, x, y, z - 1); @@ -117,7 +122,7 @@ int FenceTile::getRenderShape() bool FenceTile::connectsTo(LevelSource *level, int x, int y, int z) { int tile = level->getTile(x, y, z); - if (tile == id || tile == Tile::fenceGate_Id) + if (isFence(tile) || tile == Tile::fenceGate_Id) { return true; } @@ -134,7 +139,8 @@ bool FenceTile::connectsTo(LevelSource *level, int x, int y, int z) bool FenceTile::isFence(int tile) { - return tile == Tile::fence_Id || tile == Tile::netherFence_Id; + return std::any_of(std::begin(fences), std::end(fences), + [&](int id) { return tile == id; }); } void FenceTile::registerIcons(IconRegister *iconRegister) diff --git a/Minecraft.World/FireTile.cpp b/Minecraft.World/FireTile.cpp index 49f859b5..3567a64e 100644 --- a/Minecraft.World/FireTile.cpp +++ b/Minecraft.World/FireTile.cpp @@ -45,6 +45,8 @@ void FireTile::init() setFlammable(Tile::stairs_birchwood_Id, FLAME_HARD, BURN_MEDIUM); setFlammable(Tile::stairs_sprucewood_Id, FLAME_HARD, BURN_MEDIUM); setFlammable(Tile::stairs_junglewood_Id, FLAME_HARD, BURN_MEDIUM); + setFlammable(Tile::stairs_acaciawood_Id, FLAME_HARD, BURN_MEDIUM); + setFlammable(Tile::stairs_darkwood_Id, FLAME_HARD, BURN_MEDIUM); setFlammable(Tile::treeTrunk_Id, FLAME_HARD, BURN_HARD); setFlammable(Tile::leaves_Id, FLAME_EASY, BURN_EASY); setFlammable(Tile::bookshelf_Id, FLAME_EASY, BURN_MEDIUM); diff --git a/Minecraft.World/Item.cpp b/Minecraft.World/Item.cpp index ffb31070..19baf20d 100644 --- a/Minecraft.World/Item.cpp +++ b/Minecraft.World/Item.cpp @@ -251,6 +251,12 @@ Item *Item::horseArmorDiamond = nullptr; Item *Item::lead = nullptr; Item *Item::nameTag = nullptr; +Item* Item::door_spruce = nullptr; +Item* Item::door_birch = nullptr; +Item* Item::door_jungle = nullptr; +Item* Item::door_acacia = nullptr; +Item* Item::door_dark = nullptr; + void Item::staticCtor() { @@ -284,8 +290,8 @@ void Item::staticCtor() Item::hoe_diamond = ( new HoeItem(37, _Tier::DIAMOND) ) ->setBaseItemTypeAndMaterial(eBaseItemType_hoe, eMaterial_diamond) ->setIconName(L"hoeDiamond")->setDescriptionId(IDS_ITEM_HOE_DIAMOND)->setUseDescriptionId(IDS_DESC_HOE); Item::hoe_gold = ( new HoeItem(38, _Tier::GOLD) ) ->setBaseItemTypeAndMaterial(eBaseItemType_hoe, eMaterial_gold) ->setIconName(L"hoeGold")->setDescriptionId(IDS_ITEM_HOE_GOLD)->setUseDescriptionId(IDS_DESC_HOE); - Item::door_wood = ( new DoorItem(68, Material::wood) ) ->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood)->setIconName(L"doorWood")->setDescriptionId(IDS_ITEM_DOOR_WOOD)->setUseDescriptionId(IDS_DESC_DOOR_WOOD); - Item::door_iron = ( new DoorItem(74, Material::metal) ) ->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_iron)->setIconName(L"doorIron")->setDescriptionId(IDS_ITEM_DOOR_IRON)->setUseDescriptionId(IDS_DESC_DOOR_IRON); + Item::door_wood = ( new DoorItem(68, Material::wood, L"doorWood"))->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood)->setIconName(L"doorWood")->setDescriptionId(IDS_ITEM_DOOR_WOOD)->setUseDescriptionId(IDS_DESC_DOOR_WOOD); + Item::door_iron = ( new DoorItem(74, Material::metal, L"doorIron"))->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_iron)->setIconName(L"doorIron")->setDescriptionId(IDS_ITEM_DOOR_IRON)->setUseDescriptionId(IDS_DESC_DOOR_IRON); Item::helmet_leather = static_cast((new ArmorItem(42, ArmorItem::ArmorMaterial::CLOTH, 0, ArmorItem::SLOT_HEAD))->setBaseItemTypeAndMaterial(eBaseItemType_helmet, eMaterial_cloth)->setIconName(L"helmetCloth")->setDescriptionId(IDS_ITEM_HELMET_CLOTH)->setUseDescriptionId(IDS_DESC_HELMET_LEATHER)); Item::helmet_iron = static_cast((new ArmorItem(50, ArmorItem::ArmorMaterial::IRON, 2, ArmorItem::SLOT_HEAD))->setBaseItemTypeAndMaterial(eBaseItemType_helmet, eMaterial_iron)->setIconName(L"helmetIron")->setDescriptionId(IDS_ITEM_HELMET_IRON)->setUseDescriptionId(IDS_DESC_HELMET_IRON)); @@ -493,7 +499,13 @@ void Item::staticCtor() Item::horseArmorGold = (new Item(162)) ->setIconName(L"gold_horse_armor")->setMaxStackSize(1)->setDescriptionId(IDS_ITEM_GOLD_HORSE_ARMOR)->setUseDescriptionId(IDS_DESC_GOLD_HORSE_ARMOR); Item::horseArmorDiamond = (new Item(163)) ->setIconName(L"diamond_horse_armor")->setMaxStackSize(1)->setDescriptionId(IDS_ITEM_DIAMOND_HORSE_ARMOR)->setUseDescriptionId(IDS_DESC_DIAMOND_HORSE_ARMOR); Item::lead = (new LeashItem(164)) ->setBaseItemTypeAndMaterial(eBaseItemType_pockettool, eMaterial_undefined)->setIconName(L"lead")->setDescriptionId(IDS_ITEM_LEAD)->setUseDescriptionId(IDS_DESC_LEAD); - Item::nameTag = (new NameTagItem(165)) ->setIconName(L"name_tag")->setDescriptionId(IDS_ITEM_NAME_TAG)->setUseDescriptionId(IDS_DESC_NAME_TAG);} + Item::nameTag = (new NameTagItem(165)) ->setIconName(L"name_tag")->setDescriptionId(IDS_ITEM_NAME_TAG)->setUseDescriptionId(IDS_DESC_NAME_TAG); + Item::door_spruce = (new DoorItem(166, Material::wood, L"doorSpruce"))->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood)->setIconName(L"doorSpruce")->setDescriptionId(IDS_ITEM_DOOR_SPRUCE)->setUseDescriptionId(IDS_DESC_DOOR_WOOD); + Item::door_birch = (new DoorItem(167, Material::wood, L"doorBirch"))->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood)->setIconName(L"doorBirch")->setDescriptionId(IDS_ITEM_DOOR_BIRCH)->setUseDescriptionId(IDS_DESC_DOOR_WOOD); + Item::door_jungle = (new DoorItem(168, Material::wood, L"doorJungle"))->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood)->setIconName(L"doorJungle")->setDescriptionId(IDS_ITEM_DOOR_JUNGLE)->setUseDescriptionId(IDS_DESC_DOOR_WOOD); + Item::door_acacia = (new DoorItem(169, Material::wood, L"doorAcacia"))->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood)->setIconName(L"doorAcacia")->setDescriptionId(IDS_ITEM_DOOR_ACACIA)->setUseDescriptionId(IDS_DESC_DOOR_WOOD); + Item::door_dark = (new DoorItem(170, Material::wood, L"doorDark"))->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood)->setIconName(L"doorDark")->setDescriptionId(IDS_ITEM_DOOR_DARK)->setUseDescriptionId(IDS_DESC_DOOR_WOOD); +} // 4J Stu - We need to do this after the staticCtor AND after staticCtors for other class diff --git a/Minecraft.World/Item.h b/Minecraft.World/Item.h index 22d0a9d1..3a5b5be3 100644 --- a/Minecraft.World/Item.h +++ b/Minecraft.World/Item.h @@ -90,6 +90,8 @@ public: eMaterial_book, eMaterial_bookshelf, eMaterial_wheat, + eMaterial_acaciawood, + eMaterial_darkwood } eMaterial; @@ -376,8 +378,8 @@ public: static Item *frame; // TU14 - //static Item writingBook; - //static Item writtenBook; + //static Item *writingBook; + //static Item *writtenBook; static Item *emerald; @@ -412,6 +414,13 @@ public: static Item *lead; static Item *nameTag; + // TU25 + static Item* door_spruce; + static Item* door_birch; + static Item* door_jungle; + static Item* door_acacia; + static Item* door_dark; + static const int shovel_iron_Id = 256; static const int pickAxe_iron_Id = 257; @@ -581,8 +590,8 @@ public: static const int itemFrame_Id = 389; // TU14 - //static const int writingBook_Id = 130; - //static const int writtenBook_Id = 131; + //static const int writingBook_Id = 386; + //static const int writtenBook_Id = 387; static const int emerald_Id = 388; @@ -618,6 +627,13 @@ public: static const int lead_Id = 420; static const int nameTag_Id = 421; + // TU25 + static const int door_spruce_Id = 422; + static const int door_birch_Id = 423; + static const int door_jungle_Id = 424; + static const int door_acacia_Id = 425; + static const int door_dark_Id = 426; + public: const int id; diff --git a/Minecraft.World/RotatedPillarTile.h b/Minecraft.World/RotatedPillarTile.h index 76e52997..aff49821 100644 --- a/Minecraft.World/RotatedPillarTile.h +++ b/Minecraft.World/RotatedPillarTile.h @@ -5,11 +5,11 @@ class RotatedPillarTile : public Tile { public: - static const int MASK_TYPE = 0x3; - static const int MASK_FACING = 0xC; - static const int FACING_Y = 0 << 2; - static const int FACING_X = 1 << 2; - static const int FACING_Z = 2 << 2; + static const int MASK_TYPE = 0x7; + static const int MASK_FACING = 0x18; + static const int FACING_Y = 0 << 3; + static const int FACING_X = 1 << 3; + static const int FACING_Z = 2 << 3; protected: Icon *iconTop; diff --git a/Minecraft.World/Tile.cpp b/Minecraft.World/Tile.cpp index de113714..f15a41cb 100644 --- a/Minecraft.World/Tile.cpp +++ b/Minecraft.World/Tile.cpp @@ -173,7 +173,7 @@ Tile *Tile::redstoneLight_lit = nullptr; // TU9 Tile *Tile::stairs_sandstone = nullptr; -Tile *Tile::woodStairsDark = nullptr; +Tile *Tile::woodStairsSpruce = nullptr; Tile *Tile::woodStairsBirch = nullptr; Tile *Tile::woodStairsJungle = nullptr; Tile *Tile::commandBlock = nullptr; @@ -220,6 +220,31 @@ Tile *Tile::woolCarpet = nullptr; Tile *Tile::clayHardened = nullptr; Tile *Tile::coalBlock = nullptr; +// TU25 +Tile* Tile::woodStairsAcacia = nullptr; +Tile* Tile::woodStairsDark = nullptr; +Tile* Tile::iron_trapdoor = nullptr; + +Tile* Tile::door_spruce = nullptr; +Tile* Tile::door_birch = nullptr; +Tile* Tile::door_jungle = nullptr; +Tile* Tile::door_acacia = nullptr; +Tile* Tile::door_dark = nullptr; + +Tile* Tile::spruceFence = nullptr; +Tile* Tile::birchFence = nullptr; +Tile* Tile::jungleFence = nullptr; +Tile* Tile::acaciaFence = nullptr; +Tile* Tile::darkFence = nullptr; + +Tile* Tile::spruceGate = nullptr; +Tile* Tile::birchGate = nullptr; +Tile* Tile::jungleGate = nullptr; +Tile* Tile::acaciaGate = nullptr; +Tile* Tile::darkGate = nullptr; + +Tile* Tile::invertedDaylightDetector = nullptr; + DWORD Tile::tlsIdxShape = TlsAlloc(); Tile::ThreadStorage::ThreadStorage() @@ -328,7 +353,7 @@ void Tile::staticCtor() Tile::furnace = (new FurnaceTile(61, false)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_device, Item::eMaterial_stone)->setDestroyTime(3.5f)->setSoundType(Tile::SOUND_STONE)->setIconName(L"furnace")->setDescriptionId(IDS_TILE_FURNACE)->sendTileData()->setUseDescriptionId(IDS_DESC_FURNACE); Tile::furnace_lit = (new FurnaceTile(62, true)) ->setDestroyTime(3.5f)->setSoundType(Tile::SOUND_STONE)->setLightEmission(14 / 16.0f)->setIconName(L"furnace")->setDescriptionId(IDS_TILE_FURNACE)->sendTileData()->setUseDescriptionId(IDS_DESC_FURNACE); Tile::sign = (new SignTile(63, eTYPE_SIGNTILEENTITY, true)) ->setDestroyTime(1.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"sign")->setDescriptionId(IDS_TILE_SIGN)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_SIGN); - Tile::door_wood = (new DoorTile(64, Material::wood)) ->setDestroyTime(3.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"door_wood")->setDescriptionId(IDS_TILE_DOOR_WOOD)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_WOOD); + Tile::door_wood = (new DoorTile(64, Material::wood, L"doorWood"))->setDestroyTime(3.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"door_wood")->setDescriptionId(IDS_TILE_DOOR_WOOD)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_WOOD); Tile::ladder = (new LadderTile(65)) ->setDestroyTime(0.4f)->setSoundType(Tile::SOUND_LADDER)->setIconName(L"ladder")->setDescriptionId(IDS_TILE_LADDER)->sendTileData()->setUseDescriptionId(IDS_DESC_LADDER)->disableMipmap(); Tile::rail = (new RailTile(66)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_rail, Item::eMaterial_iron)->setDestroyTime(0.7f)->setSoundType(Tile::SOUND_METAL)->setIconName(L"rail_normal")->setDescriptionId(IDS_TILE_RAIL)->sendTileData()->setUseDescriptionId(IDS_DESC_RAIL)->disableMipmap(); Tile::stairs_stone =(new StairTile(67, Tile::cobblestone,0)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_stairs, Item::eMaterial_stone) ->setIconName(L"stairsStone")->setDescriptionId(IDS_TILE_STAIRS_STONE) ->sendTileData()->setUseDescriptionId(IDS_DESC_STAIRS); @@ -336,7 +361,7 @@ void Tile::staticCtor() Tile::lever = (new LeverTile(69)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_lever, Item::eMaterial_wood)->setDestroyTime(0.5f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"lever")->setDescriptionId(IDS_TILE_LEVER)->sendTileData()->setUseDescriptionId(IDS_DESC_LEVER); Tile::pressurePlate_stone = (Tile *)(new PressurePlateTile(70, L"stone", Material::stone, PressurePlateTile::mobs)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_pressureplate, Item::eMaterial_stone)->setDestroyTime(0.5f)->setSoundType(Tile::SOUND_STONE)->setDescriptionId(IDS_TILE_PRESSURE_PLATE)->sendTileData()->setUseDescriptionId(IDS_DESC_PRESSUREPLATE); - Tile::door_iron = (new DoorTile(71, Material::metal)) ->setDestroyTime(5.0f)->setSoundType(Tile::SOUND_METAL)->setIconName(L"door_iron")->setDescriptionId(IDS_TILE_DOOR_IRON)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_IRON); + Tile::door_iron = (new DoorTile(71, Material::metal, L"doorIron"))->setDestroyTime(5.0f)->setSoundType(Tile::SOUND_METAL)->setIconName(L"door_iron")->setDescriptionId(IDS_TILE_DOOR_IRON)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_IRON); Tile::pressurePlate_wood = (new PressurePlateTile(72, L"planks_oak", Material::wood, PressurePlateTile::everything)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_pressureplate, Item::eMaterial_wood)->setDestroyTime(0.5f)->setSoundType(Tile::SOUND_WOOD)->setDescriptionId(IDS_TILE_PRESSURE_PLATE)->sendTileData()->setUseDescriptionId(IDS_DESC_PRESSUREPLATE); Tile::redStoneOre = (new RedStoneOreTile(73,false)) ->setDestroyTime(3.0f)->setExplodeable(5)->setSoundType(Tile::SOUND_STONE)->setIconName(L"redstone_ore")->setDescriptionId(IDS_TILE_ORE_REDSTONE)->sendTileData()->setUseDescriptionId(IDS_DESC_ORE_REDSTONE); Tile::redStoneOre_lit = (new RedStoneOreTile(74, true)) ->setLightEmission(10 / 16.0f)->setDestroyTime(3.0f)->setExplodeable(5)->setSoundType(Tile::SOUND_STONE)->setIconName(L"redstone_ore")->setDescriptionId(IDS_TILE_ORE_REDSTONE)->sendTileData()->setUseDescriptionId(IDS_DESC_ORE_REDSTONE); @@ -376,7 +401,7 @@ void Tile::staticCtor() Tile::pumpkinStem = (new StemTile(104, Tile::pumpkin)) ->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setIconName(L"pumpkin_stem")->setDescriptionId(IDS_TILE_PUMPKIN_STEM)->sendTileData(); Tile::melonStem = (new StemTile(105, Tile::melon)) ->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setIconName(L"melon_stem")->setDescriptionId(IDS_TILE_MELON_STEM)->sendTileData(); Tile::vine = (new VineTile(106))->setDestroyTime(0.2f) ->setSoundType(SOUND_GRASS)->setIconName(L"vine")->setDescriptionId(IDS_TILE_VINE)->setUseDescriptionId(IDS_DESC_VINE)->sendTileData(); - Tile::fenceGate = (new FenceGateTile(107)) ->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setIconName(L"fenceGate")->setDescriptionId(IDS_TILE_FENCE_GATE)->sendTileData()->setUseDescriptionId(IDS_DESC_FENCE_GATE); + Tile::fenceGate = (new FenceGateTile(107))->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setIconName(L"planks_oak")->setDescriptionId(IDS_TILE_FENCE_GATE)->sendTileData()->setUseDescriptionId(IDS_DESC_FENCE_GATE); Tile::stairs_bricks = (new StairTile(108, Tile::redBrick,0)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_stairs, Item::eMaterial_brick) ->setIconName(L"stairsBrick")->setDescriptionId(IDS_TILE_STAIRS_BRICKS) ->sendTileData()->setUseDescriptionId(IDS_DESC_STAIRS); Tile::stairs_stoneBrickSmooth = (new StairTile(109, Tile::stoneBrick,0)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_stairs, Item::eMaterial_stoneSmooth)->setIconName(L"stairsStoneBrickSmooth")->setDescriptionId(IDS_TILE_STAIRS_STONE_BRICKS_SMOOTH) ->sendTileData()->setUseDescriptionId(IDS_DESC_STAIRS); Tile::mycel = static_cast((new MycelTile(110))->setDestroyTime(0.6f)->setSoundType(SOUND_GRASS)->setIconName(L"mycelium")->setDescriptionId(IDS_TILE_MYCEL)->setUseDescriptionId(IDS_DESC_MYCEL)); @@ -407,7 +432,7 @@ void Tile::staticCtor() Tile::tripWireSource = static_cast((new TripWireSourceTile(131))->setBaseItemTypeAndMaterial(Item::eBaseItemType_lever, Item::eMaterial_undefined)->setIconName(L"trip_wire_source")->sendTileData()->setDescriptionId(IDS_TILE_TRIPWIRE_SOURCE)->setUseDescriptionId(IDS_DESC_TRIPWIRE_SOURCE)); Tile::tripWire = (new TripWireTile(132)) ->setIconName(L"trip_wire")->sendTileData()->setDescriptionId(IDS_TILE_TRIPWIRE)->setUseDescriptionId(IDS_DESC_TRIPWIRE); Tile::emeraldBlock = (new MetalTile(133)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_block, Item::eMaterial_emerald)->setDestroyTime(5.0f)->setExplodeable(10)->setSoundType(SOUND_METAL)->setIconName(L"emerald_block")->setDescriptionId(IDS_TILE_EMERALDBLOCK)->setUseDescriptionId(IDS_DESC_EMERALDBLOCK); - Tile::woodStairsDark = (new StairTile(134, Tile::wood, TreeTile::DARK_TRUNK)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_stairs, Item::eMaterial_sprucewood)->setIconName(L"stairsWoodSpruce")->setDescriptionId(IDS_TILE_STAIRS_SPRUCEWOOD) ->sendTileData()->setUseDescriptionId(IDS_DESC_STAIRS); + Tile::woodStairsSpruce = (new StairTile(134, Tile::wood, TreeTile::SPRUCE_TRUNK))->setBaseItemTypeAndMaterial(Item::eBaseItemType_stairs, Item::eMaterial_sprucewood)->setIconName(L"stairsWoodSpruce")->setDescriptionId(IDS_TILE_STAIRS_SPRUCEWOOD)->sendTileData()->setUseDescriptionId(IDS_DESC_STAIRS); Tile::woodStairsBirch = (new StairTile(135, Tile::wood, TreeTile::BIRCH_TRUNK)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_stairs, Item::eMaterial_birchwood)->setIconName(L"stairsWoodBirch")->setDescriptionId(IDS_TILE_STAIRS_BIRCHWOOD) ->sendTileData()->setUseDescriptionId(IDS_DESC_STAIRS); Tile::woodStairsJungle =(new StairTile(136, Tile::wood, TreeTile::JUNGLE_TRUNK))->setBaseItemTypeAndMaterial(Item::eBaseItemType_stairs, Item::eMaterial_junglewood)->setIconName(L"stairsWoodJungle")->setDescriptionId(IDS_TILE_STAIRS_JUNGLEWOOD) ->sendTileData()->setUseDescriptionId(IDS_DESC_STAIRS); Tile::commandBlock = (new CommandBlock(137)) ->setIndestructible()->setExplodeable(6000000)->setIconName(L"command_block")->setDescriptionId(IDS_TILE_COMMAND_BLOCK)->setUseDescriptionId(IDS_DESC_COMMAND_BLOCK); @@ -426,7 +451,7 @@ void Tile::staticCtor() Tile::comparator_off = static_cast((new ComparatorTile(149, false))->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setIconName(L"comparator_off")->setDescriptionId(IDS_TILE_COMPARATOR)->setUseDescriptionId(IDS_DESC_COMPARATOR)); Tile::comparator_on = static_cast((new ComparatorTile(150, true))->setDestroyTime(0.0f)->setLightEmission(10 / 16.0f)->setSoundType(SOUND_WOOD)->setIconName(L"comparator_on")->setDescriptionId(IDS_TILE_COMPARATOR)->setUseDescriptionId(IDS_DESC_COMPARATOR)); - Tile::daylightDetector = static_cast((new DaylightDetectorTile(151))->setDestroyTime(0.2f)->setSoundType(SOUND_WOOD)->setIconName(L"daylight_detector")->setDescriptionId(IDS_TILE_DAYLIGHT_DETECTOR)->setUseDescriptionId(IDS_DESC_DAYLIGHT_DETECTOR)); + Tile::daylightDetector = static_cast((new DaylightDetectorTile(151, false))->setDestroyTime(0.2f)->setSoundType(SOUND_WOOD)->setIconName(L"daylight_detector")->setDescriptionId(IDS_TILE_DAYLIGHT_DETECTOR)->setUseDescriptionId(IDS_DESC_DAYLIGHT_DETECTOR)); Tile::redstoneBlock = (new PoweredMetalTile(152)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_block, Item::eMaterial_redstone)->setDestroyTime(5.0f)->setExplodeable(10)->setSoundType(SOUND_METAL)->setIconName(L"redstone_block")->setDescriptionId(IDS_TILE_REDSTONE_BLOCK)->setUseDescriptionId(IDS_DESC_REDSTONE_BLOCK); Tile::netherQuartz = (new OreTile(153)) ->setDestroyTime(3.0f)->setExplodeable(5)->setSoundType(SOUND_STONE)->setIconName(L"quartz_ore")->setDescriptionId(IDS_TILE_NETHER_QUARTZ)->setUseDescriptionId(IDS_DESC_NETHER_QUARTZ_ORE); Tile::hopper = static_cast((new HopperTile(154))->setBaseItemTypeAndMaterial(Item::eBaseItemType_redstoneContainer, Item::eMaterial_undefined)->setDestroyTime(3.0f)->setExplodeable(8)->setSoundType(SOUND_WOOD)->setIconName(L"hopper")->setDescriptionId(IDS_TILE_HOPPER)->setUseDescriptionId(IDS_DESC_HOPPER)); @@ -442,6 +467,29 @@ void Tile::staticCtor() Tile::clayHardened = (new Tile(172, Material::stone)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_clay, Item::eMaterial_clay)->setDestroyTime(1.25f)->setExplodeable(7)->setSoundType(SOUND_STONE)->setIconName(L"hardened_clay")->setDescriptionId(IDS_TILE_HARDENED_CLAY)->setUseDescriptionId(IDS_DESC_HARDENED_CLAY); Tile::coalBlock = (new Tile(173, Material::stone)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_block, Item::eMaterial_coal)->setDestroyTime(5.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setIconName(L"coal_block")->setDescriptionId(IDS_TILE_COAL)->setUseDescriptionId(IDS_DESC_COAL_BLOCK); + Tile::woodStairsAcacia = (new StairTile(174, Tile::wood, TreeTile::ACACIA_TRUNK))->setBaseItemTypeAndMaterial(Item::eBaseItemType_stairs, Item::eMaterial_acaciawood)->setIconName(L"stairsWoodAcacia")->setDescriptionId(IDS_TILE_STAIRS_ACACIAWOOD)->sendTileData()->setUseDescriptionId(IDS_DESC_STAIRS); + Tile::woodStairsDark = (new StairTile(175, Tile::wood, TreeTile::DARK_TRUNK))->setBaseItemTypeAndMaterial(Item::eBaseItemType_stairs, Item::eMaterial_darkwood)->setIconName(L"stairsWoodDark")->setDescriptionId(IDS_TILE_STAIRS_DARKWOOD)->sendTileData()->setUseDescriptionId(IDS_DESC_STAIRS); + Tile::iron_trapdoor = (new TrapDoorTile(176, Material::metal))->setBaseItemTypeAndMaterial(Item::eBaseItemType_door, Item::eMaterial_trap)->setDestroyTime(5.0f)->setSoundType(Tile::SOUND_METAL)->setIconName(L"iron_trapdoor")->setDescriptionId(IDS_TILE_IRON_TRAPDOOR)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_TRAPDOOR); + + Tile::door_spruce = (new DoorTile(177, Material::wood, L"doorSpruce"))->setDestroyTime(3.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"door_spruce")->setDescriptionId(IDS_TILE_DOOR_SPRUCE)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_WOOD); + Tile::door_birch = (new DoorTile(178, Material::wood, L"doorBirch"))->setDestroyTime(3.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"door_birch")->setDescriptionId(IDS_TILE_DOOR_BIRCH)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_WOOD); + Tile::door_jungle = (new DoorTile(179, Material::wood, L"doorJungle"))->setDestroyTime(3.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"door_jungle")->setDescriptionId(IDS_TILE_DOOR_JUNGLE)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_WOOD); + Tile::door_acacia = (new DoorTile(180, Material::wood, L"doorAcacia"))->setDestroyTime(3.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"door_acacia")->setDescriptionId(IDS_TILE_DOOR_ACACIA)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_WOOD); + Tile::door_dark = (new DoorTile(181, Material::wood, L"doorDark"))->setDestroyTime(3.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"door_dark")->setDescriptionId(IDS_TILE_DOOR_DARK)->setNotCollectStatistics()->sendTileData()->setUseDescriptionId(IDS_DESC_DOOR_WOOD); + + Tile::spruceFence = (new FenceTile(182, L"planks_spruce", Material::wood))->setBaseItemTypeAndMaterial(Item::eBaseItemType_fence, Item::eMaterial_wood)->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(Tile::SOUND_WOOD)->setDescriptionId(IDS_TILE_SPRUCE_FENCE)->setUseDescriptionId(IDS_DESC_FENCE); + Tile::birchFence = (new FenceTile(183, L"planks_birch", Material::wood))->setBaseItemTypeAndMaterial(Item::eBaseItemType_fence, Item::eMaterial_wood)->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(Tile::SOUND_WOOD)->setDescriptionId(IDS_TILE_BIRCH_FENCE)->setUseDescriptionId(IDS_DESC_FENCE); + Tile::jungleFence = (new FenceTile(184, L"planks_jungle", Material::wood))->setBaseItemTypeAndMaterial(Item::eBaseItemType_fence, Item::eMaterial_wood)->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(Tile::SOUND_WOOD)->setDescriptionId(IDS_TILE_JUNGLE_FENCE)->setUseDescriptionId(IDS_DESC_FENCE); + Tile::acaciaFence = (new FenceTile(185, L"planks_acacia", Material::wood))->setBaseItemTypeAndMaterial(Item::eBaseItemType_fence, Item::eMaterial_wood)->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(Tile::SOUND_WOOD)->setDescriptionId(IDS_TILE_ACACIA_FENCE)->setUseDescriptionId(IDS_DESC_FENCE); + Tile::darkFence = (new FenceTile(186, L"planks_dark", Material::wood))->setBaseItemTypeAndMaterial(Item::eBaseItemType_fence, Item::eMaterial_wood)->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(Tile::SOUND_WOOD)->setDescriptionId(IDS_TILE_DARK_FENCE)->setUseDescriptionId(IDS_DESC_FENCE); + + Tile::spruceGate = (new FenceGateTile(187))->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setIconName(L"planks_spruce")->setDescriptionId(IDS_TILE_SPRUCE_GATE)->sendTileData()->setUseDescriptionId(IDS_DESC_FENCE_GATE); + Tile::birchGate = (new FenceGateTile(188))->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setIconName(L"planks_birch")->setDescriptionId(IDS_TILE_BIRCH_GATE)->sendTileData()->setUseDescriptionId(IDS_DESC_FENCE_GATE); + Tile::jungleGate = (new FenceGateTile(189))->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setIconName(L"planks_jungle")->setDescriptionId(IDS_TILE_JUNGLE_GATE)->sendTileData()->setUseDescriptionId(IDS_DESC_FENCE_GATE); + Tile::acaciaGate = (new FenceGateTile(190))->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setIconName(L"planks_acacia")->setDescriptionId(IDS_TILE_ACACIA_GATE)->sendTileData()->setUseDescriptionId(IDS_DESC_FENCE_GATE); + Tile::darkGate = (new FenceGateTile(191))->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setIconName(L"planks_dark")->setDescriptionId(IDS_TILE_DARK_GATE)->sendTileData()->setUseDescriptionId(IDS_DESC_FENCE_GATE); + + Tile::invertedDaylightDetector = static_cast((new DaylightDetectorTile(192, true))->setDestroyTime(0.2f)->setSoundType(SOUND_WOOD)->setIconName(L"daylight_detector")->setDescriptionId(IDS_TILE_DAYLIGHT_DETECTOR)->setUseDescriptionId(IDS_DESC_DAYLIGHT_DETECTOR)); // Special cases for certain items since they can have different icons Item::items[wool_Id] = ( new WoolTileItem(Tile::wool_Id- 256) )->setIconName(L"cloth")->setDescriptionId(IDS_TILE_CLOTH)->setUseDescriptionId(IDS_DESC_WOOL); @@ -449,8 +497,8 @@ void Tile::staticCtor() Item::items[stained_glass_Id] = ( new WoolTileItem(Tile::stained_glass_Id - 256))->setIconName(L"stainedGlass")->setDescriptionId(IDS_TILE_STAINED_GLASS)->setUseDescriptionId(IDS_DESC_STAINED_GLASS); Item::items[stained_glass_pane_Id] = ( new WoolTileItem(Tile::stained_glass_pane_Id - 256))->setIconName(L"stainedGlassPane")->setDescriptionId(IDS_TILE_STAINED_GLASS_PANE)->setUseDescriptionId(IDS_DESC_STAINED_GLASS_PANE); Item::items[woolCarpet_Id] = ( new WoolTileItem(Tile::woolCarpet_Id - 256))->setIconName(L"woolCarpet")->setDescriptionId(IDS_TILE_CARPET)->setUseDescriptionId(IDS_DESC_CARPET); - Item::items[treeTrunk_Id] = ( new MultiTextureTileItem(Tile::treeTrunk_Id - 256, treeTrunk, (int *)TreeTile::TREE_NAMES, 4) )->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, 4, IDS_TILE_PLANKS))->setIconName(L"wood")->setDescriptionId(IDS_TILE_OAKWOOD_PLANKS)->setUseDescriptionId(IDS_DESC_LOG); // <- TODO + 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[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); @@ -1702,4 +1750,6 @@ const int Tile::netherQuartz_Id; const int Tile::quartzBlock_Id; const int Tile::stairs_quartz_Id; const int Tile::woolCarpet_Id; +const int Tile::stairs_acaciawood_Id; +const int Tile::stairs_darkwood_Id; #endif diff --git a/Minecraft.World/Tile.h b/Minecraft.World/Tile.h index 307c4106..a7f2685a 100644 --- a/Minecraft.World/Tile.h +++ b/Minecraft.World/Tile.h @@ -365,6 +365,26 @@ public: static const int clayHardened_Id = 172; static const int coalBlock_Id = 173; + // TU25 + static const int stairs_acaciawood_Id = 174; + static const int stairs_darkwood_Id = 175; + + static const int iron_trapdoor_Id = 176; + + // 177 is taken by door_spruce + static const int spruceFence_Id = 182; + static const int birchFence_Id = 183; + static const int jungleFence_Id = 184; + static const int acaciaFence_Id = 185; + static const int darkFence_Id = 186; + + static const int spruceGate_Id = 187; + static const int birchGate_Id = 188; + static const int jungleGate_Id = 189; + static const int acaciaGate_Id = 190; + static const int darkGate_Id = 191; + + static const int invertedDaylightDetector_Id = 192; static Tile *stone; static GrassTile *grass; @@ -494,9 +514,11 @@ public: static Tile *redstoneLight_lit; static Tile *stairs_sandstone; - static Tile *woodStairsDark; + static Tile *woodStairsSpruce; static Tile *woodStairsBirch; static Tile *woodStairsJungle; + static Tile *woodStairsAcacia; + static Tile *woodStairsDark; static Tile *commandBlock; static BeaconTile *beacon; static Tile *button_wood; @@ -541,6 +563,28 @@ public: static Tile *clayHardened; static Tile *coalBlock; + static Tile *iron_trapdoor; + + static Tile* door_spruce; + static Tile* door_birch; + static Tile* door_jungle; + static Tile* door_acacia; + static Tile* door_dark; + + static Tile* spruceFence; + static Tile* birchFence; + static Tile* jungleFence; + static Tile* acaciaFence; + static Tile* darkFence; + + static Tile* spruceGate; + static Tile* birchGate; + static Tile* jungleGate; + static Tile* acaciaGate; + static Tile* darkGate; + + static Tile* invertedDaylightDetector; + static void staticCtor(); int id; diff --git a/Minecraft.World/TreeTile.cpp b/Minecraft.World/TreeTile.cpp index 6a5860f3..29d41823 100644 --- a/Minecraft.World/TreeTile.cpp +++ b/Minecraft.World/TreeTile.cpp @@ -10,12 +10,14 @@ const unsigned int TreeTile::TREE_NAMES[ TreeTile::TREE_NAMES_LENGTH] = { IDS_TILE_LOG_OAK, IDS_TILE_LOG_SPRUCE, IDS_TILE_LOG_BIRCH, - IDS_TILE_LOG_JUNGLE + IDS_TILE_LOG_JUNGLE, + IDS_TILE_LOG_ACACIA, + IDS_TILE_LOG_DARK_OAK }; -const wstring TreeTile::TREE_STRING_NAMES[ TreeTile::TREE_NAMES_LENGTH] = {L"oak", L"spruce", L"birch", L"jungle"}; +const wstring TreeTile::TREE_STRING_NAMES[TreeTile::TREE_NAMES_LENGTH] = { L"oak", L"spruce", L"birch", L"jungle", L"acacia", L"dark" }; -const wstring TreeTile::TREE_TEXTURES[] = {L"tree_side", L"tree_spruce", L"tree_birch", L"tree_jungle"}; +const wstring TreeTile::TREE_TEXTURES[] = { L"tree_side", L"tree_spruce", L"tree_birch", L"tree_jungle", L"tree_acacia", L"tree_dark" }; TreeTile::TreeTile(int id) : RotatedPillarTile(id, Material::wood) { @@ -59,7 +61,7 @@ void TreeTile::onRemove(Level *level, int x, int y, int z, int id, int data) unsigned int TreeTile::getDescriptionId(int iData /*= -1*/) { int type = iData & MASK_TYPE; - if(type < 0 ) type = 0; + if (type < 0 || type >= TreeTile::TREE_NAMES_LENGTH) type = 0; return TreeTile::TREE_NAMES[type]; } diff --git a/Minecraft.World/TreeTile.h b/Minecraft.World/TreeTile.h index 8738c8cf..829abdcf 100644 --- a/Minecraft.World/TreeTile.h +++ b/Minecraft.World/TreeTile.h @@ -10,17 +10,19 @@ class TreeTile : public RotatedPillarTile friend class Tile; friend class ChunkRebuildData; public: - static const int DARK_TRUNK = 1; + static const int SPRUCE_TRUNK = 1; // this needs to be changed to spruce... static const int BIRCH_TRUNK = 2; static const int JUNGLE_TRUNK = 3; + static const int ACACIA_TRUNK = 4; + static const int DARK_TRUNK = 5; - static const int MASK_TYPE = 0x3; - static const int MASK_FACING = 0xC; - static const int FACING_Y = 0 << 2; - static const int FACING_X = 1 << 2; - static const int FACING_Z = 2 << 2; + static const int MASK_TYPE = 0x7; + static const int MASK_FACING = 0x18; + static const int FACING_Y = 0 << 3; + static const int FACING_X = 1 << 3; + static const int FACING_Z = 2 << 3; - static const int TREE_NAMES_LENGTH = 4; + static const int TREE_NAMES_LENGTH = 6; static const unsigned int TREE_NAMES[TREE_NAMES_LENGTH]; diff --git a/Minecraft.World/WoodSlabTile.cpp b/Minecraft.World/WoodSlabTile.cpp index 574dab93..0d41e78d 100644 --- a/Minecraft.World/WoodSlabTile.cpp +++ b/Minecraft.World/WoodSlabTile.cpp @@ -11,6 +11,8 @@ const unsigned int WoodSlabTile::SLAB_NAMES[SLAB_NAMES_LENGTH] = { IDS_TILE_STON IDS_TILE_STONESLAB_SPRUCE, IDS_TILE_STONESLAB_BIRCH, IDS_TILE_STONESLAB_JUNGLE, + IDS_TILE_STONESLAB_ACACIA, + IDS_TILE_STONESLAB_DARK_OAK }; // public static final String[] WOOD_NAMES = { diff --git a/Minecraft.World/WoodSlabTile.h b/Minecraft.World/WoodSlabTile.h index b91f7136..64639715 100644 --- a/Minecraft.World/WoodSlabTile.h +++ b/Minecraft.World/WoodSlabTile.h @@ -12,7 +12,7 @@ class WoodSlabTile : HalfSlabTile public: static const int TYPE_MASK = 7; static const int TOP_SLOT_BIT = 8; - static const int SLAB_NAMES_LENGTH = 4; + static const int SLAB_NAMES_LENGTH = 6; static const unsigned int SLAB_NAMES[SLAB_NAMES_LENGTH]; WoodSlabTile(int id, bool fullSize); diff --git a/Minecraft.World/WoodTile.cpp b/Minecraft.World/WoodTile.cpp index 239ef61c..67064a87 100644 --- a/Minecraft.World/WoodTile.cpp +++ b/Minecraft.World/WoodTile.cpp @@ -11,9 +11,11 @@ const unsigned int WoodTile::WOOD_NAMES[WOOD_NAMES_LENGTH] = { IDS_TILE_OAKWOOD_ IDS_TILE_SPRUCEWOOD_PLANKS, IDS_TILE_BIRCHWOOD_PLANKS, IDS_TILE_JUNGLE_PLANKS, + IDS_TILE_ACACIA_PLANKS, + IDS_TILE_DARK_OAK_PLANKS }; -const wstring WoodTile::TEXTURE_NAMES[] = {L"oak", L"spruce", L"birch", L"jungle"}; +const wstring WoodTile::TEXTURE_NAMES[] = { L"oak", L"spruce", L"birch", L"jungle", L"acacia", L"dark" }; // public static final String[] WOOD_NAMES = { // "oak", "spruce", "birch", "jungle" diff --git a/Minecraft.World/WoodTile.h b/Minecraft.World/WoodTile.h index 23bbdfb1..1a4e8c45 100644 --- a/Minecraft.World/WoodTile.h +++ b/Minecraft.World/WoodTile.h @@ -7,7 +7,7 @@ class WoodTile : public Tile { friend class ChunkRebuildData; public: - static const int WOOD_NAMES_LENGTH = 4; + static const int WOOD_NAMES_LENGTH = 6; static const unsigned int WOOD_NAMES[WOOD_NAMES_LENGTH];