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.world.level.h"
3#include "net.minecraft.world.level.tile.h"
4#include "MinecartSpawner.h"
5
6MinecartSpawner::MinecartMobSpawner::MinecartMobSpawner(MinecartSpawner *parent)
7{
8 m_parent = parent;
9}
10
11void MinecartSpawner::MinecartMobSpawner::broadcastEvent(int id)
12{
13 m_parent->level->broadcastEntityEvent(m_parent->shared_from_this(), (byte) id);
14}
15
16Level *MinecartSpawner::MinecartMobSpawner::getLevel()
17{
18 return m_parent->level;
19}
20
21int MinecartSpawner::MinecartMobSpawner::getX()
22{
23 return Mth::floor(m_parent->x);
24}
25
26int MinecartSpawner::MinecartMobSpawner::getY()
27{
28 return Mth::floor(m_parent->y);
29}
30
31int MinecartSpawner::MinecartMobSpawner::getZ()
32{
33 return Mth::floor(m_parent->z);
34}
35
36MinecartSpawner::MinecartSpawner(Level *level) : Minecart(level)
37{
38 // 4J Stu - This function call had to be moved here from the Entity ctor to ensure that
39 // the derived version of the function is called
40 this->defineSynchedData();
41
42 spawner = new MinecartMobSpawner(this);
43}
44
45MinecartSpawner::MinecartSpawner(Level *level, double x, double y, double z) : Minecart(level, x, y, z)
46{
47 // 4J Stu - This function call had to be moved here from the Entity ctor to ensure that
48 // the derived version of the function is called
49 this->defineSynchedData();
50
51 spawner = new MinecartMobSpawner(this);
52}
53
54MinecartSpawner::~MinecartSpawner()
55{
56 delete spawner;
57}
58
59int MinecartSpawner::getType()
60{
61 return TYPE_SPAWNER;
62}
63
64Tile *MinecartSpawner::getDefaultDisplayTile()
65{
66 return Tile::mobSpawner;
67}
68
69void MinecartSpawner::readAdditionalSaveData(CompoundTag *tag)
70{
71 Minecart::readAdditionalSaveData(tag);
72 spawner->load(tag);
73}
74
75void MinecartSpawner::addAdditonalSaveData(CompoundTag *tag)
76{
77 Minecart::addAdditonalSaveData(tag);
78 spawner->save(tag);
79}
80
81void MinecartSpawner::handleEntityEvent(byte eventId)
82{
83 spawner->onEventTriggered(eventId);
84}
85
86void MinecartSpawner::tick()
87{
88 Minecart::tick();
89 spawner->tick();
90}
91
92BaseMobSpawner *MinecartSpawner::getSpawner()
93{
94 return spawner;
95}