MCPcopy Create free account
hub / github.com/ClassiCube/ClassiCube / Physics_TickRandomBlocks

Function Physics_TickRandomBlocks

src/BlockPhysics.c:166–200  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

164}
165
166static void Physics_TickRandomBlocks(void) {
167 int lo, hi, index;
168 BlockID block;
169 PhysicsHandler tick;
170 int x, y, z, x2, y2, z2;
171
172 for (y = 0; y < World.Height; y += CHUNK_SIZE) {
173 y2 = min(y + CHUNK_MAX, World.MaxY);
174 for (z = 0; z < World.Length; z += CHUNK_SIZE) {
175 z2 = min(z + CHUNK_MAX, World.MaxZ);
176 for (x = 0; x < World.Width; x += CHUNK_SIZE) {
177 x2 = min(x + CHUNK_MAX, World.MaxX);
178
179 /* Inlined 3 random ticks for this chunk */
180 lo = World_Pack( x, y, z);
181 hi = World_Pack(x2, y2, z2);
182
183 index = Random_Range(&physics_rnd, lo, hi);
184 block = World.Blocks[index];
185 tick = Physics.OnRandomTick[block];
186 if (tick) tick(index, block);
187
188 index = Random_Range(&physics_rnd, lo, hi);
189 block = World.Blocks[index];
190 tick = Physics.OnRandomTick[block];
191 if (tick) tick(index, block);
192
193 index = Random_Range(&physics_rnd, lo, hi);
194 block = World.Blocks[index];
195 tick = Physics.OnRandomTick[block];
196 if (tick) tick(index, block);
197 }
198 }
199 }
200}
201
202
203static void Physics_DoFalling(int index, BlockID block) {

Callers 1

Physics_TickFunction · 0.85

Calls 1

Random_RangeFunction · 0.85

Tested by

no test coverage detected