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(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");
}
}

View file

@ -2310,7 +2310,7 @@ Can also be used for low-level lighting.</value>
</data>
<data name="IDS_ITEM_DOOR_WOOD">
<value>Wooden Door</value>
<value>Oak Door</value>
</data>
<data name="IDS_ITEM_DOOR_IRON">
@ -3322,7 +3322,7 @@ Can also be used for low-level lighting.</value>
</data>
<data name="IDS_TILE_DOOR_WOOD">
<value>Wooden Door</value>
<value>Oak Door</value>
</data>
<data name="IDS_TILE_LADDER">
@ -3394,7 +3394,7 @@ Can also be used for low-level lighting.</value>
</data>
<data name="IDS_TILE_FENCE">
<value>Fence</value>
<value>Oak Fence</value>
</data>
<data name="IDS_TILE_PUMPKIN">
@ -3538,7 +3538,7 @@ Can also be used for low-level lighting.</value>
</data>
<data name="IDS_TILE_FENCE_GATE">
<value>Fence Gate</value>
<value>Oak Fence Gate</value>
</data>
<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">
<value>Cure</value>
</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>

View file

@ -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

View file

@ -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> 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");
}

View file

@ -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<TileEntity> forceEntity = shared_ptr<TileEntity>());
@ -24,4 +25,5 @@ public:
virtual shared_ptr<TileEntity> 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> 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 "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<ItemInstance> instance, shared_ptr<Player> 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;

View file

@ -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<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);
};

View file

@ -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<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)
{
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)

View file

@ -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);

View file

@ -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)

View file

@ -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> 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);
};

View file

@ -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<Entity> 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)

View file

@ -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);

View file

@ -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<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));
@ -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

View file

@ -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;

View file

@ -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;

View file

@ -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<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::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<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::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::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));
@ -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<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
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

View file

@ -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;

View file

@ -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];
}

View file

@ -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];

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_BIRCH,
IDS_TILE_STONESLAB_JUNGLE,
IDS_TILE_STONESLAB_ACACIA,
IDS_TILE_STONESLAB_DARK_OAK
};
// public static final String[] WOOD_NAMES = {

View file

@ -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);

View file

@ -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"

View file

@ -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];