Added features from TU25

Acacia and Dark Oak Logs, Planks and Stairs.

Fences, Fence Gates and Doors for Spruce/Birch/Jungle/Acacia/Dark Oak.

Iron Trapdoors and Inverted Daylight Sensor.
This commit is contained in:
piebot 2026-03-11 08:58:52 +03:00
parent a195ac7172
commit a205b1d70a
29 changed files with 531 additions and 196 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -522,11 +522,11 @@ void PreStitchedTextureMap::loadUVs()
ADD_ICON(10, 15, L"dyePowder_orange") ADD_ICON(10, 15, L"dyePowder_orange")
ADD_ICON(11, 0, L"leggingsCloth_overlay") ADD_ICON(11, 0, L"leggingsCloth_overlay")
//ADD_ICON(11, 1, L"unused") ADD_ICON(11, 1, L"doorSpruce")
//ADD_ICON(11, 2, L"unused") ADD_ICON(11, 2, L"doorBirch")
//ADD_ICON(11, 3, L"unused") ADD_ICON(11, 3, L"doorJungle")
//ADD_ICON(11, 4, L"unused") ADD_ICON(11, 4, L"doorAcacia")
//ADD_ICON(11, 5, L"unused") ADD_ICON(11, 5, L"doorDark")
//ADD_ICON(11, 6, L"unused") //ADD_ICON(11, 6, L"unused")
ADD_ICON(11, 7, L"minecart_hopper") ADD_ICON(11, 7, L"minecart_hopper")
ADD_ICON(11, 8, L"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, 13, L"glass_pane_top_silver");
ADD_ICON(19, 14, L"glass_pane_top_white"); ADD_ICON(19, 14, L"glass_pane_top_white");
ADD_ICON(19, 15, L"glass_pane_top_yellow"); 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");
} }
} }

View file

@ -2310,7 +2310,7 @@ Can also be used for low-level lighting.</value>
</data> </data>
<data name="IDS_ITEM_DOOR_WOOD"> <data name="IDS_ITEM_DOOR_WOOD">
<value>Wooden Door</value> <value>Oak Door</value>
</data> </data>
<data name="IDS_ITEM_DOOR_IRON"> <data name="IDS_ITEM_DOOR_IRON">
@ -3322,7 +3322,7 @@ Can also be used for low-level lighting.</value>
</data> </data>
<data name="IDS_TILE_DOOR_WOOD"> <data name="IDS_TILE_DOOR_WOOD">
<value>Wooden Door</value> <value>Oak Door</value>
</data> </data>
<data name="IDS_TILE_LADDER"> <data name="IDS_TILE_LADDER">
@ -3394,7 +3394,7 @@ Can also be used for low-level lighting.</value>
</data> </data>
<data name="IDS_TILE_FENCE"> <data name="IDS_TILE_FENCE">
<value>Fence</value> <value>Oak Fence</value>
</data> </data>
<data name="IDS_TILE_PUMPKIN"> <data name="IDS_TILE_PUMPKIN">
@ -3538,7 +3538,7 @@ Can also be used for low-level lighting.</value>
</data> </data>
<data name="IDS_TILE_FENCE_GATE"> <data name="IDS_TILE_FENCE_GATE">
<value>Fence Gate</value> <value>Oak Fence Gate</value>
</data> </data>
<data name="IDS_TILE_STAIRS_BRICKS"> <data name="IDS_TILE_STAIRS_BRICKS">
@ -8811,4 +8811,124 @@ All Ender Chests in a world are linked. Items placed into an Ender Chest are acc
<data name="IDS_TOOLTIPS_CURE"> <data name="IDS_TOOLTIPS_CURE">
<value>Cure</value> <value>Cure</value>
</data> </data>
<data name="IDS_TILE_LOG_ACACIA">
<value>Acacia Wood</value>
</data>
<data name="IDS_TILE_LOG_DARK_OAK">
<value>Dark Oak Wood</value>
</data>
<data name="IDS_TILE_ACACIA_PLANKS">
<value>Acacia Wood Planks</value>
</data>
<data name="IDS_TILE_DARK_OAK_PLANKS">
<value>Dark Oak Wood Planks</value>
</data>
<data name="IDS_TILE_STAIRS_ACACIAWOOD">
<value>Acacia Wood Stairs</value>
</data>
<data name="IDS_TILE_STAIRS_DARKWOOD">
<value>Dark Oak Wood Stairs</value>
</data>
<data name="IDS_TILE_STONESLAB_ACACIA">
<value>Acacia Wood Slab</value>
</data>
<data name="IDS_TILE_STONESLAB_DARK_OAK">
<value>Dark Oak Wood Slab</value>
</data>
<data name="IDS_TILE_STONESLAB_DARK_OAK">
<value>Dark Oak Wood Slab</value>
</data>
<data name="IDS_TILE_IRON_TRAPDOOR">
<value>Iron Trapdoor</value>
</data>
<data name="IDS_TILE_DOOR_SPRUCE">
<value>Spruce Door</value>
</data>
<data name="IDS_TILE_DOOR_BIRCH">
<value>Birch Door</value>
</data>
<data name="IDS_TILE_DOOR_JUNGLE">
<value>Jungle Door</value>
</data>
<data name="IDS_TILE_DOOR_ACACIA">
<value>Acacia Door</value>
</data>
<data name="IDS_TILE_DOOR_DARK">
<value>Dark Oak Door</value>
</data>
<data name="IDS_TILE_SPRUCE_FENCE">
<value>Spruce Fence</value>
</data>
<data name="IDS_TILE_BIRCH_FENCE">
<value>Birch Fence</value>
</data>
<data name="IDS_TILE_JUNGLE_FENCE">
<value>Jungle Fence</value>
</data>
<data name="IDS_TILE_ACACIA_FENCE">
<value>Acacia Fence</value>
</data>
<data name="IDS_TILE_DARK_FENCE">
<value>Dark Oak Fence</value>
</data>
<data name="IDS_TILE_SPRUCE_GATE">
<value>Spruce Fence Gate</value>
</data>
<data name="IDS_TILE_BIRCH_GATE">
<value>Birch Fence Gate</value>
</data>
<data name="IDS_TILE_JUNGLE_GATE">
<value>Jungle Fence Gate</value>
</data>
<data name="IDS_TILE_ACACIA_GATE">
<value>Acacia Fence Gate</value>
</data>
<data name="IDS_TILE_DARK_GATE">
<value>Dark Oak Fence Gate</value>
</data>
<data name="IDS_ITEM_DOOR_SPRUCE">
<value>Spruce Door</value>
</data>
<data name="IDS_ITEM_DOOR_BIRCH">
<value>Birch Door</value>
</data>
<data name="IDS_ITEM_DOOR_JUNGLE">
<value>Jungle Door</value>
</data>
<data name="IDS_ITEM_DOOR_ACACIA">
<value>Acacia Door</value>
</data>
<data name="IDS_ITEM_DOOR_DARK">
<value>Dark Oak Door</value>
</data>
</root> </root>

