mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-03-25 09:02:57 +01:00
Merge remote-tracking branch 'origin/unstable' into unstable
# Conflicts: # src/main/java/emu/grasscutter/game/entity/EntityWeapon.java
This commit is contained in:
@@ -17,11 +17,10 @@ import emu.grasscutter.net.proto.AbilityScalarTypeOuterClass.AbilityScalarType;
|
||||
import emu.grasscutter.net.proto.AbilityScalarValueEntryOuterClass.AbilityScalarValueEntry;
|
||||
import emu.grasscutter.net.proto.ModifierActionOuterClass.ModifierAction;
|
||||
import io.netty.util.concurrent.FastThreadLocalThread;
|
||||
import lombok.Getter;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.*;
|
||||
import lombok.Getter;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
public final class AbilityManager extends BasePlayerManager {
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ public class ActionSetGlobalValueToOverrideMap extends AbilityActionHandler {
|
||||
|
||||
entity.getGlobalAbilityValues().put(globalValueKey, globalValue);
|
||||
|
||||
//TODO: ChangeServerGlobalValueNotify
|
||||
// TODO: ChangeServerGlobalValueNotify
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -463,11 +463,16 @@ public class Avatar {
|
||||
this.getEquips().put(itemEquipType.getValue(), item);
|
||||
|
||||
if (itemEquipType == EquipType.EQUIP_WEAPON && getPlayer().getWorld() != null) {
|
||||
if (!(item.getWeaponEntity() != null && item.getWeaponEntity().getScene() == getPlayer().getScene())) {
|
||||
item.setWeaponEntity(new EntityWeapon(this.getPlayer().getScene(), item.getItemData().getGadgetId()));
|
||||
this.getPlayer().getScene().getWeaponEntities().put(item.getWeaponEntity().getId(), item.getWeaponEntity());
|
||||
if (!(item.getWeaponEntity() != null
|
||||
&& item.getWeaponEntity().getScene() == getPlayer().getScene())) {
|
||||
item.setWeaponEntity(
|
||||
new EntityWeapon(this.getPlayer().getScene(), item.getItemData().getGadgetId()));
|
||||
this.getPlayer()
|
||||
.getScene()
|
||||
.getWeaponEntities()
|
||||
.put(item.getWeaponEntity().getId(), item.getWeaponEntity());
|
||||
}
|
||||
//item.setWeaponEntityId(this.getPlayer().getWorld().getNextEntityId(EntityIdType.WEAPON));
|
||||
// item.setWeaponEntityId(this.getPlayer().getWorld().getNextEntityId(EntityIdType.WEAPON));
|
||||
}
|
||||
|
||||
item.setEquipCharacter(this.getAvatarId());
|
||||
@@ -1262,9 +1267,14 @@ public class Avatar {
|
||||
item.setEquipCharacter(this.getAvatarId());
|
||||
item.setOwner(player);
|
||||
if (item.getItemData().getEquipType() == EquipType.EQUIP_WEAPON) {
|
||||
if (!(item.getWeaponEntity() != null && item.getWeaponEntity().getScene() == player.getScene())) {
|
||||
item.setWeaponEntity(new EntityWeapon(player.getScene(), item.getItemData().getGadgetId()));
|
||||
player.getScene().getWeaponEntities().put(item.getWeaponEntity().getId(), item.getWeaponEntity());
|
||||
if (!(item.getWeaponEntity() != null
|
||||
&& item.getWeaponEntity().getScene() == player.getScene())) {
|
||||
item.setWeaponEntity(
|
||||
new EntityWeapon(player.getScene(), item.getItemData().getGadgetId()));
|
||||
player
|
||||
.getScene()
|
||||
.getWeaponEntities()
|
||||
.put(item.getWeaponEntity().getId(), item.getWeaponEntity());
|
||||
}
|
||||
|
||||
player.sendPacket(new PacketAvatarEquipChangeNotify(this, item));
|
||||
|
||||
@@ -64,7 +64,8 @@ public class EntityAvatar extends GameEntity {
|
||||
var weapon = this.getAvatar().getWeapon();
|
||||
if (weapon != null) {
|
||||
if (!(weapon.getWeaponEntity() != null && weapon.getWeaponEntity().getScene() == scene)) {
|
||||
weapon.setWeaponEntity(new EntityWeapon(this.getPlayer().getScene(), weapon.getItemData().getGadgetId()));
|
||||
weapon.setWeaponEntity(
|
||||
new EntityWeapon(this.getPlayer().getScene(), weapon.getItemData().getGadgetId()));
|
||||
scene.getWeaponEntities().put(weapon.getWeaponEntity().getId(), weapon.getWeaponEntity());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,13 +276,14 @@ public class GameItem {
|
||||
}
|
||||
|
||||
public SceneWeaponInfo createSceneWeaponInfo() {
|
||||
var weaponInfo = SceneWeaponInfo.newBuilder()
|
||||
.setEntityId(this.getWeaponEntity() != null ? this.getWeaponEntity().getId() : 0)
|
||||
.setItemId(this.getItemId())
|
||||
.setGuid(this.getGuid())
|
||||
.setLevel(this.getLevel())
|
||||
.setGadgetId(this.getItemData().getGadgetId())
|
||||
.setAbilityInfo(AbilitySyncStateInfo.newBuilder().setIsInited(getAffixes().size() > 0));
|
||||
var weaponInfo =
|
||||
SceneWeaponInfo.newBuilder()
|
||||
.setEntityId(this.getWeaponEntity() != null ? this.getWeaponEntity().getId() : 0)
|
||||
.setItemId(this.getItemId())
|
||||
.setGuid(this.getGuid())
|
||||
.setLevel(this.getLevel())
|
||||
.setGadgetId(this.getItemData().getGadgetId())
|
||||
.setAbilityInfo(AbilitySyncStateInfo.newBuilder().setIsInited(getAffixes().size() > 0));
|
||||
|
||||
if (this.getAffixes() != null && this.getAffixes().size() > 0) {
|
||||
for (int affix : this.getAffixes()) {
|
||||
|
||||
@@ -800,7 +800,9 @@ public final class Scene {
|
||||
|
||||
for (GameEntity entity : this.getEntities().values()) {
|
||||
var spawnEntry = entity.getSpawnEntry();
|
||||
if (spawnEntry != null && !(entity instanceof EntityWeapon) && !visible.contains(spawnEntry)) {
|
||||
if (spawnEntry != null
|
||||
&& !(entity instanceof EntityWeapon)
|
||||
&& !visible.contains(spawnEntry)) {
|
||||
toRemove.add(entity);
|
||||
spawnedEntities.remove(spawnEntry);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user