yeet mixin

This commit is contained in:
SD 2020-12-12 12:43:08 +05:30
parent 3e38c8fb8d
commit 38857cd25b
No known key found for this signature in database
GPG key ID: E36B57EE08544BC5
4 changed files with 0 additions and 78 deletions

View file

@ -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;
}
}

View file

@ -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);
}

View file

@ -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;

View file

@ -9,7 +9,6 @@
"DefaultBiomeFeaturesMixin",
"DimensionTypeAccessor",
"DirectionAccessor",
"EntityMixin",
"GenerationSettingsAccessor",
"ListTagAccessor",
"PlayerEntityMixin",