Files
minecraft-pe-0.6.1/src/client/player/input/MouseBuildInput.hpp
2026-03-28 01:08:50 +03:00

35 lines
868 B
C++
Executable File

#pragma once
#include "IBuildInput.hpp"
#include "platform/input/Mouse.hpp"
/** A Mouse Build input */
class MouseBuildInput : public IBuildInput {
public:
MouseBuildInput()
: buildDelayTicks(10),
buildHoldTicks(0)
{}
virtual bool tickBuild(Player* p, BuildActionIntention* bai) {
if (Mouse::getButtonState(MouseAction::ACTION_LEFT) != 0) {
*bai = BuildActionIntention(BuildActionIntention::BAI_REMOVE | BuildActionIntention::BAI_ATTACK);
return true;
}
if (Mouse::getButtonState(MouseAction::ACTION_RIGHT) != 0) {
if (buildHoldTicks >= buildDelayTicks) buildHoldTicks = 0;
if (++buildHoldTicks == 1) {
*bai = BuildActionIntention(BuildActionIntention::BAI_BUILD | BuildActionIntention::BAI_INTERACT);
return true;
}
} else {
buildHoldTicks = 0;
}
return false;
}
private:
int buildHoldTicks;
int buildDelayTicks;
};