View file

@ -1,7 +1,7 @@
#pragma once #pragma once
// Auto-generated by StringTable builder — do not edit manually. // Auto-generated by StringTable builder — do not edit manually.
// Source language: en-US // Source language: en-US
// Total strings: 2286 // Total strings: 2315
#define IDS_NULL 0 #define IDS_NULL 0
#define IDS_OK 1 #define IDS_OK 1
@ -2165,127 +2165,156 @@
#define IDS_TUTORIAL_TASK_MINECART_PUSHING 2159 #define IDS_TUTORIAL_TASK_MINECART_PUSHING 2159
#define IDS_CONNECTION_FAILED_NO_SD_SPLITSCREEN 2160 #define IDS_CONNECTION_FAILED_NO_SD_SPLITSCREEN 2160
#define IDS_TOOLTIPS_CURE 2161 #define IDS_TOOLTIPS_CURE 2161
#define IDS_LANG_SYSTEM 2162 #define IDS_TILE_LOG_ACACIA 2162
#define IDS_LANG_ENGLISH 2163 #define IDS_TILE_LOG_DARK_OAK 2163
#define IDS_LANG_GERMAN 2164 #define IDS_TILE_ACACIA_PLANKS 2164
#define IDS_LANG_SPANISH 2165 #define IDS_TILE_DARK_OAK_PLANKS 2165
#define IDS_LANG_SPANISH_SPAIN 2166 #define IDS_TILE_STAIRS_ACACIAWOOD 2166
#define IDS_LANG_SPANISH_LATIN_AMERICA 2167 #define IDS_TILE_STAIRS_DARKWOOD 2167
#define IDS_LANG_FRENCH 2168 #define IDS_TILE_STONESLAB_ACACIA 2168
#define IDS_LANG_ITALIAN 2169 #define IDS_TILE_STONESLAB_DARK_OAK 2169
#define IDS_LANG_PORTUGUESE 2170 #define IDS_TILE_IRON_TRAPDOOR 2170
#define IDS_LANG_PORTUGUESE_PORTUGAL 2171 #define IDS_TILE_DOOR_SPRUCE 2171
#define IDS_LANG_PORTUGUESE_BRAZIL 2172 #define IDS_TILE_DOOR_BIRCH 2172
#define IDS_LANG_JAPANESE 2173 #define IDS_TILE_DOOR_JUNGLE 2173
#define IDS_LANG_KOREAN 2174 #define IDS_TILE_DOOR_ACACIA 2174
#define IDS_LANG_CHINESE_TRADITIONAL 2175 #define IDS_TILE_DOOR_DARK 2175
#define IDS_LANG_CHINESE_SIMPLIFIED 2176 #define IDS_TILE_SPRUCE_FENCE 2176
#define IDS_LANG_DANISH 2177 #define IDS_TILE_BIRCH_FENCE 2177
#define IDS_LANG_FINISH 2178 #define IDS_TILE_JUNGLE_FENCE 2178
#define IDS_LANG_DUTCH 2179 #define IDS_TILE_ACACIA_FENCE 2179
#define IDS_LANG_POLISH 2180 #define IDS_TILE_DARK_FENCE 2180
#define IDS_LANG_RUSSIAN 2181 #define IDS_TILE_SPRUCE_GATE 2181
#define IDS_LANG_SWEDISH 2182 #define IDS_TILE_BIRCH_GATE 2182
#define IDS_LANG_NORWEGIAN 2183 #define IDS_TILE_JUNGLE_GATE 2183
#define IDS_LANG_GREEK 2184 #define IDS_TILE_ACACIA_GATE 2184
#define IDS_LANG_TURKISH 2185 #define IDS_TILE_DARK_GATE 2185
#define IDS_LEADERBOARD_KILLS_EASY 2186 #define IDS_ITEM_DOOR_SPRUCE 2186
#define IDS_LEADERBOARD_KILLS_NORMAL 2187 #define IDS_ITEM_DOOR_BIRCH 2187
#define IDS_LEADERBOARD_KILLS_HARD 2188 #define IDS_ITEM_DOOR_JUNGLE 2188
#define IDS_LEADERBOARD_MINING_BLOCKS_PEACEFUL 2189 #define IDS_ITEM_DOOR_ACACIA 2189
#define IDS_LEADERBOARD_MINING_BLOCKS_EASY 2190 #define IDS_ITEM_DOOR_DARK 2190
#define IDS_LEADERBOARD_MINING_BLOCKS_NORMAL 2191 #define IDS_LANG_SYSTEM 2191
#define IDS_LEADERBOARD_MINING_BLOCKS_HARD 2192 #define IDS_LANG_ENGLISH 2192
#define IDS_LEADERBOARD_FARMING_PEACEFUL 2193 #define IDS_LANG_GERMAN 2193
#define IDS_LEADERBOARD_FARMING_EASY 2194 #define IDS_LANG_SPANISH 2194
#define IDS_LEADERBOARD_FARMING_NORMAL 2195 #define IDS_LANG_SPANISH_SPAIN 2195
#define IDS_LEADERBOARD_FARMING_HARD 2196 #define IDS_LANG_SPANISH_LATIN_AMERICA 2196
#define IDS_LEADERBOARD_TRAVELLING_PEACEFUL 2197 #define IDS_LANG_FRENCH 2197
#define IDS_LEADERBOARD_TRAVELLING_EASY 2198 #define IDS_LANG_ITALIAN 2198
#define IDS_LEADERBOARD_TRAVELLING_NORMAL 2199 #define IDS_LANG_PORTUGUESE 2199
#define IDS_LEADERBOARD_TRAVELLING_HARD 2200 #define IDS_LANG_PORTUGUESE_PORTUGAL 2200
#define IDS_TIPS_GAMETIP_0 2201 #define IDS_LANG_PORTUGUESE_BRAZIL 2201
#define IDS_TIPS_GAMETIP_1 2202 #define IDS_LANG_JAPANESE 2202
#define IDS_TIPS_GAMETIP_48 2203 #define IDS_LANG_KOREAN 2203
#define IDS_TIPS_GAMETIP_44 2204 #define IDS_LANG_CHINESE_TRADITIONAL 2204
#define IDS_TIPS_GAMETIP_45 2205 #define IDS_LANG_CHINESE_SIMPLIFIED 2205
#define IDS_TIPS_TRIVIA_4 2206 #define IDS_LANG_DANISH 2206
#define IDS_TIPS_TRIVIA_17 2207 #define IDS_LANG_FINISH 2207
#define IDS_HOW_TO_PLAY_MULTIPLAYER 2208 #define IDS_LANG_DUTCH 2208
#define IDS_HOW_TO_PLAY_SOCIALMEDIA 2209 #define IDS_LANG_POLISH 2209
#define IDS_HOW_TO_PLAY_CREATIVE 2210 #define IDS_LANG_RUSSIAN 2210
#define IDS_TUTORIAL_TASK_FLY 2211 #define IDS_LANG_SWEDISH 2211
#define IDS_TOOLTIPS_SELECTDEVICE 2212 #define IDS_LANG_NORWEGIAN 2212
#define IDS_TOOLTIPS_CHANGEDEVICE 2213 #define IDS_LANG_GREEK 2213
#define IDS_TOOLTIPS_VIEW_GAMERCARD 2214 #define IDS_LANG_TURKISH 2214
#define IDS_TOOLTIPS_VIEW_GAMERPROFILE 2215 #define IDS_LEADERBOARD_KILLS_EASY 2215
#define IDS_TOOLTIPS_INVITE_PARTY 2216 #define IDS_LEADERBOARD_KILLS_NORMAL 2216
#define IDS_CONFIRM_START_CREATIVE 2217 #define IDS_LEADERBOARD_KILLS_HARD 2217
#define IDS_CONFIRM_START_SAVEDINCREATIVE 2218 #define IDS_LEADERBOARD_MINING_BLOCKS_PEACEFUL 2218
#define IDS_CONFIRM_START_SAVEDINCREATIVE_CONTINUE 2219 #define IDS_LEADERBOARD_MINING_BLOCKS_EASY 2219
#define IDS_CONFIRM_START_HOST_PRIVILEGES 2220 #define IDS_LEADERBOARD_MINING_BLOCKS_NORMAL 2220
#define IDS_CONNECTION_LOST_LIVE 2221 #define IDS_LEADERBOARD_MINING_BLOCKS_HARD 2221
#define IDS_CONNECTION_LOST_LIVE_NO_EXIT 2222 #define IDS_LEADERBOARD_FARMING_PEACEFUL 2222
#define IDS_AWARD_AVATAR1 2223 #define IDS_LEADERBOARD_FARMING_EASY 2223
#define IDS_AWARD_AVATAR2 2224 #define IDS_LEADERBOARD_FARMING_NORMAL 2224
#define IDS_AWARD_AVATAR3 2225 #define IDS_LEADERBOARD_FARMING_HARD 2225
#define IDS_AWARD_THEME 2226 #define IDS_LEADERBOARD_TRAVELLING_PEACEFUL 2226
#define IDS_UNLOCK_ACHIEVEMENT_TEXT 2227 #define IDS_LEADERBOARD_TRAVELLING_EASY 2227
#define IDS_UNLOCK_AVATAR_TEXT 2228 #define IDS_LEADERBOARD_TRAVELLING_NORMAL 2228
#define IDS_UNLOCK_GAMERPIC_TEXT 2229 #define IDS_LEADERBOARD_TRAVELLING_HARD 2229
#define IDS_UNLOCK_THEME_TEXT 2230 #define IDS_TIPS_GAMETIP_0 2230
#define IDS_UNLOCK_ACCEPT_INVITE 2231 #define IDS_TIPS_GAMETIP_1 2231
#define IDS_UNLOCK_GUEST_TEXT 2232 #define IDS_TIPS_GAMETIP_48 2232
#define IDS_LEADERBOARD_GAMERTAG 2233 #define IDS_TIPS_GAMETIP_44 2233
#define IDS_GROUPNAME_POTIONS_480 2234 #define IDS_TIPS_GAMETIP_45 2234
#define IDS_RETURNEDTOTITLESCREEN_TEXT 2235 #define IDS_TIPS_TRIVIA_4 2235
#define IDS_TRIALOVER_TEXT 2236 #define IDS_TIPS_TRIVIA_17 2236
#define IDS_FATAL_ERROR_TEXT 2237 #define IDS_HOW_TO_PLAY_MULTIPLAYER 2237
#define IDS_NO_MULTIPLAYER_PRIVILEGE_JOIN_TEXT 2238 #define IDS_HOW_TO_PLAY_SOCIALMEDIA 2238
#define IDS_NO_MULTIPLAYER_PRIVILEGE_HOST_TEXT 2239 #define IDS_HOW_TO_PLAY_CREATIVE 2239
#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_SINGLE_LOCAL 2240 #define IDS_TUTORIAL_TASK_FLY 2240
#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_ALL_LOCAL 2241 #define IDS_TOOLTIPS_SELECTDEVICE 2241
#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_REMOTE 2242 #define IDS_TOOLTIPS_CHANGEDEVICE 2242
#define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_CREATE 2243 #define IDS_TOOLTIPS_VIEW_GAMERCARD 2243
#define IDS_SAVE_ICON_MESSAGE 2244 #define IDS_TOOLTIPS_VIEW_GAMERPROFILE 2244
#define IDS_GAMEOPTION_HOST_PRIVILEGES 2245 #define IDS_TOOLTIPS_INVITE_PARTY 2245
#define IDS_CHECKBOX_DISPLAY_SPLITSCREENGAMERTAGS 2246 #define IDS_CONFIRM_START_CREATIVE 2246
#define IDS_ACHIEVEMENTS 2247 #define IDS_CONFIRM_START_SAVEDINCREATIVE 2247
#define IDS_LABEL_GAMERTAGS 2248 #define IDS_CONFIRM_START_SAVEDINCREATIVE_CONTINUE 2248
#define IDS_IN_GAME_GAMERTAGS 2249 #define IDS_CONFIRM_START_HOST_PRIVILEGES 2249
#define IDS_SOCIAL_DEFAULT_DESCRIPTION 2250 #define IDS_CONNECTION_LOST_LIVE 2250
#define IDS_TITLE_UPDATE_NAME 2251 #define IDS_CONNECTION_LOST_LIVE_NO_EXIT 2251
#define IDS_PLATFORM_NAME 2252 #define IDS_AWARD_AVATAR1 2252
#define IDS_BACK_BUTTON 2253 #define IDS_AWARD_AVATAR2 2253
#define IDS_HOST_OPTION_DISABLES_ACHIEVEMENTS 2254 #define IDS_AWARD_AVATAR3 2254
#define IDS_KICK_PLAYER_DESCRIPTION 2255 #define IDS_AWARD_THEME 2255
#define IDS_USING_TRIAL_TEXUREPACK_WARNING 2256 #define IDS_UNLOCK_ACHIEVEMENT_TEXT 2256
#define IDS_WORLD_SIZE_TITLE_SMALL 2257 #define IDS_UNLOCK_AVATAR_TEXT 2257
#define IDS_WORLD_SIZE_TITLE_MEDIUM 2258 #define IDS_UNLOCK_GAMERPIC_TEXT 2258
#define IDS_WORLD_SIZE_TITLE_LARGE 2259 #define IDS_UNLOCK_THEME_TEXT 2259
#define IDS_WORLD_SIZE_TITLE_CLASSIC 2260 #define IDS_UNLOCK_ACCEPT_INVITE 2260
#define IDS_WORLD_SIZE 2261 #define IDS_UNLOCK_GUEST_TEXT 2261
#define IDS_GAMEOPTION_WORLD_SIZE 2262 #define IDS_LEADERBOARD_GAMERTAG 2262
#define IDS_DISABLE_SAVING 2263 #define IDS_GROUPNAME_POTIONS_480 2263
#define IDS_GAMEOPTION_DISABLE_SAVING 2264 #define IDS_RETURNEDTOTITLESCREEN_TEXT 2264
#define IDS_RICHPRESENCE_GAMESTATE 2265 #define IDS_TRIALOVER_TEXT 2265
#define IDS_RICHPRESENCE_IDLE 2266 #define IDS_FATAL_ERROR_TEXT 2266
#define IDS_RICHPRESENCE_MENUS 2267 #define IDS_NO_MULTIPLAYER_PRIVILEGE_JOIN_TEXT 2267
#define IDS_RICHPRESENCE_MULTIPLAYER 2268 #define IDS_NO_MULTIPLAYER_PRIVILEGE_HOST_TEXT 2268
#define IDS_RICHPRESENCE_MULTIPLAYEROFFLINE 2269 #define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_SINGLE_LOCAL 2269
#define IDS_RICHPRESENCE_MULTIPLAYER_1P 2270 #define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_ALL_LOCAL 2270
#define IDS_RICHPRESENCE_MULTIPLAYER_1POFFLINE 2271 #define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_REMOTE 2271
#define IDS_RICHPRESENCESTATE_BLANK 2272 #define IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_CREATE 2272
#define IDS_RICHPRESENCESTATE_RIDING_PIG 2273 #define IDS_SAVE_ICON_MESSAGE 2273
#define IDS_RICHPRESENCESTATE_RIDING_MINECART 2274 #define IDS_GAMEOPTION_HOST_PRIVILEGES 2274
#define IDS_RICHPRESENCESTATE_BOATING 2275 #define IDS_CHECKBOX_DISPLAY_SPLITSCREENGAMERTAGS 2275
#define IDS_RICHPRESENCESTATE_FISHING 2276 #define IDS_ACHIEVEMENTS 2276
#define IDS_RICHPRESENCESTATE_CRAFTING 2277 #define IDS_LABEL_GAMERTAGS 2277
#define IDS_RICHPRESENCESTATE_FORGING 2278 #define IDS_IN_GAME_GAMERTAGS 2278
#define IDS_RICHPRESENCESTATE_NETHER 2279 #define IDS_SOCIAL_DEFAULT_DESCRIPTION 2279
#define IDS_RICHPRESENCESTATE_CD 2280 #define IDS_TITLE_UPDATE_NAME 2280
#define IDS_RICHPRESENCESTATE_MAP 2281 #define IDS_PLATFORM_NAME 2281
#define IDS_RICHPRESENCESTATE_ENCHANTING 2282 #define IDS_BACK_BUTTON 2282
#define IDS_RICHPRESENCESTATE_BREWING 2283 #define IDS_HOST_OPTION_DISABLES_ACHIEVEMENTS 2283
#define IDS_RICHPRESENCESTATE_ANVIL 2284 #define IDS_KICK_PLAYER_DESCRIPTION 2284
#define IDS_RICHPRESENCESTATE_TRADING 2285 #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

