mirror of
https://github.com/DrPerkyLegit/LCEServerTest.git
synced 2026-06-02 00:44:35 +00:00
dark oak and acacia (leaves/logs/planks)
This commit is contained in:
132
Minecraft.World/LeafTile2.cpp
Normal file
132
Minecraft.World/LeafTile2.cpp
Normal file
@@ -0,0 +1,132 @@
|
||||
#include "stdafx.h"
|
||||
#include "LeafTile2.h"
|
||||
#include "net.minecraft.world.level.tile.h"
|
||||
#include "net.minecraft.world.level.h"
|
||||
#include "net.minecraft.world.item.h"
|
||||
#include "net.minecraft.world.entity.player.h"
|
||||
#include "net.minecraft.stats.h"
|
||||
#include "net.minecraft.world.level.biome.h"
|
||||
#include "FoliageColor.h"
|
||||
#include "IconRegister.h"
|
||||
|
||||
const unsigned int LeafTile2::LEAF2_NAMES[LEAF2_NAMES_SIZE] = { -1, -1};
|
||||
|
||||
const wstring LeafTile2::TEXTURES[2][2] = {
|
||||
{ L"leaves_acacia", L"leaves_dark_oak" }, // Indice 0: Fancy
|
||||
{ L"leaves_acacia_opaque", L"leaves_dark_oak_opaque" } // Indice 1: Veloce/Opaca
|
||||
};
|
||||
|
||||
LeafTile2::LeafTile2(int id) : LeafTile(id)
|
||||
{
|
||||
// Non serve fare checkBuffer qui, ci pensa gi? la classe padre LeafTile!
|
||||
}
|
||||
|
||||
Icon* LeafTile2::getTexture(int face, int data)
|
||||
{
|
||||
int type = data & 3;
|
||||
if (type >= LEAF2_NAMES_SIZE) type = 0;
|
||||
|
||||
// isSolidRender() in LeafTile restituisce 'true' se la grafica ? su Veloce/Opaca.
|
||||
// Quindi se ? true usiamo l'indice 1, se ? false (Trasparente) usiamo l'indice 0.
|
||||
int textureSet = isSolidRender(false) ? 1 : 0;
|
||||
|
||||
return icons[textureSet][type];
|
||||
}
|
||||
|
||||
unsigned int LeafTile2::getDescriptionId(int iData)
|
||||
{
|
||||
int type = iData & 3;
|
||||
if (type < 0 || type >= LEAF2_NAMES_SIZE) type = 0;
|
||||
return LeafTile2::LEAF2_NAMES[type];
|
||||
}
|
||||
|
||||
void LeafTile2::registerIcons(IconRegister* iconRegister)
|
||||
{
|
||||
for (int fancy = 0; fancy < 2; fancy++)
|
||||
{
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
icons[fancy][i] = iconRegister->registerIcon(TEXTURES[fancy][i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int LeafTile2::getColor(int data)
|
||||
{
|
||||
// In inventario o in mano, l'Acacia e la Dark Oak usano il verde base
|
||||
return FoliageColor::getDefaultColor();
|
||||
}
|
||||
|
||||
int LeafTile2::getColor(LevelSource* level, int x, int y, int z, int data)
|
||||
{
|
||||
// Codice di blending per il colore del bioma (copiato dal tuo LeafTile.cpp)
|
||||
int totalRed = 0;
|
||||
int totalGreen = 0;
|
||||
int totalBlue = 0;
|
||||
|
||||
for (int oz = -1; oz <= 1; oz++)
|
||||
{
|
||||
for (int ox = -1; ox <= 1; ox++)
|
||||
{
|
||||
int foliageColor = level->getBiome(x + ox, z + oz)->getFolageColor(); // Attento, nel tuo engine si chiama getFolageColor() senza la 'i'
|
||||
totalRed += (foliageColor & 0xff0000) >> 16;
|
||||
totalGreen += (foliageColor & 0xff00) >> 8;
|
||||
totalBlue += (foliageColor & 0xff);
|
||||
}
|
||||
}
|
||||
|
||||
return (((totalRed / 9) & 0xFF) << 16) | (((totalGreen / 9) & 0xFF) << 8) | (((totalBlue / 9) & 0xFF));
|
||||
}
|
||||
|
||||
void LeafTile2::playerDestroy(Level* level, shared_ptr<Player> player, int x, int y, int z, int data)
|
||||
{
|
||||
// Se il giocatore usa le cesoie, vogliamo droppare "leaves2" (ID 161) e non "leaves" (ID 18)
|
||||
if (!level->isClientSide && player->getSelectedItem() != nullptr && player->getSelectedItem()->id == Item::shears->id)
|
||||
{
|
||||
player->awardStat(
|
||||
GenericStats::blocksMined(id),
|
||||
GenericStats::param_blocksMined(id, data, 1)
|
||||
);
|
||||
|
||||
popResource(level, x, y, z, std::make_shared<ItemInstance>(Tile::leaves_Id, 1, data & 3));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Altrimenti usa la distruzione standard di TransparentTile
|
||||
TransparentTile::playerDestroy(level, player, x, y, z, data);
|
||||
}
|
||||
}
|
||||
|
||||
void LeafTile2::spawnResources(Level* level, int x, int y, int z, int data, float odds, int playerBonusLevel) {
|
||||
if (!level->isClientSide)
|
||||
{
|
||||
int chance = 20;
|
||||
if (playerBonusLevel > 0)
|
||||
{
|
||||
chance -= 2 << playerBonusLevel;
|
||||
if (chance < 10) chance = 10;
|
||||
}
|
||||
|
||||
if (level->random->nextInt(chance) == 0)
|
||||
{
|
||||
|
||||
|
||||
popResource(level, x, y, z, std::make_shared<ItemInstance>(Tile::sapling_Id, 1, (data & 3) + 4));
|
||||
}
|
||||
|
||||
|
||||
if ((data & 3) == 1)
|
||||
{
|
||||
int appleChance = 200;
|
||||
if (playerBonusLevel > 0)
|
||||
{
|
||||
appleChance -= 10 << playerBonusLevel;
|
||||
if (appleChance < 40) appleChance = 40;
|
||||
}
|
||||
if (level->random->nextInt(appleChance) == 0)
|
||||
{
|
||||
popResource(level, x, y, z, std::make_shared<ItemInstance>(Item::apple_Id, 1, 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
34
Minecraft.World/LeafTile2.h
Normal file
34
Minecraft.World/LeafTile2.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include "LeafTile.h"
|
||||
|
||||
class IconRegister;
|
||||
class LeafTile2 : public LeafTile
|
||||
{
|
||||
public:
|
||||
static const int ACACIA_LEAF = 0;
|
||||
static const int DARK_OAK_LEAF = 1;
|
||||
|
||||
static const int LEAF2_NAMES_SIZE = 2;
|
||||
static const unsigned int LEAF2_NAMES[LEAF2_NAMES_SIZE];
|
||||
|
||||
private:
|
||||
//[0] = Fancy (Trasparenti), [1] = Fast (Opache)
|
||||
static const wstring TEXTURES[2][2];
|
||||
Icon* icons[2][2];
|
||||
|
||||
public:
|
||||
LeafTile2(int id);
|
||||
|
||||
virtual Icon* getTexture(int face, int data);
|
||||
virtual unsigned int getDescriptionId(int iData = -1);
|
||||
virtual void registerIcons(IconRegister* iconRegister);
|
||||
virtual void spawnResources(Level* level, int x, int y, int z, int data, float odds, int playerBonusLevel) override;
|
||||
|
||||
|
||||
virtual int getColor(int data);
|
||||
virtual int getColor(LevelSource* level, int x, int y, int z, int data);
|
||||
|
||||
|
||||
virtual void playerDestroy(Level* level, shared_ptr<Player> player, int x, int y, int z, int data);
|
||||
};
|
||||
@@ -62,6 +62,7 @@ Tile *Tile::ironOre = nullptr;
|
||||
Tile *Tile::coalOre = nullptr;
|
||||
Tile *Tile::treeTrunk = nullptr;
|
||||
LeafTile *Tile::leaves = nullptr;
|
||||
LeafTile2 *Tile::leaves2 = nullptr;
|
||||
Tile *Tile::sponge = nullptr;
|
||||
Tile *Tile::glass = nullptr;
|
||||
Tile *Tile::lapisOre = nullptr;
|
||||
@@ -215,6 +216,8 @@ Tile *Tile::dropper = nullptr;
|
||||
Tile *Tile::clayHardened_colored = nullptr;
|
||||
Tile *Tile::stained_glass_pane = nullptr;
|
||||
|
||||
Tile *Tile::tree2Trunk = nullptr;
|
||||
|
||||
Tile *Tile::hayBlock = nullptr;
|
||||
Tile *Tile::woolCarpet = nullptr;
|
||||
Tile *Tile::clayHardened = nullptr;
|
||||
@@ -278,6 +281,7 @@ void Tile::staticCtor()
|
||||
Tile::treeTrunk = (new TreeTile(17))->setDestroyTime(2.0f) ->setSoundType(Tile::SOUND_WOOD)->setIconName(L"log")->setDescriptionId(IDS_TILE_LOG)->sendTileData()->setUseDescriptionId(IDS_DESC_LOG);
|
||||
// 4J - for leaves, have specified that only the data bits that encode the type of leaf are important to be sent
|
||||
Tile::leaves = static_cast<LeafTile *>((new LeafTile(18))->setDestroyTime(0.2f)->setLightBlock(1)->setSoundType(Tile::SOUND_GRASS)->setIconName(L"leaves")->setDescriptionId(IDS_TILE_LEAVES)->sendTileData(LeafTile::LEAF_TYPE_MASK)->setUseDescriptionId(IDS_DESC_LEAVES));
|
||||
Tile::leaves2 = static_cast<LeafTile2 *>((new LeafTile2(161))->setDestroyTime(0.2f)->setLightBlock(1)->setSoundType(Tile::SOUND_GRASS)->setIconName(L"leaves_acacia")->setDescriptionId(IDS_TILE_LEAVES)->sendTileData(LeafTile::LEAF_TYPE_MASK)->setUseDescriptionId(IDS_DESC_LEAVES));
|
||||
Tile::sponge = (new Sponge(19)) ->setDestroyTime(0.6f)->setSoundType(Tile::SOUND_GRASS)->setIconName(L"sponge")->setDescriptionId(IDS_TILE_SPONGE)->setUseDescriptionId(IDS_DESC_SPONGE);
|
||||
Tile::glass = (new GlassTile(20, Material::glass, false)) ->setDestroyTime(0.3f)->setSoundType(Tile::SOUND_GLASS)->setIconName(L"glass")->setDescriptionId(IDS_TILE_GLASS)->setUseDescriptionId(IDS_DESC_GLASS);
|
||||
|
||||
@@ -436,6 +440,8 @@ void Tile::staticCtor()
|
||||
Tile::dropper = (new DropperTile(158)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_redstoneContainer, Item::eMaterial_undefined)->setDestroyTime(3.5f)->setSoundType(SOUND_STONE)->setIconName(L"dropper")->setDescriptionId(IDS_TILE_DROPPER)->setUseDescriptionId(IDS_DESC_DROPPER);
|
||||
Tile::clayHardened_colored = (new ColoredTile(159, Material::stone)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_clay, Item::eMaterial_clay)->setDestroyTime(1.25f)->setExplodeable(7)->setSoundType(SOUND_STONE)->setIconName(L"hardened_clay_stained")->setDescriptionId(IDS_TILE_STAINED_CLAY)->setUseDescriptionId(IDS_DESC_STAINED_CLAY);
|
||||
Tile::stained_glass_pane = (new StainedGlassPaneBlock(160)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_glass, Item::eMaterial_glass)->setDestroyTime(0.3f)->setSoundType(SOUND_GLASS)->setIconName(L"glass")->setDescriptionId(IDS_TILE_STAINED_GLASS_PANE)->setUseDescriptionId(IDS_DESC_STAINED_GLASS_PANE);
|
||||
|
||||
Tile::tree2Trunk = (new TreeTile2(162))->setDestroyTime(2.0f)->setSoundType(Tile::SOUND_WOOD)->setIconName(L"log")->setDescriptionId(IDS_TILE_LOG)->sendTileData()->setUseDescriptionId(IDS_DESC_LOG);
|
||||
|
||||
Tile::hayBlock = (new HayBlockTile(170)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_block, Item::eMaterial_wheat)->setDestroyTime(0.5f)->setSoundType(SOUND_GRASS)->setIconName(L"hay_block")->setDescriptionId(IDS_TILE_HAY)->setUseDescriptionId(IDS_DESC_HAY);
|
||||
Tile::woolCarpet = (new WoolCarpetTile(171)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_carpet, Item::eMaterial_cloth)->setDestroyTime(0.1f)->setSoundType(SOUND_CLOTH)->setIconName(L"woolCarpet")->setLightBlock(0)->setDescriptionId(IDS_TILE_CARPET)->setUseDescriptionId(IDS_DESC_CARPET);
|
||||
@@ -457,6 +463,7 @@ void Tile::staticCtor()
|
||||
Item::items[quartzBlock_Id] = ( new MultiTextureTileItem(quartzBlock_Id - 256, quartzBlock, QuartzBlockTile::BLOCK_NAMES, QuartzBlockTile::QUARTZ_BLOCK_NAMES) )->setIconName(L"quartzBlock")->setDescriptionId(IDS_TILE_QUARTZ_BLOCK)->setUseDescriptionId(IDS_DESC_QUARTZ_BLOCK);
|
||||
Item::items[stoneSlabHalf_Id] = ( new StoneSlabTileItem(Tile::stoneSlabHalf_Id - 256, Tile::stoneSlabHalf, Tile::stoneSlab, false) )->setIconName(L"stoneSlab")->setDescriptionId(IDS_TILE_STONESLAB)->setUseDescriptionId(IDS_DESC_HALFSLAB);
|
||||
Item::items[stoneSlab_Id] = ( new StoneSlabTileItem(Tile::stoneSlab_Id - 256, Tile::stoneSlabHalf, Tile::stoneSlab, true))->setIconName(L"stoneSlab")->setDescriptionId(IDS_DESC_STONESLAB)->setUseDescriptionId(IDS_DESC_SLAB);
|
||||
Item::items[tree2Trunk_Id] = ( new MultiTextureTileItem(Tile::tree2Trunk_Id - 256, tree2Trunk, (int*)TreeTile2::TREE_NAMES, TreeTile2::TREE_NAMES_LENGTH))->setIconName(L"log")->setDescriptionId(IDS_TILE_LOG)->setUseDescriptionId(IDS_DESC_LOG);
|
||||
Item::items[woodSlabHalf_Id] = ( new StoneSlabTileItem(Tile::woodSlabHalf_Id - 256, Tile::woodSlabHalf, Tile::woodSlab, false))->setIconName(L"woodSlab")->setDescriptionId(IDS_DESC_WOODSLAB)->setUseDescriptionId(IDS_DESC_WOODSLAB);
|
||||
Item::items[woodSlab_Id] = ( new StoneSlabTileItem(Tile::woodSlab_Id - 256, Tile::woodSlabHalf, Tile::woodSlab, true))->setIconName(L"woodSlab")->setDescriptionId(IDS_DESC_WOODSLAB)->setUseDescriptionId(IDS_DESC_WOODSLAB);
|
||||
Item::items[sapling_Id] = ( new MultiTextureTileItem(Tile::sapling_Id - 256, Tile::sapling, Sapling::SAPLING_NAMES, 4) )->setIconName(L"sapling")->setDescriptionId(IDS_TILE_SAPLING)->setUseDescriptionId(IDS_DESC_SAPLING);
|
||||
|
||||
@@ -7,6 +7,7 @@ using namespace std;
|
||||
|
||||
class GrassTile;
|
||||
class LeafTile;
|
||||
class LeafTile2;
|
||||
class TallGrass;
|
||||
class DeadBushTile;
|
||||
class FireTile;
|
||||
@@ -203,6 +204,8 @@ public:
|
||||
static const int coalOre_Id = 16;
|
||||
static const int treeTrunk_Id = 17;
|
||||
static const int leaves_Id = 18;
|
||||
static const int leaves2_Id = 161;
|
||||
|
||||
static const int sponge_Id = 19;
|
||||
static const int glass_Id = 20;
|
||||
|
||||
@@ -288,6 +291,7 @@ public:
|
||||
static const int diode_off_Id = 93;
|
||||
static const int diode_on_Id = 94;
|
||||
static const int stained_glass_Id = 95;
|
||||
static const int tree2Trunk_Id = 162;
|
||||
static const int trapdoor_Id = 96;
|
||||
static const int monsterStoneEgg_Id = 97;
|
||||
static const int stoneBrick_Id = 98;
|
||||
@@ -384,6 +388,7 @@ public:
|
||||
static Tile *coalOre;
|
||||
static Tile *treeTrunk;
|
||||
static LeafTile *leaves;
|
||||
static LeafTile2 *leaves2;
|
||||
static Tile *sponge;
|
||||
static Tile *glass;
|
||||
static Tile *lapisOre;
|
||||
@@ -535,6 +540,10 @@ public:
|
||||
static Tile *dropper;
|
||||
static Tile *clayHardened_colored;
|
||||
static Tile *stained_glass_pane;
|
||||
|
||||
|
||||
static Tile *tree2Trunk;
|
||||
|
||||
|
||||
static Tile *hayBlock;
|
||||
static Tile *woolCarpet;
|
||||
|
||||
82
Minecraft.World/TreeTile2.cpp
Normal file
82
Minecraft.World/TreeTile2.cpp
Normal file
@@ -0,0 +1,82 @@
|
||||
#include "stdafx.h"
|
||||
#include "net.minecraft.world.level.h"
|
||||
#include "net.minecraft.world.level.tile.piston.h"
|
||||
#include "net.minecraft.h"
|
||||
#include "net.minecraft.world.h"
|
||||
#include "LeafTile.h"
|
||||
|
||||
#include "TreeTile2.h"
|
||||
|
||||
const unsigned int TreeTile2::TREE_NAMES[TreeTile2::TREE_NAMES_LENGTH] = { -1, -1 };
|
||||
|
||||
const wstring TreeTile2::TREE_STRING_NAMES[TreeTile2::TREE_NAMES_LENGTH] = { L"acacia", L"dark" };
|
||||
|
||||
const wstring TreeTile2::TREE_TEXTURES[] = { L"tree_acacia", L"tree_dark" };
|
||||
|
||||
TreeTile2::TreeTile2(int id) : RotatedPillarTile(id, Material::wood)
|
||||
{
|
||||
}
|
||||
|
||||
int TreeTile2::getResourceCount(Random* random)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
int TreeTile2::getResource(int data, Random* random, int playerBonusLevel)
|
||||
{
|
||||
return Tile::tree2Trunk_Id;
|
||||
}
|
||||
|
||||
void TreeTile2::onRemove(Level* level, int x, int y, int z, int id, int data)
|
||||
{
|
||||
int r = LeafTile::REQUIRED_WOOD_RANGE;
|
||||
int r2 = r + 1;
|
||||
|
||||
if (level->hasChunksAt(x - r2, y - r2, z - r2, x + r2, y + r2, z + r2))
|
||||
{
|
||||
for (int xo = -r; xo <= r; xo++)
|
||||
for (int yo = -r; yo <= r; yo++)
|
||||
for (int zo = -r; zo <= r; zo++)
|
||||
{
|
||||
int t = level->getTile(x + xo, y + yo, z + zo);
|
||||
if (t == Tile::leaves_Id || t == Tile::leaves2_Id)
|
||||
{
|
||||
int currentData = level->getData(x + xo, y + yo, z + zo);
|
||||
if ((currentData & LeafTile::UPDATE_LEAF_BIT) == 0)
|
||||
{
|
||||
level->setData(x + xo, y + yo, z + zo, currentData | LeafTile::UPDATE_LEAF_BIT, Tile::UPDATE_NONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Icon* TreeTile2::getTypeTexture(int type)
|
||||
{
|
||||
return icons_side[type];
|
||||
}
|
||||
|
||||
Icon* TreeTile2::getTopTexture(int type)
|
||||
{
|
||||
return icons_top[type];
|
||||
}
|
||||
|
||||
int TreeTile2::getWoodType(int data)
|
||||
{
|
||||
return data & MASK_TYPE;
|
||||
}
|
||||
|
||||
shared_ptr<ItemInstance> TreeTile2::getSilkTouchItemInstance(int data)
|
||||
{
|
||||
// fix to avoid getting silktouched sideways logs
|
||||
return std::make_shared<ItemInstance>(id, 1, getWoodType(data));
|
||||
}
|
||||
|
||||
void TreeTile2::registerIcons(IconRegister* iconRegister)
|
||||
{
|
||||
for (int i = 0; i < TREE_NAMES_LENGTH; i++)
|
||||
{
|
||||
icons_side[i] = iconRegister->registerIcon(getIconName() + L"_" + TREE_STRING_NAMES[i]);
|
||||
icons_top[i] = iconRegister->registerIcon(getIconName() + L"_" + TREE_STRING_NAMES[i] + L"_top");
|
||||
}
|
||||
}
|
||||
53
Minecraft.World/TreeTile2.h
Normal file
53
Minecraft.World/TreeTile2.h
Normal file
@@ -0,0 +1,53 @@
|
||||
#pragma once
|
||||
|
||||
#include "RotatedPillarTile.h"
|
||||
|
||||
class ChunkRebuildData;
|
||||
class Player;
|
||||
|
||||
class TreeTile2 : public RotatedPillarTile
|
||||
{
|
||||
friend class Tile;
|
||||
friend class ChunkRebuildData;
|
||||
public:
|
||||
static const int ACACIA_TRUNK = 0;
|
||||
static const int DARK_TRUNK = 1;
|
||||
|
||||
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 TREE_NAMES_LENGTH = 2;
|
||||
|
||||
|
||||
static const unsigned int TREE_NAMES[TREE_NAMES_LENGTH];
|
||||
|
||||
static const wstring TREE_STRING_NAMES[TREE_NAMES_LENGTH];
|
||||
|
||||
static const wstring TREE_TEXTURES[];
|
||||
|
||||
private:
|
||||
Icon* icons_side[TREE_NAMES_LENGTH];
|
||||
Icon* icons_top[TREE_NAMES_LENGTH];
|
||||
|
||||
protected:
|
||||
TreeTile2(int id);
|
||||
|
||||
public:
|
||||
virtual int getResourceCount(Random* random);
|
||||
virtual int getResource(int data, Random* random, int playerBonusLevel);
|
||||
virtual void onRemove(Level* level, int x, int y, int z, int id, int data);
|
||||
|
||||
protected:
|
||||
virtual Icon* getTypeTexture(int type);
|
||||
virtual Icon* getTopTexture(int type);
|
||||
|
||||
public:
|
||||
static int getWoodType(int data);
|
||||
void registerIcons(IconRegister* iconRegister);
|
||||
|
||||
protected:
|
||||
virtual shared_ptr<ItemInstance> getSilkTouchItemInstance(int data);
|
||||
};
|
||||
@@ -57,6 +57,7 @@
|
||||
#include "JukeboxTile.h"
|
||||
#include "LadderTile.h"
|
||||
#include "LeafTile.h"
|
||||
#include "LeafTile2.h"
|
||||
#include "LevelEvent.h"
|
||||
#include "LeverTile.h"
|
||||
#include "LiquidTile.h"
|
||||
@@ -116,6 +117,7 @@
|
||||
#include "TransparentTile.h"
|
||||
#include "TrapDoorTile.h"
|
||||
#include "TreeTile.h"
|
||||
#include "TreeTile2.h"
|
||||
#include "TripWireSourceTile.h"
|
||||
#include "TripWireTile.h"
|
||||
#include "VineTile.h"
|
||||
|
||||
@@ -381,6 +381,7 @@ set(MINECRAFT_WORLD_SOURCES
|
||||
"LavaSlime.cpp"
|
||||
"Layer.cpp"
|
||||
"LeafTile.cpp"
|
||||
"LeafTile2.cpp"
|
||||
"LeafTileItem.cpp"
|
||||
"LeapAtTargetGoal.cpp"
|
||||
"LeashFenceKnotEntity.cpp"
|
||||
@@ -738,6 +739,7 @@ set(MINECRAFT_WORLD_SOURCES
|
||||
"TrapMenu.cpp"
|
||||
"TreeFeature.cpp"
|
||||
"TreeTile.cpp"
|
||||
"TreeTile2.cpp"
|
||||
"TripWireSourceTile.cpp"
|
||||
"TripWireTile.cpp"
|
||||
"UntouchingEnchantment.cpp"
|
||||
|
||||
Reference in New Issue
Block a user