Support upcoming new tick freeze implementation #169
Besitzer
- Entities have to be resent/fixed (excerpt from old tick freeze paper implementation:
- [ ] Entities have to be resent/fixed (excerpt from old tick freeze paper implementation:
```
// SteamWar start
private boolean sendEntityPackets(Entity entity) {
//TODO move to BauSystem (spawn and all existing)
if (currentlyFrozen && !(entity instanceof ItemEntity)) {
ClientboundSetEntityMotionPacket packetPlayOutEntityVelocity = new ClientboundSetEntityMotionPacket(entity.getId(), new Vec3(0, 0, 0));
ClientboundTeleportEntityPacket packetPlayOutEntityTeleport = new ClientboundTeleportEntityPacket(entity);
if (entity instanceof PrimedTnt) {
PrimedTnt entityTNTPrimed = new PrimedTnt(EntityType.TNT, this);
entityTNTPrimed.setNoGravity(true);
entityTNTPrimed.setPos(entity.getX(), entity.getY(), entity.getZ());
entityTNTPrimed.setFuse(((PrimedTnt) entity).getFuse());
entityTNTPrimed.setFuse(entityTNTPrimed.getFuse() - (entityTNTPrimed.getFuse() % 5 == 1 ? 1 : 0));
}
players.forEach(player -> {
player.connection.send(packetPlayOutEntityVelocity);
player.connection.send(packetPlayOutEntityTeleport);
});
List<SynchedEntityData.DataValue<?>> nonDefaultValues = entity.getEntityData().getNonDefaultValues();
if(nonDefaultValues != null) {
ClientboundSetEntityDataPacket packetPlayOutEntityMetadata = new ClientboundSetEntityDataPacket(entity.getId(), nonDefaultValues);
players.forEach(player -> player.connection.send(packetPlayOutEntityMetadata));
}
return true;
}
if (lastFreezed && !(entity instanceof ItemEntity)) {
ClientboundSetEntityMotionPacket packetPlayOutEntityVelocity = new ClientboundSetEntityMotionPacket(entity);
ClientboundTeleportEntityPacket packetPlayOutEntityTeleport = new ClientboundTeleportEntityPacket(entity);
players.forEach(player -> {
player.connection.send(packetPlayOutEntityVelocity);
player.connection.send(packetPlayOutEntityTeleport);
});
List<SynchedEntityData.DataValue<?>> nonDefaultValues = entity.getEntityData().getNonDefaultValues();
if(nonDefaultValues != null) {
ClientboundSetEntityDataPacket packetPlayOutEntityMetadata = new ClientboundSetEntityDataPacket(entity.getId(), nonDefaultValues);
players.forEach(player -> player.connection.send(packetPlayOutEntityMetadata));
}
}
return false;
}
// SteamWar end
```
Label
Kein Label
1.15
1.19
1.20
Script-API
Bug
Codeverbesserung
Einsteiger Freundlich
Idee
In Arbeit
Neues Feature
Prio A
Security Breach
Überprüfung notwendig
Verbesserung
Zu Beobachten
Kein Meilenstein
Kein Projekt
Niemand zuständig
1 Beteiligte
Nachrichten
Fällig am
Kein Fälligkeitsdatum gesetzt.
Abhängigkeiten
Keine Abhängigkeiten gesetzt.
Referenz: SteamWar/BauSystem2.0#169
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren
Keine Beschreibung angegeben.
Branch "%!s()" löschen
Das Löschen eines Branches ist permanent. Obwohl der Branch für eine kurze Zeit weiter existieren könnte, kann diese Aktion in den meisten Fällen NICHT rückgängig gemacht werden. Fortfahren?