View file

@ -8,8 +8,9 @@
#include "JavaMath.h" #include "JavaMath.h"
#include "DaylightDetectorTile.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(); updateDefaultShape();
} }
@ -72,12 +73,27 @@ void DaylightDetectorTile::updateSignalStrength(Level *level, int x, int y, int
target = Redstone::SIGNAL_MAX; target = Redstone::SIGNAL_MAX;
} }
if (inverted)
target = Redstone::SIGNAL_MAX - target;
if (current != target) if (current != target)
{ {
level->setData(x, y, z, target, UPDATE_ALL); level->setData(x, y, z, target, UPDATE_ALL);
} }
} }
bool DaylightDetectorTile::use(Level* level, int x, int y, int z, shared_ptr<Player> 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() bool DaylightDetectorTile::isCubeShaped()
{ {
return false; return false;
@ -109,6 +125,11 @@ Icon *DaylightDetectorTile::getTexture(int face, int data)
void DaylightDetectorTile::registerIcons(IconRegister *iconRegister) 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"); icons[1] = iconRegister->registerIcon(getIconName() + L"_side");
} }

View file

@ -7,9 +7,10 @@ class DaylightDetectorTile : public BaseEntityTile
friend class ChunkRebuildData; friend class ChunkRebuildData;
private: private:
Icon *icons[2]; Icon *icons[2];
bool inverted;
public: public:
DaylightDetectorTile(int id); DaylightDetectorTile(int id, bool inverted);
virtual void updateDefaultShape(); // 4J Added override virtual void updateDefaultShape(); // 4J Added override
virtual void updateShape(LevelSource *level, int x, int y, int z, int forceData = -1, shared_ptr<TileEntity> forceEntity = shared_ptr<TileEntity>()); virtual void updateShape(LevelSource *level, int x, int y, int z, int forceData = -1, shared_ptr<TileEntity> forceEntity = shared_ptr<TileEntity>());
@ -24,4 +25,5 @@ public:
virtual shared_ptr<TileEntity> newTileEntity(Level *level); virtual shared_ptr<TileEntity> newTileEntity(Level *level);
virtual Icon *getTexture(int face, int data); virtual Icon *getTexture(int face, int data);
virtual void registerIcons(IconRegister *iconRegister); virtual void registerIcons(IconRegister *iconRegister);
bool use(Level* level, int x, int y, int z, shared_ptr<Player> player, int clickedFace, float clickX, float clickY, float clickZ, bool soundOnly = false); // 4J added soundOnly param
}; };

