uninitialized vptr

the vptr to isSolidRender() is not known before contruction of the Tile. Its true by default. if false, need to pass false. that is what i did. i verfied what isSolidRender() is in every file. and did exactly what isSolidRender() would return
This commit is contained in:
Nikita Edel 2026-03-10 23:22:34 +01:00
parent 8865194e47
commit a006cc5aa0
48 changed files with 74 additions and 68 deletions

View file

@ -11,7 +11,7 @@ UIGroup::UIGroup(EUIGroup group, int iPad)
m_bIgnoreAutosaveMenuDisplayed = false; m_bIgnoreAutosaveMenuDisplayed = false;
m_bIgnorePlayerJoinMenuDisplayed = false; m_bIgnorePlayerJoinMenuDisplayed = false;
// 4jcraft, moved this to the top // 4jcraft, moved this to the top
// initialized memory was read. // uninitialized memory was read.
m_viewportType = C4JRender::VIEWPORT_TYPE_FULLSCREEN; m_viewportType = C4JRender::VIEWPORT_TYPE_FULLSCREEN;
m_updateFocusStateCountdown = 0; m_updateFocusStateCountdown = 0;

View file

@ -17,7 +17,7 @@ std::wstring AnvilTile::TEXTURE_DAMAGE_NAMES[ANVIL_NAMES_LENGTH] = {
L"anvil_top", L"anvil_top_damaged_1", L"anvil_top_damaged_2" L"anvil_top", L"anvil_top_damaged_1", L"anvil_top_damaged_2"
}; };
AnvilTile::AnvilTile(int id) : HeavyTile(id, Material::heavyMetal, isSolidRender() ) AnvilTile::AnvilTile(int id) : HeavyTile(id, Material::heavyMetal, false)
{ {
part = PART_BASE; part = PART_BASE;
setLightBlock(0); setLightBlock(0);
@ -114,4 +114,4 @@ void AnvilTile::onLand(Level *level, int xt, int yt, int zt, int data)
bool AnvilTile::shouldRenderFace(LevelSource *level, int x, int y, int z, int face) bool AnvilTile::shouldRenderFace(LevelSource *level, int x, int y, int z, int face)
{ {
return true; return true;
} }

View file

@ -12,7 +12,7 @@ int BedTile::HEAD_DIRECTION_OFFSETS[4][2] =
{ 0, 1 }, { -1, 0 }, { 0, -1 }, { 1, 0 } { 0, 1 }, { -1, 0 }, { 0, -1 }, { 1, 0 }
}; };
BedTile::BedTile(int id) : DirectionalTile(id, Material::cloth, isSolidRender()) BedTile::BedTile(int id) : DirectionalTile(id, Material::cloth, false)
{ {
setShape(); setShape();
@ -329,4 +329,4 @@ int BedTile::getPistonPushReaction()
int BedTile::cloneTileId(Level *level, int x, int y, int z) int BedTile::cloneTileId(Level *level, int x, int y, int z)
{ {
return Item::bed_Id; return Item::bed_Id;
} }

View file

@ -8,7 +8,7 @@
const std::wstring BrewingStandTile::TEXTURE_BASE = L"brewingStand_base"; const std::wstring BrewingStandTile::TEXTURE_BASE = L"brewingStand_base";
BrewingStandTile::BrewingStandTile(int id) : EntityTile(id, Material::metal, isSolidRender()) BrewingStandTile::BrewingStandTile(int id) : EntityTile(id, Material::metal, false)
{ {
random = new Random(); random = new Random();
iconBase = NULL; iconBase = NULL;
@ -133,4 +133,4 @@ void BrewingStandTile::registerIcons(IconRegister *iconRegister)
Icon *BrewingStandTile::getBaseTexture() Icon *BrewingStandTile::getBaseTexture()
{ {
return iconBase; return iconBase;
} }

View file

@ -6,7 +6,7 @@
#include "ButtonTile.h" #include "ButtonTile.h"
#include "../Util/SoundTypes.h" #include "../Util/SoundTypes.h"
ButtonTile::ButtonTile(int id, bool sensitive) : Tile(id, Material::decoration,isSolidRender()) ButtonTile::ButtonTile(int id, bool sensitive) : Tile(id, Material::decoration, false)
{ {
this->setTicking(true); this->setTicking(true);
this->sensitive = sensitive; this->sensitive = sensitive;

View file

@ -8,7 +8,7 @@
#include "../Headers/net.minecraft.world.h" #include "../Headers/net.minecraft.world.h"
#include "CactusTile.h" #include "CactusTile.h"
CactusTile::CactusTile(int id) : Tile(id, Material::cactus,isSolidRender()) CactusTile::CactusTile(int id) : Tile(id, Material::cactus, false)
{ {
setTicking(true); setTicking(true);
iconTop = NULL; iconTop = NULL;

View file

@ -9,7 +9,7 @@
#include "CakeTile.h" #include "CakeTile.h"
CakeTile::CakeTile(int id) : Tile(id, Material::cake,isSolidRender()) CakeTile::CakeTile(int id) : Tile(id, Material::cake, false)
{ {
setTicking(true); setTicking(true);
@ -148,4 +148,4 @@ int CakeTile::getResource(int data, Random *random, int playerBonusLevel)
int CakeTile::cloneTileId(Level *level, int x, int y, int z) int CakeTile::cloneTileId(Level *level, int x, int y, int z)
{ {
return Item::cake_Id; return Item::cake_Id;
} }

View file

@ -11,7 +11,7 @@
const std::wstring CauldronTile::TEXTURE_INSIDE = L"cauldron_inner"; const std::wstring CauldronTile::TEXTURE_INSIDE = L"cauldron_inner";
const std::wstring CauldronTile::TEXTURE_BOTTOM = L"cauldron_bottom"; const std::wstring CauldronTile::TEXTURE_BOTTOM = L"cauldron_bottom";
CauldronTile::CauldronTile(int id) : Tile(id, Material::metal, isSolidRender()) CauldronTile::CauldronTile(int id) : Tile(id, Material::metal, false)
{ {
iconInner = NULL; iconInner = NULL;
iconTop = NULL; iconTop = NULL;
@ -174,4 +174,4 @@ int CauldronTile::getResource(int data, Random *random, int playerBonusLevel)
int CauldronTile::cloneTileId(Level *level, int x, int y, int z) int CauldronTile::cloneTileId(Level *level, int x, int y, int z)
{ {
return Item::cauldron_Id; return Item::cauldron_Id;
} }

View file

@ -10,7 +10,7 @@
#include "../Util/Facing.h" #include "../Util/Facing.h"
#include "../Entities/Mobs/Ocelot.h" #include "../Entities/Mobs/Ocelot.h"
ChestTile::ChestTile(int id) : EntityTile(id, Material::wood, isSolidRender() ) ChestTile::ChestTile(int id) : EntityTile(id, Material::wood, false)
{ {
random = new Random(); random = new Random();

View file

@ -8,7 +8,7 @@
const std::wstring CocoaTile::TEXTURE_AGES[] = { L"cocoa_0", L"cocoa_1", L"cocoa_2"}; const std::wstring CocoaTile::TEXTURE_AGES[] = { L"cocoa_0", L"cocoa_1", L"cocoa_2"};
CocoaTile::CocoaTile(int id) : DirectionalTile(id, Material::plant, isSolidRender() ) CocoaTile::CocoaTile(int id) : DirectionalTile(id, Material::plant, false)
{ {
setTicking(true); setTicking(true);
} }
@ -173,4 +173,4 @@ void CocoaTile::registerIcons(IconRegister *iconRegister)
{ {
icons[i] = iconRegister->registerIcon(TEXTURE_AGES[i]); icons[i] = iconRegister->registerIcon(TEXTURE_AGES[i]);
} }
} }

View file

@ -9,7 +9,7 @@
const double DiodeTile::DELAY_RENDER_OFFSETS[4] = { -1.0f / 16.0f, 1.0f / 16.0f, 3.0f / 16.0f, 5.0f / 16.0f }; const double DiodeTile::DELAY_RENDER_OFFSETS[4] = { -1.0f / 16.0f, 1.0f / 16.0f, 3.0f / 16.0f, 5.0f / 16.0f };
const int DiodeTile::DELAYS[4] = { 1, 2, 3, 4 }; const int DiodeTile::DELAYS[4] = { 1, 2, 3, 4 };
DiodeTile::DiodeTile(int id, bool on) : DirectionalTile(id, Material::decoration,isSolidRender()) DiodeTile::DiodeTile(int id, bool on) : DirectionalTile(id, Material::decoration, false)
{ {
this->on = on; this->on = on;
updateDefaultShape(); updateDefaultShape();

View file

@ -10,7 +10,7 @@
const std::wstring DoorTile::TEXTURES[] = { L"doorWood_lower", L"doorWood_upper", L"doorIron_lower", L"doorIron_upper" }; const std::wstring DoorTile::TEXTURES[] = { L"doorWood_lower", L"doorWood_upper", L"doorIron_lower", L"doorIron_upper" };
DoorTile::DoorTile(int id, Material *material) : Tile(id, material,isSolidRender()) DoorTile::DoorTile(int id, Material *material) : Tile(id, material, false)
{ {
icons = NULL; icons = NULL;

View file

@ -4,7 +4,7 @@
#include "../Headers/net.minecraft.world.level.tile.h" #include "../Headers/net.minecraft.world.level.tile.h"
#include "../Headers/net.minecraft.world.entity.item.h" #include "../Headers/net.minecraft.world.entity.item.h"
EggTile::EggTile(int id) : Tile(id, Material::egg, isSolidRender()) EggTile::EggTile(int id) : Tile(id, Material::egg, false)
{ {
} }
@ -170,4 +170,4 @@ void EggTile::generateTeleportParticles(Level *level,int xt,int yt, int zt,int d
bool EggTile::shouldRenderFace(LevelSource *level, int x, int y, int z, int face) bool EggTile::shouldRenderFace(LevelSource *level, int x, int y, int z, int face)
{ {
return true; return true;
} }

View file

@ -9,7 +9,7 @@ const std::wstring EnchantmentTableTile::TEXTURE_SIDE = L"enchantment_side";
const std::wstring EnchantmentTableTile::TEXTURE_TOP = L"enchantment_top"; const std::wstring EnchantmentTableTile::TEXTURE_TOP = L"enchantment_top";
const std::wstring EnchantmentTableTile::TEXTURE_BOTTOM = L"enchantment_bottom"; const std::wstring EnchantmentTableTile::TEXTURE_BOTTOM = L"enchantment_bottom";
EnchantmentTableTile::EnchantmentTableTile(int id) : EntityTile(id, Material::stone, isSolidRender()) EnchantmentTableTile::EnchantmentTableTile(int id) : EntityTile(id, Material::stone, false)
{ {
updateDefaultShape(); updateDefaultShape();
setLightBlock(0); setLightBlock(0);

View file

@ -7,7 +7,7 @@
#include "../Headers/net.minecraft.h" #include "../Headers/net.minecraft.h"
#include "EnderChestTile.h" #include "EnderChestTile.h"
EnderChestTile::EnderChestTile(int id) : EntityTile(id, Material::stone, isSolidRender()) EnderChestTile::EnderChestTile(int id) : EntityTile(id, Material::stone, false)
{ {
updateDefaultShape(); updateDefaultShape();
} }

View file

@ -6,7 +6,7 @@
#include "FarmTile.h" #include "FarmTile.h"
FarmTile::FarmTile(int id) : Tile(id, Material::dirt,isSolidRender()) FarmTile::FarmTile(int id) : Tile(id, Material::dirt, false)
{ {
iconWet = NULL; iconWet = NULL;
iconDry = NULL; iconDry = NULL;

View file

@ -5,7 +5,7 @@
#include "../Headers/net.minecraft.h" #include "../Headers/net.minecraft.h"
#include "../Level/Events/LevelEvent.h" #include "../Level/Events/LevelEvent.h"
FenceGateTile::FenceGateTile(int id) : DirectionalTile(id, Material::wood, isSolidRender() ) FenceGateTile::FenceGateTile(int id) : DirectionalTile(id, Material::wood, false)
{ {
} }
@ -144,4 +144,4 @@ void FenceGateTile::registerIcons(IconRegister *iconRegister)
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)
{ {
return true; return true;
} }

View file

@ -4,7 +4,7 @@
#include "../Headers/net.minecraft.world.h" #include "../Headers/net.minecraft.world.h"
#include "FenceTile.h" #include "FenceTile.h"
FenceTile::FenceTile(int id, const std::wstring &texture, Material *material) : Tile( id, material, isSolidRender()) FenceTile::FenceTile(int id, const std::wstring &texture, Material *material) : Tile( id, material, false)
{ {
this->texture = texture; this->texture = texture;
} }
@ -129,4 +129,4 @@ void FenceTile::registerIcons(IconRegister *iconRegister)
bool FenceTile::shouldRenderFace(LevelSource *level, int x, int y, int z, int face) bool FenceTile::shouldRenderFace(LevelSource *level, int x, int y, int z, int face)
{ {
return true; return true;
} }

View file

@ -16,7 +16,7 @@
const std::wstring FireTile::TEXTURE_FIRST = L"fire_0"; const std::wstring FireTile::TEXTURE_FIRST = L"fire_0";
const std::wstring FireTile::TEXTURE_SECOND = L"fire_1"; const std::wstring FireTile::TEXTURE_SECOND = L"fire_1";
FireTile::FireTile(int id) : Tile(id, Material::fire,isSolidRender()) FireTile::FireTile(int id) : Tile(id, Material::fire, false)
{ {
flameOdds = new int[256]; flameOdds = new int[256];
memset( flameOdds,0,sizeof(int)*256); memset( flameOdds,0,sizeof(int)*256);

View file

@ -5,7 +5,7 @@
#include "../Headers/net.minecraft.world.level.tile.h" #include "../Headers/net.minecraft.world.level.tile.h"
#include "FlowerPotTile.h" #include "FlowerPotTile.h"
FlowerPotTile::FlowerPotTile(int id) : Tile(id, Material::decoration, isSolidRender() ) FlowerPotTile::FlowerPotTile(int id) : Tile(id, Material::decoration, false)
{ {
updateDefaultShape(); updateDefaultShape();
sendTileData(); sendTileData();
@ -189,4 +189,4 @@ int FlowerPotTile::getTypeFromItem(std::shared_ptr<ItemInstance> item)
} }
return 0; return 0;
} }

View file

@ -3,7 +3,7 @@
#include "../Headers/net.minecraft.world.h" #include "../Headers/net.minecraft.world.h"
#include "HalfTransparentTile.h" #include "HalfTransparentTile.h"
HalfTransparentTile::HalfTransparentTile(int id, const std::wstring &tex, Material *material, bool allowSame) : Tile(id,material,isSolidRender()) HalfTransparentTile::HalfTransparentTile(int id, const std::wstring &tex, Material *material, bool allowSame) : Tile(id,material, false)
{ {
this->allowSame = allowSame; this->allowSame = allowSame;
this->texture = tex; this->texture = tex;
@ -29,4 +29,4 @@ bool HalfTransparentTile::blocksLight()
void HalfTransparentTile::registerIcons(IconRegister *iconRegister) void HalfTransparentTile::registerIcons(IconRegister *iconRegister)
{ {
icon = iconRegister->registerIcon(texture); icon = iconRegister->registerIcon(texture);
} }

View file

@ -3,7 +3,7 @@
#include "LadderTile.h" #include "LadderTile.h"
LadderTile::LadderTile(int id) : Tile(id, Material::decoration,isSolidRender()) LadderTile::LadderTile(int id) : Tile(id, Material::decoration, false)
{ {
} }
@ -109,4 +109,4 @@ void LadderTile::neighborChanged(Level *level, int x, int y, int z, int type)
int LadderTile::getResourceCount(Random* random) int LadderTile::getResourceCount(Random* random)
{ {
return 1; return 1;
} }

View file

@ -15,7 +15,11 @@ const unsigned int LeafTile::LEAF_NAMES[LEAF_NAMES_LENGTH] = { IDS_TILE_LEAVES_O
const std::wstring LeafTile::TEXTURES[2][4] = { {L"leaves", L"leaves_spruce", L"leaves", L"leaves_jungle"}, {L"leaves_opaque", L"leaves_spruce_opaque", L"leaves_opaque", L"leaves_jungle_opaque"},}; const std::wstring LeafTile::TEXTURES[2][4] = { {L"leaves", L"leaves_spruce", L"leaves", L"leaves_jungle"}, {L"leaves_opaque", L"leaves_spruce_opaque", L"leaves_opaque", L"leaves_jungle_opaque"},};
LeafTile::LeafTile(int id) : TransparentTile(id, Material::leaves, false, isSolidRender()) // 4jcraft, this is the unitinialized vpointer fiassco of isSolidRender()
// isSolidRender() returns !allowSame if !isServerLevel, else true
// scince allowSame for TransparentTile right here is set to false
// setting isSolidRender to true by default totally correct.
LeafTile::LeafTile(int id) : TransparentTile(id, Material::leaves, false, true)
{ {
checkBuffer = NULL; checkBuffer = NULL;
fancyTextureSet = 0; fancyTextureSet = 0;

View file

@ -4,7 +4,7 @@
#include "LeverTile.h" #include "LeverTile.h"
#include "../Util/SoundTypes.h" #include "../Util/SoundTypes.h"
LeverTile::LeverTile(int id) : Tile(id, Material::decoration,isSolidRender()) LeverTile::LeverTile(int id) : Tile(id, Material::decoration, false)
{ {
} }

View file

@ -12,7 +12,7 @@ const std::wstring LiquidTile::TEXTURE_WATER_STILL = L"water";
const std::wstring LiquidTile::TEXTURE_WATER_FLOW = L"water_flow"; const std::wstring LiquidTile::TEXTURE_WATER_FLOW = L"water_flow";
const std::wstring LiquidTile::TEXTURE_LAVA_FLOW = L"lava_flow"; const std::wstring LiquidTile::TEXTURE_LAVA_FLOW = L"lava_flow";
LiquidTile::LiquidTile(int id, Material *material) : Tile(id, material,isSolidRender()) LiquidTile::LiquidTile(int id, Material *material) : Tile(id, material, false)
{ {
float yo = 0; float yo = 0;
float e = 0; float e = 0;

View file

@ -3,7 +3,7 @@
#include "../Headers/net.minecraft.world.level.tile.entity.h" #include "../Headers/net.minecraft.world.level.tile.entity.h"
#include "MobSpawnerTile.h" #include "MobSpawnerTile.h"
MobSpawnerTile::MobSpawnerTile(int id) : EntityTile(id, Material::stone, isSolidRender() ) MobSpawnerTile::MobSpawnerTile(int id) : EntityTile(id, Material::stone, false)
{ {
} }
@ -46,4 +46,4 @@ void MobSpawnerTile::spawnResources(Level *level, int x, int y, int z, int data,
int MobSpawnerTile::cloneTileId(Level *level, int x, int y, int z) int MobSpawnerTile::cloneTileId(Level *level, int x, int y, int z)
{ {
return 0; return 0;
} }

View file

@ -36,7 +36,7 @@ void PistonBaseTile::ignoreUpdate(bool set)
TlsSetValue(tlsIdx,(LPVOID)(intptr_t)(set?1:0)); TlsSetValue(tlsIdx,(LPVOID)(intptr_t)(set?1:0));
} }
PistonBaseTile::PistonBaseTile(int id, bool isSticky) : Tile(id, Material::piston, isSolidRender() ) PistonBaseTile::PistonBaseTile(int id, bool isSticky) : Tile(id, Material::piston, false)
{ {
// 4J - added initialiser // 4J - added initialiser
ignoreUpdate(false); ignoreUpdate(false);

View file

@ -4,7 +4,7 @@
#include "../Util/Facing.h" #include "../Util/Facing.h"
#include "../Headers/net.minecraft.world.level.h" #include "../Headers/net.minecraft.world.level.h"
PistonExtensionTile::PistonExtensionTile(int id) : Tile(id, Material::piston,isSolidRender() ) PistonExtensionTile::PistonExtensionTile(int id) : Tile(id, Material::piston, false)
{ {
// 4J added initialiser // 4J added initialiser
overrideTopTexture = NULL; overrideTopTexture = NULL;
@ -207,4 +207,4 @@ int PistonExtensionTile::getFacing(int data)
int PistonExtensionTile::cloneTileId(Level *level, int x, int y, int z) int PistonExtensionTile::cloneTileId(Level *level, int x, int y, int z)
{ {
return 0; return 0;
} }

View file

@ -6,7 +6,7 @@
#include "../Util/Facing.h" #include "../Util/Facing.h"
#include "../Util/AABB.h" #include "../Util/AABB.h"
PistonMovingPiece::PistonMovingPiece(int id) : EntityTile(id, Material::piston, isSolidRender() ) PistonMovingPiece::PistonMovingPiece(int id) : EntityTile(id, Material::piston, false )
{ {
setDestroyTime(INDESTRUCTIBLE_DESTROY_TIME); setDestroyTime(INDESTRUCTIBLE_DESTROY_TIME);
} }

View file

@ -9,12 +9,12 @@ void Bush::_init()
updateDefaultShape(); updateDefaultShape();
} }
Bush::Bush(int id, Material *material) : Tile(id, material, isSolidRender()) Bush::Bush(int id, Material *material) : Tile(id, material, false)
{ {
_init(); _init();
} }
Bush::Bush(int id) : Tile(id, Material::plant, isSolidRender()) Bush::Bush(int id) : Tile(id, Material::plant, false)
{ {
_init(); _init();
} }

View file

@ -7,7 +7,7 @@
#include "PressurePlateTile.h" #include "PressurePlateTile.h"
#include "../Util/SoundTypes.h" #include "../Util/SoundTypes.h"
PressurePlateTile::PressurePlateTile(int id, const std::wstring &tex, Material *material, Sensitivity sensitivity) : Tile(id, material, isSolidRender()) PressurePlateTile::PressurePlateTile(int id, const std::wstring &tex, Material *material, Sensitivity sensitivity) : Tile(id, material, false)
{ {
this->sensitivity = sensitivity; this->sensitivity = sensitivity;
this->setTicking(true); this->setTicking(true);
@ -208,4 +208,4 @@ int PressurePlateTile::getPistonPushReaction()
void PressurePlateTile::registerIcons(IconRegister *iconRegister) void PressurePlateTile::registerIcons(IconRegister *iconRegister)
{ {
icon = iconRegister->registerIcon(texture); icon = iconRegister->registerIcon(texture);
} }

View file

@ -363,7 +363,9 @@ bool RailTile::isRail(int id)
return id == Tile::rail_Id || id == Tile::goldenRail_Id || id == Tile::detectorRail_Id; return id == Tile::rail_Id || id == Tile::goldenRail_Id || id == Tile::detectorRail_Id;
} }
RailTile::RailTile(int id, bool usesDataBit) : Tile(id, Material::decoration, isSolidRender()) // 4jcraft, changed from isSolidRender() to false, _init was changed by 4jstudios
// to take in a bool to avoid calling isSolidRender before the vptr is set,
RailTile::RailTile(int id, bool usesDataBit) : Tile(id, Material::decoration, false)
{ {
this->usesDataBit = usesDataBit; this->usesDataBit = usesDataBit;
this->setShape(0, 0, 0, 1, 2 / 16.0f, 1); this->setShape(0, 0, 0, 1, 2 / 16.0f, 1);
@ -673,4 +675,4 @@ void RailTile::registerIcons(IconRegister *iconRegister)
{ {
iconTurn = iconRegister->registerIcon(L"rail_turn"); iconTurn = iconRegister->registerIcon(L"rail_turn");
} }
} }

View file

@ -16,7 +16,7 @@ const std::wstring RedStoneDustTile::TEXTURE_LINE = L"redstoneDust_line";
const std::wstring RedStoneDustTile::TEXTURE_CROSS_OVERLAY = L"redstoneDust_cross_overlay"; const std::wstring RedStoneDustTile::TEXTURE_CROSS_OVERLAY = L"redstoneDust_cross_overlay";
const std::wstring RedStoneDustTile::TEXTURE_LINE_OVERLAY = L"redstoneDust_line_overlay"; const std::wstring RedStoneDustTile::TEXTURE_LINE_OVERLAY = L"redstoneDust_line_overlay";
RedStoneDustTile::RedStoneDustTile(int id) : Tile(id, Material::decoration,isSolidRender()) RedStoneDustTile::RedStoneDustTile(int id) : Tile(id, Material::decoration, false)
{ {
shouldSignal = true; shouldSignal = true;

View file

@ -6,7 +6,7 @@
#include "../Headers/net.minecraft.world.phys.h" #include "../Headers/net.minecraft.world.phys.h"
#include "ReedTile.h" #include "ReedTile.h"
ReedTile::ReedTile(int id) : Tile( id, Material::plant,isSolidRender() ) ReedTile::ReedTile(int id) : Tile( id, Material::plant, false)
{ {
this->updateDefaultShape(); this->updateDefaultShape();
this->setTicking(true); this->setTicking(true);

View file

@ -5,7 +5,7 @@
#include "TileEntities/SignTileEntity.h" #include "TileEntities/SignTileEntity.h"
#include "SignTile.h" #include "SignTile.h"
SignTile::SignTile(int id, eINSTANCEOF clas, bool onGround) : EntityTile(id, Material::wood, isSolidRender()) SignTile::SignTile(int id, eINSTANCEOF clas, bool onGround) : EntityTile(id, Material::wood, false)
{ {
this->onGround = onGround; this->onGround = onGround;
this->clas = clas; this->clas = clas;
@ -126,4 +126,4 @@ int SignTile::cloneTileId(Level *level, int x, int y, int z)
void SignTile::registerIcons(IconRegister *iconRegister) void SignTile::registerIcons(IconRegister *iconRegister)
{ {
// None // None
} }

View file

@ -5,7 +5,7 @@
#include "../Headers/net.minecraft.h" #include "../Headers/net.minecraft.h"
#include "SkullTile.h" #include "SkullTile.h"
SkullTile::SkullTile(int id) : EntityTile(id, Material::decoration, isSolidRender() ) SkullTile::SkullTile(int id) : EntityTile(id, Material::decoration, false)
{ {
setShape(4.0f / 16.0f, 0, 4.0f / 16.0f, 12.0f / 16.0f, .5f, 12.0f / 16.0f); setShape(4.0f / 16.0f, 0, 4.0f / 16.0f, 12.0f / 16.0f, .5f, 12.0f / 16.0f);
} }
@ -267,4 +267,4 @@ std::wstring SkullTile::getTileItemIconName()
{ {
return L""; return L"";
//return SkullItem::ICON_NAMES[0]; //return SkullItem::ICON_NAMES[0];
} }

View file

@ -10,7 +10,7 @@ int StairTile::DEAD_SPACES[8][2] = {
{0, 4}, {1, 5}, {0, 1}, {4, 5} {0, 4}, {1, 5}, {0, 1}, {4, 5}
}; };
StairTile::StairTile(int id, Tile *base,int basedata) : Tile(id, base->material, isSolidRender()) StairTile::StairTile(int id, Tile *base,int basedata) : Tile(id, base->material, false)
{ {
this->base = base; this->base = base;
this->basedata = basedata; this->basedata = basedata;

View file

@ -6,7 +6,7 @@
const std::wstring TheEndPortalFrameTile::TEXTURE_EYE = L"endframe_eye"; const std::wstring TheEndPortalFrameTile::TEXTURE_EYE = L"endframe_eye";
TheEndPortalFrameTile::TheEndPortalFrameTile(int id) : Tile(id, Material::glass, isSolidRender() ) TheEndPortalFrameTile::TheEndPortalFrameTile(int id) : Tile(id, Material::glass, false )
{ {
iconTop = NULL; iconTop = NULL;
iconEye = NULL; iconEye = NULL;

View file

@ -21,7 +21,7 @@ void TheEndPortal::allowAnywhere(bool set)
TlsSetValue(tlsIdx,(LPVOID)(intptr_t)(set?1:0)); TlsSetValue(tlsIdx,(LPVOID)(intptr_t)(set?1:0));
} }
TheEndPortal::TheEndPortal(int id, Material *material) : EntityTile(id, material, isSolidRender()) TheEndPortal::TheEndPortal(int id, Material *material) : EntityTile(id, material, false)
{ {
this->setLightEmission(1.0f); this->setLightEmission(1.0f);
} }

View file

@ -3,7 +3,7 @@
#include "../Headers/net.minecraft.world.level.h" #include "../Headers/net.minecraft.world.level.h"
#include "../Headers/net.minecraft.world.h" #include "../Headers/net.minecraft.world.h"
ThinFenceTile::ThinFenceTile(int id, const std::wstring &tex, const std::wstring &edgeTex, Material *material, bool dropsResources) : Tile(id, material,isSolidRender()) ThinFenceTile::ThinFenceTile(int id, const std::wstring &tex, const std::wstring &edgeTex, Material *material, bool dropsResources) : Tile(id, material, false)
{ {
iconSide = NULL; iconSide = NULL;
edgeTexture = edgeTex; edgeTexture = edgeTex;

View file

@ -13,7 +13,7 @@ const int TopSnowTile::MAX_HEIGHT = 6;
const int TopSnowTile::HEIGHT_MASK = 7; // max 8 steps const int TopSnowTile::HEIGHT_MASK = 7; // max 8 steps
TopSnowTile::TopSnowTile(int id) : Tile(id, Material::topSnow,isSolidRender()) TopSnowTile::TopSnowTile(int id) : Tile(id, Material::topSnow, false)
{ {
setShape(0, 0, 0, 1, 2 / 16.0f, 1); setShape(0, 0, 0, 1, 2 / 16.0f, 1);
setTicking(true); setTicking(true);

View file

@ -4,7 +4,7 @@
#include "../Headers/net.minecraft.world.level.tile.h" #include "../Headers/net.minecraft.world.level.tile.h"
#include "TorchTile.h" #include "TorchTile.h"
TorchTile::TorchTile(int id) : Tile(id, Material::decoration,isSolidRender()) TorchTile::TorchTile(int id) : Tile(id, Material::decoration, false)
{ {
this->setTicking(true); this->setTicking(true);
} }

View file

@ -6,7 +6,7 @@
#include "TrapDoorTile.h" #include "TrapDoorTile.h"
TrapDoorTile::TrapDoorTile(int id, Material *material) : Tile(id, material,isSolidRender()) TrapDoorTile::TrapDoorTile(int id, Material *material) : Tile(id, material, false)
{ {
float r = 0.5f; float r = 0.5f;
float h = 1.0f; float h = 1.0f;
@ -206,4 +206,4 @@ bool TrapDoorTile::attachesTo(int id)
Tile *tile = Tile::tiles[id]; Tile *tile = Tile::tiles[id];
return tile != NULL && (tile->material->isSolidBlocking() && tile->isCubeShaped()) || tile == Tile::lightGem || (dynamic_cast<HalfSlabTile *>(tile) != NULL) || (dynamic_cast<StairTile *>(tile) != NULL); return tile != NULL && (tile->material->isSolidBlocking() && tile->isCubeShaped()) || tile == Tile::lightGem || (dynamic_cast<HalfSlabTile *>(tile) != NULL) || (dynamic_cast<StairTile *>(tile) != NULL);
} }

View file

@ -4,7 +4,7 @@
#include "../Headers/net.minecraft.world.level.tile.h" #include "../Headers/net.minecraft.world.level.tile.h"
#include "TripWireSourceTile.h" #include "TripWireSourceTile.h"
TripWireSourceTile::TripWireSourceTile(int id) : Tile(id, Material::decoration, isSolidRender()) TripWireSourceTile::TripWireSourceTile(int id) : Tile(id, Material::decoration, false)
{ {
this->setTicking(true); this->setTicking(true);
} }

View file

@ -5,7 +5,7 @@
#include "../Headers/net.minecraft.world.phys.h" #include "../Headers/net.minecraft.world.phys.h"
#include "TripWireTile.h" #include "TripWireTile.h"
TripWireTile::TripWireTile(int id) : Tile(id, Material::decoration, isSolidRender()) TripWireTile::TripWireTile(int id) : Tile(id, Material::decoration, false)
{ {
setShape(0, 0, 0, 1, 2.5f / 16.0f, 1); setShape(0, 0, 0, 1, 2.5f / 16.0f, 1);
this->setTicking(true); this->setTicking(true);

View file

@ -8,7 +8,7 @@
#include "../Headers/net.minecraft.stats.h" #include "../Headers/net.minecraft.stats.h"
#include "../Headers/net.minecraft.world.level.biome.h" #include "../Headers/net.minecraft.world.level.biome.h"
VineTile::VineTile(int id) : Tile(id, Material::replaceable_plant, isSolidRender() ) VineTile::VineTile(int id) : Tile(id, Material::replaceable_plant, false)
{ {
setTicking(true); setTicking(true);
} }

View file

@ -15,7 +15,7 @@ const unsigned int WallTile::COBBLE_NAMES[2] = { IDS_TILE_COBBLESTONE_WALL,
IDS_TILE_COBBLESTONE_WALL_MOSSY, IDS_TILE_COBBLESTONE_WALL_MOSSY,
}; };
WallTile::WallTile(int id, Tile *baseTile) : Tile(id, baseTile->material, isSolidRender()) WallTile::WallTile(int id, Tile *baseTile) : Tile(id, baseTile->material, false)
{ {
setDestroyTime(baseTile->destroySpeed); setDestroyTime(baseTile->destroySpeed);
setExplodeable(baseTile->explosionResistance / 3); setExplodeable(baseTile->explosionResistance / 3);

View file

@ -4,7 +4,7 @@
#include "../Util/SharedConstants.h" #include "../Util/SharedConstants.h"
#include "WoolCarpetTile.h" #include "WoolCarpetTile.h"
WoolCarpetTile::WoolCarpetTile(int id) : Tile(id, Material::clothDecoration, isSolidRender() ) WoolCarpetTile::WoolCarpetTile(int id) : Tile(id, Material::clothDecoration, false)
{ {
setShape(0, 0, 0, 1, 1 / 16.0f, 1); setShape(0, 0, 0, 1, 1 / 16.0f, 1);
setTicking(true); setTicking(true);