21 #define DECL_PARAM_SRZRS(type) \
22 void serializeParameterValue (std::ostream& os, type v); \
23 void deSerializeParameterValue(std::istream& is, type& r);
24 #define DECL_PARAM_OVERLOADS(type) DECL_PARAM_SRZRS(type) \
25 type interpolateParameterValue(float fac, const type a, const type b); \
26 type pickParameterValue (float* facs, const type a, const type b);
51 template <
typename E, std::enable_if_t<std::is_enum_v<E>,
bool> = true>
56 template <
typename E, std::enable_if_t<std::is_enum_v<E>,
bool> = true>
58 std::underlying_type_t<E> v;
64 template <
typename T,
size_t PN>
75 template <
typename... Args>
85 return interpolateParameterValue(fac, this->val, against.
val);
90 return pickParameterValue(f, a.
val, b.
val);
93 operator T()
const {
return val; }
100 template <
typename T,
size_t N>
103 template <
typename... Args>
107 template <
typename T,
size_t PN>
110 return std::to_string(
p.val);
113 template <
typename T,
size_t N>
116 std::ostringstream oss;
127 template <
typename T>
158 r.
min =
min.interpolate(fac, against.
min);
159 r.
max =
max.interpolate(fac, against.
max);
168 template <
typename T>
171 std::ostringstream s;
174 s <<
" :: " << r.
bias;
184 template <
typename T>
208 template <
typename T>
211 std::ostringstream s;
240 #undef DECL_PARAM_SRZRS
241 #undef DECL_PARAM_OVERLOADS
256 void serialize(std::ostream &os, u16 protocol_ver,
bool newPropertiesOnly =
false,
257 bool skipAnimation =
false)
const;
258 void deSerialize(std::istream &is, u16 protocol_ver,
bool newPropertiesOnly =
false,
259 bool skipAnimation =
false);
301 void serialize(std::ostream &os, u16 protocol_ver)
const;
302 void deSerialize(std::istream &is, u16 protocol_ver);
core::vector2d< f32 > v2f
Definition irr_v2d.h:11
core::vector3df v3f
Definition irr_v3d.h:11
#define CONTENT_IGNORE
Definition mapnode.h:52
Definition particles.cpp:110
std::string dump(const Parameter< T, PN > &p)
Definition particles.h:108
TweenedParameter< v2fParameter > v2fTween
Definition particles.h:234
void serializeParameterValue(std::ostream &os, E k)
Definition particles.h:52
Parameter< f32, 1 > f32Parameter
Definition particles.h:121
T(float, T, T) BlendFunction
Definition particles.h:20
VectorParameter< v3f, 3 > v3fParameter
Definition particles.h:123
void deSerializeParameterValue(std::istream &is, E &k)
Definition particles.h:57
TweenStyle
Definition particles.h:181
@ pulse
Definition particles.h:181
@ flicker
Definition particles.h:181
@ fwd
Definition particles.h:181
@ rev
Definition particles.h:181
@ TweenStyle_END
Definition particles.h:181
TweenedParameter< f32Range > f32RangeTween
Definition particles.h:238
TweenedParameter< v3fParameter > v3fTween
Definition particles.h:235
VectorParameter< v2f, 2 > v2fParameter
Definition particles.h:122
BlendMode
Definition particles.h:228
@ alpha
Definition particles.h:228
@ add
Definition particles.h:228
@ screen
Definition particles.h:228
@ sub
Definition particles.h:228
@ BlendMode_END
Definition particles.h:228
@ clip
Definition particles.h:228
RangedParameter< f32Parameter > f32Range
Definition particles.h:232
RangedParameter< v3fParameter > v3fRange
Definition particles.h:231
TweenedParameter< v3fRange > v3fRangeTween
Definition particles.h:237
AttractorKind
Definition particles.h:226
@ none
Definition particles.h:226
@ line
Definition particles.h:226
@ point
Definition particles.h:226
@ plane
Definition particles.h:226
TweenedParameter< f32Parameter > f32Tween
Definition particles.h:236
#define DECL_PARAM_OVERLOADS(type)
Definition particles.h:24
bool object_collision
Definition particles.h:266
MapNode node
Definition particles.h:271
bool collisiondetection
Definition particles.h:264
struct TileAnimationParams animation
Definition particles.h:269
ServerParticleTexture texture
Definition particles.h:268
void copyCommon(CommonParticleParams &to) const
Definition particles.h:281
u8 glow
Definition particles.h:270
bool collision_removal
Definition particles.h:265
bool vertical
Definition particles.h:267
CommonParticleParams()
Definition particles.h:274
u8 node_tile
Definition particles.h:272
Definition particles.h:66
T ValType
Definition particles.h:67
f32 val
Definition particles.h:70
Parameter(Args... args)
Definition particles.h:76
virtual T interpolate(float fac, const This &against) const
Definition particles.h:83
virtual void deSerialize(std::istream &is)
Definition particles.h:80
Parameter< T, PN > This
Definition particles.h:71
T operator=(T b)
Definition particles.h:94
static T pick(float *f, const This &a, const This &b)
Definition particles.h:88
float[PN] pickFactors
Definition particles.h:68
virtual void serialize(std::ostream &os) const
Definition particles.h:78
Definition particles.h:129
T ValType
Definition particles.h:130
v3fParameter max
Definition particles.h:133
f32 bias
Definition particles.h:134
T pickWithin() const
Definition particles.cpp:30
void deSerialize(std::istream &is)
Definition particles.cpp:21
v3fParameter min
Definition particles.h:133
void legacySerialize(std::ostream &os) const
Definition particles.h:141
void legacyDeSerialize(std::istream &is)
Definition particles.h:146
RangedParameter< T > This
Definition particles.h:131
RangedParameter(M b)
Definition particles.h:138
RangedParameter()=default
void serialize(std::ostream &os) const
Definition particles.cpp:13
RangedParameter(T _min, T _max)
Definition particles.h:137
This interpolate(float fac, const This against) const
Definition particles.h:155
Definition particles.h:186
TweenedParameter()=default
TweenedParameter(M b)
Definition particles.h:199
void deSerialize(std::istream &is)
Definition particles.cpp:99
v2fParameter start
Definition particles.h:194
void serialize(std::ostream &os) const
Definition particles.cpp:89
T ValType
Definition particles.h:187
TweenedParameter< T > This
Definition particles.h:188
T blend(float fac) const
Definition particles.cpp:45
f32 beginning
Definition particles.h:192
TweenedParameter(T _start, T _end)
Definition particles.h:197
v2fParameter end
Definition particles.h:194
u16 reps
Definition particles.h:191
TweenStyle style
Definition particles.h:190
Definition particles.h:101
VectorParameter< T, N > This
Definition particles.h:102
VectorParameter(Args... args)
Definition particles.h:104
Definition particles.h:295
v3f pos
Definition particles.h:296
void serialize(std::ostream &os, u16 protocol_ver) const
Definition particles.cpp:230
v3f acc
Definition particles.h:296
v3f vel
Definition particles.h:296
v3f drag
Definition particles.h:296
ParticleParamTypes::v3fRange jitter
Definition particles.h:299
f32 size
Definition particles.h:297
f32 expirationtime
Definition particles.h:297
void deSerialize(std::istream &is, u16 protocol_ver)
Definition particles.cpp:253
ParticleParamTypes::f32Range bounce
Definition particles.h:298
Definition particles.h:306
ParticleParamTypes::v3fTween attractor_direction
Definition particles.h:318
ParticleParamTypes::v3fRangeTween vel
Definition particles.h:313
std::vector< ServerParticleTexture > texpool
Definition particles.h:310
u16 amount
Definition particles.h:307
ParticleParamTypes::v3fRangeTween jitter
Definition particles.h:313
ParticleParamTypes::AttractorKind attractor_kind
Definition particles.h:316
ParticleParamTypes::v3fRangeTween drag
Definition particles.h:313
u16 attractor_attachment
Definition particles.h:320
ParticleParamTypes::v3fRangeTween pos
Definition particles.h:313
ParticleParamTypes::v3fRangeTween radius
Definition particles.h:313
u16 attractor_direction_attachment
Definition particles.h:321
ParticleParamTypes::f32RangeTween attract
Definition particles.h:328
ParticleParamTypes::v3fTween attractor_origin
Definition particles.h:318
ParticleParamTypes::f32RangeTween bounce
Definition particles.h:329
f32 time
Definition particles.h:308
ParticleParamTypes::v3fRangeTween acc
Definition particles.h:313
ParticleParamTypes::f32RangeTween size
Definition particles.h:327
ParticleParamTypes::f32RangeTween exptime
Definition particles.h:326
bool attractor_kill
Definition particles.h:323
Definition particles.h:245
bool animated
Definition particles.h:246
ParticleParamTypes::BlendMode blendmode
Definition particles.h:247
ParticleParamTypes::f32Tween alpha
Definition particles.h:249
ParticleParamTypes::v2fTween scale
Definition particles.h:250
TileAnimationParams animation
Definition particles.h:248
Definition particles.h:254
void serialize(std::ostream &os, u16 protocol_ver, bool newPropertiesOnly=false, bool skipAnimation=false) const
Definition particles.cpp:187
std::string string
Definition particles.h:255
void deSerialize(std::istream &is, u16 protocol_ver, bool newPropertiesOnly=false, bool skipAnimation=false)
Definition particles.cpp:210
Definition tileanimation.h:18
static std::string p(std::string path)
Definition test_filesys.cpp:64
@ TAT_NONE
Definition tileanimation.h:12