21 public override void OnBlockRemoved(
int value,
int newValue,
int x,
int y,
int z) {
33 for (
int i = num; i <= num4; i++) {
34 for (
int j = num3; j <= num6; j++) {
36 if (chunkAtCell ==
null) {
40 for (
int k = num2; k <= num5; k++) {
52 int num = chunk.Origin.X - 16;
53 int num2 = chunk.Origin.Y - 16;
54 int num3 = chunk.Origin.X + 32;
55 int num4 = chunk.Origin.Y + 32;
56 List<Point3> list =
new();
65 foreach (
Point3 item2
in list) {
70 public virtual void Update(
float dt) {
76 for (
int i = 0; i < num; i++) {
85 base.Load(valuesDictionary);
88 string value = valuesDictionary.GetValue<
string>(
"LeavesToCheck");
90 foreach (
Point3 item
in array) {
96 base.Save(valuesDictionary);
98 valuesDictionary.SetValue(
"LeavesToCheck", value);
113 for (
int i = num; i <= num4; i++) {
114 for (
int j = num3; j <= num6; j++) {
116 if (chunkAtCell ==
null) {
121 while (num8 <= num5) {
static int Min(int x1, int x2)
static int Max(int x1, int x2)
SubsystemTerrain SubsystemTerrain
HashSet< Point3 > m_leavesToCheck
SubsystemTime m_subsystemTime
override void OnChunkDiscarding(TerrainChunk chunk)
override void OnBlockRemoved(int value, int newValue, int x, int y, int z)
SubsystemGameInfo m_subsystemGameInfo
override void Save(ValuesDictionary valuesDictionary)
const int m_maxLeavesToCheck
virtual void Update(float dt)
void DecayLeavesIfNeeded(Point3 p)
override int[] HandledBlocks
override void Load(ValuesDictionary valuesDictionary)
static int CalculateCellIndex(int x, int y, int z)
virtual int GetCellValueFast(int index)
static int ExtractContents(int value)
ValuesDictionary ValuesDictionary