50 lines
3.5 KiB
Java
50 lines
3.5 KiB
Java
package dev.nightly.sablegravity.mixin;
|
|
|
|
import dev.nightly.sablegravity.GravityEntityState;
|
|
import net.minecraft.resources.ResourceLocation;
|
|
import net.minecraft.world.entity.Entity;
|
|
import net.minecraft.world.phys.Vec3;
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
import org.spongepowered.asm.mixin.Unique;
|
|
|
|
import java.util.UUID;
|
|
|
|
/** Per-entity frame state. It is runtime state, not saved NBT: every load/warp re-resolves safely. */
|
|
@Mixin(Entity.class)
|
|
public abstract class EntityGravityStateMixin implements GravityEntityState {
|
|
@Unique private boolean sablegravity$inLocalSimulation;
|
|
@Unique private boolean sablegravity$localStateValid;
|
|
@Unique private Vec3 sablegravity$localPosition = Vec3.ZERO;
|
|
@Unique private Vec3 sablegravity$localVelocity = Vec3.ZERO;
|
|
@Unique private UUID sablegravity$frameId;
|
|
@Unique private ResourceLocation sablegravity$frameProvider;
|
|
@Unique private ResourceLocation sablegravity$frameDimension;
|
|
@Unique private boolean sablegravity$gravitySampleValid;
|
|
@Unique private double sablegravity$gravitySample;
|
|
@Unique private boolean sablegravity$frameHandoffPending;
|
|
@Unique private int sablegravity$frameHandoffExpiryTick;
|
|
|
|
@Override public boolean sablegravity$isInLocalSimulation() { return sablegravity$inLocalSimulation; }
|
|
@Override public void sablegravity$setInLocalSimulation(boolean value) { sablegravity$inLocalSimulation = value; }
|
|
@Override public boolean sablegravity$isLocalStateValid() { return sablegravity$localStateValid; }
|
|
@Override public void sablegravity$setLocalStateValid(boolean value) { sablegravity$localStateValid = value; }
|
|
@Override public Vec3 sablegravity$getLocalPosition() { return sablegravity$localPosition; }
|
|
@Override public void sablegravity$setLocalPosition(Vec3 value) { sablegravity$localPosition = value; }
|
|
@Override public Vec3 sablegravity$getLocalVelocity() { return sablegravity$localVelocity; }
|
|
@Override public void sablegravity$setLocalVelocity(Vec3 value) { sablegravity$localVelocity = value; }
|
|
@Override public UUID sablegravity$getFrameId() { return sablegravity$frameId; }
|
|
@Override public void sablegravity$setFrameId(UUID value) { sablegravity$frameId = value; }
|
|
@Override public ResourceLocation sablegravity$getFrameProvider() { return sablegravity$frameProvider; }
|
|
@Override public void sablegravity$setFrameProvider(ResourceLocation value) { sablegravity$frameProvider = value; }
|
|
@Override public ResourceLocation sablegravity$getFrameDimension() { return sablegravity$frameDimension; }
|
|
@Override public void sablegravity$setFrameDimension(ResourceLocation value) { sablegravity$frameDimension = value; }
|
|
@Override public boolean sablegravity$isGravitySampleValid() { return sablegravity$gravitySampleValid; }
|
|
@Override public void sablegravity$setGravitySampleValid(boolean value) { sablegravity$gravitySampleValid = value; }
|
|
@Override public double sablegravity$getGravitySample() { return sablegravity$gravitySample; }
|
|
@Override public void sablegravity$setGravitySample(double value) { sablegravity$gravitySample = value; }
|
|
@Override public boolean sablegravity$isFrameHandoffPending() { return sablegravity$frameHandoffPending; }
|
|
@Override public void sablegravity$setFrameHandoffPending(boolean value) { sablegravity$frameHandoffPending = value; }
|
|
@Override public int sablegravity$getFrameHandoffExpiryTick() { return sablegravity$frameHandoffExpiryTick; }
|
|
@Override public void sablegravity$setFrameHandoffExpiryTick(int value) { sablegravity$frameHandoffExpiryTick = value; }
|
|
}
|