Fixed a few problems in the ladder update, and changed the speed to account for gravity

This commit is contained in:
Mark Holmquist 2011-07-30 17:26:13 -07:00 committed by Giuseppe Bilotta
parent 1c59cff832
commit 8e67f4c4e6
3 changed files with 6 additions and 6 deletions

View File

@ -1134,7 +1134,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
u16 indices[] = {0,1,2,2,3,0};
collector.append(material_rail, vertices, 4, indices, 6);
}
else if (n.d == CONTENT_LADDER) {
else if (n.getContent() == CONTENT_LADDER) {
u8 l = decode_light(n.getLightBlend(data->m_daynight_ratio));
video::SColor c(255,l,l,l);
@ -1149,7 +1149,7 @@ void mapblock_mesh_generate_special(MeshMakeData *data,
video::S3DVertex(BS/2-d,BS/2,-BS/2, 0,0,0, c, 0,0),
};
v3s16 dir = unpackDir(n.dir);
v3s16 dir = unpackDir(n.param2);
for(s32 i=0; i<4; i++)
{

View File

@ -541,7 +541,7 @@ void getPointedNode(Client *client, v3f player_position,
else if(n.getContent() == CONTENT_LADDER)
{
v3s16 dir = unpackDir(n.dir);
v3s16 dir = unpackDir(n.param2);
v3f dir_f = v3f(dir.X, dir.Y, dir.Z);
dir_f *= BS/2 - BS/6 - BS/20;
v3f cpf = npf + dir_f;

View File

@ -382,8 +382,8 @@ void LocalPlayer::move(f32 dtime, Map &map, f32 pos_max_d,
try {
v3s16 pp = floatToInt(position + v3f(0,0.5*BS,0), BS);
v3s16 pp2 = floatToInt(position + v3f(0,-0.2*BS,0), BS);
is_climbing = (content_features(map.getNode(pp).d).climbable ||
content_features(map.getNode(pp2).d).climbable);
is_climbing = (content_features(map.getNode(pp).getContent()).climbable ||
content_features(map.getNode(pp2).getContent()).climbable);
}
catch(InvalidPositionException &e)
{
@ -832,7 +832,7 @@ void LocalPlayer::applyControl(float dtime)
if (is_climbing) {
if (control.up || control.left || control.right || control.down) {
v3f speed = getSpeed();
speed.Y = 2*BS;
speed.Y = 2.5*BS;
setSpeed(speed);
}
else {