yeet mixin
This commit is contained in:
parent
3e38c8fb8d
commit
38857cd25b
4 changed files with 0 additions and 78 deletions
|
@ -1,55 +0,0 @@
|
|||
package org.dimdev.dimdoors.mixin;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import org.dimdev.dimdoors.util.EntityExtensions;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
import net.minecraft.world.TeleportTarget;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@Mixin(Entity.class)
|
||||
public class EntityMixin implements EntityExtensions {
|
||||
@Shadow
|
||||
public World world;
|
||||
@Unique
|
||||
private boolean dimdoors_readyToTeleport = false;
|
||||
private TeleportTarget dimdoors_teleportTarget = null;
|
||||
|
||||
@Inject(at = @At("HEAD"), cancellable = true, method = "getTeleportTarget")
|
||||
public void interceptTeleportTarget(ServerWorld destination, CallbackInfoReturnable<TeleportTarget> cir) {
|
||||
if (destination.getRegistryKey().getValue().getNamespace().equals("dimdoors")) {
|
||||
if (this.dimdoors_isReadyToTeleport()) {
|
||||
cir.setReturnValue(Objects.requireNonNull(this.dimdoors_teleportTarget));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(at = @At("TAIL"), method = "moveToWorld")
|
||||
public void cleanup(ServerWorld destination, CallbackInfoReturnable<TeleportTarget> cir) {
|
||||
this.dimdoors_teleportTarget = null;
|
||||
this.dimdoors_setReadyToTeleport(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dimdoors_isReadyToTeleport() {
|
||||
return this.dimdoors_readyToTeleport;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dimdoors_setReadyToTeleport(boolean value) {
|
||||
this.dimdoors_readyToTeleport = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dimdoors_setTeleportTarget(TeleportTarget target) {
|
||||
this.dimdoors_teleportTarget = target;
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
package org.dimdev.dimdoors.util;
|
||||
|
||||
import net.minecraft.world.TeleportTarget;
|
||||
|
||||
public interface EntityExtensions {
|
||||
boolean dimdoors_isReadyToTeleport();
|
||||
|
||||
void dimdoors_setReadyToTeleport(boolean value);
|
||||
|
||||
void dimdoors_setTeleportTarget(TeleportTarget target);
|
||||
}
|
|
@ -9,19 +9,8 @@ import net.minecraft.entity.projectile.FishingBobberEntity;
|
|||
import net.minecraft.entity.projectile.ProjectileEntity;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.world.TeleportTarget;
|
||||
|
||||
public final class EntityUtils {
|
||||
public static void prepareTeleportation(Entity e, Vec3d pos, float yawOffset) {
|
||||
if (e instanceof EntityExtensions) {
|
||||
((EntityExtensions) e).dimdoors_setReadyToTeleport(true);
|
||||
((EntityExtensions) e).dimdoors_setTeleportTarget(new TeleportTarget(pos, Vec3d.ZERO, e.getYaw(1.0F) + yawOffset, e.getPitch(1.0F)));
|
||||
} else {
|
||||
throw new AssertionError("Mixin not applied");
|
||||
}
|
||||
}
|
||||
|
||||
public static Entity getOwner(Entity entity) {
|
||||
Entity topmostEntity = null;
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
"DefaultBiomeFeaturesMixin",
|
||||
"DimensionTypeAccessor",
|
||||
"DirectionAccessor",
|
||||
"EntityMixin",
|
||||
"GenerationSettingsAccessor",
|
||||
"ListTagAccessor",
|
||||
"PlayerEntityMixin",
|
||||
|
|
Loading…
Reference in a new issue