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:
hamusuke
2022-10-12 15:56:45 +09:00
committed by GitHub
parent f801fe0305
commit bf8ee32382
13 changed files with 2839 additions and 9 deletions

View File

@@ -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) {