first draft royal

This commit is contained in:
craisinlord committed 2026-08-29 12:19:02 -05:00
1 parent ce66f56c87
commit 357f41d9d6
179 files changed
+29573 -611

No files matched your search

@@ -388,6 +388,12 @@ public class AntarchyNeoforge {
AntarchyObjects.setVortex(AntarchyNeoforgeEntites.VORTEX);
AntarchyObjects.setWindVortex(() -> AntarchyNeoforgeEntites.WIND_VORTEX.get());
AntarchyObjects.setVortexChargeProjectile(() -> AntarchyNeoforgeEntites.VORTEX_CHARGE_PROJECTILE.get());
AntarchyObjects.setPrince(() -> AntarchyNeoforgeEntites.PRINCE.get());
AntarchyObjects.setPrincess(() -> AntarchyNeoforgeEntites.PRINCESS.get());
AntarchyObjects.setRoyalBolt(() -> AntarchyNeoforgeEntites.ROYAL_BOLT.get());
AntarchyObjects.setPrinceEgg(() -> AntarchyNeoforgeBlocks.PRINCE_EGG.get());
AntarchyObjects.setPrincessEgg(() -> AntarchyNeoforgeBlocks.PRINCESS_EGG.get());
AntarchyObjects.setRoyalEggBlockEntity(() -> AntarchyNeoforgeBlocks.ROYAL_EGG_BLOCK_ENTITY.get());
AntarchyObjects.setVortexLens(() -> AntarchyNeoforgeBlocks.VORTEX_LENS.get());
AntarchyObjects.setVortexLensBlockEntity(() -> AntarchyNeoforgeBlocks.VORTEX_LENS_BLOCK_ENTITY.get());
AntarchyObjects.setKrakensGraspTrident(AntarchyNeoforgeEntites.KRAKENS_GRASP_TRIDENT);
@@ -29,16 +29,16 @@ public final class AntarchyKeyBindings {
CATEGORY
);
public static final KeyMapping HERCULES_BEETLE_CHARGE = new KeyMapping(
"key.antarchy.hercules_beetle_charge",
public static final KeyMapping MOUNT_SPECIAL = new KeyMapping(
"key.antarchy.mount_special",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.KEY_LCONTROL,
CATEGORY
);
public static final KeyMapping HERCULES_BEETLE_FLIGHT_TOGGLE = new KeyMapping(
"key.antarchy.hercules_beetle_flight_toggle",
public static final KeyMapping MOUNT_FLIGHT_TOGGLE = new KeyMapping(
"key.antarchy.mount_flight_toggle",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.KEY_R,
@@ -52,22 +52,39 @@ public final class AntarchyKeyBindings {
CATEGORY
);
public static final KeyMapping ROYAL_INVERSION_TOGGLE = new KeyMapping(
"key.antarchy.royal_inversion_toggle",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.KEY_V,
CATEGORY
);
private AntarchyKeyBindings() {}
@SubscribeEvent
public static void onRegisterKeyMappings(RegisterKeyMappingsEvent event) {
event.register(BRUTALFLY_FLAP);
event.register(DORRIE_CHARGE_JUMP);
event.register(HERCULES_BEETLE_CHARGE);
event.register(HERCULES_BEETLE_FLIGHT_TOGGLE);
event.register(MOUNT_SPECIAL);
event.register(MOUNT_FLIGHT_TOGGLE);
event.register(TIGERS_EYE_CAMOUFLAGE);
event.register(ROYAL_INVERSION_TOGGLE);
}
public static boolean isHerculesBeetleFlightTogglePressed() {
return HERCULES_BEETLE_FLIGHT_TOGGLE.isDown();
public static boolean isMountFlightTogglePressed() {
return MOUNT_FLIGHT_TOGGLE.isDown();
}
public static boolean isMountSpecialPressed() {
return MOUNT_SPECIAL.isDown();
}
public static boolean consumeTigerEyeCamouflagePressed() {
return TIGERS_EYE_CAMOUFLAGE.consumeClick();
}
public static boolean consumeRoyalInversionTogglePressed() {
return ROYAL_INVERSION_TOGGLE.consumeClick();
}
}
@@ -168,6 +168,9 @@ public final class AntarchyNeoForgeClient {
event.registerEntityRenderer(AntarchyNeoforgeEntites.CREEPING_HORROR.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.CreepingHorrorRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.LURKING_TERROR.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.LurkingTerrorRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.HERCULES_BEETLE.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.HerculesBeetleRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.PRINCE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalMountRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.PRINCESS.get(), com.craisinlord.antarchy.content.client.renderer.RoyalMountRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.ROYAL_BOLT.get(), com.craisinlord.antarchy.content.client.renderer.RoyalBoltRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.JERRY.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.JerryRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.JUMPY_BUG.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.JumpyBugRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.SPIT_BUG.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.SpitBugRenderer(context)));
@@ -0,0 +1,40 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.item.EyeOfTheStormItem;
import com.craisinlord.antarchy.content.network.EyeOfStormPrimaryPayload;
import net.minecraft.client.Minecraft;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.ClientTickEvent;
import net.neoforged.neoforge.network.PacketDistributor;
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class EyeOfStormClientHandler {
private static boolean lastAttackDown;
private EyeOfStormClientHandler() {
}
@SubscribeEvent
public static void onClientTick(ClientTickEvent.Post event) {
Minecraft mc = Minecraft.getInstance();
if (mc.player == null || mc.level == null || mc.screen != null || !AntarchySettings.eyeOfTheStormEnabled()) {
lastAttackDown = false;
return;
}
if (!(mc.player.getMainHandItem().getItem() instanceof EyeOfTheStormItem)) {
lastAttackDown = false;
return;
}
boolean attackDown = mc.options.keyAttack.isDown();
if (attackDown && !lastAttackDown) {
PacketDistributor.sendToServer(new EyeOfStormPrimaryPayload());
}
lastAttackDown = attackDown;
}
}
@@ -57,13 +57,13 @@ public final class HerculesBeetleClientHandler {
}
wasPressingAttack = pressingAttack;
boolean charging = AntarchyKeyBindings.HERCULES_BEETLE_CHARGE.isDown();
boolean charging = AntarchyKeyBindings.MOUNT_SPECIAL.isDown();
if (charging != wasCharging) {
PacketDistributor.sendToServer(new HerculesBeetleMountedChargePayload(charging));
}
wasCharging = charging;
boolean pressingFlightToggle = AntarchyKeyBindings.HERCULES_BEETLE_FLIGHT_TOGGLE.isDown();
boolean pressingFlightToggle = AntarchyKeyBindings.MOUNT_FLIGHT_TOGGLE.isDown();
if (pressingFlightToggle && !wasPressingFlightToggle) {
PacketDistributor.sendToServer(new HerculesBeetleFlightTogglePayload());
}
@@ -0,0 +1,27 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.network.ToggleRoyalInversionPayload;
import net.minecraft.client.Minecraft;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.ClientTickEvent;
import net.neoforged.neoforge.network.PacketDistributor;
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class RoyalInversionClientHandler {
private RoyalInversionClientHandler() {
}
@SubscribeEvent
public static void onClientTick(ClientTickEvent.Post event) {
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.player == null || minecraft.level == null) {
return;
}
while (AntarchyKeyBindings.consumeRoyalInversionTogglePressed()) {
PacketDistributor.sendToServer(new ToggleRoyalInversionPayload());
}
}
}
@@ -0,0 +1,72 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity;
import com.craisinlord.antarchy.content.network.RoyalMountActionPayload;
import com.craisinlord.antarchy.content.network.RoyalMountVerticalPayload;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.ClientTickEvent;
import net.neoforged.neoforge.network.PacketDistributor;
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class RoyalMountClientHandler {
private static boolean wasAttack;
private static boolean wasSpecial;
private static boolean wasFlightToggle;
private static boolean wasAscend;
private static boolean wasDescend;
private RoyalMountClientHandler() {
}
@SubscribeEvent
public static void onClientTick(ClientTickEvent.Post event) {
Minecraft mc = Minecraft.getInstance();
LocalPlayer player = mc.player;
if (player == null || mc.screen != null || !(player.getVehicle() instanceof RoyalMountEntity)) {
reset();
return;
}
boolean attack = mc.options.keyAttack.isDown();
if (attack && !wasAttack) {
PacketDistributor.sendToServer(new RoyalMountActionPayload(RoyalMountActionPayload.BITE));
}
wasAttack = attack;
boolean special = AntarchyKeyBindings.isMountSpecialPressed();
if (special && !wasSpecial) {
PacketDistributor.sendToServer(new RoyalMountActionPayload(RoyalMountActionPayload.SPIT));
}
wasSpecial = special;
boolean flightToggle = AntarchyKeyBindings.isMountFlightTogglePressed();
if (flightToggle && !wasFlightToggle) {
PacketDistributor.sendToServer(new RoyalMountActionPayload(RoyalMountActionPayload.FLIGHT_TOGGLE));
}
wasFlightToggle = flightToggle;
boolean ascend = mc.options.keyJump.isDown();
boolean descend = mc.options.keyShift.isDown();
if (ascend != wasAscend || descend != wasDescend) {
PacketDistributor.sendToServer(new RoyalMountVerticalPayload(ascend, descend));
wasAscend = ascend;
wasDescend = descend;
}
}
private static void reset() {
if (wasAscend || wasDescend) {
PacketDistributor.sendToServer(new RoyalMountVerticalPayload(false, false));
}
wasAttack = false;
wasSpecial = false;
wasFlightToggle = false;
wasAscend = false;
wasDescend = false;
}
}
@@ -3,9 +3,11 @@ package com.craisinlord.antarchy.neoforge.network;
import com.craisinlord.antarchy.content.entity.DiamondMinecartEntity;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi;
import com.craisinlord.antarchy.content.item.BigBerthaItem;
import com.craisinlord.antarchy.content.item.EyeOfTheStormItem;
import com.craisinlord.antarchy.content.item.GravityGunItem;
import com.craisinlord.antarchy.content.item.PortalGunItem;
import com.craisinlord.antarchy.content.network.BigBerthaModeCyclePayload;
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.GravityStatePayload;
@@ -40,6 +42,10 @@ public final class AntarchyGravityNetworking {
PortalGunPrimaryPayload.TYPE,
PortalGunPrimaryPayload.STREAM_CODEC,
AntarchyGravityNetworking::handlePortalGunPrimary
).playToServer(
EyeOfStormPrimaryPayload.TYPE,
EyeOfStormPrimaryPayload.STREAM_CODEC,
AntarchyGravityNetworking::handleEyeOfStormPrimary
).playToServer(
GravityGunScrollPayload.TYPE,
GravityGunScrollPayload.STREAM_CODEC,
@@ -174,4 +180,18 @@ public final class AntarchyGravityNetworking {
portalGunItem.firePrimary(serverPlayer.serverLevel(), serverPlayer, serverPlayer.getMainHandItem());
});
}
private static void handleEyeOfStormPrimary(EyeOfStormPrimaryPayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)) {
return;
}
if (!(serverPlayer.getMainHandItem().getItem() instanceof EyeOfTheStormItem eyeOfTheStormItem)) {
return;
}
eyeOfTheStormItem.firePrimary(serverPlayer.serverLevel(), serverPlayer, serverPlayer.getMainHandItem());
});
}
}
@@ -753,7 +753,8 @@ public final class AntarchyNeoForgeEvents {
static void handleBloodCrystalBootsFall(LivingFallEvent event) {
if (!(event.getEntity() instanceof Player player)) return;
if (!com.craisinlord.antarchy.content.gravity.AntarchyGravityApi.isGravityInverted(player)) return;
if (!(player.getItemBySlot(net.minecraft.world.entity.EquipmentSlot.FEET).getItem() instanceof BloodCrystalArmorItem)) return;
if (!(player.getItemBySlot(net.minecraft.world.entity.EquipmentSlot.FEET).getItem() instanceof BloodCrystalArmorItem)
&& !com.craisinlord.antarchy.content.item.royal.RoyalGearHelper.hasUpwardFallImmunityBoots(player)) return;
event.setCanceled(true);
}
@@ -229,10 +229,10 @@ public final class AntarchyNeoforgeBlocks {
() -> new PressurePlateBlock(BlockSetType.JUNGLE, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_PRESSURE_PLATE)));
public static final DeferredBlock<ButtonBlock> ROYAL_BUTTON = BLOCKS.register("royal_button",
() -> new ButtonBlock(BlockSetType.JUNGLE, 30, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_BUTTON)));
public static final DeferredBlock<LeavesBlock> ROYAL_LEAVES = BLOCKS.register("royal_leaves",
() -> new LeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks()));
public static final DeferredBlock<LeavesBlock> ROYAL_FLOWERING_LEAVES = BLOCKS.register("royal_flowering_leaves",
() -> new LeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks()));
public static final DeferredBlock<RoyalLeavesBlock> ROYAL_LEAVES = BLOCKS.register("royal_leaves",
() -> new RoyalLeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks()));
public static final DeferredBlock<RoyalLeavesBlock> ROYAL_FLOWERING_LEAVES = BLOCKS.register("royal_flowering_leaves",
() -> new RoyalLeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks()));
public static final DeferredBlock<RoyalSaplingBlock> ROYAL_SAPLING = BLOCKS.register("royal_sapling",
() -> new RoyalSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).noCollission()));
public static final DeferredBlock<FlowerPotBlock> POTTED_ROYAL_SAPLING = BLOCKS.register("potted_royal_sapling",
@@ -557,6 +557,10 @@ public final class AntarchyNeoforgeBlocks {
.replaceable()));
public static final DeferredBlock<CreepingHorrorEggBlock> CREEPING_HORROR_EGG = BLOCKS.register("creeping_horror_egg",
() -> new CreepingHorrorEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.PrinceEggBlock> PRINCE_EGG = BLOCKS.register("prince_egg",
() -> new com.craisinlord.antarchy.content.block.PrinceEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.DRAGON_EGG).randomTicks().noOcclusion()));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.PrincessEggBlock> PRINCESS_EGG = BLOCKS.register("princess_egg",
() -> new com.craisinlord.antarchy.content.block.PrincessEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.DRAGON_EGG).randomTicks().noOcclusion()));
public static final DeferredBlock<JumpyBugEggBlock> JUMPY_BUG_EGG = BLOCKS.register("jumpy_bug_egg",
() -> new JumpyBugEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG)));
public static final DeferredBlock<SpitBugEggBlock> SPIT_BUG_EGG = BLOCKS.register("spit_bug_egg",
@@ -830,6 +834,12 @@ public final class AntarchyNeoforgeBlocks {
() -> new com.craisinlord.antarchy.content.block.StarCoralWallFanBlock(DEAD_STAR_CORAL_WALL_FAN.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.TUBE_CORAL_WALL_FAN).lightLevel(state -> 8)));
// Block entity types
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<com.craisinlord.antarchy.content.block.entity.RoyalEggBlockEntity>> ROYAL_EGG_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("royal_egg",
() -> BlockEntityType.Builder.of(
com.craisinlord.antarchy.content.block.entity.RoyalEggBlockEntity::new,
PRINCE_EGG.get(),
PRINCESS_EGG.get()
).build(null));
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<AntNestBlockEntity>> ANT_NEST_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("ant_nest",
() -> BlockEntityType.Builder.of(
AntNestBlockEntity::new,
@@ -495,6 +495,15 @@ public final class AntarchyNeoforgeEntites {
.sized(3.0F, 4.0F)
.clientTrackingRange(12)
.build("hercules_beetle"));
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.royal.PrinceEntity>> PRINCE = ENTITY_TYPES.register("prince",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.royal.PrinceEntity::new, MobCategory.CREATURE)
.sized(2.2F, 2.2F).clientTrackingRange(10).updateInterval(3).fireImmune().build("prince"));
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.royal.PrincessEntity>> PRINCESS = ENTITY_TYPES.register("princess",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.royal.PrincessEntity::new, MobCategory.CREATURE)
.sized(2.2F, 2.2F).clientTrackingRange(10).updateInterval(3).fireImmune().build("princess"));
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.royal.RoyalBoltEntity>> ROYAL_BOLT = ENTITY_TYPES.register("royal_bolt",
() -> EntityType.Builder.<com.craisinlord.antarchy.content.entity.royal.RoyalBoltEntity>of(com.craisinlord.antarchy.content.entity.royal.RoyalBoltEntity::new, MobCategory.MISC)
.sized(0.4F, 0.4F).clientTrackingRange(8).updateInterval(1).fireImmune().build("royal_bolt"));
public static final DeferredHolder<EntityType<?>, EntityType<OuranwoodDeerEntity>> OURANWOOD_DEER = ENTITY_TYPES.register("ouranwood_deer",
() -> EntityType.Builder.of(OuranwoodDeerEntity::new, MobCategory.CREATURE)
.sized(1.125F, 1.75F)
@@ -85,6 +85,8 @@ public class AntarchyNeoforgeEntityAttributes {
event.put(AntarchyNeoforgeEntites.CHEEP.get(), com.craisinlord.antarchy.content.entity.CheepEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.DORRIE.get(), com.craisinlord.antarchy.content.entity.DorrieEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.HERCULES_BEETLE.get(), com.craisinlord.antarchy.content.entity.HerculesBeetleEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.PRINCE.get(), com.craisinlord.antarchy.content.entity.royal.PrinceEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.PRINCESS.get(), com.craisinlord.antarchy.content.entity.royal.PrincessEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.OURANWOOD_DEER.get(), com.craisinlord.antarchy.content.entity.OuranwoodDeerEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.GLIMMER.get(), com.craisinlord.antarchy.content.entity.glimmer.GlimmerEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.ELKA.get(), ElkaEntity.createAttributes().build());
@@ -74,6 +74,24 @@ public final class AntarchyNeoforgeItems {
() -> Ingredient.of(AntarchyNeoforgeItems.HERCULES_HORN.get())
);
public static final Tier ROYAL_GUARDIAN_TIER = new SimpleToolTier(
AntarchySettings.royalWeaponDurability(),
12.0F,
0.0F,
Tiers.NETHERITE.getIncorrectBlocksForDrops(),
AntarchySettings.royalWeaponEnchantability(),
() -> Ingredient.of(AntarchyNeoforgeItems.KING_SCALE.get())
);
public static final Tier ROYAL_ASSAILANT_TIER = new SimpleToolTier(
AntarchySettings.royalWeaponDurability(),
12.0F,
0.0F,
Tiers.NETHERITE.getIncorrectBlocksForDrops(),
AntarchySettings.royalWeaponEnchantability(),
() -> Ingredient.of(AntarchyNeoforgeItems.QUEEN_SCALE.get())
);
public static final DeferredItem<Item> NIGHTMARE_SCALE = ITEMS.registerSimpleItem("nightmare_scale", new Item.Properties().rarity(Rarity.RARE).fireResistant());
public static final DeferredItem<Item> MUSIC_DISC_UNDERSIDE = ITEMS.registerSimpleItem("music_disc_underside",
@@ -101,6 +119,26 @@ public final class AntarchyNeoforgeItems {
3.0F,
(float) AntarchySettings.nightmareArmorKnockbackResistance()
));
private static final DeferredHolder<ArmorMaterial, ArmorMaterial> ROYAL_GUARDIAN_ARMOR_MATERIAL = ARMOR_MATERIALS.register("royal_guardian",
() -> new ArmorMaterial(
new EnumMap<>(ArmorItem.Type.class),
AntarchySettings.royalArmorEnchantability(),
SoundEvents.ARMOR_EQUIP_NETHERITE,
() -> Ingredient.of(AntarchyNeoforgeItems.KING_SCALE.get()),
List.of(new ArmorMaterial.Layer(ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "royal_guardian"))),
0.0F,
0.0F
));
private static final DeferredHolder<ArmorMaterial, ArmorMaterial> ROYAL_ASSAILANT_ARMOR_MATERIAL = ARMOR_MATERIALS.register("royal_assailant",
() -> new ArmorMaterial(
new EnumMap<>(ArmorItem.Type.class),
AntarchySettings.royalArmorEnchantability(),
SoundEvents.ARMOR_EQUIP_NETHERITE,
() -> Ingredient.of(AntarchyNeoforgeItems.QUEEN_SCALE.get()),
List.of(new ArmorMaterial.Layer(ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "royal_assailant"))),
0.0F,
0.0F
));
private static final DeferredHolder<ArmorMaterial, ArmorMaterial> BLOOD_CRYSTAL_ARMOR_MATERIAL = ARMOR_MATERIALS.register("blood_crystal",
() -> new ArmorMaterial(
createBloodCrystalArmorDefense(),
@@ -604,6 +642,10 @@ public final class AntarchyNeoforgeItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROSEATE_FROGLIGHT_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.ROSEATE_FROGLIGHT);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BED_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BED_BUG_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CREEPING_HORROR_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CREEPING_HORROR_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> PRINCE_EGG_ITEM = ITEMS.register("prince_egg",
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.PRINCE_EGG.get(), new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> PRINCESS_EGG_ITEM = ITEMS.register("princess_egg",
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.PRINCESS_EGG.get(), new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> JUMPY_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.JUMPY_BUG_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> SPIT_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.SPIT_BUG_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> JERRY_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.JERRY_EGG);
@@ -662,10 +704,8 @@ public final class AntarchyNeoforgeItems {
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));
public static final DeferredItem<Item> KING_SCALE = ITEMS.register("king_scale",
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredItem<Item> QUEEN_SCALE = ITEMS.register("queen_scale",
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredItem<Item> KING_SCALE = ITEMS.registerSimpleItem("king_scale", new Item.Properties().rarity(Rarity.RARE));
public static final DeferredItem<Item> QUEEN_SCALE = ITEMS.registerSimpleItem("queen_scale", new Item.Properties().rarity(Rarity.RARE));
public static final DeferredItem<Item> CHITIN = ITEMS.registerSimpleItem("chitin", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<Item> JERRY_NUCLEUS = ITEMS.register("jerry_nucleus",
() -> new com.craisinlord.antarchy.content.item.JerryNucleusItem(new Item.Properties().rarity(Rarity.UNCOMMON)
@@ -893,6 +933,33 @@ public final class AntarchyNeoforgeItems {
public static final DeferredItem<NightmareSwordItem> NIGHTMARE_SWORD = ITEMS.register("nightmare_sword",
() -> new NightmareSwordItem(ULTIMATE_TIER,
new Item.Properties().stacksTo(1).rarity(Rarity.EPIC).fireResistant(), -2.4F));
public static final DeferredItem<RoyalGuardianArmorItem> ROYAL_GUARDIAN_HELMET = ITEMS.register("royal_guardian_helmet",
() -> new RoyalGuardianArmorItem(ROYAL_GUARDIAN_ARMOR_MATERIAL, ArmorItem.Type.HELMET, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalGuardianArmorItem> ROYAL_GUARDIAN_CHESTPLATE = ITEMS.register("royal_guardian_chestplate",
() -> new RoyalGuardianArmorItem(ROYAL_GUARDIAN_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalGuardianArmorItem> ROYAL_GUARDIAN_LEGGINGS = ITEMS.register("royal_guardian_leggings",
() -> new RoyalGuardianArmorItem(ROYAL_GUARDIAN_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalGuardianArmorItem> ROYAL_GUARDIAN_BOOTS = ITEMS.register("royal_guardian_boots",
() -> new RoyalGuardianArmorItem(ROYAL_GUARDIAN_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalAssailantArmorItem> ROYAL_ASSAILANT_HELMET = ITEMS.register("royal_assailant_helmet",
() -> new RoyalAssailantArmorItem(ROYAL_ASSAILANT_ARMOR_MATERIAL, ArmorItem.Type.HELMET, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalAssailantArmorItem> ROYAL_ASSAILANT_CHESTPLATE = ITEMS.register("royal_assailant_chestplate",
() -> new RoyalAssailantArmorItem(ROYAL_ASSAILANT_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalAssailantArmorItem> ROYAL_ASSAILANT_LEGGINGS = ITEMS.register("royal_assailant_leggings",
() -> new RoyalAssailantArmorItem(ROYAL_ASSAILANT_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalAssailantArmorItem> ROYAL_ASSAILANT_BOOTS = ITEMS.register("royal_assailant_boots",
() -> new RoyalAssailantArmorItem(ROYAL_ASSAILANT_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
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<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",
() -> new RoyalGuardianShieldItem(
new Item.Properties().durability(AntarchySettings.royalGuardianShieldDurability()).rarity(Rarity.EPIC).fireResistant(),
() -> Ingredient.of(KING_SCALE.get())));
public static final DeferredItem<SizeRayItem> SHRINK_RAY = ITEMS.register("shrink_ray",
() -> new SizeRayItem(
new Item.Properties().stacksTo(1).durability(512).rarity(Rarity.RARE).fireResistant(),
@@ -924,6 +991,8 @@ public final class AntarchyNeoforgeItems {
AntarchyNeoforgeBlocks.PORTAL_GUN_PORTAL_MASTER,
AntarchyNeoforgeBlocks.PORTAL_GUN_PORTAL_BASE
));
public static final DeferredItem<EyeOfTheStormItem> EYE_OF_THE_STORM = ITEMS.register("eye_of_the_storm",
() -> new EyeOfTheStormItem(new Item.Properties().stacksTo(1).durability(384).rarity(Rarity.EPIC)));
// Temporarily disabled: keeping the code but not registering the item for now.
// public static final DeferredItem<MinersDreamItem> MINERS_DREAM = ITEMS.register("miners_dream",
// () -> new MinersDreamItem(new Item.Properties().stacksTo(1).rarity(Rarity.RARE)));
@@ -30,6 +30,7 @@ import com.craisinlord.antarchy.neoforge.worldgen.CornPatchFeature;
import com.craisinlord.antarchy.neoforge.worldgen.LumenLilyPadFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.*;
import com.craisinlord.antarchy.content.worldgen.truffalo.*;
import com.craisinlord.antarchy.content.worldgen.royal.*;
import com.craisinlord.antarchy.neoforge.content.fluid.AntiwaterFluid;
import com.mojang.serialization.MapCodec;
import net.minecraft.advancements.critereon.EntitySubPredicate;
@@ -245,6 +246,8 @@ public final class AntarchyNeoforgeMisc {
() -> new NadirTreeFeature(NadirTreeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, TruffaloTreeFeature> TRUFFALO_TREE_FEATURE = FEATURES.register("truffalo_tree",
() -> new TruffaloTreeFeature(TruffaloTreeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, RoyalTreeFeature> ROYAL_TREE_FEATURE = FEATURES.register("royal_tree",
() -> new RoyalTreeFeature(RoyalTreeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, ElythiaFloraFeature> ELYTHIA_FOREST_FLORA = FEATURES.register("elythia_forest_flora",
() -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.FOREST));
public static final DeferredHolder<Feature<?>, ElythiaFloraFeature> ELYTHIA_MEADOW_FLORA = FEATURES.register("elythia_meadow_flora",
@@ -41,6 +41,43 @@ public class AntarchyNeoforgePayloadHandlers {
com.craisinlord.antarchy.content.client.TigerEyeCamouflageClientState.update(payload.entityId(), payload.active(), payload.blockStateId())
)
);
registrar.playToServer(
com.craisinlord.antarchy.content.network.ToggleRoyalInversionPayload.TYPE,
com.craisinlord.antarchy.content.network.ToggleRoyalInversionPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) {
com.craisinlord.antarchy.content.item.RoyalAssailantArmorItem.toggleInversion(player);
}
})
);
registrar.playToServer(
com.craisinlord.antarchy.content.network.RoyalMountActionPayload.TYPE,
com.craisinlord.antarchy.content.network.RoyalMountActionPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (!(ctx.player() instanceof net.minecraft.server.level.ServerPlayer player)
|| !(player.getVehicle() instanceof com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity mount)) {
return;
}
switch (payload.action()) {
case com.craisinlord.antarchy.content.network.RoyalMountActionPayload.FLIGHT_TOGGLE -> mount.toggleMountedFlight(player);
case com.craisinlord.antarchy.content.network.RoyalMountActionPayload.BITE -> mount.handleMountedBite(player);
case com.craisinlord.antarchy.content.network.RoyalMountActionPayload.SPIT -> mount.handleMountedSpit(player);
default -> {
}
}
})
);
registrar.playToServer(
com.craisinlord.antarchy.content.network.RoyalMountVerticalPayload.TYPE,
com.craisinlord.antarchy.content.network.RoyalMountVerticalPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player
&& player.getVehicle() instanceof com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity mount) {
mount.setRiderAscend(payload.ascend());
mount.setRiderDescend(payload.descend());
}
})
);
registrar.playToServer(
ToggleTigerEyeCamouflagePayload.TYPE,
ToggleTigerEyeCamouflagePayload.STREAM_CODEC,
@@ -0,0 +1,25 @@
{
"loader": "neoforge:separate_transforms",
"gui_light": "front",
"textures": {
"layer0": "antarchy:item/eye_of_the_storm/eye_of_the_storm_item"
},
"base": {
"parent": "antarchy:item/eye_of_the_storm_held_geo"
},
"texture_size": [
64,
64
],
"perspectives": {
"gui": {
"parent": "antarchy:item/eye_of_the_storm_gui"
},
"ground": {
"parent": "antarchy:item/eye_of_the_storm_gui"
},
"fixed": {
"parent": "antarchy:item/eye_of_the_storm_gui"
}
}
}
@@ -0,0 +1,25 @@
{
"loader": "neoforge:separate_transforms",
"gui_light": "front",
"textures": {
"layer0": "antarchy:item/royal_assailant/royal_assailant_battleaxe_item"
},
"base": {
"parent": "antarchy:item/royal_assailant_battleaxe_held"
},
"texture_size": [
64,
64
],
"perspectives": {
"gui": {
"parent": "antarchy:item/royal_assailant_battleaxe_gui"
},
"ground": {
"parent": "antarchy:item/royal_assailant_battleaxe_gui"
},
"fixed": {
"parent": "antarchy:item/royal_assailant_battleaxe_gui"
}
}
}
@@ -0,0 +1,25 @@
{
"loader": "neoforge:separate_transforms",
"gui_light": "front",
"textures": {
"layer0": "antarchy:item/royal_guardian/royal_guardian_sword_item"
},
"base": {
"parent": "antarchy:item/royal_guardian_sword_held"
},
"texture_size": [
64,
64
],
"perspectives": {
"gui": {
"parent": "antarchy:item/royal_guardian_sword_gui"
},
"ground": {
"parent": "antarchy:item/royal_guardian_sword_gui"
},
"fixed": {
"parent": "antarchy:item/royal_guardian_sword_gui"
}
}
}