the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#pragma once
2#include "LiquidTile.h"
3
4class Random;
5
6class LiquidTileDynamic : public LiquidTile
7{
8 friend class Tile;
9private:
10 // 4J Added
11 typedef struct _LiquidTickData
12 {
13 Level *level;
14 int x, y, z;
15 Random *random;
16 _LiquidTickData(Level *level, int x, int y, int z, Random *random)
17 : level(level), x(x), y(y), z(z), random(random)
18 {
19 }
20 } LiquidTickData;
21 deque<LiquidTickData> m_tilesToTick; // For an iterative version of instatick
22 bool m_iterativeInstatick;
23protected:
24 LiquidTileDynamic(int id, Material *material);
25 virtual ~LiquidTileDynamic();
26private:
27 void setStatic(Level *level, int x, int y, int z);
28 int maxCount;
29public:
30 virtual bool isPathfindable(LevelSource *level, int x, int y, int z);
31
32private:
33 // 4J Added
34 void iterativeTick(Level *level, int x, int y, int z, Random *random);
35 void mainTick(Level *level, int x, int y, int z, Random *random);
36public:
37 void tick(Level *level, int x, int y, int z, Random *random);
38private:
39 void trySpreadTo(Level *level, int x, int y, int z, int neighbor);
40
41 bool *result;
42 int *dist;
43
44private:
45 int getSlopeDistance(Level *level, int x, int y, int z, int pass, int from);
46 bool *getSpread(Level *level, int x, int y, int z);
47 bool isWaterBlocking(Level *level, int x, int y, int z);
48protected:
49 int getHighest(Level *level, int x, int y, int z, int current);
50private:
51 bool canSpreadTo(Level *level, int x, int y, int z);
52public:
53 void onPlace(Level *level, int x, int y, int z);
54 bool canInstantlyTick();
55};