Luanti 5.15.0-dev
 
Loading...
Searching...
No Matches
dummymap.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2022 TurkeyMcMac, Jude Melton-Houghton <jwmhjwmh@gmail.com>
4
5#pragma once
6
7#include "map.h"
8#include "mapsector.h"
9
10class DummyMap : public Map
11{
12public:
13 DummyMap(IGameDef *gamedef, v3s16 bpmin, v3s16 bpmax): Map(gamedef)
14 {
15 for (s16 z = bpmin.Z; z <= bpmax.Z; z++)
16 for (s16 x = bpmin.X; x <= bpmax.X; x++) {
17 v2s16 p2d(x, z);
18 MapSector *sector = new MapSector(this, p2d, gamedef);
19 m_sectors[p2d] = sector;
20 for (s16 y = bpmin.Y; y <= bpmax.Y; y++)
21 sector->createBlankBlock(y);
22 }
23 }
24
25 ~DummyMap() = default;
26
27 void fill(v3s16 bpmin, v3s16 bpmax, MapNode n)
28 {
29 for (s16 z = bpmin.Z; z <= bpmax.Z; z++)
30 for (s16 x = bpmin.X; x <= bpmax.X; x++)
31 for (s16 y = bpmin.Y; y <= bpmax.Y; y++) {
32 MapBlock *block = getBlockNoCreateNoEx({x, y, z});
33 if (block) {
34 for (s16 zn=0; zn < MAP_BLOCKSIZE; zn++)
35 for (s16 yn=0; yn < MAP_BLOCKSIZE; yn++)
36 for (s16 xn=0; xn < MAP_BLOCKSIZE; xn++) {
37 block->setNodeNoCheck(xn, yn, zn, n);
38 }
39 block->expireIsAirCache();
40 }
41 }
42 }
43
44 bool maySaveBlocks() override { return false; }
45};
Definition dummymap.h:11
DummyMap(IGameDef *gamedef, v3s16 bpmin, v3s16 bpmax)
Definition dummymap.h:13
bool maySaveBlocks() override
Definition dummymap.h:44
~DummyMap()=default
void fill(v3s16 bpmin, v3s16 bpmax, MapNode n)
Definition dummymap.h:27
Definition gamedef.h:26
Definition mapblock.h:58
void setNodeNoCheck(s16 x, s16 y, s16 z, MapNode n)
Definition mapblock.h:272
void expireIsAirCache()
Definition mapblock.cpp:308
Definition mapsector.h:23
MapBlock * createBlankBlock(s16 y)
Definition mapsector.cpp:72
Definition map.h:100
std::unordered_map< v2s16, MapSector * > m_sectors
Definition map.h:281
MapBlock * getBlockNoCreateNoEx(v3s16 p)
Definition map.cpp:94
#define MAP_BLOCKSIZE
Definition constants.h:64
core::vector2d< s16 > v2s16
Definition irr_v2d.h:12
core::vector3d< s16 > v3s16
Definition irr_v3d.h:13
Definition mapnode.h:123
constexpr v3f x
Definition test_irr_matrix4.cpp:18
constexpr v3f y
Definition test_irr_matrix4.cpp:19
constexpr v3f z
Definition test_irr_matrix4.cpp:20