mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +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 playerSpeedModifier = 1f;
|
||||||
private float playerSpeedEquipmentModifier = 1f;
|
private float playerSpeedEquipmentModifier = 1f;
|
||||||
GameStage gameStage;
|
GameStage gameStage;
|
||||||
|
|
||||||
public PlayerSprite(GameStage gameStage) {
|
public PlayerSprite(GameStage gameStage) {
|
||||||
super(AdventurePlayer.current().spriteName());
|
super(AdventurePlayer.current().spriteName());
|
||||||
this.gameStage=gameStage;
|
this.gameStage = gameStage;
|
||||||
setOriginX(getWidth() / 2);
|
setOriginX(getWidth() / 2);
|
||||||
Current.player().onPlayerChanged(new Runnable() {
|
Current.player().onPlayerChanged(PlayerSprite.this::updatePlayer);
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
PlayerSprite.this.updatePlayer();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
playerSpeed = Config.instance().getConfigData().playerBaseSpeed;
|
playerSpeed = Config.instance().getConfigData().playerBaseSpeed;
|
||||||
|
|
||||||
//Attach signals here.
|
//Attach signals here.
|
||||||
Current.player().onBlessing( () -> playerSpeedEquipmentModifier = Current.player().equipmentSpeed() );
|
Current.player().onBlessing(() -> playerSpeedEquipmentModifier = Current.player().equipmentSpeed());
|
||||||
Current.player().onEquipmentChanged( () -> playerSpeedEquipmentModifier = Current.player().equipmentSpeed() );
|
Current.player().onEquipmentChanged(() -> playerSpeedEquipmentModifier = Current.player().equipmentSpeed());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePlayer() {
|
private void updatePlayer() {
|
||||||
@@ -89,6 +85,6 @@ public class PlayerSprite extends CharacterSprite {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setPosition(Vector2 oldPosition) {
|
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;
|
return;
|
||||||
if (!GameScene.instance().isNotInWorldMap()) //prevent showing this dialog to WorldMap
|
if (!GameScene.instance().isNotInWorldMap()) //prevent showing this dialog to WorldMap
|
||||||
return;
|
return;
|
||||||
|
if (Forge.restrictAdvMenus)
|
||||||
|
return;
|
||||||
dialog.getButtonTable().clear();
|
dialog.getButtonTable().clear();
|
||||||
dialog.getContentTable().clear();
|
dialog.getContentTable().clear();
|
||||||
dialog.clearListeners();
|
dialog.clearListeners();
|
||||||
@@ -657,8 +659,15 @@ public class GameHUD extends Stage {
|
|||||||
public void setDebug(boolean b) {
|
public void setDebug(boolean b) {
|
||||||
debugMap = b;
|
debugMap = b;
|
||||||
}
|
}
|
||||||
|
public void playerIdle() {
|
||||||
|
if (MapStage.getInstance().isInMap()) {
|
||||||
|
MapStage.getInstance().getPlayerSprite().stop();
|
||||||
|
} else {
|
||||||
|
WorldStage.getInstance().getPlayerSprite().stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
private void showDialog() {
|
private void showDialog() {
|
||||||
|
playerIdle();
|
||||||
dialogButtonMap.clear();
|
dialogButtonMap.clear();
|
||||||
for (int i = 0; i < dialog.getButtonTable().getCells().size; i++) {
|
for (int i = 0; i < dialog.getButtonTable().getCells().size; i++) {
|
||||||
dialogButtonMap.add((TextraButton) dialog.getButtonTable().getCells().get(i).getActor());
|
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()));
|
sprite.setY(actor.getY() + Float.parseFloat(prop.get("signYOffset").toString()));
|
||||||
addMapActor(sprite);
|
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));
|
TextureSprite overlay = new TextureSprite(Config.instance().getAtlas(data.spriteAtlas).createSprite(data.overlaySprite));
|
||||||
overlay.setX(actor.getX() + Float.parseFloat(prop.get("signXOffset").toString()));
|
overlay.setX(actor.getX() + Float.parseFloat(prop.get("signXOffset").toString()));
|
||||||
overlay.setY(actor.getY() + Float.parseFloat(prop.get("signYOffset").toString()));
|
overlay.setY(actor.getY() + Float.parseFloat(prop.get("signYOffset").toString()));
|
||||||
@@ -1160,6 +1160,7 @@ public class MapStage extends GameStage {
|
|||||||
if (dialogStage == null){
|
if (dialogStage == null){
|
||||||
setDialogStage(GameHUD.getInstance());
|
setDialogStage(GameHUD.getInstance());
|
||||||
}
|
}
|
||||||
|
GameHUD.getInstance().playerIdle();
|
||||||
dialogButtonMap.clear();
|
dialogButtonMap.clear();
|
||||||
for (int i = 0; i < dialog.getButtonTable().getCells().size; i++) {
|
for (int i = 0; i < dialog.getButtonTable().getCells().size; i++) {
|
||||||
dialogButtonMap.add((TextraButton) dialog.getButtonTable().getCells().get(i).getActor());
|
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