mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-16 08:56:04 +01:00
fix: albedo elevator doesn't work (#1845)
* Packet preparation * elevator creation * Make elevator work, scene time, entity removed event. * Avoid referencing certain character name.
This commit is contained in:
@@ -50,6 +50,7 @@ public class Scene {
|
||||
|
||||
@Getter @Setter private int autoCloseTime;
|
||||
@Getter private int time;
|
||||
private long startTime;
|
||||
|
||||
@Getter private SceneScriptManager scriptManager;
|
||||
@Getter @Setter private WorldChallenge challenge;
|
||||
@@ -65,6 +66,7 @@ public class Scene {
|
||||
this.entities = new ConcurrentHashMap<>();
|
||||
|
||||
this.time = 8 * 60;
|
||||
this.startTime = System.currentTimeMillis();
|
||||
this.prevScene = 3;
|
||||
|
||||
this.spawnedEntities = ConcurrentHashMap.newKeySet();
|
||||
@@ -103,6 +105,10 @@ public class Scene {
|
||||
this.time = time % 1440;
|
||||
}
|
||||
|
||||
public int getSceneTime() {
|
||||
return (int) (System.currentTimeMillis() - this.startTime);
|
||||
}
|
||||
|
||||
public void setDungeonData(DungeonData dungeonData) {
|
||||
if (dungeonData == null || this.dungeonData != null || this.getSceneType() != SceneType.SCENE_DUNGEON || dungeonData.getSceneId() != this.getId()) {
|
||||
return;
|
||||
@@ -235,7 +241,11 @@ public class Scene {
|
||||
}
|
||||
|
||||
private GameEntity removeEntityDirectly(GameEntity entity) {
|
||||
return getEntities().remove(entity.getId());
|
||||
var removed = getEntities().remove(entity.getId());
|
||||
if (removed != null) {
|
||||
removed.onRemoved();//Call entity remove event
|
||||
}
|
||||
return removed;
|
||||
}
|
||||
|
||||
public void removeEntity(GameEntity entity) {
|
||||
|
||||
Reference in New Issue
Block a user