View file

@ -12,9 +12,10 @@ using namespace std;
#include "GenericStats.h" #include "GenericStats.h"
#include "DoorItem.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->material = material;
this->doorType = doorType;
maxStackSize = 1; maxStackSize = 1;
} }
@ -25,8 +26,13 @@ bool DoorItem::useOn(shared_ptr<ItemInstance> instance, shared_ptr<Player> playe
Tile *tile; Tile *tile;
if (material == Material::wood) tile = Tile::door_wood; if (doorType == L"doorWood") tile = Tile::door_wood;
else tile = Tile::door_iron; 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 (!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; if (!tile->mayPlace(level, x, y, z)) return false;

View file

@ -11,10 +11,12 @@ class DoorItem : public Item
{ {
private: private:
Material *material; Material *material;
wstring doorType;
public: public:
DoorItem(int id, Material *material); DoorItem(int id, Material *material, const wstring& doorType);
virtual bool useOn(shared_ptr<ItemInstance> instance, shared_ptr<Player> player, Level *level, int x, int y, int z, int face, float clickX, float clickY, float clickZ, bool bTestUseOnOnly=false); virtual bool useOn(shared_ptr<ItemInstance> instance, shared_ptr<Player> 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); static void place(Level *level, int x, int y, int z, int dir, Tile *tile);
}; };

View file

@ -8,18 +8,15 @@
#include "net.minecraft.world.h" #include "net.minecraft.world.h"
#include "net.minecraft.h" #include "net.minecraft.h"
const wstring DoorTile::TEXTURES[] = { L"doorWood_lower", L"doorWood_upper", L"doorIron_lower", L"doorIron_upper" }; static std::map<wstring, Item*> 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) this->doorType = doorType;
{
texBase = 2;
}
else
{
texBase = 0;
}
float r = 0.5f; float r = 0.5f;
float h = 1.0f; 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) int DoorTile::getResource(int data, Random *random, int playerBonusLevel)
{ {
if ((data & 8) != 0) return 0; if ((data & 8) != 0) return 0;
if (material == Material::metal) return Item::door_iron->id; return doorItemMap[doorType]->id;
return Item::door_wood->id;
} }
HitResult *DoorTile::clip(Level *level, int xt, int yt, int zt, Vec3 *a, Vec3 *b) HitResult *DoorTile::clip(Level *level, int xt, int yt, int zt, Vec3 *a, Vec3 *b)

