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.h"
3#include "net.minecraft.world.phys.h"
4#include "net.minecraft.world.damagesource.h"
5#include "net.minecraft.world.level.tile.h"
6#include "net.minecraft.world.level.h"
7#include "SmallFireball.h"
8
9SmallFireball::SmallFireball(Level *level) : Fireball(level)
10{
11 setSize(5 / 16.0f, 5 / 16.0f);
12}
13
14SmallFireball::SmallFireball(Level *level, shared_ptr<LivingEntity> mob, double xa, double ya, double za) : Fireball(level, mob, xa, ya, za)
15{
16 setSize(5 / 16.0f, 5 / 16.0f);
17}
18
19SmallFireball::SmallFireball(Level *level, double x, double y, double z, double xa, double ya, double za) : Fireball(level, x, y, z, xa, ya, za)
20{
21 setSize(5 / 16.0f, 5 / 16.0f);
22}
23
24void SmallFireball::onHit(HitResult *res)
25{
26 if (!level->isClientSide)
27 {
28 if (res->entity != NULL)
29 {
30 DamageSource *damageSource = DamageSource::fireball(dynamic_pointer_cast<Fireball>(shared_from_this()),owner);
31 if (!res->entity->isFireImmune() && res->entity->hurt(damageSource, 5))
32 {
33 res->entity->setOnFire(5);
34 }
35 delete damageSource;
36 }
37 else
38 {
39 int tileX = res->x;
40 int tileY = res->y;
41 int tileZ = res->z;
42 switch (res->f)
43 {
44 case Facing::UP:
45 tileY++;
46 break;
47 case Facing::DOWN:
48 tileY--;
49 break;
50 case Facing::NORTH:
51 tileZ--;
52 break;
53 case Facing::SOUTH:
54 tileZ++;
55 break;
56 case Facing::EAST:
57 tileX++;
58 break;
59 case Facing::WEST:
60 tileX--;
61 break;
62 };
63 if (level->isEmptyTile(tileX, tileY, tileZ))
64 {
65 level->setTileAndUpdate(tileX, tileY, tileZ, Tile::fire_Id);
66 }
67 }
68 remove();
69 }
70}
71
72bool SmallFireball::isPickable()
73{
74 return false;
75}
76
77bool SmallFireball::hurt(DamageSource *source, float damage)
78{
79 return false;
80}