Skip to content

Commit

Permalink
Do not add throw if identical to last throw
Browse files Browse the repository at this point in the history
  • Loading branch information
Ninjabrain1 committed Sep 7, 2024
1 parent 380fc18 commit e5a9dc4
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,17 @@ public SetPlayerPositionAction(IDataState dataState, IPlayerPosition newPlayerPo

@Override
public void execute() {
IPlayerPosition currentPlayerPosition = dataState.playerPosition().get();
if (currentPlayerPosition != null &&
newPlayerPosition != null &&
currentPlayerPosition.xInPlayerDimension() == newPlayerPosition.xInPlayerDimension() &&
currentPlayerPosition.zInPlayerDimension() == newPlayerPosition.zInPlayerDimension() &&
currentPlayerPosition.isInNether() == newPlayerPosition.isInNether() &&
currentPlayerPosition.isInOverworld() == newPlayerPosition.isInOverworld() &&
currentPlayerPosition.isInEnd() == newPlayerPosition.isInEnd() &&
currentPlayerPosition.horizontalAngle() == newPlayerPosition.horizontalAngle())
return;

dataState.playerPosition().set(newPlayerPosition);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import ninjabrainbot.model.datastate.common.IDetailedPlayerPosition;
import ninjabrainbot.model.datastate.common.ILimitedPlayerPosition;
import ninjabrainbot.model.datastate.common.IPlayerPositionInputSource;
import ninjabrainbot.model.datastate.endereye.IEnderEyeThrow;
import ninjabrainbot.model.datastate.endereye.IEnderEyeThrowFactory;

/**
Expand Down Expand Up @@ -68,7 +69,11 @@ private IAction getActionForInputtedPlayerPosition(IDetailedPlayerPosition playe
if (playerPosition.lookingBelowHorizon())
return null;

return new AddEnderEyeThrowAction(dataState, enderEyeThrowFactory.createEnderEyeThrowFromDetailedPlayerPosition(playerPosition));
IEnderEyeThrow enderEyeThrowToAdd = enderEyeThrowFactory.createEnderEyeThrowFromDetailedPlayerPosition(playerPosition);
if (shouldSkipAddingThrow(enderEyeThrowToAdd))
return null;

return new AddEnderEyeThrowAction(dataState, enderEyeThrowToAdd);
}

private void onNewLimitedPlayerPositionInputted(ILimitedPlayerPosition playerPosition) {
Expand All @@ -88,14 +93,28 @@ private IAction getActionForInputtedLimitedPlayerPosition(ILimitedPlayerPosition
if (!playerPosition.isInOverworld())
return null;

IAction action = new AddEnderEyeThrowAction(dataState, enderEyeThrowFactory.createEnderEyeThrowFromLimitedPlayerPosition(playerPosition));
IEnderEyeThrow enderEyeThrowToAdd = enderEyeThrowFactory.createEnderEyeThrowFromLimitedPlayerPosition(playerPosition);
if (shouldSkipAddingThrow(enderEyeThrowToAdd))
return null;

IAction action = new AddEnderEyeThrowAction(dataState, enderEyeThrowToAdd);

if (playerPosition.correctionIncrements() != 0)
action = new JointAction(action, new ChangeLastAngleAction(dataState, preferences, playerPosition.correctionIncrements()));

return action;
}

private boolean shouldSkipAddingThrow(IEnderEyeThrow enderEyeThrow) {
if (dataState.getThrowList().size() == 0)
return false;

IEnderEyeThrow lastThrow = dataState.getThrowList().getLast();
return lastThrow.xInOverworld() == enderEyeThrow.xInOverworld() &&
lastThrow.zInOverworld() == enderEyeThrow.zInOverworld() &&
lastThrow.horizontalAngleWithoutCorrection() == enderEyeThrow.horizontalAngleWithoutCorrection();
}

@Override
public void dispose() {
disposeHandler.dispose();
Expand Down

0 comments on commit e5a9dc4

Please sign in to comment.