mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-22 11:54:39 +01:00
Add EntityCreationEvent
This commit is contained in:
@@ -1,8 +1,5 @@
|
||||
package emu.grasscutter.game.player;
|
||||
|
||||
import static emu.grasscutter.config.Configuration.GAME_OPTIONS;
|
||||
import static emu.grasscutter.scripts.constants.EventType.EVENT_UNLOCK_TRANS_POINT;
|
||||
|
||||
import emu.grasscutter.data.GameData;
|
||||
import emu.grasscutter.data.binout.ScenePointEntry;
|
||||
import emu.grasscutter.data.excels.OpenStateData;
|
||||
@@ -15,9 +12,13 @@ import emu.grasscutter.game.quest.enums.QuestState;
|
||||
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
|
||||
import emu.grasscutter.scripts.data.ScriptArgs;
|
||||
import emu.grasscutter.server.packet.send.*;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static emu.grasscutter.config.Configuration.GAME_OPTIONS;
|
||||
import static emu.grasscutter.scripts.constants.EventType.EVENT_UNLOCK_TRANS_POINT;
|
||||
|
||||
// @Entity
|
||||
public final class PlayerProgressManager extends BasePlayerDataManager {
|
||||
/******************************************************************************************************************
|
||||
@@ -81,6 +82,8 @@ public final class PlayerProgressManager extends BasePlayerDataManager {
|
||||
// Auto-unlock the first statue and map area.
|
||||
this.player.getUnlockedScenePoints(3).add(7);
|
||||
this.player.getUnlockedSceneAreas(3).add(1);
|
||||
// Allow the player to visit all areas.
|
||||
this.setOpenState(47, 1, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package emu.grasscutter.game.player;
|
||||
|
||||
import static emu.grasscutter.config.Configuration.GAME_OPTIONS;
|
||||
|
||||
import dev.morphia.annotations.Entity;
|
||||
import dev.morphia.annotations.Transient;
|
||||
import emu.grasscutter.GameConstants;
|
||||
@@ -25,6 +23,7 @@ import emu.grasscutter.net.proto.PlayerDieTypeOuterClass.PlayerDieType;
|
||||
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
|
||||
import emu.grasscutter.net.proto.TrialAvatarGrantRecordOuterClass.TrialAvatarGrantRecord.GrantReason;
|
||||
import emu.grasscutter.net.proto.VisionTypeOuterClass;
|
||||
import emu.grasscutter.server.event.entity.EntityCreationEvent;
|
||||
import emu.grasscutter.server.event.player.PlayerTeamDeathEvent;
|
||||
import emu.grasscutter.server.packet.send.*;
|
||||
import emu.grasscutter.utils.Utils;
|
||||
@@ -32,12 +31,15 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
||||
import it.unimi.dsi.fastutil.ints.IntSet;
|
||||
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
|
||||
import java.util.*;
|
||||
import java.util.stream.Stream;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.val;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static emu.grasscutter.config.Configuration.GAME_OPTIONS;
|
||||
|
||||
@Entity
|
||||
public final class TeamManager extends BasePlayerDataManager {
|
||||
@Transient private final List<EntityAvatar> avatars;
|
||||
@@ -353,9 +355,11 @@ public final class TeamManager extends BasePlayerDataManager {
|
||||
prevSelectedAvatarIndex = i;
|
||||
}
|
||||
} else {
|
||||
entity =
|
||||
new EntityAvatar(
|
||||
this.getPlayer().getScene(), this.getPlayer().getAvatars().getAvatarById(avatarId));
|
||||
var player = this.getPlayer();
|
||||
entity = EntityCreationEvent.call(EntityAvatar.class,
|
||||
new Class<?>[] {Scene.class, Avatar.class}, new Object[] {
|
||||
player.getScene(), player.getAvatars().getAvatarById(avatarId)
|
||||
});
|
||||
}
|
||||
|
||||
this.getActiveTeam().add(entity);
|
||||
@@ -494,7 +498,10 @@ public final class TeamManager extends BasePlayerDataManager {
|
||||
this.getActiveTeam().removeIf(x -> x.getAvatar().getAvatarId() == trialAvatar.getAvatarId());
|
||||
this.getCurrentTeamInfo().getAvatars().removeIf(x -> x == trialAvatar.getAvatarId());
|
||||
// Add the avatar to the teams.
|
||||
this.getActiveTeam().add(new EntityAvatar(this.getPlayer().getScene(), trialAvatar));
|
||||
this.getActiveTeam().add(EntityCreationEvent.call(EntityAvatar.class,
|
||||
new Class<?>[] {Scene.class, Avatar.class}, new Object[] {
|
||||
player.getScene(), trialAvatar
|
||||
}));
|
||||
this.getCurrentTeamInfo().addAvatar(trialAvatar);
|
||||
this.getTrialAvatars().put(trialAvatar.getAvatarId(), trialAvatar);
|
||||
}
|
||||
@@ -581,7 +588,10 @@ public final class TeamManager extends BasePlayerDataManager {
|
||||
.forEach(
|
||||
avatarId ->
|
||||
this.getActiveTeam()
|
||||
.add(new EntityAvatar(scene, player.getAvatars().getAvatarById(avatarId))));
|
||||
.add(EntityCreationEvent.call(EntityAvatar.class,
|
||||
new Class<?>[] {Scene.class, Avatar.class}, new Object[] {
|
||||
scene, player.getAvatars().getAvatarById(avatarId)
|
||||
})));
|
||||
} else {
|
||||
// Restores all avatars from the player's avatar storage.
|
||||
// If the avatar is already in the team, it will not be added.
|
||||
@@ -597,7 +607,10 @@ public final class TeamManager extends BasePlayerDataManager {
|
||||
var avatarData = player.getAvatars().getAvatarById(avatar);
|
||||
if (avatarData == null) continue;
|
||||
|
||||
this.getActiveTeam().add(index, new EntityAvatar(scene, avatarData));
|
||||
this.getActiveTeam().add(index, EntityCreationEvent.call(EntityAvatar.class,
|
||||
new Class<?>[] {Scene.class, Avatar.class}, new Object[] {
|
||||
scene, avatarData
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -963,7 +976,9 @@ public final class TeamManager extends BasePlayerDataManager {
|
||||
var avatar = avatars.getAvatarById(id);
|
||||
if (avatar == null) continue;
|
||||
|
||||
specifiedAvatarList.add(new EntityAvatar(scene, avatar));
|
||||
specifiedAvatarList.add(EntityCreationEvent.call(EntityAvatar.class,
|
||||
new Class<?>[] {Scene.class, Avatar.class},
|
||||
new Object[] {scene, avatar}));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user