fix king and queen attack anim bug
stabalize RainbowAntEntity dims patch config inconsitency fixed undervault performance improvements
This commit is contained in:
1 parent
377f3785af
commit
37e941915d
47 files changed
+784
-231
No files matched your search
+8
-2
@@ -72,8 +72,14 @@ public final class AntarchyFabricEvents {
|
||||
}
|
||||
|
||||
public static void register() {
|
||||
ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> ChronosphereManager.refresh(handler.player));
|
||||
ServerPlayerEvents.AFTER_RESPAWN.register((oldPlayer, newPlayer, alive) -> ChronosphereManager.refresh(newPlayer));
|
||||
ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> {
|
||||
ChronosphereManager.refresh(handler.player);
|
||||
TimeDilationManager.resyncPersistentEffects(handler.player);
|
||||
});
|
||||
ServerPlayerEvents.AFTER_RESPAWN.register((oldPlayer, newPlayer, alive) -> {
|
||||
ChronosphereManager.refresh(newPlayer);
|
||||
TimeDilationManager.resyncPersistentEffects(newPlayer);
|
||||
});
|
||||
ServerEntityWorldChangeEvents.AFTER_PLAYER_CHANGE_WORLD.register((player, origin, destination) -> ChronosphereManager.refresh(player));
|
||||
net.fabricmc.fabric.api.networking.v1.EntityTrackingEvents.START_TRACKING.register((trackedEntity, player) -> {
|
||||
if (trackedEntity instanceof com.craisinlord.antarchy.content.time.TimeDilationEntityAccess access
|
||||
|
||||
+6
-3
@@ -2,6 +2,7 @@ package com.craisinlord.antarchy.fabric;
|
||||
|
||||
import com.craisinlord.antarchy.Antarchy;
|
||||
import com.craisinlord.antarchy.compat.infinity.InfinityCompatBridge;
|
||||
import com.craisinlord.antarchy.compat.infinity.InfinityWarpResult;
|
||||
import net.lerariemann.infinity.util.InfinityMethods;
|
||||
import net.lerariemann.infinity.util.teleport.PortalCreator;
|
||||
import net.lerariemann.infinity.util.teleport.WarpLogic;
|
||||
@@ -38,13 +39,15 @@ public final class FabricInfinityCompat implements InfinityCompatBridge {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean requestWarp(ServerPlayer player, ResourceLocation dimensionId) {
|
||||
public InfinityWarpResult requestWarp(ServerPlayer player, ResourceLocation dimensionId) {
|
||||
try {
|
||||
WarpLogic.requestWarp(player, dimensionId, false);
|
||||
return true;
|
||||
return InfinityWarpResult.PENDING;
|
||||
} catch (Throwable throwable) {
|
||||
Antarchy.LOGGER.error("[Antarchy] Failed to request an Infinity warp to {}", dimensionId, throwable);
|
||||
return false;
|
||||
return InfinityGenerationFailure.consume(dimensionId)
|
||||
? InfinityWarpResult.FAILED_GENERATION
|
||||
: InfinityWarpResult.REJECTED;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.craisinlord.antarchy.fabric;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
public final class InfinityGenerationFailure {
|
||||
private static final ThreadLocal<ResourceLocation> FAILURE = new ThreadLocal<>();
|
||||
|
||||
private InfinityGenerationFailure() {
|
||||
}
|
||||
|
||||
public static void mark(ResourceLocation dimensionId) {
|
||||
FAILURE.set(dimensionId);
|
||||
}
|
||||
|
||||
public static boolean consume(ResourceLocation dimensionId) {
|
||||
ResourceLocation failed = FAILURE.get();
|
||||
FAILURE.remove();
|
||||
return dimensionId.equals(failed);
|
||||
}
|
||||
}
|
||||
+17
-5
@@ -4,6 +4,8 @@ import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
|
||||
import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework;
|
||||
import com.craisinlord.antarchy.content.entity.multipart.MultipartPartAccess;
|
||||
import com.craisinlord.antarchy.content.entity.multipart.MultipartPartDefinition;
|
||||
import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi;
|
||||
import com.craisinlord.antarchy.content.gravity.AntarchyGravityRotationUtil;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
@@ -64,17 +66,27 @@ public class MultipartPartEntity extends Entity implements MultipartPartAccess {
|
||||
return;
|
||||
}
|
||||
|
||||
AntarchyGravityApi.applySyncedState(
|
||||
this,
|
||||
AntarchyGravityApi.getGravityDirection(parent),
|
||||
AntarchyGravityApi.getPrevGravityDirection(parent),
|
||||
AntarchyGravityApi.isGravityForced(parent),
|
||||
AntarchyGravityApi.getTransitionDuration(parent),
|
||||
AntarchyGravityApi.getTransitionRemaining(parent)
|
||||
);
|
||||
|
||||
double oldX = this.getX();
|
||||
double oldY = this.getY();
|
||||
double oldZ = this.getZ();
|
||||
double yawRadians = Math.toRadians(parent.getYRot());
|
||||
Vec3 forward = new Vec3(-Math.sin(yawRadians), 0.0D, Math.cos(yawRadians));
|
||||
Vec3 right = new Vec3(forward.z, 0.0D, -forward.x);
|
||||
Vec3 position = new Vec3(
|
||||
parent.getX() + forward.x * definition.forwardOffset() + right.x * definition.lateralOffset(),
|
||||
parent.getY() + definition.yOffset(),
|
||||
parent.getZ() + forward.z * definition.forwardOffset() + right.z * definition.lateralOffset()
|
||||
);
|
||||
Vec3 localOffset = new Vec3(
|
||||
forward.x * definition.forwardOffset() + right.x * definition.lateralOffset(),
|
||||
definition.yOffset() + (AntarchyGravityApi.isGravityInverted(parent) ? definition.height() : 0.0D),
|
||||
forward.z * definition.forwardOffset() + right.z * definition.lateralOffset());
|
||||
Vec3 offset = AntarchyGravityRotationUtil.vecPlayerToWorld(localOffset, AntarchyGravityApi.getGravityDirection(parent));
|
||||
Vec3 position = parent.position().add(offset);
|
||||
this.setPos(position.x, position.y, position.z);
|
||||
this.setYRot(parent.getYRot());
|
||||
this.setXRot(parent.getXRot());
|
||||
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
package com.craisinlord.antarchy.fabric.mixin.infinity;
|
||||
|
||||
import com.craisinlord.antarchy.fabric.InfinityGenerationFailure;
|
||||
import net.lerariemann.infinity.access.MinecraftServerAccess;
|
||||
import net.lerariemann.infinity.util.teleport.PortalCreator;
|
||||
import net.lerariemann.infinity.util.teleport.WarpLogic;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.world.level.Level;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
@Mixin(WarpLogic.class)
|
||||
public interface WarpLogicMixin {
|
||||
@Redirect(
|
||||
method = "requestWarp(Lnet/minecraft/server/level/ServerPlayer;Lnet/minecraft/resources/ResourceLocation;Z)V",
|
||||
at = @At(value = "INVOKE", target = "Lnet/lerariemann/infinity/util/teleport/PortalCreator;tryAddInfinityDimension(Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/resources/ResourceLocation;)Z")
|
||||
)
|
||||
private static boolean antarchy$queuedDimensionCountsAsNew(MinecraftServer server, ResourceLocation dimensionId) throws Throwable {
|
||||
ResourceKey<Level> key = ResourceKey.create(Registries.DIMENSION, dimensionId);
|
||||
if (server instanceof MinecraftServerAccess access && access.infinity$hasToAdd(key)) {
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
return PortalCreator.tryAddInfinityDimension(server, dimensionId);
|
||||
} catch (Throwable throwable) {
|
||||
InfinityGenerationFailure.mark(dimensionId);
|
||||
throw throwable;
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1036,10 +1036,10 @@ public final class AntarchyFabricItems {
|
||||
public static final DeferredItem<Item> HERCULES_HORN = ITEMS.registerSimpleItem("hercules_horn", new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||
|
||||
|
||||
public static final DeferredItem<Item> KING_SCALE = ITEMS.registerSimpleItem("king_scale", new Item.Properties().rarity(Rarity.RARE));
|
||||
public static final DeferredItem<Item> KING_SCALE = ITEMS.registerSimpleItem("king_scale", new Item.Properties().rarity(Rarity.RARE).fireResistant());
|
||||
|
||||
|
||||
public static final DeferredItem<Item> QUEEN_SCALE = ITEMS.registerSimpleItem("queen_scale", new Item.Properties().rarity(Rarity.RARE));
|
||||
public static final DeferredItem<Item> QUEEN_SCALE = ITEMS.registerSimpleItem("queen_scale", new Item.Properties().rarity(Rarity.RARE).fireResistant());
|
||||
|
||||
|
||||
public static final DeferredItem<Item> CHITIN = ITEMS.registerSimpleItem("chitin", new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"entity.MultipartEntityLevelRegistryMixin",
|
||||
"WoodTypeInvoker",
|
||||
"infinity.PortalCreatorMixin",
|
||||
"infinity.WarpLogicMixin",
|
||||
"infinity.AmendmentRareOresMixin"
|
||||
],
|
||||
"client": [
|
||||
|
||||
Reference in new issue
Block a user