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>
202 T
blend(
float fac)
const;
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:57
Definition particles.cpp:110
std::string dump(const Parameter< T, PN > &p)
Definition particles.h:108
void serializeParameterValue(std::ostream &os, E k)
Definition particles.h:52
T(float, T, T) BlendFunction
Definition particles.h:20
void deSerializeParameterValue(std::istream &is, E &k)
Definition particles.h:57
TweenStyle
Definition particles.h:181
BlendMode
Definition particles.h:228
AttractorKind
Definition particles.h:226
#define DECL_PARAM_OVERLOADS(type)
Definition particles.h:24
Definition particles.h:263
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
void setContent(content_t c) noexcept
Definition mapnode.h:169
Definition particles.h:66
T ValType
Definition particles.h:67
T 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
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
T 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
T 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(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
T start
Definition particles.h:194
void serialize(std::ostream &os) const
Definition particles.cpp:89
T ValType
Definition particles.h:187
f32 beginning
Definition particles.h:192
TweenedParameter(T _start, T _end)
Definition particles.h:197
T end
Definition particles.h:194
u16 reps
Definition particles.h:191
TweenStyle style
Definition particles.h:190
Definition particles.h:101
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:234
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:268
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
enum TileAnimationType type
Definition tileanimation.h:19
static std::string p(std::string path)
Definition test_filesys.cpp:64
@ TAT_NONE
Definition tileanimation.h:12