mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 09:15:29 +01:00 
			
		
		
		
	Move player collisionbox to player class
This commit is contained in:
		@@ -1472,6 +1472,11 @@ std::string PlayerSAO::getPropertyPacket()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool PlayerSAO::getCollisionBox(aabb3f *toset) {
 | 
			
		||||
	//player collision handling is already done clientside no need to do it twice
 | 
			
		||||
	return false;
 | 
			
		||||
	//update collision box
 | 
			
		||||
	*toset = m_player->getCollisionbox();
 | 
			
		||||
 | 
			
		||||
	toset->MinEdge += m_base_position;
 | 
			
		||||
	toset->MaxEdge += m_base_position;
 | 
			
		||||
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -154,9 +154,6 @@ void LocalPlayer::move(f32 dtime, ClientEnvironment *env, f32 pos_max_d,
 | 
			
		||||
	// This should always apply, otherwise there are glitches
 | 
			
		||||
	assert(d > pos_max_d);
 | 
			
		||||
 | 
			
		||||
	float player_radius = BS*0.30;
 | 
			
		||||
	float player_height = BS*1.55;
 | 
			
		||||
	
 | 
			
		||||
	// Maximum distance over border for sneaking
 | 
			
		||||
	f32 sneak_max = BS*0.4;
 | 
			
		||||
 | 
			
		||||
@@ -184,24 +181,12 @@ void LocalPlayer::move(f32 dtime, ClientEnvironment *env, f32 pos_max_d,
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
		Calculate player collision box (new and old)
 | 
			
		||||
	*/
 | 
			
		||||
	core::aabbox3d<f32> playerbox(
 | 
			
		||||
		-player_radius,
 | 
			
		||||
		0.0,
 | 
			
		||||
		-player_radius,
 | 
			
		||||
		player_radius,
 | 
			
		||||
		player_height,
 | 
			
		||||
		player_radius
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	float player_stepheight = touching_ground ? (BS*0.6) : (BS*0.2);
 | 
			
		||||
 | 
			
		||||
	v3f accel_f = v3f(0,0,0);
 | 
			
		||||
 | 
			
		||||
	collisionMoveResult result = collisionMoveSimple(env, m_gamedef,
 | 
			
		||||
			pos_max_d, playerbox, player_stepheight, dtime,
 | 
			
		||||
			pos_max_d, m_collisionbox, player_stepheight, dtime,
 | 
			
		||||
			position, m_speed, accel_f);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,8 @@ Player::Player(IGameDef *gamedef):
 | 
			
		||||
	m_pitch(0),
 | 
			
		||||
	m_yaw(0),
 | 
			
		||||
	m_speed(0,0,0),
 | 
			
		||||
	m_position(0,0,0)
 | 
			
		||||
	m_position(0,0,0),
 | 
			
		||||
	m_collisionbox(-BS*0.30,0.0,-BS*0.30,BS*0.30,BS*1.55,BS*0.30)
 | 
			
		||||
{
 | 
			
		||||
	updateName("<not set>");
 | 
			
		||||
	inventory.clear();
 | 
			
		||||
 
 | 
			
		||||
@@ -180,6 +180,10 @@ public:
 | 
			
		||||
		return m_name;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	core::aabbox3d<f32> getCollisionbox() {
 | 
			
		||||
		return m_collisionbox;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	virtual bool isLocal() const
 | 
			
		||||
	{ return false; }
 | 
			
		||||
	virtual PlayerSAO *getPlayerSAO()
 | 
			
		||||
@@ -255,6 +259,7 @@ protected:
 | 
			
		||||
	f32 m_yaw;
 | 
			
		||||
	v3f m_speed;
 | 
			
		||||
	v3f m_position;
 | 
			
		||||
	core::aabbox3d<f32> m_collisionbox;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user