View file

@ -22,16 +22,16 @@ public:
static const int C_LOWER_DATA_MASK = 7; static const int C_LOWER_DATA_MASK = 7;
static const int C_IS_UPPER_MASK = 8; static const int C_IS_UPPER_MASK = 8;
static const int C_RIGHT_HINGE_MASK = 16; static const int C_RIGHT_HINGE_MASK = 16;
wstring doorType;
private: private:
static const int DOOR_TILE_TEXTURE_COUNT = 4; static const int DOOR_TILE_TEXTURE_COUNT = 4;
static const wstring TEXTURES[];
int texBase; int texBase;
Icon *iconTop[2]; Icon *iconTop[2];
Icon *iconBottom[2]; Icon *iconBottom[2];
protected: protected:
DoorTile(int id, Material *material); DoorTile(int id, Material *material, const wstring& doorType);
public: public:
virtual Icon *getTexture(int face, int data); virtual Icon *getTexture(int face, int data);
virtual Icon *getTexture(LevelSource *level, int x, int y, int z, int face); virtual Icon *getTexture(LevelSource *level, int x, int y, int z, int face);

View file

@ -2,6 +2,7 @@
#include "FenceGateTile.h" #include "FenceGateTile.h"
#include "AABB.h" #include "AABB.h"
#include "net.minecraft.world.level.h" #include "net.minecraft.world.level.h"
#include "net.minecraft.world.h"
#include "net.minecraft.h" #include "net.minecraft.h"
#include "LevelEvent.h" #include "LevelEvent.h"
@ -11,7 +12,7 @@ FenceGateTile::FenceGateTile(int id) : DirectionalTile(id, Material::wood, isSol
Icon *FenceGateTile::getTexture(int face, int data) 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) 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) void FenceGateTile::registerIcons(IconRegister *iconRegister)
{ {
// None icon = iconRegister->registerIcon(getIconName());
} }
bool FenceGateTile::shouldRenderFace(LevelSource *level, int x, int y, int z, int face) bool FenceGateTile::shouldRenderFace(LevelSource *level, int x, int y, int z, int face)

