fixed tetris player inputs
This commit is contained in:
parent
f03011e4f1
commit
81dbf16d3f
@ -7,7 +7,6 @@ import eu.mhsl.minenet.minigames.instance.game.stateless.types.tetris.game.Tetro
|
|||||||
import eu.mhsl.minenet.minigames.score.PointsWinScore;
|
import eu.mhsl.minenet.minigames.score.PointsWinScore;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.minestom.server.coordinate.Pos;
|
import net.minestom.server.coordinate.Pos;
|
||||||
import net.minestom.server.coordinate.Vec;
|
|
||||||
import net.minestom.server.entity.Entity;
|
import net.minestom.server.entity.Entity;
|
||||||
import net.minestom.server.entity.GameMode;
|
import net.minestom.server.entity.GameMode;
|
||||||
import net.minestom.server.entity.Player;
|
import net.minestom.server.entity.Player;
|
||||||
@ -73,7 +72,6 @@ class Tetris extends StatelessGame {
|
|||||||
@Override
|
@Override
|
||||||
protected void onPlayerMove(@NotNull PlayerMoveEvent event) {
|
protected void onPlayerMove(@NotNull PlayerMoveEvent event) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
Pos previousPosition = event.getPlayer().getPosition();
|
|
||||||
Pos currentPosition = event.getNewPosition();
|
Pos currentPosition = event.getNewPosition();
|
||||||
|
|
||||||
TetrisGame tetrisGame = this.tetrisGames.get(player);
|
TetrisGame tetrisGame = this.tetrisGames.get(player);
|
||||||
@ -85,37 +83,14 @@ class Tetris extends StatelessGame {
|
|||||||
if(tetrisGame.lost) return;
|
if(tetrisGame.lost) return;
|
||||||
if(player.getGameMode() == GameMode.SPECTATOR) return;
|
if(player.getGameMode() == GameMode.SPECTATOR) return;
|
||||||
|
|
||||||
|
if(player.inputs().forward()) tetrisGame.pressedButton(TetrisGame.Button.W);
|
||||||
|
if(player.inputs().backward()) tetrisGame.pressedButton(TetrisGame.Button.S);
|
||||||
|
if(player.inputs().right()) tetrisGame.pressedButton(TetrisGame.Button.D);
|
||||||
|
if(player.inputs().left()) tetrisGame.pressedButton(TetrisGame.Button.A);
|
||||||
|
if(player.inputs().jump()) tetrisGame.pressedButton(TetrisGame.Button.space);
|
||||||
|
|
||||||
event.setNewPosition(tetrisGame.getPlayerSpawnPosition().withView(currentPosition));
|
event.setNewPosition(tetrisGame.getPlayerSpawnPosition().withView(currentPosition));
|
||||||
player.setSprinting(false);
|
player.setSprinting(false);
|
||||||
|
|
||||||
Vec movementVector = currentPosition.asVec().sub(previousPosition.asVec());
|
|
||||||
|
|
||||||
float yaw = player.getPosition().yaw();
|
|
||||||
|
|
||||||
double yawRadians = Math.toRadians(yaw);
|
|
||||||
double forwardX = -Math.sin(yawRadians);
|
|
||||||
double forwardZ = Math.cos(yawRadians);
|
|
||||||
|
|
||||||
Vec forward = new Vec(forwardX, 0, forwardZ).normalize();
|
|
||||||
Vec left = forward.cross(new Vec(0, 1, 0)).normalize();
|
|
||||||
|
|
||||||
double forwardAmount = movementVector.dot(forward);
|
|
||||||
double leftAmount = movementVector.dot(left);
|
|
||||||
|
|
||||||
double buttonPressAmount = 0.05;
|
|
||||||
if (forwardAmount > buttonPressAmount) {
|
|
||||||
tetrisGame.pressedButton(TetrisGame.Button.W);
|
|
||||||
} else if (forwardAmount < -buttonPressAmount) {
|
|
||||||
tetrisGame.pressedButton(TetrisGame.Button.S);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (leftAmount > buttonPressAmount) {
|
|
||||||
tetrisGame.pressedButton(TetrisGame.Button.D);
|
|
||||||
} else if (leftAmount < -buttonPressAmount) {
|
|
||||||
tetrisGame.pressedButton(TetrisGame.Button.A);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(previousPosition.y() < currentPosition.y()) tetrisGame.pressedButton(TetrisGame.Button.space);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void onPlayerInteract(@NotNull PlayerUseItemEvent event) {
|
protected void onPlayerInteract(@NotNull PlayerUseItemEvent event) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user