Handle Signs and Keys like Scripts where no dialog will be opened when no message is there

This commit is contained in:
OMGeeky
2024-03-16 23:43:52 +01:00
parent ad28909118
commit 6bc57ba54e
3 changed files with 4 additions and 12 deletions

View File

@@ -66,14 +66,6 @@ public final class Dialogs {
CustomDialogFactory.show(d);
}
public static void showKeyArea(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
showConversation(currentActivity, context, phraseID, null);
}
public static void showMapSign(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
showConversation(currentActivity, context, phraseID, null);
}
public static void showMapScriptMessage(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
showConversation(currentActivity, context, phraseID, null, false);
}

View File

@@ -397,12 +397,10 @@ public final class MainActivity
@Override
public void onPlayerSteppedOnMapSignArea(MapObject area) {
Dialogs.showMapSign(this, controllers, area.id);
}
@Override
public void onPlayerSteppedOnKeyArea(MapObject area) {
Dialogs.showKeyArea(this, controllers, area.id);
}
@Override

View File

@@ -68,6 +68,7 @@ public final class MapController {
case sign:
if (o.id == null || o.id.length() <= 0) return;
worldEventListeners.onPlayerSteppedOnMapSignArea(o);
runScriptInArea(o);
break;
case newmap:
if (o.map == null || o.place == null) return;
@@ -79,7 +80,7 @@ public final class MapController {
steppedOnRestArea(o);
break;
case script:
runScriptArea(o);
runScriptInArea(o);
break;
}
}
@@ -93,7 +94,7 @@ public final class MapController {
return true;
}
private void runScriptArea(MapObject o) {
private void runScriptInArea(MapObject o) {
Resources res = controllers.getResources();
mapScriptExecutor.proceedToPhrase(res, o.id, true, true);
controllers.mapController.applyCurrentMapReplacements(res, true);
@@ -164,6 +165,7 @@ public final class MapController {
return true;
}
worldEventListeners.onPlayerSteppedOnKeyArea(area);
runScriptInArea(area);
return false;
}