the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "net.minecraft.network.packet.h"
3#include "net.minecraft.world.level.h"
4#include "net.minecraft.world.level.tile.h"
5#include "MobSpawnerTileEntity.h"
6
7MobSpawnerTileEntity::TileEntityMobSpawner::TileEntityMobSpawner(MobSpawnerTileEntity *parent)
8{
9 m_parent = parent;
10}
11
12void MobSpawnerTileEntity::TileEntityMobSpawner::broadcastEvent(int id)
13{
14 m_parent->level->tileEvent(m_parent->x, m_parent->y, m_parent->z, Tile::mobSpawner_Id, id, 0);
15}
16
17Level *MobSpawnerTileEntity::TileEntityMobSpawner::getLevel()
18{
19 return m_parent->level;
20}
21
22int MobSpawnerTileEntity::TileEntityMobSpawner::getX()
23{
24 return m_parent->x;
25}
26
27int MobSpawnerTileEntity::TileEntityMobSpawner::getY()
28{
29 return m_parent->y;
30}
31
32int MobSpawnerTileEntity::TileEntityMobSpawner::getZ()
33{
34 return m_parent->z;
35}
36
37void MobSpawnerTileEntity::TileEntityMobSpawner::setNextSpawnData(BaseMobSpawner::SpawnData *nextSpawnData)
38{
39 BaseMobSpawner::setNextSpawnData(nextSpawnData);
40 if (getLevel() != NULL) getLevel()->sendTileUpdated(m_parent->x, m_parent->y, m_parent->z);
41}
42
43MobSpawnerTileEntity::MobSpawnerTileEntity()
44{
45 spawner = new TileEntityMobSpawner(this);
46}
47
48MobSpawnerTileEntity::~MobSpawnerTileEntity()
49{
50 delete spawner;
51}
52
53void MobSpawnerTileEntity::load(CompoundTag *tag)
54{
55 TileEntity::load(tag);
56 spawner->load(tag);
57}
58
59void MobSpawnerTileEntity::save(CompoundTag *tag)
60{
61 TileEntity::save(tag);
62 spawner->save(tag);
63}
64
65void MobSpawnerTileEntity::tick()
66{
67 spawner->tick();
68 TileEntity::tick();
69}
70
71shared_ptr<Packet> MobSpawnerTileEntity::getUpdatePacket()
72{
73 CompoundTag *tag = new CompoundTag();
74 save(tag);
75 tag->remove(L"SpawnPotentials");
76 return shared_ptr<TileEntityDataPacket>( new TileEntityDataPacket(x, y, z, TileEntityDataPacket::TYPE_MOB_SPAWNER, tag) );
77}
78
79bool MobSpawnerTileEntity::triggerEvent(int b0, int b1)
80{
81 if (spawner->onEventTriggered(b0)) return true;
82 return TileEntity::triggerEvent(b0, b1);
83}
84
85BaseMobSpawner *MobSpawnerTileEntity::getSpawner()
86{
87 return spawner;
88}
89
90// 4J Added
91shared_ptr<TileEntity> MobSpawnerTileEntity::clone()
92{
93 shared_ptr<MobSpawnerTileEntity> result = shared_ptr<MobSpawnerTileEntity>( new MobSpawnerTileEntity() );
94 TileEntity::clone(result);
95
96 return result;
97}
98
99void MobSpawnerTileEntity::setEntityId(const wstring &id)
100{
101 spawner->setEntityId(id);
102}