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.redstone.h"
4#include "PressurePlateTile.h"
5
6PressurePlateTile::PressurePlateTile(int id, const wstring &tex, Material *material, Sensitivity sensitivity) : BasePressurePlateTile(id, tex, material)
7{
8 this->sensitivity = sensitivity;
9
10 // 4J Stu - Move this from base class to use virtual function
11 updateShape(getDataForSignal(Redstone::SIGNAL_MAX));
12}
13
14int PressurePlateTile::getDataForSignal(int signal)
15{
16 return signal > 0 ? 1 : 0;
17}
18
19int PressurePlateTile::getSignalForData(int data)
20{
21 return data == 1 ? Redstone::SIGNAL_MAX : 0;
22}
23
24int PressurePlateTile::getSignalStrength(Level *level, int x, int y, int z)
25{
26 vector< shared_ptr<Entity> > *entities = NULL;
27
28 if (sensitivity == everything) entities = level->getEntities(nullptr, getSensitiveAABB(x, y, z));
29 else if (sensitivity == mobs) entities = level->getEntitiesOfClass(typeid(LivingEntity), getSensitiveAABB(x, y, z));
30 else if (sensitivity == players) entities = level->getEntitiesOfClass(typeid(Player), getSensitiveAABB(x, y, z));
31 else __debugbreak(); // 4J-JEV: We're going to delete something at a random location.
32
33 if (entities != NULL && !entities->empty())
34 {
35 for (AUTO_VAR(it, entities->begin()); it != entities->end(); ++it)
36 {
37 shared_ptr<Entity> e = *it;
38 if (!e->isIgnoringTileTriggers())
39 {
40 if (sensitivity != everything) delete entities;
41 return Redstone::SIGNAL_MAX;
42 }
43 }
44 }
45
46 if (sensitivity != everything) delete entities;
47 return Redstone::SIGNAL_NONE;
48}