is_visible = true,
makes_footstep_sound = false,
automatic_rotate = false,
+ stepheight = 0,
}
Entity definition (register_entity)
TOSERVER_BREATH
range added to ItemDefinition
drowning, leveled and liquid_range added to ContentFeatures
+ stepheight and collideWithObjects added to object properties
*/
#define LATEST_PROTOCOL_VERSION 21
box.MaxEdge *= BS;
collisionMoveResult moveresult;
f32 pos_max_d = BS*0.125; // Distance per iteration
- f32 stepheight = 0;
v3f p_pos = m_position;
v3f p_velocity = m_velocity;
v3f p_acceleration = m_acceleration;
moveresult = collisionMoveSimple(env,env->getGameDef(),
- pos_max_d, box, stepheight, dtime,
+ pos_max_d, box, m_prop.stepheight, dtime,
p_pos, p_velocity, p_acceleration,
this, m_prop.collideWithObjects);
// Apply results
box.MaxEdge *= BS;
collisionMoveResult moveresult;
f32 pos_max_d = BS*0.25; // Distance per iteration
- f32 stepheight = 0; // Maximum climbable step height
v3f p_pos = m_base_position;
v3f p_velocity = m_velocity;
v3f p_acceleration = m_acceleration;
moveresult = collisionMoveSimple(m_env,m_env->getGameDef(),
- pos_max_d, box, stepheight, dtime,
+ pos_max_d, box, m_prop.stepheight, dtime,
p_pos, p_velocity, p_acceleration,
this, m_prop.collideWithObjects);
+
// Apply results
m_base_position = p_pos;
m_velocity = p_velocity;
initial_sprite_basepos(0,0),
is_visible(true),
makes_footstep_sound(false),
- automatic_rotate(0)
+ automatic_rotate(0),
+ stepheight(0)
{
textures.push_back("unknown_object.png");
colors.push_back(video::SColor(255,255,255,255));
writeARGB8(os, colors[i]);
}
writeU8(os, collideWithObjects);
+ writeF1000(os,stepheight);
// Add stuff only at the bottom.
// Never remove anything, because we don't want new versions of this
}
colors.push_back(readARGB8(is));
}
collideWithObjects = readU8(is);
+ stepheight = readF1000(is);
}catch(SerializationError &e){}
}
else
bool is_visible;
bool makes_footstep_sound;
float automatic_rotate;
+ f32 stepheight;
ObjectProperties();
getboolfield(L, -1, "is_visible", prop->is_visible);
getboolfield(L, -1, "makes_footstep_sound", prop->makes_footstep_sound);
getfloatfield(L, -1, "automatic_rotate", prop->automatic_rotate);
+ getfloatfield(L, -1, "stepheight", prop->stepheight);
+ prop->stepheight*=BS;
}
/******************************************************************************/