Giant frying pan

Many fixes
Boogaloo prep
Underside eye stars and moon
Commanded vfx
effect icons
fabric crash fixes
This commit is contained in:
craisinlord committed 2026-09-22 21:28:35 -05:00
1 parent 682bd39001
commit a566c7ffcd
95 files changed
+1738 -107

No files matched your search

@@ -494,6 +494,7 @@ public final class AntarchyConfigModuleNeoforge {
AntarchySettings.setRoyalAssailantLeggingsDoubleDamageChance(AntarchyToolsConfig.royalAssailantLeggingsDoubleDamageChance());
AntarchySettings.setRoyalAssailantBootsDoubleDamageChance(AntarchyToolsConfig.royalAssailantBootsDoubleDamageChance());
AntarchySettings.setRoyalGuardianSwordAttackDamage(AntarchyToolsConfig.royalGuardianSwordAttackDamage());
AntarchySettings.setGiantFryingPanAttackDamage(AntarchyToolsConfig.giantFryingPanAttackDamage());
AntarchySettings.setRoyalGuardianSwordAttackSpeed(AntarchyToolsConfig.royalGuardianSwordAttackSpeed());
AntarchySettings.setRoyalGuardianSwordElementalCooldownTicks(AntarchyToolsConfig.royalGuardianSwordElementalCooldownTicks());
AntarchySettings.setRoyalGuardianSwordFirePrimaryDamage(AntarchyToolsConfig.royalGuardianSwordFirePrimaryDamage());
@@ -470,6 +470,8 @@ public class AntarchyNeoforge {
AntarchyObjects.setSpiritApple(() -> AntarchyNeoforgeItems.SPIRIT_APPLE.get());
AntarchyObjects.setGlimmeringEffect(() -> AntarchyNeoforgeMisc.GLIMMERING);
AntarchyObjects.setRoyalVitalityPenaltyEffect(() -> AntarchyNeoforgeMisc.ROYAL_VITALITY_PENALTY);
AntarchyObjects.setBleedingEffect(() -> AntarchyNeoforgeMisc.BLEEDING);
AntarchyObjects.setBloodMoonEffect(() -> AntarchyNeoforgeMisc.BLOOD_MOON);
AntarchyObjects.setElka(AntarchyNeoforgeEntites.ELKA);
AntarchyObjects.setPeach(() -> AntarchyNeoforgeItems.PEACH.get());
AntarchyObjects.setCorn(() -> AntarchyNeoforgeItems.CORN.get());
@@ -495,6 +497,7 @@ public class AntarchyNeoforge {
AntarchyObjects.setLucidBoltImpactLarge(() -> AntarchyNeoforgeMisc.LUCID_BOLT_IMPACT_LARGE.get());
AntarchyObjects.setDorrieInventoryMenu(AntarchyNeoforgeMisc.DORRIE_INVENTORY_MENU);
AntarchyObjects.setRoyalJudgmentMenu(AntarchyNeoforgeMisc.ROYAL_JUDGMENT_MENU);
AntarchyObjects.setGiantFryingPanMenu(AntarchyNeoforgeMisc.GIANT_FRYING_PAN_MENU);
AntarchyObjects.setCritterCage(() -> AntarchyNeoforgeItems.CRITTER_CAGE.get());
AntarchyObjects.setCritterCageBlock(() -> AntarchyNeoforgeBlocks.CRITTER_CAGE_BLOCK.get());
AntarchyObjects.setCritterCageBlockEntity(() -> AntarchyNeoforgeBlocks.CRITTER_CAGE_BLOCK_ENTITY.get());
@@ -91,6 +91,7 @@ public final class AntarchyToolsConfig {
private static final ModConfigSpec.DoubleValue ROYAL_ASSAILANT_LEGGINGS_DOUBLE_DAMAGE_CHANCE;
private static final ModConfigSpec.DoubleValue ROYAL_ASSAILANT_BOOTS_DOUBLE_DAMAGE_CHANCE;
private static final ModConfigSpec.DoubleValue ROYAL_GUARDIAN_SWORD_ATTACK_DAMAGE;
private static final ModConfigSpec.DoubleValue GIANT_FRYING_PAN_ATTACK_DAMAGE;
private static final ModConfigSpec.DoubleValue ROYAL_GUARDIAN_SWORD_ATTACK_SPEED;
private static final ModConfigSpec.IntValue ROYAL_GUARDIAN_SWORD_ELEMENTAL_COOLDOWN_TICKS, ROYAL_GUARDIAN_SWORD_STORM_MAX_JUMPS;
private static final ModConfigSpec.DoubleValue ROYAL_GUARDIAN_SWORD_FIRE_PRIMARY_DAMAGE, ROYAL_GUARDIAN_SWORD_FIRE_SPLASH_DAMAGE,
@@ -390,6 +391,7 @@ public final class AntarchyToolsConfig {
ROYAL_ASSAILANT_LEGGINGS_DOUBLE_DAMAGE_CHANCE = b.defineInRange("assailantLeggingsDoubleDamageChance", 0.07D, 0.0D, 1.0D);
ROYAL_ASSAILANT_BOOTS_DOUBLE_DAMAGE_CHANCE = b.defineInRange("assailantBootsDoubleDamageChance", 0.05D, 0.0D, 1.0D);
ROYAL_GUARDIAN_SWORD_ATTACK_DAMAGE = b.defineInRange("guardianSwordAttackDamage", 111.0D, 0.0D, 4096.0D);
GIANT_FRYING_PAN_ATTACK_DAMAGE = b.defineInRange("giantFryingPanAttackDamage", 80.0D, 0.0D, 4096.0D);
ROYAL_GUARDIAN_SWORD_ATTACK_SPEED = b.defineInRange("guardianSwordAttackSpeed", -2.5D, -10.0D, 10.0D);
ROYAL_GUARDIAN_SWORD_ELEMENTAL_COOLDOWN_TICKS = b.defineInRange("guardianSwordElementalCooldownTicks", 120, 0, 72000);
ROYAL_GUARDIAN_SWORD_FIRE_PRIMARY_DAMAGE = b.defineInRange("guardianSwordFirePrimaryDamage", 22.0D, 0.0D, 4096.0D);
@@ -886,6 +888,7 @@ public final class AntarchyToolsConfig {
static double royalAssailantLeggingsDoubleDamageChance() { return ROYAL_ASSAILANT_LEGGINGS_DOUBLE_DAMAGE_CHANCE.get(); }
static double royalAssailantBootsDoubleDamageChance() { return ROYAL_ASSAILANT_BOOTS_DOUBLE_DAMAGE_CHANCE.get(); }
static double royalGuardianSwordAttackDamage() { return ROYAL_GUARDIAN_SWORD_ATTACK_DAMAGE.get(); }
static double giantFryingPanAttackDamage() { return GIANT_FRYING_PAN_ATTACK_DAMAGE.get(); }
static double royalGuardianSwordAttackSpeed() { return ROYAL_GUARDIAN_SWORD_ATTACK_SPEED.get(); }
static int royalGuardianSwordElementalCooldownTicks() { return ROYAL_GUARDIAN_SWORD_ELEMENTAL_COOLDOWN_TICKS.get(); }
static double royalGuardianSwordFirePrimaryDamage() { return ROYAL_GUARDIAN_SWORD_FIRE_PRIMARY_DAMAGE.get(); }
@@ -11,6 +11,12 @@ import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.MinecraftServer;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.level.Level;
import net.lerariemann.infinity.access.MinecraftServerAccess;
import com.craisinlord.antarchy.neoforge.mixins.infinity.PortalCreatorInvoker;
import net.minecraft.util.RandomSource;
import java.util.ArrayList;
@@ -82,6 +88,30 @@ public final class NeoForgeInfinityCompat implements InfinityCompatBridge {
}
}
@Override
public InfinityWarpResult requestDimensionCreation(MinecraftServer server, ResourceLocation dimensionId) {
if (!isAvailable() || server == null || dimensionId == null || !"infinity".equals(dimensionId.getNamespace())) {
return InfinityWarpResult.REJECTED;
}
ResourceKey<Level> key = ResourceKey.create(Registries.DIMENSION, dimensionId);
if (server.getLevel(key) != null) {
return InfinityWarpResult.READY;
}
if (!(server instanceof MinecraftServerAccess access)) {
return InfinityWarpResult.REJECTED;
}
try {
if (access.infinity$hasToAdd(key)) {
return InfinityWarpResult.PENDING;
}
return PortalCreatorInvoker.antarchy$invokeTryAddInfinityDimension(server, dimensionId)
? InfinityWarpResult.PENDING : InfinityWarpResult.REJECTED;
} catch (Throwable throwable) {
Antarchy.LOGGER.error("[Antarchy] Failed to request creation of Infinity dimension {}", dimensionId, throwable);
return InfinityWarpResult.FAILED_GENERATION;
}
}
@Override
public boolean createPhysicalPortal(ServerLevel level, BlockPos anyPortalBlockPos, ResourceLocation dimensionId) {
try {
@@ -93,6 +93,8 @@ public final class AntarchyNeoForgeClient {
private static final ResourceLocation ANTIWATER_FLOW = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "block/antiwater_flow");
private static final ResourceLocation BILE_STILL = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "block/bile/bile_still");
private static final ResourceLocation BILE_FLOW = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "block/bile/bile_flowing");
private static final ResourceLocation ICHOR_STILL = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "block/ichor/ichor_still");
private static final ResourceLocation ICHOR_FLOW = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "block/ichor/ichor_flowing");
private AntarchyNeoForgeClient() {
}
@@ -360,6 +362,7 @@ public final class AntarchyNeoForgeClient {
public static void registerMenuScreens(RegisterMenuScreensEvent event) {
event.register(AntarchyNeoforgeMisc.DORRIE_INVENTORY_MENU.get(), com.craisinlord.antarchy.content.client.screen.DorrieInventoryScreen::new);
event.register(AntarchyNeoforgeMisc.ROYAL_JUDGMENT_MENU.get(), com.craisinlord.antarchy.content.client.screen.RoyalJudgmentScreen::new);
event.register(AntarchyNeoforgeMisc.GIANT_FRYING_PAN_MENU.get(), com.craisinlord.antarchy.content.client.screen.GiantFryingPanScreen::new);
}
@SubscribeEvent
@@ -465,12 +468,12 @@ public final class AntarchyNeoForgeClient {
event.registerFluidType(new IClientFluidTypeExtensions() {
@Override
public ResourceLocation getStillTexture() {
return ANTIWATER_STILL;
return ICHOR_STILL;
}
@Override
public ResourceLocation getFlowingTexture() {
return ANTIWATER_FLOW;
return ICHOR_FLOW;
}
@Override
@@ -612,6 +615,7 @@ public final class AntarchyNeoForgeClient {
registerGeoItemExtension(event, AntarchyNeoforgeItems.BATTLE_AXE.get());
registerGeoItemExtension(event, AntarchyNeoforgeItems.BIG_BERTHA.get());
registerGeoItemExtension(event, AntarchyNeoforgeItems.ROYAL_GUARDIAN_SWORD.get());
registerGeoItemExtension(event, AntarchyNeoforgeItems.GIANT_FRYING_PAN.get());
}
@SubscribeEvent
@@ -5,6 +5,8 @@ import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.item.GravityGunItem;
import com.craisinlord.antarchy.content.network.GravityGunPrimaryPayload;
import com.craisinlord.antarchy.content.network.GravityGunScrollPayload;
import com.craisinlord.antarchy.content.network.TemporalTunerScrollPayload;
import com.craisinlord.antarchy.content.item.TemporalTunerItem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.util.Mth;
@@ -46,7 +48,20 @@ public final class GravityGunClientHandler {
@SubscribeEvent
public static void onMouseScroll(InputEvent.MouseScrollingEvent event) {
Minecraft mc = Minecraft.getInstance();
if (mc.player == null || mc.level == null || mc.screen != null || !Screen.hasControlDown() || !AntarchySettings.gravityGunEnabled()) {
if (mc.player == null || mc.level == null || mc.screen != null) {
return;
}
if (Screen.hasShiftDown() && TemporalTunerItem.isAvailable(mc.player)) {
double scrollAmount = Mth.clamp(event.getScrollDeltaY(), -1.0D, 1.0D);
if (Math.abs(scrollAmount) >= 1.0E-4D) {
PacketDistributor.sendToServer(new TemporalTunerScrollPayload(scrollAmount * TemporalTunerItem.STEP));
event.setCanceled(true);
return;
}
}
if (!Screen.hasControlDown() || !AntarchySettings.gravityGunEnabled()) {
return;
}
@@ -0,0 +1,15 @@
package com.craisinlord.antarchy.neoforge.mixins.infinity;
import net.lerariemann.infinity.util.teleport.PortalCreator;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
@Mixin(value = PortalCreator.class, remap = false)
public interface PortalCreatorInvoker {
@Invoker(value = "tryAddInfinityDimension", remap = false)
static boolean antarchy$invokeTryAddInfinityDimension(MinecraftServer server, ResourceLocation dimensionId) {
throw new AssertionError();
}
}
@@ -11,6 +11,8 @@ import com.craisinlord.antarchy.content.network.RoyalGuardianSwordModeCyclePaylo
import com.craisinlord.antarchy.content.network.EyeOfStormPrimaryPayload;
import com.craisinlord.antarchy.content.network.GravityGunPrimaryPayload;
import com.craisinlord.antarchy.content.network.GravityGunScrollPayload;
import com.craisinlord.antarchy.content.network.TemporalTunerScrollPayload;
import com.craisinlord.antarchy.content.item.TemporalTunerItem;
import com.craisinlord.antarchy.content.network.GravityStatePayload;
import com.craisinlord.antarchy.content.network.ImpactShakePayload;
import com.craisinlord.antarchy.content.network.PortalGunPrimaryPayload;
@@ -51,6 +53,10 @@ public final class AntarchyGravityNetworking {
GravityGunScrollPayload.TYPE,
GravityGunScrollPayload.STREAM_CODEC,
AntarchyGravityNetworking::handleGravityGunScroll
).playToServer(
TemporalTunerScrollPayload.TYPE,
TemporalTunerScrollPayload.STREAM_CODEC,
AntarchyGravityNetworking::handleTemporalTunerScroll
).playToServer(
BigBerthaModeCyclePayload.TYPE,
BigBerthaModeCyclePayload.STREAM_CODEC,
@@ -158,6 +164,15 @@ public final class AntarchyGravityNetworking {
});
}
private static void handleTemporalTunerScroll(TemporalTunerScrollPayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
if (context.player() instanceof ServerPlayer serverPlayer
&& TemporalTunerItem.isAvailable(serverPlayer)) {
TemporalTunerItem.adjust(serverPlayer, payload.delta());
}
});
}
private static void handleRoyalGuardianSwordModeCycle(RoyalGuardianSwordModeCyclePayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)
@@ -697,6 +697,8 @@ public final class AntarchyNeoforgeItems {
() -> new com.craisinlord.antarchy.content.item.CloudBucketItem(AntarchyNeoforgeBlocks.CLOUD_BLOCK.get(), new Item.Properties().craftRemainder(Items.BUCKET)));
public static final DeferredItem<BloodCrystalShardItem> BLOOD_CRYSTAL_SHARD = ITEMS.register("blood_crystal_shard",
() -> new BloodCrystalShardItem(new Item.Properties()));
public static final DeferredItem<TemporalTunerItem> TEMPORAL_TUNER = ITEMS.register("temporal_tuner",
() -> new TemporalTunerItem(new Item.Properties().rarity(Rarity.RARE).fireResistant()));
public static final DeferredItem<Item> BLOOD_CRYSTAL_APPLE = ITEMS.register("blood_crystal_apple",
() -> new BloodCrystalAppleItem(new Item.Properties()
.rarity(Rarity.RARE)
@@ -730,6 +732,13 @@ public final class AntarchyNeoforgeItems {
AntarchySettings.bloodCrystalKatanaAttackDamage(),
-2.2F
));
public static final DeferredItem<BloodGodsBladeItem> BLOOD_GODS_BLADE = ITEMS.register("blood_gods_blade",
() -> new BloodGodsBladeItem(
ULTIMATE_TIER,
new Item.Properties().stacksTo(1).durability(4096).rarity(Rarity.EPIC).fireResistant(),
80,
-2.4F
));
public static final DeferredItem<MantisClawItem> MANTIS_CLAW = ITEMS.register("mantis_claw",
() -> new MantisClawItem(Tiers.IRON, new Item.Properties().stacksTo(1).durability(50).rarity(Rarity.UNCOMMON)));
public static final DeferredItem<Item> HERCULES_HORN = ITEMS.registerSimpleItem("hercules_horn", new Item.Properties().rarity(Rarity.UNCOMMON));
@@ -993,6 +1002,8 @@ public final class AntarchyNeoforgeItems {
public static final DeferredItem<RoyalGuardianSwordItem> ROYAL_GUARDIAN_SWORD = ITEMS.register("royal_guardian_sword",
() -> new RoyalGuardianSwordItem(ROYAL_GUARDIAN_TIER, new Item.Properties().stacksTo(1).rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<GiantFryingPanItem> GIANT_FRYING_PAN = ITEMS.register("giant_frying_pan",
() -> new GiantFryingPanItem(ROYAL_GUARDIAN_TIER, new Item.Properties().stacksTo(1).rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalAssailantBattleAxeItem> ROYAL_ASSAILANT_BATTLEAXE = ITEMS.register("royal_assailant_battleaxe",
() -> new RoyalAssailantBattleAxeItem(ROYAL_ASSAILANT_TIER, new Item.Properties().stacksTo(1).rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalGuardianShieldItem> ROYAL_GUARDIAN_SHIELD = ITEMS.register("royal_guardian_shield",
@@ -4,6 +4,8 @@ import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.particle.InvertedGeyserBaseParticleOptions;
import com.craisinlord.antarchy.content.client.particle.InvertedGeyserParticleOptions;
import com.craisinlord.antarchy.content.effect.DreadMobEffect;
import com.craisinlord.antarchy.content.effect.BleedingMobEffect;
import com.craisinlord.antarchy.content.effect.BloodMoonMobEffect;
import com.craisinlord.antarchy.content.effect.GoopedMobEffect;
import com.craisinlord.antarchy.content.effect.GrowthMobEffect;
import com.craisinlord.antarchy.content.effect.InvertedMobEffect;
@@ -155,9 +157,15 @@ public final class AntarchyNeoforgeMisc {
"royal_judgment",
() -> new MenuType<>(com.craisinlord.antarchy.content.menu.RoyalJudgmentMenu::new, FeatureFlags.DEFAULT_FLAGS)
);
public static final DeferredHolder<MenuType<?>, MenuType<com.craisinlord.antarchy.content.menu.GiantFryingPanMenu>> GIANT_FRYING_PAN_MENU = MENU_TYPES.register(
"giant_frying_pan",
() -> new MenuType<>(com.craisinlord.antarchy.content.menu.GiantFryingPanMenu::new, FeatureFlags.DEFAULT_FLAGS)
);
// Mob effects
public static final DeferredHolder<MobEffect, DreadMobEffect> DREAD = MOB_EFFECTS.register("dread", DreadMobEffect::new);
public static final DeferredHolder<MobEffect, BleedingMobEffect> BLEEDING = MOB_EFFECTS.register("bleeding", BleedingMobEffect::new);
public static final DeferredHolder<MobEffect, BloodMoonMobEffect> BLOOD_MOON = MOB_EFFECTS.register("blood_moon", BloodMoonMobEffect::new);
public static final DeferredHolder<MobEffect, ParalyzedMobEffect> PARALYZED = MOB_EFFECTS.register("paralyzed", ParalyzedMobEffect::new);
public static final DeferredHolder<MobEffect, InvertedMobEffect> INVERTED = MOB_EFFECTS.register("inverted", InvertedMobEffect::new);
public static final DeferredHolder<MobEffect, CommandedMobEffect> COMMANDED = MOB_EFFECTS.register("commanded", CommandedMobEffect::new);
@@ -12,6 +12,7 @@
"infinity.AmendmentRareOresMixin",
"infinity.ConfigGenInvocationMixin",
"infinity.PortalCreatorMixin",
"infinity.PortalCreatorInvoker",
"infinity.WarpLogicMixin",
"level.ClientLevelPartEntitiesAccessor",
"level.ServerLevelPartEntitiesAccessor"
@@ -0,0 +1,25 @@
{
"loader": "neoforge:separate_transforms",
"gui_light": "front",
"textures": {
"layer0": "antarchy:item/giant_frying_pan/giant_frying_pan_in_hand"
},
"base": {
"parent": "antarchy:item/giant_frying_pan_held"
},
"texture_size": [
128,
128
],
"perspectives": {
"gui": {
"parent": "antarchy:item/giant_frying_pan_gui"
},
"ground": {
"parent": "antarchy:item/giant_frying_pan_gui"
},
"fixed": {
"parent": "antarchy:item/giant_frying_pan_gui"
}
}
}