summaryrefslogtreecommitdiff
path: root/src/content_mapblock.h
diff options
context:
space:
mode:
authorQuentin Bazin <quent42340@gmail.com>2018-11-28 20:01:49 +0100
committerSmallJoker <SmallJoker@users.noreply.github.com>2018-11-28 20:01:49 +0100
commit5f1cd555cd9d1c64426e173b30b5b792d211c835 (patch)
tree2c8508467d3bf28d549cce2d25144fa8ef42beae /src/content_mapblock.h
parentddd9317b733857630499972179caebc236b4d991 (diff)
downloadminetest-5f1cd555cd9d1c64426e173b30b5b792d211c835.tar.xz
Move client-specific files to 'src/client' (#7902)
Update Android.mk Remove 'src/client' from include_directories
Diffstat (limited to 'src/content_mapblock.h')
-rw-r--r--src/content_mapblock.h178
1 files changed, 0 insertions, 178 deletions
diff --git a/src/content_mapblock.h b/src/content_mapblock.h
deleted file mode 100644
index 97947cdbe..000000000
--- a/src/content_mapblock.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
-Minetest
-Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 2.1 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-*/
-
-#pragma once
-
-#include "nodedef.h"
-#include <IMeshManipulator.h>
-
-struct MeshMakeData;
-struct MeshCollector;
-
-struct LightPair {
- u8 lightDay;
- u8 lightNight;
-
- LightPair() = default;
- explicit LightPair(u16 value) : lightDay(value & 0xff), lightNight(value >> 8) {}
- LightPair(u8 valueA, u8 valueB) : lightDay(valueA), lightNight(valueB) {}
- LightPair(float valueA, float valueB) :
- lightDay(core::clamp(core::round32(valueA), 0, 255)),
- lightNight(core::clamp(core::round32(valueB), 0, 255)) {}
- operator u16() const { return lightDay | lightNight << 8; }
-};
-
-struct LightInfo {
- float light_day;
- float light_night;
- float light_boosted;
-
- LightPair getPair(float sunlight_boost = 0.0) const
- {
- return LightPair(
- (1 - sunlight_boost) * light_day
- + sunlight_boost * light_boosted,
- light_night);
- }
-};
-
-struct LightFrame {
- f32 lightsDay[8];
- f32 lightsNight[8];
- bool sunlight[8];
-};
-
-class MapblockMeshGenerator
-{
-public:
- MeshMakeData *data;
- MeshCollector *collector;
-
- const NodeDefManager *nodedef;
- scene::IMeshManipulator *meshmanip;
-
-// options
- bool enable_mesh_cache;
-
-// current node
- v3s16 blockpos_nodes;
- v3s16 p;
- v3f origin;
- MapNode n;
- const ContentFeatures *f;
- LightPair light;
- LightFrame frame;
- video::SColor color;
- TileSpec tile;
- float scale;
-
-// lighting
- void getSmoothLightFrame();
- LightInfo blendLight(const v3f &vertex_pos);
- video::SColor blendLightColor(const v3f &vertex_pos);
- video::SColor blendLightColor(const v3f &vertex_pos, const v3f &vertex_normal);
-
- void useTile(int index = 0, u8 set_flags = MATERIAL_FLAG_CRACK_OVERLAY,
- u8 reset_flags = 0, bool special = false);
- void getTile(int index, TileSpec *tile);
- void getTile(v3s16 direction, TileSpec *tile);
- void getSpecialTile(int index, TileSpec *tile, bool apply_crack = false);
-
-// face drawing
- void drawQuad(v3f *vertices, const v3s16 &normal = v3s16(0, 0, 0),
- float vertical_tiling = 1.0);
-
-// cuboid drawing!
- void drawCuboid(const aabb3f &box, TileSpec *tiles, int tilecount,
- const LightInfo *lights , const f32 *txc);
- void generateCuboidTextureCoords(aabb3f const &box, f32 *coords);
- void drawAutoLightedCuboid(aabb3f box, const f32 *txc = NULL,
- TileSpec *tiles = NULL, int tile_count = 0);
-
-// liquid-specific
- bool top_is_same_liquid;
- bool draw_liquid_bottom;
- TileSpec tile_liquid;
- TileSpec tile_liquid_top;
- content_t c_flowing;
- content_t c_source;
- video::SColor color_liquid_top;
- struct NeighborData {
- f32 level;
- content_t content;
- bool is_same_liquid;
- bool top_is_same_liquid;
- };
- NeighborData liquid_neighbors[3][3];
- f32 corner_levels[2][2];
-
- void prepareLiquidNodeDrawing();
- void getLiquidNeighborhood();
- void calculateCornerLevels();
- f32 getCornerLevel(int i, int k);
- void drawLiquidSides();
- void drawLiquidTop();
- void drawLiquidBottom();
-
-// raillike-specific
- // name of the group that enables connecting to raillike nodes of different kind
- static const std::string raillike_groupname;
- int raillike_group;
- bool isSameRail(v3s16 dir);
-
-// plantlike-specific
- PlantlikeStyle draw_style;
- v3f offset;
- int rotate_degree;
- bool random_offset_Y;
- int face_num;
- float plant_height;
-
- void drawPlantlikeQuad(float rotation, float quad_offset = 0,
- bool offset_top_only = false);
- void drawPlantlike();
-
-// firelike-specific
- void drawFirelikeQuad(float rotation, float opening_angle,
- float offset_h, float offset_v = 0.0);
-
-// drawtypes
- void drawLiquidNode();
- void drawGlasslikeNode();
- void drawGlasslikeFramedNode();
- void drawAllfacesNode();
- void drawTorchlikeNode();
- void drawSignlikeNode();
- void drawPlantlikeNode();
- void drawPlantlikeRootedNode();
- void drawFirelikeNode();
- void drawFencelikeNode();
- void drawRaillikeNode();
- void drawNodeboxNode();
- void drawMeshNode();
-
-// common
- void errorUnknownDrawtype();
- void drawNode();
-
-public:
- MapblockMeshGenerator(MeshMakeData *input, MeshCollector *output);
- void generate();
- void renderSingle(content_t node);
-};