void resetInventory();
//void move(f32 dtime, Map &map);
- virtual void move(f32 dtime, Map &map) = 0;
+ virtual void move(f32 dtime, Map &map, f32 pos_max_d) = 0;
v3f getSpeed()
{
void deSerialize(std::istream &is);
bool touching_ground;
+ // This oscillates so that the player jumps a bit above the surface
bool in_water;
+ // This is more stable and defines the maximum speed of the player
+ bool in_water_stable;
bool swimming_up;
Inventory inventory;
return false;
}
- virtual void move(f32 dtime, Map &map)
+ virtual void move(f32 dtime, Map &map, f32 pos_max_d)
{
}
}
}
- void move(f32 dtime, Map &map);
+ void move(f32 dtime, Map &map, f32 pos_max_d);
private:
scene::IMeshSceneNode *m_node;
right = false;
jump = false;
aux1 = false;
+ sneak = false;
pitch = 0;
yaw = 0;
}
bool a_right,
bool a_jump,
bool a_aux1,
+ bool a_sneak,
float a_pitch,
float a_yaw
)
right = a_right;
jump = a_jump;
aux1 = a_aux1;
+ sneak = a_sneak;
pitch = a_pitch;
yaw = a_yaw;
}
bool right;
bool jump;
bool aux1;
+ bool sneak;
float pitch;
float yaw;
};
return true;
}
- void move(f32 dtime, Map &map);
+ void move(f32 dtime, Map &map, f32 pos_max_d);
void applyControl(float dtime);
PlayerControl control;
private:
+ // This is used for determining the sneaking range
+ v3s16 m_last_walked_node;
};
#endif // !SERVER