mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-07-07 21:58:10 +00:00
restructure codebase according to vcproj filters
This commit is contained in:
130
Minecraft.Client/net/minecraft/client/player/Input.cpp
Normal file
130
Minecraft.Client/net/minecraft/client/player/Input.cpp
Normal file
@@ -0,0 +1,130 @@
|
||||
#include "../../../../../Minecraft.World/Header Files/stdafx.h"
|
||||
#include "../Minecraft.h"
|
||||
#include "../../server/level/GameMode.h"
|
||||
#include "../../../../../Minecraft.World/net/minecraft/world/entity/player/net.minecraft.world.entity.player.h"
|
||||
#include "../../../../../Minecraft.World/net/minecraft/world/level/net.minecraft.world.level.h"
|
||||
#include "../../../../../Minecraft.World/net/minecraft/world/level/storage/net.minecraft.world.level.storage.h"
|
||||
#include "Input.h"
|
||||
#include "LocalPlayer.h"
|
||||
#include "../Options.h"
|
||||
|
||||
Input::Input() {
|
||||
xa = 0;
|
||||
ya = 0;
|
||||
wasJumping = false;
|
||||
jumping = false;
|
||||
sneaking = false;
|
||||
sprintKey = false;
|
||||
|
||||
lReset = false;
|
||||
rReset = false;
|
||||
}
|
||||
|
||||
void Input::tick(LocalPlayer* player) {
|
||||
// 4J Stu - Assume that we only need one input class, even though the java
|
||||
// has subclasses for keyboard/controller This function is based on the
|
||||
// ControllerInput class in the Java, and will probably need changed
|
||||
// OutputDebugString("INPUT: Beginning input tick\n");
|
||||
|
||||
Minecraft* pMinecraft = Minecraft::GetInstance();
|
||||
int iPad = player->GetXboxPad();
|
||||
|
||||
// 4J-PB minecraft movement seems to be the wrong way round, so invert x!
|
||||
if (pMinecraft->localgameModes[iPad]->isInputAllowed(
|
||||
MINECRAFT_ACTION_LEFT) ||
|
||||
pMinecraft->localgameModes[iPad]->isInputAllowed(
|
||||
MINECRAFT_ACTION_RIGHT))
|
||||
xa = -InputManager.GetJoypadStick_LX(iPad);
|
||||
else
|
||||
xa = 0.0f;
|
||||
|
||||
if (pMinecraft->localgameModes[iPad]->isInputAllowed(
|
||||
MINECRAFT_ACTION_FORWARD) ||
|
||||
pMinecraft->localgameModes[iPad]->isInputAllowed(
|
||||
MINECRAFT_ACTION_BACKWARD))
|
||||
ya = InputManager.GetJoypadStick_LY(iPad);
|
||||
else
|
||||
ya = 0.0f;
|
||||
|
||||
#ifndef _CONTENT_PACKAGE
|
||||
if (app.GetFreezePlayers()) {
|
||||
xa = ya = 0.0f;
|
||||
player->abilities.flying = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!lReset) {
|
||||
if (xa * xa + ya * ya == 0.0f) {
|
||||
lReset = true;
|
||||
}
|
||||
xa = ya = 0.0f;
|
||||
}
|
||||
|
||||
// 4J - in flying mode, don't actually toggle sneaking
|
||||
if (!player->abilities.flying) {
|
||||
if ((player->ullButtonsPressed &
|
||||
(1LL << MINECRAFT_ACTION_SNEAK_TOGGLE)) &&
|
||||
pMinecraft->localgameModes[iPad]->isInputAllowed(
|
||||
MINECRAFT_ACTION_SNEAK_TOGGLE)) {
|
||||
sneaking = !sneaking;
|
||||
}
|
||||
}
|
||||
|
||||
if (sneaking) {
|
||||
xa *= 0.3f;
|
||||
ya *= 0.3f;
|
||||
}
|
||||
|
||||
float turnSpeed = 50.0f;
|
||||
|
||||
float tx = 0.0f;
|
||||
float ty = 0.0f;
|
||||
if (pMinecraft->localgameModes[iPad]->isInputAllowed(
|
||||
MINECRAFT_ACTION_LOOK_LEFT) ||
|
||||
pMinecraft->localgameModes[iPad]->isInputAllowed(
|
||||
MINECRAFT_ACTION_LOOK_RIGHT))
|
||||
tx = InputManager.GetJoypadStick_RX(iPad) *
|
||||
(((float)app.GetGameSettings(iPad,
|
||||
eGameSetting_Sensitivity_InGame)) /
|
||||
100.0f); // apply sensitivity to look
|
||||
if (pMinecraft->localgameModes[iPad]->isInputAllowed(
|
||||
MINECRAFT_ACTION_LOOK_UP) ||
|
||||
pMinecraft->localgameModes[iPad]->isInputAllowed(
|
||||
MINECRAFT_ACTION_LOOK_DOWN))
|
||||
ty = InputManager.GetJoypadStick_RY(iPad) *
|
||||
(((float)app.GetGameSettings(iPad,
|
||||
eGameSetting_Sensitivity_InGame)) /
|
||||
100.0f); // apply sensitivity to look
|
||||
|
||||
#ifndef _CONTENT_PACKAGE
|
||||
if (app.GetFreezePlayers()) tx = ty = 0.0f;
|
||||
#endif
|
||||
|
||||
// 4J: WESTY : Invert look Y if required.
|
||||
if (app.GetGameSettings(iPad, eGameSetting_ControlInvertLook)) {
|
||||
ty = -ty;
|
||||
}
|
||||
|
||||
if (!rReset) {
|
||||
if (tx * tx + ty * ty == 0.0f) {
|
||||
rReset = true;
|
||||
}
|
||||
tx = ty = 0.0f;
|
||||
}
|
||||
player->interpolateTurn(tx * abs(tx) * turnSpeed, ty * abs(ty) * turnSpeed);
|
||||
|
||||
// jumping = controller.isButtonPressed(0);
|
||||
|
||||
sprintKey = InputManager.GetValue(iPad, MINECRAFT_ACTION_SPRINT) &&
|
||||
pMinecraft->localgameModes[iPad]->isInputAllowed(
|
||||
MINECRAFT_ACTION_SPRINT);
|
||||
jumping =
|
||||
InputManager.GetValue(iPad, MINECRAFT_ACTION_JUMP) &&
|
||||
pMinecraft->localgameModes[iPad]->isInputAllowed(MINECRAFT_ACTION_JUMP);
|
||||
|
||||
#ifndef _CONTENT_PACKAGE
|
||||
if (app.GetFreezePlayers()) jumping = false;
|
||||
#endif
|
||||
|
||||
// OutputDebugString("INPUT: End input tick\n");
|
||||
}
|
||||
Reference in New Issue
Block a user