View file

@ -5,7 +5,7 @@ class FenceGateTile : public DirectionalTile
{ {
private: private:
static const int OPEN_BIT = 4; static const int OPEN_BIT = 4;
Icon* icon;
public: public:
FenceGateTile(int id); FenceGateTile(int id);
Icon *getTexture(int face, int data); 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> player, int clickedFace, float clickX, float clickY, float clickZ, bool soundOnly = false); // 4J added soundOnly param virtual bool use(Level *level, int x, int y, int z, shared_ptr<Player> 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); virtual void neighborChanged(Level *level, int x, int y, int z, int type);
static bool isOpen(int data); static bool isOpen(int data);
void registerIcons(IconRegister *iconRegister); virtual void registerIcons(IconRegister* iconRegister);
}; };

View file

@ -9,6 +9,11 @@ FenceTile::FenceTile(int id, const wstring &texture, Material *material) : Tile(
this->texture = texture; 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<Entity> source) void FenceTile::addAABBs(Level *level, int x, int y, int z, AABB *box, AABBList *boxes, shared_ptr<Entity> source)
{ {
bool n = connectsTo(level, x, y, z - 1); 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) bool FenceTile::connectsTo(LevelSource *level, int x, int y, int z)
{ {
int tile = level->getTile(x, y, z); int tile = level->getTile(x, y, z);
if (tile == id || tile == Tile::fenceGate_Id) if (isFence(tile) || tile == Tile::fenceGate_Id)
{ {
return true; return true;
} }
@ -134,7 +139,8 @@ bool FenceTile::connectsTo(LevelSource *level, int x, int y, int z)
bool FenceTile::isFence(int tile) 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) void FenceTile::registerIcons(IconRegister *iconRegister)

View file

@ -45,6 +45,8 @@ void FireTile::init()
setFlammable(Tile::stairs_birchwood_Id, FLAME_HARD, BURN_MEDIUM); setFlammable(Tile::stairs_birchwood_Id, FLAME_HARD, BURN_MEDIUM);
setFlammable(Tile::stairs_sprucewood_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_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::treeTrunk_Id, FLAME_HARD, BURN_HARD);
setFlammable(Tile::leaves_Id, FLAME_EASY, BURN_EASY); setFlammable(Tile::leaves_Id, FLAME_EASY, BURN_EASY);
setFlammable(Tile::bookshelf_Id, FLAME_EASY, BURN_MEDIUM); setFlammable(Tile::bookshelf_Id, FLAME_EASY, BURN_MEDIUM);

View file

@ -251,6 +251,12 @@ Item *Item::horseArmorDiamond = nullptr;
Item *Item::lead = nullptr; Item *Item::lead = nullptr;
Item *Item::nameTag = 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() 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_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::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_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) ) ->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_iron)->setIconName(L"doorIron")->setDescriptionId(IDS_ITEM_DOOR_IRON)->setUseDescriptionId(IDS_DESC_DOOR_IRON); 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<ArmorItem *>((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_leather = static_cast<ArmorItem *>((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<ArmorItem *>((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)); Item::helmet_iron = static_cast<ArmorItem *>((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::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::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::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 // 4J Stu - We need to do this after the staticCtor AND after staticCtors for other class

View file

@ -90,6 +90,8 @@ public:
eMaterial_book, eMaterial_book,
eMaterial_bookshelf, eMaterial_bookshelf,
eMaterial_wheat, eMaterial_wheat,
eMaterial_acaciawood,
eMaterial_darkwood
} }
eMaterial; eMaterial;
@ -376,8 +378,8 @@ public:
static Item *frame; static Item *frame;
// TU14 // TU14
//static Item writingBook; //static Item *writingBook;
//static Item writtenBook; //static Item *writtenBook;
static Item *emerald; static Item *emerald;
@ -412,6 +414,13 @@ public:
static Item *lead; static Item *lead;
static Item *nameTag; 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 shovel_iron_Id = 256;
static const int pickAxe_iron_Id = 257; static const int pickAxe_iron_Id = 257;
@ -581,8 +590,8 @@ public:
static const int itemFrame_Id = 389; static const int itemFrame_Id = 389;
// TU14 // TU14
//static const int writingBook_Id = 130; //static const int writingBook_Id = 386;
//static const int writtenBook_Id = 131; //static const int writtenBook_Id = 387;
static const int emerald_Id = 388; static const int emerald_Id = 388;
@ -618,6 +627,13 @@ public:
static const int lead_Id = 420; static const int lead_Id = 420;
static const int nameTag_Id = 421; 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: public:
const int id; const int id;

View file

@ -5,11 +5,11 @@
class RotatedPillarTile : public Tile class RotatedPillarTile : public Tile
{ {
public: public:
static const int MASK_TYPE = 0x3; static const int MASK_TYPE = 0x7;
static const int MASK_FACING = 0xC; static const int MASK_FACING = 0x18;
static const int FACING_Y = 0 << 2; static const int FACING_Y = 0 << 3;
static const int FACING_X = 1 << 2; static const int FACING_X = 1 << 3;
static const int FACING_Z = 2 << 2; static const int FACING_Z = 2 << 3;
protected: protected:
Icon *iconTop; Icon *iconTop;

View file

@ -173,7 +173,7 @@ Tile *Tile::redstoneLight_lit = nullptr;
// TU9 // TU9
Tile *Tile::stairs_sandstone = nullptr; Tile *Tile::stairs_sandstone = nullptr;
Tile *Tile::woodStairsDark = nullptr; Tile *Tile::woodStairsSpruce = nullptr;
Tile *Tile::woodStairsBirch = nullptr; Tile *Tile::woodStairsBirch = nullptr;
Tile *Tile::woodStairsJungle = nullptr; Tile *Tile::woodStairsJungle = nullptr;
Tile *Tile::commandBlock = nullptr; Tile *Tile::commandBlock = nullptr;
@ -220,6 +220,31 @@ Tile *Tile::woolCarpet = nullptr;
Tile *Tile::clayHardened = nullptr; Tile *Tile::clayHardened = nullptr;
Tile *Tile::coalBlock = 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(); DWORD Tile::tlsIdxShape = TlsAlloc();
Tile::ThreadStorage::ThreadStorage() 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 = (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::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::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::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::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); 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::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::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::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 = (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); 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::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::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::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_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::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<MycelTile *>((new MycelTile(110))->setDestroyTime(0.6f)->setSoundType(SOUND_GRASS)->setIconName(L"mycelium")->setDescriptionId(IDS_TILE_MYCEL)->setUseDescriptionId(IDS_DESC_MYCEL)); Tile::mycel = static_cast<MycelTile *>((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<TripWireSourceTile *>((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::tripWireSource = static_cast<TripWireSourceTile *>((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::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::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::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::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); 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<ComparatorTile *>((new ComparatorTile(149, false))->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setIconName(L"comparator_off")->setDescriptionId(IDS_TILE_COMPARATOR)->setUseDescriptionId(IDS_DESC_COMPARATOR)); Tile::comparator_off = static_cast<ComparatorTile *>((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<ComparatorTile *>((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::comparator_on = static_cast<ComparatorTile *>((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<DaylightDetectorTile *>((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<DaylightDetectorTile *>((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::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::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<HopperTile *>((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)); Tile::hopper = static_cast<HopperTile *>((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::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::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<DaylightDetectorTile*>((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 // 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); 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_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[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[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[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, 4, IDS_TILE_PLANKS))->setIconName(L"wood")->setDescriptionId(IDS_TILE_OAKWOOD_PLANKS)->setUseDescriptionId(IDS_DESC_LOG); // <- TODO 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[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[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[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::quartzBlock_Id;
const int Tile::stairs_quartz_Id; const int Tile::stairs_quartz_Id;
const int Tile::woolCarpet_Id; const int Tile::woolCarpet_Id;
const int Tile::stairs_acaciawood_Id;
const int Tile::stairs_darkwood_Id;
#endif #endif

View file

@ -365,6 +365,26 @@ public:
static const int clayHardened_Id = 172; static const int clayHardened_Id = 172;
static const int coalBlock_Id = 173; 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 Tile *stone;
static GrassTile *grass; static GrassTile *grass;
@ -494,9 +514,11 @@ public:
static Tile *redstoneLight_lit; static Tile *redstoneLight_lit;
static Tile *stairs_sandstone; static Tile *stairs_sandstone;
static Tile *woodStairsDark; static Tile *woodStairsSpruce;
static Tile *woodStairsBirch; static Tile *woodStairsBirch;
static Tile *woodStairsJungle; static Tile *woodStairsJungle;
static Tile *woodStairsAcacia;
static Tile *woodStairsDark;
static Tile *commandBlock; static Tile *commandBlock;
static BeaconTile *beacon; static BeaconTile *beacon;
static Tile *button_wood; static Tile *button_wood;
@ -541,6 +563,28 @@ public:
static Tile *clayHardened; static Tile *clayHardened;
static Tile *coalBlock; 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(); static void staticCtor();
int id; int id;

View file

@ -10,12 +10,14 @@
const unsigned int TreeTile::TREE_NAMES[ TreeTile::TREE_NAMES_LENGTH] = { IDS_TILE_LOG_OAK, const unsigned int TreeTile::TREE_NAMES[ TreeTile::TREE_NAMES_LENGTH] = { IDS_TILE_LOG_OAK,
IDS_TILE_LOG_SPRUCE, IDS_TILE_LOG_SPRUCE,
IDS_TILE_LOG_BIRCH, 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) 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*/) unsigned int TreeTile::getDescriptionId(int iData /*= -1*/)
{ {
int type = iData & MASK_TYPE; 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]; return TreeTile::TREE_NAMES[type];
} }

View file

@ -10,17 +10,19 @@ class TreeTile : public RotatedPillarTile
friend class Tile; friend class Tile;
friend class ChunkRebuildData; friend class ChunkRebuildData;
public: 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 BIRCH_TRUNK = 2;
static const int JUNGLE_TRUNK = 3; 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_TYPE = 0x7;
static const int MASK_FACING = 0xC; static const int MASK_FACING = 0x18;
static const int FACING_Y = 0 << 2; static const int FACING_Y = 0 << 3;
static const int FACING_X = 1 << 2; static const int FACING_X = 1 << 3;
static const int FACING_Z = 2 << 2; 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]; static const unsigned int TREE_NAMES[TREE_NAMES_LENGTH];

View file

@ -11,6 +11,8 @@ const unsigned int WoodSlabTile::SLAB_NAMES[SLAB_NAMES_LENGTH] = { IDS_TILE_STON
IDS_TILE_STONESLAB_SPRUCE, IDS_TILE_STONESLAB_SPRUCE,
IDS_TILE_STONESLAB_BIRCH, IDS_TILE_STONESLAB_BIRCH,
IDS_TILE_STONESLAB_JUNGLE, IDS_TILE_STONESLAB_JUNGLE,
IDS_TILE_STONESLAB_ACACIA,
IDS_TILE_STONESLAB_DARK_OAK
}; };
// public static final String[] WOOD_NAMES = { // public static final String[] WOOD_NAMES = {

View file

@ -12,7 +12,7 @@ class WoodSlabTile : HalfSlabTile
public: public:
static const int TYPE_MASK = 7; static const int TYPE_MASK = 7;
static const int TOP_SLOT_BIT = 8; 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]; static const unsigned int SLAB_NAMES[SLAB_NAMES_LENGTH];
WoodSlabTile(int id, bool fullSize); WoodSlabTile(int id, bool fullSize);

View file

@ -11,9 +11,11 @@ const unsigned int WoodTile::WOOD_NAMES[WOOD_NAMES_LENGTH] = { IDS_TILE_OAKWOOD_
IDS_TILE_SPRUCEWOOD_PLANKS, IDS_TILE_SPRUCEWOOD_PLANKS,
IDS_TILE_BIRCHWOOD_PLANKS, IDS_TILE_BIRCHWOOD_PLANKS,
IDS_TILE_JUNGLE_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 = { // public static final String[] WOOD_NAMES = {
// "oak", "spruce", "birch", "jungle" // "oak", "spruce", "birch", "jungle"

View file

@ -7,7 +7,7 @@ class WoodTile : public Tile
{ {
friend class ChunkRebuildData; friend class ChunkRebuildData;
public: public:
static const int WOOD_NAMES_LENGTH = 4; static const int WOOD_NAMES_LENGTH = 6;
static const unsigned int WOOD_NAMES[WOOD_NAMES_LENGTH]; static const unsigned int WOOD_NAMES[WOOD_NAMES_LENGTH];