mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2024-12-22 17:27:38 +00:00
Fix entities copying to original location.
Fixes WORLDEDIT-3275.
This commit is contained in:
parent
78a8683df3
commit
642f2a1f58
@ -89,19 +89,19 @@ public class ExtentEntityCopy implements EntityFunction {
|
||||
BaseEntity state = entity.getState();
|
||||
if (state != null) {
|
||||
Location newLocation;
|
||||
Location location = entity.getLocation();
|
||||
|
||||
if (!transform.isIdentity()) {
|
||||
Location location = entity.getLocation();
|
||||
Vector pivot = from.round().add(0.5, 0.5, 0.5);
|
||||
Vector newPosition = transform.apply(location.toVector().subtract(pivot));
|
||||
Vector newDirection = transform.apply(location.getDirection()).subtract(transform.apply(Vector.ZERO)).normalize();
|
||||
newLocation = new Location(destination, newPosition.add(to.round().add(0.5, 0.5, 0.5)), newDirection);
|
||||
Vector pivot = from.round().add(0.5, 0.5, 0.5);
|
||||
Vector newPosition = transform.apply(location.toVector().subtract(pivot));
|
||||
Vector newDirection;
|
||||
|
||||
// Some entities store their position data in NBT
|
||||
state = transformNbtData(state);
|
||||
} else {
|
||||
newLocation = entity.getLocation();
|
||||
}
|
||||
newDirection = transform.isIdentity() ?
|
||||
entity.getLocation().getDirection()
|
||||
: transform.apply(location.getDirection()).subtract(transform.apply(Vector.ZERO)).normalize();
|
||||
newLocation = new Location(destination, newPosition.add(to.round().add(0.5, 0.5, 0.5)), newDirection);
|
||||
|
||||
// Some entities store their position data in NBT
|
||||
state = transformNbtData(state);
|
||||
|
||||
boolean success = destination.createEntity(newLocation, state) != null;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user