Luanti 5.15.0-dev
 
Loading...
Searching...
No Matches
object_properties.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4
5#pragma once
6
7#include <optional>
8#include <string>
10#include <iostream>
11#include <vector>
12#include "util/pointabilities.h"
13#include "mapnode.h"
14
15struct EnumString;
16
27
28extern const EnumString es_ObjectVisual[];
29
30
32{
33 /* member variables ordered roughly by size */
34
35 std::vector<std::string> textures;
36 std::vector<video::SColor> colors; // Currently unused
37 // Values are BS=1
38 aabb3f collisionbox = aabb3f(-0.5f, -0.5f, -0.5f, 0.5f, 0.5f, 0.5f);
39 // Values are BS=1
40 aabb3f selectionbox = aabb3f(-0.5f, -0.5f, -0.5f, 0.5f, 0.5f, 0.5f);
42 std::string mesh;
43 std::string damage_texture_modifier = "^[brighten";
44 std::string nametag;
45 std::string infotext;
46 // For dropped items, this contains the serialized item.
47 std::string wield_item;
48 v3f visual_size = v3f(1, 1, 1);
49 video::SColor nametag_color = video::SColor(255, 255, 255, 255);
50 std::optional<video::SColor> nametag_bgcolor;
53 f32 stepheight = 0.0f;
54 float automatic_rotate = 0.0f;
57 float eye_height = 1.625f;
58 float zoom_fov = 0.0f;
59 std::optional<u32> nametag_fontsize;
61 u16 hp_max = 1;
62 u16 breath_max = 0;
63 s8 glow = 0;
65 // In a future protocol these could be a flag field.
66 bool physical = false;
67 bool collideWithObjects = true;
68 bool rotate_selectionbox = false;
69 bool is_visible = true;
72 bool backface_culling = true;
73 bool static_save = true;
74 bool use_texture_alpha = false;
75 bool shaded = true;
76 bool show_on_minimap = false;
77 bool nametag_scale_z = false;
78
80
81 std::string dump() const;
82
83 bool operator==(const ObjectProperties &other) const;
84 bool operator!=(const ObjectProperties &other) const {
85 return !(*this == other);
86 }
87
93 bool validate();
94
95 void serialize(std::ostream &os) const;
96 void deSerialize(std::istream &is);
97};
core::aabbox3d< f32 > aabb3f
Definition irr_aabb3d.h:11
core::vector2d< s16 > v2s16
Definition irr_v2d.h:12
core::vector3df v3f
Definition irr_v3d.h:11
#define CONTENT_IGNORE
Definition mapnode.h:57
ObjectVisual
Definition object_properties.h:17
@ OBJECTVISUAL_UPRIGHT_SPRITE
Definition object_properties.h:20
@ OBJECTVISUAL_ITEM
Definition object_properties.h:23
@ OBJECTVISUAL_NODE
Definition object_properties.h:25
@ OBJECTVISUAL_WIELDITEM
Definition object_properties.h:24
@ OBJECTVISUAL_CUBE
Definition object_properties.h:21
@ OBJECTVISUAL_MESH
Definition object_properties.h:22
@ OBJECTVISUAL_UNKNOWN
Definition object_properties.h:18
@ OBJECTVISUAL_SPRITE
Definition object_properties.h:19
const EnumString es_ObjectVisual[]
Definition object_properties.cpp:17
PointabilityType
Definition pointabilities.h:13
Definition enum_string.h:11
Definition mapnode.h:123
Definition object_properties.h:32
u16 hp_max
Definition object_properties.h:61
bool is_visible
Definition object_properties.h:69
float eye_height
Definition object_properties.h:57
std::string dump() const
Definition object_properties.cpp:35
std::string wield_item
Definition object_properties.h:47
v2s16 spritediv
Definition object_properties.h:51
f32 automatic_face_movement_dir_offset
Definition object_properties.h:55
std::string damage_texture_modifier
Definition object_properties.h:43
std::string mesh
Definition object_properties.h:42
video::SColor nametag_color
Definition object_properties.h:49
s8 glow
Definition object_properties.h:63
float zoom_fov
Definition object_properties.h:58
void serialize(std::ostream &os) const
Definition object_properties.cpp:151
bool operator==(const ObjectProperties &other) const
Definition object_properties.cpp:113
std::string infotext
Definition object_properties.h:45
ObjectProperties()
Definition object_properties.cpp:30
void deSerialize(std::istream &is)
Definition object_properties.cpp:243
v3f visual_size
Definition object_properties.h:48
u16 breath_max
Definition object_properties.h:62
float automatic_rotate
Definition object_properties.h:54
bool makes_footstep_sound
Definition object_properties.h:70
bool operator!=(const ObjectProperties &other) const
Definition object_properties.h:84
bool static_save
Definition object_properties.h:73
bool rotate_selectionbox
Definition object_properties.h:68
std::optional< video::SColor > nametag_bgcolor
Definition object_properties.h:50
PointabilityType pointable
Definition object_properties.h:64
bool nametag_scale_z
Definition object_properties.h:77
v2s16 initial_sprite_basepos
Definition object_properties.h:52
bool collideWithObjects
Definition object_properties.h:67
bool show_on_minimap
Definition object_properties.h:76
bool physical
Definition object_properties.h:66
ObjectVisual visual
Definition object_properties.h:41
f32 stepheight
Definition object_properties.h:53
f32 automatic_face_movement_max_rotation_per_sec
Definition object_properties.h:56
aabb3f selectionbox
Definition object_properties.h:40
bool validate()
Check limits of some important properties that'd cause exceptions later on.
Definition object_properties.cpp:118
MapNode node
Definition object_properties.h:60
aabb3f collisionbox
Definition object_properties.h:38
bool shaded
Definition object_properties.h:75
std::vector< video::SColor > colors
Definition object_properties.h:36
std::string nametag
Definition object_properties.h:44
bool use_texture_alpha
Definition object_properties.h:74
std::optional< u32 > nametag_fontsize
Definition object_properties.h:59
std::vector< std::string > textures
Definition object_properties.h:35
bool backface_culling
Definition object_properties.h:72
bool automatic_face_movement_dir
Definition object_properties.h:71