mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
Merge pull request #3367 from kevlahnota/newmaster2
stop player movement when dialog is shown
This commit is contained in:
@@ -16,22 +16,18 @@ public class PlayerSprite extends CharacterSprite {
|
||||
private float playerSpeedModifier = 1f;
|
||||
private float playerSpeedEquipmentModifier = 1f;
|
||||
GameStage gameStage;
|
||||
|
||||
public PlayerSprite(GameStage gameStage) {
|
||||
super(AdventurePlayer.current().spriteName());
|
||||
this.gameStage=gameStage;
|
||||
this.gameStage = gameStage;
|
||||
setOriginX(getWidth() / 2);
|
||||
Current.player().onPlayerChanged(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PlayerSprite.this.updatePlayer();
|
||||
}
|
||||
});
|
||||
Current.player().onPlayerChanged(PlayerSprite.this::updatePlayer);
|
||||
|
||||
playerSpeed = Config.instance().getConfigData().playerBaseSpeed;
|
||||
|
||||
//Attach signals here.
|
||||
Current.player().onBlessing( () -> playerSpeedEquipmentModifier = Current.player().equipmentSpeed() );
|
||||
Current.player().onEquipmentChanged( () -> playerSpeedEquipmentModifier = Current.player().equipmentSpeed() );
|
||||
Current.player().onBlessing(() -> playerSpeedEquipmentModifier = Current.player().equipmentSpeed());
|
||||
Current.player().onEquipmentChanged(() -> playerSpeedEquipmentModifier = Current.player().equipmentSpeed());
|
||||
}
|
||||
|
||||
private void updatePlayer() {
|
||||
@@ -89,6 +85,6 @@ public class PlayerSprite extends CharacterSprite {
|
||||
}
|
||||
|
||||
public void setPosition(Vector2 oldPosition) {
|
||||
setPosition(oldPosition.x,oldPosition.y);
|
||||
setPosition(oldPosition.x, oldPosition.y);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -513,6 +513,8 @@ public class GameHUD extends Stage {
|
||||
return;
|
||||
if (!GameScene.instance().isNotInWorldMap()) //prevent showing this dialog to WorldMap
|
||||
return;
|
||||
if (Forge.restrictAdvMenus)
|
||||
return;
|
||||
dialog.getButtonTable().clear();
|
||||
dialog.getContentTable().clear();
|
||||
dialog.clearListeners();
|
||||
@@ -657,8 +659,15 @@ public class GameHUD extends Stage {
|
||||
public void setDebug(boolean b) {
|
||||
debugMap = b;
|
||||
}
|
||||
|
||||
public void playerIdle() {
|
||||
if (MapStage.getInstance().isInMap()) {
|
||||
MapStage.getInstance().getPlayerSprite().stop();
|
||||
} else {
|
||||
WorldStage.getInstance().getPlayerSprite().stop();
|
||||
}
|
||||
}
|
||||
private void showDialog() {
|
||||
playerIdle();
|
||||
dialogButtonMap.clear();
|
||||
for (int i = 0; i < dialog.getButtonTable().getCells().size; i++) {
|
||||
dialogButtonMap.add((TextraButton) dialog.getButtonTable().getCells().get(i).getActor());
|
||||
|
||||
@@ -828,7 +828,7 @@ public class MapStage extends GameStage {
|
||||
sprite.setY(actor.getY() + Float.parseFloat(prop.get("signYOffset").toString()));
|
||||
addMapActor(sprite);
|
||||
|
||||
if (!(data.overlaySprite == null | data.overlaySprite.isEmpty())) {
|
||||
if (!(data.overlaySprite == null || data.overlaySprite.isEmpty())) {
|
||||
TextureSprite overlay = new TextureSprite(Config.instance().getAtlas(data.spriteAtlas).createSprite(data.overlaySprite));
|
||||
overlay.setX(actor.getX() + Float.parseFloat(prop.get("signXOffset").toString()));
|
||||
overlay.setY(actor.getY() + Float.parseFloat(prop.get("signYOffset").toString()));
|
||||
@@ -1160,6 +1160,7 @@ public class MapStage extends GameStage {
|
||||
if (dialogStage == null){
|
||||
setDialogStage(GameHUD.getInstance());
|
||||
}
|
||||
GameHUD.getInstance().playerIdle();
|
||||
dialogButtonMap.clear();
|
||||
for (int i = 0; i < dialog.getButtonTable().getCells().size; i++) {
|
||||
dialogButtonMap.add((TextraButton) dialog.getButtonTable().getCells().get(i).getActor());
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user