the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2#include "TorchTile.h"
3using namespace std;
4
5class Random;
6
7class NotGateTile : public TorchTile
8{
9 friend class Tile;
10
11private:
12 static const int RECENT_TOGGLE_TIMER = 20 * 3;
13 static const int MAX_RECENT_TOGGLES = 8;
14
15 bool on;
16
17public:
18 class Toggle
19 {
20 public:
21 int x, y, z;
22 __int64 when;
23
24 Toggle(int x, int y, int z, __int64 when)
25 {
26 this->x = x;
27 this->y = y;
28 this->z = z;
29 this->when = when;
30 }
31 };
32
33private:
34 static unordered_map<Level *, deque<Toggle> *> recentToggles; // 4J - brought forward change from 1.3.2
35public:
36 static void removeLevelReferences(Level *level); // 4J added
37private:
38 bool isToggledTooFrequently(Level *level, int x, int y, int z, bool add);
39
40protected:
41 NotGateTile(int id, bool on);
42
43public:
44 int getTickDelay(Level *level);
45 void onPlace(Level *level, int x, int y, int z);
46 void onRemove(Level *level, int x, int y, int z, int id, int data);
47 int getSignal(LevelSource *level, int x, int y, int z, int face);
48
49private:
50 bool hasNeighborSignal(Level *level, int x, int y, int z);
51
52public:
53 void tick(Level *level, int x, int y, int z, Random *random);
54 void neighborChanged(Level *level, int x, int y, int z, int type);
55
56 int getDirectSignal(LevelSource *level, int x, int y, int z, int face);
57
58 int getResource(int data, Random *random, int playerBonusLevel);
59 bool isSignalSource();
60
61public:
62 void animateTick(Level *level, int xt, int yt, int zt, Random *random);
63 int cloneTileId(Level *level, int x, int y, int z);
64 void levelTimeChanged(Level *level, __int64 delta, __int64 newTime);
65 bool isMatching(int id);
66};