From 4fd9789e5ca12e1ccb9419022af928b37086e8fd Mon Sep 17 00:00:00 2001 From: craisinlord Date: Tue, 23 Jun 2026 23:35:19 -0500 Subject: [PATCH] Fixed DreamCampfireBlock not working with silk touch. Added first draft of shellstone, water cannon, Toreterror, primordial armor --- .../antarchy/config/AntarchySettings.java | 34 +++++ .../antarchy/content/AntarchyObjects.java | 76 +++++++++++ .../content/block/DreamCampfireBlock.java | 20 +++ .../content/entity/HushProjectileEntity.java | 4 +- .../resources/assets/antarchy/lang/en_us.json | 39 ++++++ .../models/item/water_cannon_gui.json | 7 + .../models/item/water_cannon_held_geo.json | 37 ++++++ .../shellstone/chiseled_shellstone_bricks.png | Bin 0 -> 268 bytes .../shellstone/cracked_shellstone_bricks.png | Bin 0 -> 487 bytes .../shellstone/mossy_shellstone_bricks.png | Bin 0 -> 502 bytes .../block/shellstone/polished_shellstone.png | Bin 0 -> 234 bytes .../textures/block/shellstone/shellstone.png | Bin 0 -> 428 bytes .../block/shellstone/shellstone_bricks.png | Bin 0 -> 405 bytes .../item/primordial/primordial_boots.png | Bin 0 -> 314 bytes .../item/primordial/primordial_chestplate.png | Bin 0 -> 406 bytes .../item/primordial/primordial_helmet.png | Bin 0 -> 192 bytes .../item/primordial/primordial_leggings.png | Bin 0 -> 218 bytes .../textures/item/water_cannon_item.png | Bin 0 -> 537 bytes .../models/armor/primordial_layer_1.png | Bin 0 -> 1008 bytes .../models/armor/primordial_layer_2.png | Bin 0 -> 305 bytes .../textures/models/item/water_cannon.png | Bin 0 -> 2293 bytes .../tags/block/mineable/pickaxe.json | 16 ++- .../tags/block/needs_stone_tool.json | 18 ++- .../data/minecraft/tags/block/slabs.json | 3 + .../data/minecraft/tags/block/stairs.json | 3 + .../data/minecraft/tags/block/walls.json | 5 +- .../data/minecraft/tags/item/slabs.json | 3 + .../data/minecraft/tags/item/stairs.json | 7 +- .../data/minecraft/tags/item/walls.json | 3 + .../fabric/AntarchyFabricContent.java | 123 +++++++++++++++++- .../client/AntarchyFabricClientBootstrap.java | 2 + .../mixin/client/CrossbowArmPoseMixin.java | 3 +- .../AntarchyConfigModuleNeoforge.java | 12 ++ .../antarchy/neoforge/AntarchyMobsConfig.java | 41 ++++++ .../antarchy/neoforge/AntarchyNeoforge.java | 17 +++ .../client/AntarchyNeoForgeClient.java | 3 + .../registry/AntarchyNeoforgeBlocks.java | 31 +++++ .../AntarchyNeoforgeCreativeModeTabs.java | 27 +++- .../registry/AntarchyNeoforgeEntites.java | 13 ++ .../AntarchyNeoforgeEntityAttributes.java | 2 + .../registry/AntarchyNeoforgeItems.java | 53 +++++++- 41 files changed, 586 insertions(+), 16 deletions(-) create mode 100644 common/src/main/resources/assets/antarchy/models/item/water_cannon_gui.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/water_cannon_held_geo.json create mode 100644 common/src/main/resources/assets/antarchy/textures/block/shellstone/chiseled_shellstone_bricks.png create mode 100644 common/src/main/resources/assets/antarchy/textures/block/shellstone/cracked_shellstone_bricks.png create mode 100644 common/src/main/resources/assets/antarchy/textures/block/shellstone/mossy_shellstone_bricks.png create mode 100644 common/src/main/resources/assets/antarchy/textures/block/shellstone/polished_shellstone.png create mode 100644 common/src/main/resources/assets/antarchy/textures/block/shellstone/shellstone.png create mode 100644 common/src/main/resources/assets/antarchy/textures/block/shellstone/shellstone_bricks.png create mode 100644 common/src/main/resources/assets/antarchy/textures/item/primordial/primordial_boots.png create mode 100644 common/src/main/resources/assets/antarchy/textures/item/primordial/primordial_chestplate.png create mode 100644 common/src/main/resources/assets/antarchy/textures/item/primordial/primordial_helmet.png create mode 100644 common/src/main/resources/assets/antarchy/textures/item/primordial/primordial_leggings.png create mode 100644 common/src/main/resources/assets/antarchy/textures/item/water_cannon_item.png create mode 100644 common/src/main/resources/assets/antarchy/textures/models/armor/primordial_layer_1.png create mode 100644 common/src/main/resources/assets/antarchy/textures/models/armor/primordial_layer_2.png create mode 100644 common/src/main/resources/assets/antarchy/textures/models/item/water_cannon.png diff --git a/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java b/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java index e1723a0d..a506b801 100644 --- a/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java +++ b/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java @@ -444,6 +444,17 @@ public final class AntarchySettings { private static int bloodCrystalChestplateDurability = 112; private static int bloodCrystalLeggingsDurability = 105; private static int bloodCrystalBootsDurability = 91; + private static double toreterrorHealth = 300.0D; + private static double toreterrorJumpAttackDamage = 14.0D; + private static double toreterrorJumpAttackKnockback = 2.5D; + private static double toreterrorSpinDamage = 8.0D; + private static double toreterrorSpinKnockback = 1.5D; + private static double toreterrorRangedWaterBombChance = 0.5D; + private static double waterBombDamage = 6.0D; + private static int waterBombLifetimeTicks = 120; + private static double waterBombGravity = 0.12D; + private static double waterBombKnockback = 1.2D; + private static double waterCannonCooldownSeconds = 1.5D; private AntarchySettings() { } @@ -2306,4 +2317,27 @@ public final class AntarchySettings { public static int bloodCrystalHardMaxShields() { return bloodCrystalHardMaxShields; } public static void setBloodCrystalHardMaxShields(int v) { bloodCrystalHardMaxShields = v; } + + public static double toreterrorHealth() { return toreterrorHealth; } + public static void setToreterrorHealth(double v) { toreterrorHealth = v; } + public static double toreterrorJumpAttackDamage() { return toreterrorJumpAttackDamage; } + public static void setToreterrorJumpAttackDamage(double v) { toreterrorJumpAttackDamage = v; } + public static double toreterrorJumpAttackKnockback() { return toreterrorJumpAttackKnockback; } + public static void setToreterrorJumpAttackKnockback(double v) { toreterrorJumpAttackKnockback = v; } + public static double toreterrorSpinDamage() { return toreterrorSpinDamage; } + public static void setToreterrorSpinDamage(double v) { toreterrorSpinDamage = v; } + public static double toreterrorSpinKnockback() { return toreterrorSpinKnockback; } + public static void setToreterrorSpinKnockback(double v) { toreterrorSpinKnockback = v; } + public static double toreterrorRangedWaterBombChance() { return toreterrorRangedWaterBombChance; } + public static void setToreterrorRangedWaterBombChance(double v) { toreterrorRangedWaterBombChance = v; } + public static double waterBombDamage() { return waterBombDamage; } + public static void setWaterBombDamage(double v) { waterBombDamage = v; } + public static int waterBombLifetimeTicks() { return waterBombLifetimeTicks; } + public static void setWaterBombLifetimeTicks(int v) { waterBombLifetimeTicks = v; } + public static double waterBombGravity() { return waterBombGravity; } + public static void setWaterBombGravity(double v) { waterBombGravity = v; } + public static double waterBombKnockback() { return waterBombKnockback; } + public static void setWaterBombKnockback(double v) { waterBombKnockback = v; } + public static double waterCannonCooldownSeconds() { return waterCannonCooldownSeconds; } + public static void setWaterCannonCooldownSeconds(double v) { waterCannonCooldownSeconds = v; } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java b/common/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java index f2f45f04..d70e3ecc 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java @@ -6,7 +6,9 @@ import com.craisinlord.antarchy.content.entity.ButterflyEntity; import com.craisinlord.antarchy.content.entity.CaterpillarEntity; import com.craisinlord.antarchy.content.entity.EasterBunnyEntity; import com.craisinlord.antarchy.content.entity.HushProjectileEntity; +import com.craisinlord.antarchy.content.entity.WaterBombEntity; import com.craisinlord.antarchy.content.entity.TriffidEntity; +import com.craisinlord.antarchy.content.entity.ToreterrorEntity; import com.craisinlord.antarchy.content.entity.WaspEntity; import com.craisinlord.antarchy.content.entity.brutalfly.BrutalflyEntity; import com.craisinlord.antarchy.content.entity.brutalfly.BrutalflyOrbEntity; @@ -28,7 +30,9 @@ import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.EntityType; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; public final class AntarchyObjects { @@ -71,6 +75,10 @@ public final class AntarchyObjects { @SuppressWarnings("unchecked") public static Supplier> HUSH_PROJECTILE = (Supplier>) UNBOUND; @SuppressWarnings("unchecked") + public static Supplier> TORETERROR = (Supplier>) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier> WATER_BOMB = (Supplier>) UNBOUND; + @SuppressWarnings("unchecked") public static Supplier DUPLICATOR_LOG = (Supplier) UNBOUND; @SuppressWarnings("unchecked") public static Supplier DUPLICATOR_SAPLING = (Supplier) UNBOUND; @@ -83,6 +91,36 @@ public final class AntarchyObjects { @SuppressWarnings("unchecked") public static Supplier NYXITE = (Supplier) UNBOUND; @SuppressWarnings("unchecked") + public static Supplier SHELLSTONE = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier POLISHED_SHELLSTONE = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier SHELLSTONE_BRICKS = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier CHISELED_SHELLSTONE = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier MOSSY_SHELLSTONE_BRICKS = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier CRACKED_SHELLSTONE_BRICKS = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier SHELLSTONE_STAIRS = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier SHELLSTONE_SLAB = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier SHELLSTONE_WALL = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier POLISHED_SHELLSTONE_STAIRS = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier POLISHED_SHELLSTONE_SLAB = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier POLISHED_SHELLSTONE_WALL = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier SHELLSTONE_BRICK_STAIRS = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier SHELLSTONE_BRICK_SLAB = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") + public static Supplier SHELLSTONE_BRICK_WALL = (Supplier) UNBOUND; + @SuppressWarnings("unchecked") public static Supplier CLOUD_BLOCK = (Supplier) UNBOUND; @SuppressWarnings("unchecked") public static Supplier TRIFFID_GOO_BLOCK = (Supplier) UNBOUND; @@ -176,12 +214,29 @@ public final class AntarchyObjects { Supplier> brutalfly, Supplier> brutalflyOrb, Supplier> hushProjectile, + Supplier> toreterror, + Supplier> waterBomb, Supplier duplicatorLog, Supplier duplicatorSapling, Supplier ductTape, Supplier infestedRootedDirt, Supplier infestedCoarseDirt, Supplier nyxite, + Supplier shellstone, + Supplier polishedShellstone, + Supplier shellstoneBricks, + Supplier chiseledShellstone, + Supplier mossyShellstoneBricks, + Supplier crackedShellstoneBricks, + Supplier shellstoneStairs, + Supplier shellstoneSlab, + Supplier shellstoneWall, + Supplier polishedShellstoneStairs, + Supplier polishedShellstoneSlab, + Supplier polishedShellstoneWall, + Supplier shellstoneBrickStairs, + Supplier shellstoneBrickSlab, + Supplier shellstoneBrickWall, Supplier cloudBlock, Supplier triffidGooBlock, Supplier paleNyxite, @@ -236,12 +291,29 @@ public final class AntarchyObjects { BRUTALFLY = brutalfly; BRUTALFLY_ORB = brutalflyOrb; HUSH_PROJECTILE = hushProjectile; + TORETERROR = toreterror; + WATER_BOMB = waterBomb; DUPLICATOR_LOG = duplicatorLog; DUPLICATOR_SAPLING = duplicatorSapling; DUCT_TAPE = ductTape; INFESTED_ROOTED_DIRT = infestedRootedDirt; INFESTED_COARSE_DIRT = infestedCoarseDirt; NYXITE = nyxite; + SHELLSTONE = shellstone; + POLISHED_SHELLSTONE = polishedShellstone; + SHELLSTONE_BRICKS = shellstoneBricks; + CHISELED_SHELLSTONE = chiseledShellstone; + MOSSY_SHELLSTONE_BRICKS = mossyShellstoneBricks; + CRACKED_SHELLSTONE_BRICKS = crackedShellstoneBricks; + SHELLSTONE_STAIRS = shellstoneStairs; + SHELLSTONE_SLAB = shellstoneSlab; + SHELLSTONE_WALL = shellstoneWall; + POLISHED_SHELLSTONE_STAIRS = polishedShellstoneStairs; + POLISHED_SHELLSTONE_SLAB = polishedShellstoneSlab; + POLISHED_SHELLSTONE_WALL = polishedShellstoneWall; + SHELLSTONE_BRICK_STAIRS = shellstoneBrickStairs; + SHELLSTONE_BRICK_SLAB = shellstoneBrickSlab; + SHELLSTONE_BRICK_WALL = shellstoneBrickWall; CLOUD_BLOCK = cloudBlock; TRIFFID_GOO_BLOCK = triffidGooBlock; PALE_NYXITE = paleNyxite; @@ -283,4 +355,8 @@ public final class AntarchyObjects { public static boolean isDuplicatorTreeBlock(BlockState state) { return state.is(DUPLICATOR_LOG.get()) || state.is(DUPLICATOR_SAPLING.get()); } + + public static BlockBehaviour.Properties shellstoneProperties() { + return BlockBehaviour.Properties.ofFullCopy(Blocks.STONE).requiresCorrectToolForDrops(); + } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/DreamCampfireBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/DreamCampfireBlock.java index 13e5723e..c9b8c890 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/DreamCampfireBlock.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/DreamCampfireBlock.java @@ -4,7 +4,14 @@ import com.craisinlord.antarchy.content.AntarchyObjects; import com.craisinlord.antarchy.content.block.entity.DreamCampfireBlockEntity; import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; +import net.minecraft.core.registries.Registries; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.CampfireBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; @@ -48,4 +55,17 @@ public class DreamCampfireBlock extends CampfireBlock { ? createTickerHelper(blockEntityType, dreamCampfireType, CampfireBlockEntity::cookTick) : createTickerHelper(blockEntityType, dreamCampfireType, CampfireBlockEntity::cooldownTick); } + + @Override + public void playerDestroy(Level level, Player player, BlockPos pos, BlockState state, BlockEntity blockEntity, ItemStack stack) { + var silkTouch = level.registryAccess().lookupOrThrow(Registries.ENCHANTMENT).getOrThrow(Enchantments.SILK_TOUCH); + boolean hasSilkTouch = EnchantmentHelper.getItemEnchantmentLevel(silkTouch, stack) > 0; + ItemStack droppedCampfire = hasSilkTouch ? this.getCloneItemStack(level, pos, state) : ItemStack.EMPTY; + + super.playerDestroy(level, player, pos, state, blockEntity, stack); + + if (hasSilkTouch && !droppedCampfire.isEmpty() && level instanceof ServerLevel serverLevel) { + Block.popResource(serverLevel, pos, droppedCampfire); + } + } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/HushProjectileEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/HushProjectileEntity.java index b3efe369..bb336669 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/HushProjectileEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/HushProjectileEntity.java @@ -96,9 +96,7 @@ public class HushProjectileEntity extends ThrowableItemProjectile { return; } - // Smoothly steer toward the target each tick — no hard phase transition. - // The initial upward launch velocity from HushweedBlockEntity gives a natural - // rising arc before the homing takes over. + // Smoothly steer toward the target each tick Vec3 desired = toTarget.normalize().scale(TRAVEL_SPEED); this.setDeltaMovement(this.getDeltaMovement().lerp(desired, 0.1D)); } diff --git a/common/src/main/resources/assets/antarchy/lang/en_us.json b/common/src/main/resources/assets/antarchy/lang/en_us.json index b76b8891..d0ac4bc3 100644 --- a/common/src/main/resources/assets/antarchy/lang/en_us.json +++ b/common/src/main/resources/assets/antarchy/lang/en_us.json @@ -32,6 +32,21 @@ "block.antarchy.polished_nyxite": "Polished Nyxite", "block.antarchy.chiseled_nyxite": "Chiseled Nyxite", "block.antarchy.nyxite_bricks": "Nyxite Bricks", + "block.antarchy.shellstone": "Shellstone", + "block.antarchy.polished_shellstone": "Polished Shellstone", + "block.antarchy.shellstone_bricks": "Shellstone Bricks", + "block.antarchy.chiseled_shellstone": "Chiseled Shellstone", + "block.antarchy.mossy_shellstone_bricks": "Mossy Shellstone Bricks", + "block.antarchy.cracked_shellstone_bricks": "Cracked Shellstone Bricks", + "block.antarchy.shellstone_stairs": "Shellstone Stairs", + "block.antarchy.shellstone_slab": "Shellstone Slab", + "block.antarchy.shellstone_wall": "Shellstone Wall", + "block.antarchy.polished_shellstone_stairs": "Polished Shellstone Stairs", + "block.antarchy.polished_shellstone_slab": "Polished Shellstone Slab", + "block.antarchy.polished_shellstone_wall": "Polished Shellstone Wall", + "block.antarchy.shellstone_brick_stairs": "Shellstone Brick Stairs", + "block.antarchy.shellstone_brick_slab": "Shellstone Brick Slab", + "block.antarchy.shellstone_brick_wall": "Shellstone Brick Wall", "block.antarchy.nyxite_stairs": "Nyxite Stairs", "block.antarchy.nyxite_slab": "Nyxite Slab", "block.antarchy.nyxite_wall": "Nyxite Wall", @@ -132,6 +147,8 @@ "entity.antarchy.molevore": "Molevore", "entity.antarchy.mantis": "Mantis", "entity.antarchy.triffid": "Triffid", + "entity.antarchy.toreterror": "Toreterror", + "entity.antarchy.water_bomb": "Water Bomb", "subtitles.antarchy.mantis_ambient": "Mantis clicks", "subtitles.antarchy.mantis_hurt": "Mantis screeches", "subtitles.antarchy.mantis_attack": "Mantis snaps", @@ -189,6 +206,21 @@ "item.antarchy.polished_nyxite": "Polished Nyxite", "item.antarchy.chiseled_nyxite": "Chiseled Nyxite", "item.antarchy.nyxite_bricks": "Nyxite Bricks", + "item.antarchy.shellstone": "Shellstone", + "item.antarchy.polished_shellstone": "Polished Shellstone", + "item.antarchy.shellstone_bricks": "Shellstone Bricks", + "item.antarchy.chiseled_shellstone": "Chiseled Shellstone", + "item.antarchy.mossy_shellstone_bricks": "Mossy Shellstone Bricks", + "item.antarchy.cracked_shellstone_bricks": "Cracked Shellstone Bricks", + "item.antarchy.shellstone_stairs": "Shellstone Stairs", + "item.antarchy.shellstone_slab": "Shellstone Slab", + "item.antarchy.shellstone_wall": "Shellstone Wall", + "item.antarchy.polished_shellstone_stairs": "Polished Shellstone Stairs", + "item.antarchy.polished_shellstone_slab": "Polished Shellstone Slab", + "item.antarchy.polished_shellstone_wall": "Polished Shellstone Wall", + "item.antarchy.shellstone_brick_stairs": "Shellstone Brick Stairs", + "item.antarchy.shellstone_brick_slab": "Shellstone Brick Slab", + "item.antarchy.shellstone_brick_wall": "Shellstone Brick Wall", "item.antarchy.nyxite_stairs": "Nyxite Stairs", "item.antarchy.nyxite_slab": "Nyxite Slab", "item.antarchy.nyxite_wall": "Nyxite Wall", @@ -306,6 +338,13 @@ "item.antarchy.kraken_spawn_egg": "Uh, no. Don't.", "item.antarchy.missile_squid_spawn_egg": "Missile Squid Spawn Egg", "item.antarchy.nightmare_spawn_egg": "Nightmare Spawn Egg", + "item.antarchy.toreterror_spawn_egg": "Toreterror Spawn Egg", + "item.antarchy.water_cannon": "Water Cannon", + "item.antarchy.primordial_scute": "Primordial Scute", + "item.antarchy.primordial_helmet": "Primordial Helmet", + "item.antarchy.primordial_chestplate": "Primordial Chestplate", + "item.antarchy.primordial_leggings": "Primordial Leggings", + "item.antarchy.primordial_boots": "Primordial Boots", "item.antarchy.bed_bug_spawn_egg": "Bed Bug Spawn Egg", "item.antarchy.moleworm_spawn_egg": "Moleworm Spawn Egg", "item.antarchy.molevore_spawn_egg": "Molevore Spawn Egg", diff --git a/common/src/main/resources/assets/antarchy/models/item/water_cannon_gui.json b/common/src/main/resources/assets/antarchy/models/item/water_cannon_gui.json new file mode 100644 index 00000000..91aa0a67 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/water_cannon_gui.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "gui_light": "front", + "textures": { + "layer0": "antarchy:item/water_cannon_item" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/water_cannon_held_geo.json b/common/src/main/resources/assets/antarchy/models/item/water_cannon_held_geo.json new file mode 100644 index 00000000..244473f9 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/water_cannon_held_geo.json @@ -0,0 +1,37 @@ +{ + "parent": "builtin/entity", + "display": { + "thirdperson_righthand": { + "translation": [0, -2, 5], + "scale": [0.7, 0.7, 0.7] + }, + "thirdperson_lefthand": { + "translation": [0, -2, 5], + "scale": [0.7, 0.7, 0.7] + }, + "firstperson_righthand": { + "rotation": [10, 0, -5], + "translation": [2, 0, 1], + "scale": [0.5, 0.5, 0.5] + }, + "firstperson_lefthand": { + "rotation": [10, 0, -5], + "translation": [2, 0, 1], + "scale": [0.5, 0.5, 0.5] + }, + "gui": { + "rotation": [30, -135, 0], + "translation": [-1, -1.5, 0], + "scale": [0.425, 0.425, 0.425] + }, + "fixed": { + "rotation": [90, -45, 90], + "translation": [0, -1.25, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [90, 0, 0], + "scale": [0.7, 0.7, 0.7] + } + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/antarchy/textures/block/shellstone/chiseled_shellstone_bricks.png b/common/src/main/resources/assets/antarchy/textures/block/shellstone/chiseled_shellstone_bricks.png new file mode 100644 index 0000000000000000000000000000000000000000..0ce8640239ce9e4022fbfa0d6cbf017886ea8698 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~-2k5u*Dzn( z^iap*1kdW6z_!ZBXv4S5ZF&lsq{3Stt!T(`^0mNW1kTA{#N)>s!IEF|} zb?x`$V>aMm-uvmldiaDeSyvgiW1a@_w`L#oQ2MIo)H6xXa}C$wi1;&+f!fm}Hfo!u z-hR}%Nlio0q}r+0MY}EZM9UTfi-&uQyaN&hUaO|WxNn=n@M3zwy~}0G9UMP0G%)!7 gS2^&0b+y@7#`TMtZaz3(U=4Dyr>mdKI;Vst0B9Rq=Kufz literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/antarchy/textures/block/shellstone/cracked_shellstone_bricks.png b/common/src/main/resources/assets/antarchy/textures/block/shellstone/cracked_shellstone_bricks.png new file mode 100644 index 0000000000000000000000000000000000000000..a7034f72c7de02bf6e3a2d0cd4bd589e116ef051 GIT binary patch literal 487 zcmVPx$p-DtRR5*=wk}+!=K@f#Mi7giH1b6m<>1;~&eIn9!X%k!8h1daK9(k$H1SQxKt%WaGGiEX#<4D|aF?7;HMv%d?(c4n!9Aq_>M1ZQbze=QFoozx>x50BW~wd0B13c7^6}+smg_l=EZM zIODvLhTz|O6PDPx18vW6+l=Y>0JN-002ovPDHLkV1jdtPx$ut`KgR5*=olfjAl2huKfVPjX&h)xb`~)-HD(uvymCw z7Kg4L%Bnz8%^RqpU8It(ZoHc+l6PP3&AXX>c>iwCh)cf)puTIc#&R*Y08~#buI=)F z!q?AND1cu#w~Ai%p@?MsxeSr6@H3p%;{EJ9;kwEU8${9OC4N1Y}Y| z;wabckRXI!FolK^UOql!Q#!QQN5tL>tC{0`U*$Cgpp9m+jEfyLvJvK6XmCh~DkQ`c zCC)!SZB zA3yzIsD|igt*}~gicaGG;Nmw~08lU9#J2al2LLYSHqZV0m!G_T`|7CKX&#ihQ(T4` zfb)HYD|fhVmn{HXeY?qa60~U#Q%K~gUsGs08E|cv$2`qO8n5cTund}}Kln;Tb|h(Y zOzOQHf|O)EeRc>(Dr~mnI~XnXUb2m(NG+CC?sl5GWMMi|PJ*WraVl$iS<|Th4{Ci~ s=UJ=gDnF#yU9rBda}E+Z3Hg5h0RdGBHxTTWg#Z8m07*qoM6N<$f?TfQ9RL6T literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/antarchy/textures/block/shellstone/polished_shellstone.png b/common/src/main/resources/assets/antarchy/textures/block/shellstone/polished_shellstone.png new file mode 100644 index 0000000000000000000000000000000000000000..663d8f9d798091688b960ebb0631e5a412b321c4 GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~i2$DvS0Ekc zYnvYGSe)QlofFtr89A*hdD)y2hSjgzfN~rqL4Lsu{~_S&sSqQeSdOQQV~E7m&^}Kg z215=e-tM3O`Ox&Z%8}!?L)wbKyGaC>HYkT?F XwJbuN`Pz&?dl@`k{an^LB{Ts5)|^!H literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/antarchy/textures/block/shellstone/shellstone.png b/common/src/main/resources/assets/antarchy/textures/block/shellstone/shellstone.png new file mode 100644 index 0000000000000000000000000000000000000000..b4b3c1e67424c6bd0a30960a5a7e2dd039b08d67 GIT binary patch literal 428 zcmV;d0aN~oP)Px$W=TXrR5*=oQ@v`#FcAI%B3zIh3>Mf~+NE3RL-Y|k^clMJ4f>d+Tb6W*4GI`X zCL&8ZD0e<5y-AkO-+e#l#n@}lCd4rzp3dNMt0jD0!WJYw06>mlLf0cj z0y&b80if~g*pfHJUK zE#WM|+052od(C0riyi<%5x`wDgSKH1Z-fCC8sCwg#}co zXDLh2v9SkQKL8x|ll$7l#mD>W1ps_q-o?nJBfgE>XstSp#;*~to5(CUVq1`$O&bRJ zS$Js}j9Klrt+4TR2_3z8etDQhr}v#HKRz|`o~Lv4X18r6GI9jo3k|A)LpLQ5$Amv7 W)eXA3dfe;)0000Px$Pf0{UR5*==lfg>EKoEvMVGoN*A+dt^93DJ+^r#Qx<9PNt1igu%hhC%=D->I( z*@a}w91419C*4h39S9_w`Dgxr=HG+6+nXQugs&U`#Zj5OYdk*=FaRH;NdgSDAdS!j zY0vV^Vsp#nvm)zR0Gc2eUpYc8NdW~b2xviZ69D7gVhf;87uanCtR&dn(mySB(wAmc zOd4rvYdBeAit>=}FaIz7tY-|59rPx#^hrcPR5*>*lA&$_K@f(&Yj^?@1i@Tztvtc?R9#aXR29)T=;QPqT8V6GDoF^2 ziWWsyaG8WlE^8LaR_*4NJwzp=cE8Mg^KY_n@s*r{m#2H{&adyE$vNh#b2>bkJpeF& z`v}C21GXs%1OQv504PO!R*G)rt%6GG*0-MHSItW)n!L#9^}A7HuiqsvvWQ0s+%|2F z{;ti@Cus6OFufbu@#C%E)|OzHrp%rJuwScH;stJan5Jx%qLLb84u05}1K*1cmDJ=# z7DzhHh?Ufc+Ou5mq6EwJj)7=I?Y$KDkw(`yHfa9+i9XnW`Yx>g06{@@zTk5z%K!iX M07*qoM6N<$f)XB#H2?qr literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/antarchy/textures/item/primordial/primordial_chestplate.png b/common/src/main/resources/assets/antarchy/textures/item/primordial/primordial_chestplate.png new file mode 100644 index 0000000000000000000000000000000000000000..4ccff195bf6bd8bb4d10ed034b2a38f7cc8756bc GIT binary patch literal 406 zcmV;H0crk;P)Px$P)S5VR5*>rkugidP!xr~Ku3pCFc7)~DMc+flu(I_2t^!qvxEP@pW}bfsoF_# z5vSA=90au#DQ^i6QV4G_j*UZoF=?Wc;MvZ-@11+@x$xgG08WqhlWZ}Nip%?vk*yu= zc9ObP&3!(*xHT%89QFa#33aQAWt-{VI)^|iR6PG#AdWxicH694wcJ&-3rj`}1|=b8p>1cOuT$1D zmJ6MY&7^Lw02Hnggzt=AUyNS`v`ATf`SYLP6AxaQ2o;@?0ssI207*qoM6N<$f)MSf AlmGw# literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/antarchy/textures/item/primordial/primordial_helmet.png b/common/src/main/resources/assets/antarchy/textures/item/primordial/primordial_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..e45877337d27074101291b65673da4eeb7ead76e GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~i2$DvS0HVs zspV*55@>Ih6XDic5i@II-kyzpFKu3z0p&PKg8YIR{zJgkQz1q`F(*$K#}J9BOHX+6 z9WdZVS)S0HVs zsRcxiCMJRQW;qdVtran|Cg$zg*f*zA&Iu^ZSrX(I%3{vlD|tTF=h(fsIyKtAXnVp^9)9~A=hfJ0*-WeV+<)IBX1vmT$rOj6 zY_Yr6GWPXv3a>qH;f_f1(O?%i-aa9zroBVr{{to!FUGs9b~~Gab})Fl`njxgN@xNA DeB?`7 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/antarchy/textures/item/water_cannon_item.png b/common/src/main/resources/assets/antarchy/textures/item/water_cannon_item.png new file mode 100644 index 0000000000000000000000000000000000000000..8dc1d3d41e3755837c82ae10a30d9ed9489fa9f8 GIT binary patch literal 537 zcmV+!0_OdRP)Px$(@8`@R5*>Dl0Rq@Q5?rV7ZWkfAJT}%5C}m+!FDRWL@E?%7Rjda_G~u@PFWlr z>}N$Xq*83HJ?6p}nKO3Wc(81pOihn+a z|GO8%FbIW01OkCawOVcEM1$j4wH5%qh4WZXUu!=zQUMr-0f6H;$}~;wp8~7C>mG7< zmlQyyQqcfcBBcayB_|dP8Fm?!WV2a5{QAV5n_0!^D~z&m`??!$knpg+x52a3Rl=>` z=!-LSoB?Bh7{Jo~Tgn&ianzmS@bEL2Y%g=^C;;t)4(%^LCJTPx&s!2paRA_l0{067 zg=P!=104cg+peV@I%LdHO34r?4Z(HX15=#A;0||BeU@cQJ~>U(Z_>T@B>742>3z~U za}LyEG#upPFaa-c!S8ke03f=$29zBhooGg|!)Q3j506fq(QuH{`B7#&Khqib-42|8 zxdZ@!ahM2s6eqCqT1vo#um`T?b_79F7004i{Eo}noZ16y5AWv$lYYU^{AfH8N3ZpZC^UIQ) zbJj`@n#>Q=#g^x5V}5M}{41c&wz=>|3xJ1@PIe!`Xnj3DyHJK&9bPKb5LKC5^HkR9DWI4;!tS>``HI&n~j^VjhRMh)peh2L@6fhbPElkBScHz)^pVkn)K6wVSS}( z5XBP*sbLf+r8c!eqC&$TnWHMLs2-iGbBwZ3+LoajOO;lrXH-xJ)17J>mZo}nLz<3N zHNHpz8vbwIf0`-0wl-EpO2}zI$EW(XDDA9pbhp9(9ruO^-4?V|c)iyv@a+$$r?oM& zy}6dBX;w<3t&P>3b7md#GH+>eHmIOo0C(Q###})1D^tp<%3~AAT*MaIFH$-4KjBs) zK-FiKaa4$|uEFni!0&cy`G6_3U!^OFnA@Nzbtd+lGf2~{6lv}}1I`(&JbqXRdl@oA zlfwT{hCpIsbj5!XI5(V}GS44up=$7Kz zcLX^{aW}?cQnJSn#y&zfbux+*VTXO`81lOW+N*RbSTn)(UM~;)xk4Ue{!*y)VRR$f zDo0d&qHS15K;X}n&H(v_iQ%Z)nKaEHjBdn%2xPI^svLD_{R}{;uCMgKLqu^>czd8| zgXrkM_ICQYF5IwmVII;QSDpb<1b`y{L2}Tv3bYO9+3w_3hraeywdu#A3}1qT(~!5{np00009wlqjkF~pFWK>+Ssx0 z{|VEqTHaiSQ&#)(r61T!r39Q?t}Ji);NG6S;<*lU{)88PZTWTl+-L8G_x#gai)3Hh w-QBh`d*XE^`}6tCMh|znOtlG`u3E#uV8JqB;YOWHKrb+Oy85}Sb4q9e00K>RbN~PV literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/antarchy/textures/models/item/water_cannon.png b/common/src/main/resources/assets/antarchy/textures/models/item/water_cannon.png new file mode 100644 index 0000000000000000000000000000000000000000..3978fa8b5268591bb7d8359db2448606e2216331 GIT binary patch literal 2293 zcmVSC+hs$`Oq~=;Xv1|Y2E-Q&(hHNo>_rg0>K{cRfnp%O2n+wb zkq9D-q}@USUo0C#xw^H13A=4>veb}hX5;SEruIj;-Oq!+!!u{^xp(HyxuY^O@SWe^ z=l49n-}8IUJ@=l|-TnFNdL>dze`U;-^0$BGlRfzI&3k$`@A*itzC=2<@VRd1hkB*V zULO;3H<;C+FFn1G4&J-JGYrVosr#aCXKrnYP(E&|=t&zwp}pZH7q!&86H zHk3@yo|Oast!e?z-LWZM_3@o&>|m^`w7u!AFQvyHI^01QowH+J`cKY8|!gB?C#_fdF${@=N^wKJZs#LF+g zl1{()N~x-NdiF|DV-^*_q!w&9EGiaP8`CI;zZek<)yCx@MUZSDl4wA&_-I?>jE`6-Jvt7|?;_>`xM}Og zgs;a@oVu=*huP2g7?ey2?Fs_g4Ji4L`9$LEC7Sf5Ps!KkXLA8;x(2XsJnyWe)g6%l znV!7~xdT+0gWU^?Z$kLG;->JAg9Isa;6%Km6N@4?X`u=*C5?Zd3$Gq5*R0=h!Hm1qYRYqLqHb`0z({ zSj4K2aS?Pg4uM9o98z-h+PLg@CW0UJ1>7bkCy2E`EP$s zKzZ`i3kmR(g1KP!$nWyJk01YiMezaaC_!&rV4U@pJ0Ih#0>pw$U@|BdfTs&YfaTI> z=ND4ov13oBfO$)l>j^%5jbHA(P5#}v`BRG)G-?rHZwfd{zinz$szXc1F$}8J>pZ_0 zJ8GV#+Vg!t1Vs&uiBU4(OVEvj+dlh+PKh!mK4K~~KCTC@0T5%^+Cca0)Tuha0?Nvh z!Neu#+L&C7GSQI5|Mc~rNV|7llcq1Ztb$|6r%iP2y4DiZVtzO~n=eXn?#TOobs*jI z)4eGuKmKiFQgMf^GarFr4s3P=T`jC;A*%ZT$w^d41doP{mUgzbu+)T?>bIPARUIHf z10@M~2p)w}ho1zR5^d72WDQjTBDs1ndK05;LGf*%j2ArGzvcB4dg|ZyrvCSaM5b?J z&N4PDO)j%#lxzi>kmkaR;K}OlzhWRE{*imcE7s1lWVoDh=`Jj$L z>=xbY9i!HlJAl)m#3d?W_DLg(9P|9=nLnmF!qz6O3eXf(+iTANxyg4Ny|~8329P(r z=i8ko@NE-|J_RDMoew^C#=_`A#!mv1j$dDM*RL$T`IX=HW`A;Df}h=YXF72Iy=mc* z{V5$kl+pj1+Ub8y?bHK}D=Tai93_t%Yn*ZU2n?$Fp-2CepUHa^<#iLX2|SMSE)IA^ zg#!HzGgs$#c<^*!%qU1YlE;toZ_}O&AfU4yh474xt`2%nV?3Dwb`zHc%Cy{P?j$st+bdfj*w23$WDWM=ihwP&ed-_m2d5&=|#1K!_sZ=}Z5r2>n>4zD+(CAOh-y;K!lf z&yhqVLmnrNG2%ePqAR~1lLukBx?BK>`%=_aCoFdnOYtA{^>``cM)`DC>j#ff3wf>V zRR>srPFQON$pw%+C;+;au&4lQDe=g)d;cxB<~KG<8pgFi*E?V>?DDW2*E?WXb=HDy zy#v<5E)UCby#t0-XD!&)JK&AJ%PU>~{{a91|NjeZeHs7&00v1!K~w_(JDs-M#~nQn P00000NkvXXu0mjfe-e68 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json b/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json index fec4d2c7..a73bb9ab 100644 --- a/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -36,6 +36,21 @@ "antarchy:nyxite_brick_stairs", "antarchy:nyxite_brick_slab", "antarchy:nyxite_brick_wall", + "antarchy:shellstone", + "antarchy:polished_shellstone", + "antarchy:shellstone_bricks", + "antarchy:chiseled_shellstone", + "antarchy:mossy_shellstone_bricks", + "antarchy:cracked_shellstone_bricks", + "antarchy:shellstone_stairs", + "antarchy:shellstone_slab", + "antarchy:shellstone_wall", + "antarchy:polished_shellstone_stairs", + "antarchy:polished_shellstone_slab", + "antarchy:polished_shellstone_wall", + "antarchy:shellstone_brick_stairs", + "antarchy:shellstone_brick_slab", + "antarchy:shellstone_brick_wall", "antarchy:nyxite_spike", "antarchy:potent_nyxite", "antarchy:blood_crystal_block", @@ -54,4 +69,3 @@ "antarchy:red_ant_nest" ] } - diff --git a/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json b/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json index 5d341ba2..d0a65c64 100644 --- a/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json +++ b/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json @@ -1,4 +1,20 @@ { "replace": false, - "values": [] + "values": [ + "antarchy:shellstone", + "antarchy:polished_shellstone", + "antarchy:shellstone_bricks", + "antarchy:chiseled_shellstone", + "antarchy:mossy_shellstone_bricks", + "antarchy:cracked_shellstone_bricks", + "antarchy:shellstone_stairs", + "antarchy:shellstone_slab", + "antarchy:shellstone_wall", + "antarchy:polished_shellstone_stairs", + "antarchy:polished_shellstone_slab", + "antarchy:polished_shellstone_wall", + "antarchy:shellstone_brick_stairs", + "antarchy:shellstone_brick_slab", + "antarchy:shellstone_brick_wall" + ] } diff --git a/common/src/main/resources/data/minecraft/tags/block/slabs.json b/common/src/main/resources/data/minecraft/tags/block/slabs.json index c369e8a4..f353c9ad 100644 --- a/common/src/main/resources/data/minecraft/tags/block/slabs.json +++ b/common/src/main/resources/data/minecraft/tags/block/slabs.json @@ -4,6 +4,9 @@ "antarchy:nyxite_slab", "antarchy:polished_nyxite_slab", "antarchy:nyxite_brick_slab", + "antarchy:shellstone_slab", + "antarchy:polished_shellstone_slab", + "antarchy:shellstone_brick_slab", "antarchy:dream_sandstone_slab", "antarchy:smooth_dream_sandstone_slab", "antarchy:cut_dream_sandstone_slab", diff --git a/common/src/main/resources/data/minecraft/tags/block/stairs.json b/common/src/main/resources/data/minecraft/tags/block/stairs.json index eede1ceb..4a268bb0 100644 --- a/common/src/main/resources/data/minecraft/tags/block/stairs.json +++ b/common/src/main/resources/data/minecraft/tags/block/stairs.json @@ -4,6 +4,9 @@ "antarchy:nyxite_stairs", "antarchy:nyxite_brick_stairs", "antarchy:polished_nyxite_stairs", + "antarchy:shellstone_stairs", + "antarchy:polished_shellstone_stairs", + "antarchy:shellstone_brick_stairs", "antarchy:dream_sandstone_stairs", "antarchy:smooth_dream_sandstone_stairs", "antarchy:cut_titanium_stairs", diff --git a/common/src/main/resources/data/minecraft/tags/block/walls.json b/common/src/main/resources/data/minecraft/tags/block/walls.json index 8df37e0e..a53d44da 100644 --- a/common/src/main/resources/data/minecraft/tags/block/walls.json +++ b/common/src/main/resources/data/minecraft/tags/block/walls.json @@ -4,6 +4,9 @@ "antarchy:dream_sandstone_wall", "antarchy:nyxite_wall", "antarchy:polished_nyxite_wall", - "antarchy:nyxite_brick_wall" + "antarchy:nyxite_brick_wall", + "antarchy:shellstone_wall", + "antarchy:polished_shellstone_wall", + "antarchy:shellstone_brick_wall" ] } diff --git a/common/src/main/resources/data/minecraft/tags/item/slabs.json b/common/src/main/resources/data/minecraft/tags/item/slabs.json index c369e8a4..f353c9ad 100644 --- a/common/src/main/resources/data/minecraft/tags/item/slabs.json +++ b/common/src/main/resources/data/minecraft/tags/item/slabs.json @@ -4,6 +4,9 @@ "antarchy:nyxite_slab", "antarchy:polished_nyxite_slab", "antarchy:nyxite_brick_slab", + "antarchy:shellstone_slab", + "antarchy:polished_shellstone_slab", + "antarchy:shellstone_brick_slab", "antarchy:dream_sandstone_slab", "antarchy:smooth_dream_sandstone_slab", "antarchy:cut_dream_sandstone_slab", diff --git a/common/src/main/resources/data/minecraft/tags/item/stairs.json b/common/src/main/resources/data/minecraft/tags/item/stairs.json index eede1ceb..85da72ea 100644 --- a/common/src/main/resources/data/minecraft/tags/item/stairs.json +++ b/common/src/main/resources/data/minecraft/tags/item/stairs.json @@ -4,9 +4,12 @@ "antarchy:nyxite_stairs", "antarchy:nyxite_brick_stairs", "antarchy:polished_nyxite_stairs", + "antarchy:shellstone_stairs", + "antarchy:polished_shellstone_stairs", + "antarchy:shellstone_brick_stairs", "antarchy:dream_sandstone_stairs", "antarchy:smooth_dream_sandstone_stairs", - "antarchy:cut_titanium_stairs", - "antarchy:cut_uranium_stairs" + "antarchy:cut_uranium_stairs", + "antarchy:cut_titanium_stairs" ] } diff --git a/common/src/main/resources/data/minecraft/tags/item/walls.json b/common/src/main/resources/data/minecraft/tags/item/walls.json index 389a5cde..c584b031 100644 --- a/common/src/main/resources/data/minecraft/tags/item/walls.json +++ b/common/src/main/resources/data/minecraft/tags/item/walls.json @@ -4,6 +4,9 @@ "antarchy:nyxite_wall", "antarchy:polished_nyxite_wall", "antarchy:nyxite_brick_wall", + "antarchy:shellstone_wall", + "antarchy:polished_shellstone_wall", + "antarchy:shellstone_brick_wall", "antarchy:dream_sandstone_wall" ] } diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java index 2ef31311..53395782 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java @@ -64,6 +64,10 @@ import com.craisinlord.antarchy.content.entity.ScorpionEntity; import com.craisinlord.antarchy.content.item.LucidEyeItem; import com.craisinlord.antarchy.content.item.LucidPearlItem; import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity; +import com.craisinlord.antarchy.content.entity.ToreterrorEntity; +import com.craisinlord.antarchy.content.entity.WaterBombEntity; +import com.craisinlord.antarchy.content.item.PrimordialArmorItem; +import com.craisinlord.antarchy.content.item.WaterCannonItem; import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity; import com.craisinlord.antarchy.content.entity.MolevoreEntity; import com.craisinlord.antarchy.content.entity.MolewormEntity; @@ -391,6 +395,18 @@ public final class AntarchyFabricContent { 3.0F, (float) AntarchySettings.nightmareArmorKnockbackResistance() )); + public static final DeferredItem PRIMORDIAL_SCUTE = ITEMS.registerSimpleItem("primordial_scute", + new Item.Properties().rarity(Rarity.UNCOMMON)); + private static final DeferredHolder PRIMORDIAL_ARMOR_MATERIAL = ARMOR_MATERIALS.register("primordial", + () -> new ArmorMaterial( + createPrimordialArmorDefense(), + 15, + SoundEvents.ARMOR_EQUIP_NETHERITE, + () -> Ingredient.of(PRIMORDIAL_SCUTE.get()), + List.of(new ArmorMaterial.Layer(ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "primordial"))), + 3.0F, + 0.1F + )); private static final DeferredHolder BLOOD_CRYSTAL_ARMOR_MATERIAL = ARMOR_MATERIALS.register("blood_crystal", () -> new ArmorMaterial( createBloodCrystalArmorDefense(), @@ -510,6 +526,36 @@ public final class AntarchyFabricContent { () -> new net.minecraft.world.level.block.SlabBlock(nyxiteProperties())); public static final DeferredBlock NYXITE_BRICK_WALL = BLOCKS.register("nyxite_brick_wall", () -> new net.minecraft.world.level.block.WallBlock(nyxiteProperties())); + public static final DeferredBlock SHELLSTONE = BLOCKS.register("shellstone", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock POLISHED_SHELLSTONE = BLOCKS.register("polished_shellstone", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_BRICKS = BLOCKS.register("shellstone_bricks", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock CHISELED_SHELLSTONE = BLOCKS.register("chiseled_shellstone", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock MOSSY_SHELLSTONE_BRICKS = BLOCKS.register("mossy_shellstone_bricks", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock CRACKED_SHELLSTONE_BRICKS = BLOCKS.register("cracked_shellstone_bricks", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_STAIRS = BLOCKS.register("shellstone_stairs", + () -> new net.minecraft.world.level.block.StairBlock(SHELLSTONE.get().defaultBlockState(), AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_SLAB = BLOCKS.register("shellstone_slab", + () -> new net.minecraft.world.level.block.SlabBlock(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_WALL = BLOCKS.register("shellstone_wall", + () -> new net.minecraft.world.level.block.WallBlock(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock POLISHED_SHELLSTONE_STAIRS = BLOCKS.register("polished_shellstone_stairs", + () -> new net.minecraft.world.level.block.StairBlock(POLISHED_SHELLSTONE.get().defaultBlockState(), AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock POLISHED_SHELLSTONE_SLAB = BLOCKS.register("polished_shellstone_slab", + () -> new net.minecraft.world.level.block.SlabBlock(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock POLISHED_SHELLSTONE_WALL = BLOCKS.register("polished_shellstone_wall", + () -> new net.minecraft.world.level.block.WallBlock(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_BRICK_STAIRS = BLOCKS.register("shellstone_brick_stairs", + () -> new net.minecraft.world.level.block.StairBlock(SHELLSTONE_BRICKS.get().defaultBlockState(), AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_BRICK_SLAB = BLOCKS.register("shellstone_brick_slab", + () -> new net.minecraft.world.level.block.SlabBlock(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_BRICK_WALL = BLOCKS.register("shellstone_brick_wall", + () -> new net.minecraft.world.level.block.WallBlock(AntarchyObjects.shellstoneProperties())); public static final DeferredBlock TRIFFID_GOO_BLOCK = BLOCKS.register("triffid_goo_block", () -> new com.craisinlord.antarchy.content.block.TriffidGooBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SLIME_BLOCK).noOcclusion().isViewBlocking((s, l, p) -> false).isSuffocating((s, l, p) -> false))); public static final DeferredBlock CLOUD_BLOCK = BLOCKS.register("cloud_block", @@ -1031,6 +1077,21 @@ public final class AntarchyFabricContent { public static final DeferredItem NYXITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(NYXITE_BRICK_STAIRS); public static final DeferredItem NYXITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(NYXITE_BRICK_SLAB); public static final DeferredItem NYXITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(NYXITE_BRICK_WALL); + public static final DeferredItem SHELLSTONE_ITEM = ITEMS.registerSimpleBlockItem(SHELLSTONE); + public static final DeferredItem POLISHED_SHELLSTONE_ITEM = ITEMS.registerSimpleBlockItem(POLISHED_SHELLSTONE); + public static final DeferredItem SHELLSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(SHELLSTONE_BRICKS); + public static final DeferredItem CHISELED_SHELLSTONE_ITEM = ITEMS.registerSimpleBlockItem(CHISELED_SHELLSTONE); + public static final DeferredItem MOSSY_SHELLSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(MOSSY_SHELLSTONE_BRICKS); + public static final DeferredItem CRACKED_SHELLSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(CRACKED_SHELLSTONE_BRICKS); + public static final DeferredItem SHELLSTONE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(SHELLSTONE_STAIRS); + public static final DeferredItem SHELLSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(SHELLSTONE_SLAB); + public static final DeferredItem SHELLSTONE_WALL_ITEM = ITEMS.registerSimpleBlockItem(SHELLSTONE_WALL); + public static final DeferredItem POLISHED_SHELLSTONE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(POLISHED_SHELLSTONE_STAIRS); + public static final DeferredItem POLISHED_SHELLSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(POLISHED_SHELLSTONE_SLAB); + public static final DeferredItem POLISHED_SHELLSTONE_WALL_ITEM = ITEMS.registerSimpleBlockItem(POLISHED_SHELLSTONE_WALL); + public static final DeferredItem SHELLSTONE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(SHELLSTONE_BRICK_STAIRS); + public static final DeferredItem SHELLSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(SHELLSTONE_BRICK_SLAB); + public static final DeferredItem SHELLSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(SHELLSTONE_BRICK_WALL); public static final DeferredItem TRIFFID_GOO_BLOCK_ITEM = ITEMS.register("triffid_goo_block", () -> new com.craisinlord.antarchy.content.item.TriffidGooBlockItem(TRIFFID_GOO_BLOCK.get(), new Item.Properties())); public static final DeferredItem PALE_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(PALE_NYXITE); @@ -1090,8 +1151,6 @@ public final class AntarchyFabricContent { .nutrition(2) .saturationModifier(0.4F) .build()))); - public static final DeferredItem PRIMORDIAL_SCUTE = ITEMS.register("primordial_scute", - () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.UNCOMMON))); public static final DeferredItem TRIFFID_GOO = ITEMS.registerSimpleItem("triffid_goo", new Item.Properties().rarity(Rarity.UNCOMMON)); public static final DeferredItem VORTEX_EYE = ITEMS.register("vortex_eye", @@ -1505,6 +1564,33 @@ public final class AntarchyFabricContent { new Item.Properties().stacksTo(16).rarity(Rarity.UNCOMMON), LUCID_PEARL_PROJECTILE )); + public static final DeferredItem WATER_CANNON = ITEMS.register("water_cannon", + () -> new WaterCannonItem(new Item.Properties().stacksTo(1).durability(192).rarity(Rarity.RARE))); + public static final DeferredItem PRIMORDIAL_HELMET = ITEMS.register("primordial_helmet", + () -> new PrimordialArmorItem(net.minecraft.core.Holder.direct(PRIMORDIAL_ARMOR_MATERIAL.get()), ArmorItem.Type.HELMET, + new Item.Properties().rarity(Rarity.RARE).fireResistant().durability(ArmorItem.Type.HELMET.getDurability(37)))); + public static final DeferredItem PRIMORDIAL_CHESTPLATE = ITEMS.register("primordial_chestplate", + () -> new PrimordialArmorItem(net.minecraft.core.Holder.direct(PRIMORDIAL_ARMOR_MATERIAL.get()), ArmorItem.Type.CHESTPLATE, + new Item.Properties().rarity(Rarity.RARE).fireResistant().durability(ArmorItem.Type.CHESTPLATE.getDurability(37)))); + public static final DeferredItem PRIMORDIAL_LEGGINGS = ITEMS.register("primordial_leggings", + () -> new PrimordialArmorItem(net.minecraft.core.Holder.direct(PRIMORDIAL_ARMOR_MATERIAL.get()), ArmorItem.Type.LEGGINGS, + new Item.Properties().rarity(Rarity.RARE).fireResistant().durability(ArmorItem.Type.LEGGINGS.getDurability(37)))); + public static final DeferredItem PRIMORDIAL_BOOTS = ITEMS.register("primordial_boots", + () -> new PrimordialArmorItem(net.minecraft.core.Holder.direct(PRIMORDIAL_ARMOR_MATERIAL.get()), ArmorItem.Type.BOOTS, + new Item.Properties().rarity(Rarity.RARE).fireResistant().durability(ArmorItem.Type.BOOTS.getDurability(37)))); + public static final DeferredHolder, EntityType> TORETERROR = ENTITY_TYPES.register("toreterror", + () -> EntityType.Builder.of(ToreterrorEntity::new, MobCategory.MONSTER) + .sized(2.5F, 3.0F) + .clientTrackingRange(14) + .build("toreterror")); + public static final DeferredHolder, EntityType> WATER_BOMB = ENTITY_TYPES.register("water_bomb", + () -> EntityType.Builder.of(WaterBombEntity::new, MobCategory.MISC) + .sized(0.4F, 0.4F) + .clientTrackingRange(8) + .updateInterval(1) + .build("water_bomb")); + public static final DeferredItem TORETERROR_SPAWN_EGG = ITEMS.register("toreterror_spawn_egg", + () -> new DeferredSpawnEggItem(TORETERROR, 0x90EE90, 0x5C4033, new Item.Properties().rarity(Rarity.EPIC))); public static final DeferredHolder ANTARCHY_TAB = CREATIVE_MODE_TABS.register("antarchy", () -> CreativeModeTab.builder(CreativeModeTab.Row.TOP, 0) .title(net.minecraft.network.chat.Component.translatable("itemGroup.antarchy.antarchy")) @@ -1584,6 +1670,7 @@ public final class AntarchyFabricContent { FabricDefaultAttributeRegistry.register(SCORPION.get(), ScorpionEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(BASILISK.get(), BasiliskEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(EMPEROR_SCORPION.get(), EmperorScorpionEntity.createAttributes().build()); + FabricDefaultAttributeRegistry.register(TORETERROR.get(), ToreterrorEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(RED_ANT.get(), buildAntAttributes( AntarchySettings.redAntHealth(), @@ -1627,6 +1714,7 @@ public final class AntarchyFabricContent { SpawnPlacements.register(SCORPION.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ScorpionEntity::canSpawn); SpawnPlacements.register(BASILISK.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BasiliskEntity::canSpawn); SpawnPlacements.register(EMPEROR_SCORPION.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EmperorScorpionEntity::canSpawn); + SpawnPlacements.register(TORETERROR.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ToreterrorEntity::canSpawn); } private static void populateCreativeTab(CreativeModeTab.Output output) { @@ -1712,7 +1800,9 @@ public final class AntarchyFabricContent { "honeyed_apple_cow_spawn_egg", "dr_trayaurus_spawn_egg", "wasp_spawn_egg", "bomber_spawn_egg", "cloud_shark_spawn_egg", "kraken_spawn_egg", "missile_squid_spawn_egg", "nightmare_spawn_egg", "bed_bug_spawn_egg", "lucid_spawn_egg", "scorpion_spawn_egg", - "basilisk_spawn_egg", "emperor_scorpion_spawn_egg" -> 90; + "basilisk_spawn_egg", "emperor_scorpion_spawn_egg", "toreterror_spawn_egg" -> 90; + case "water_cannon" -> 52; + case "primordial_helmet", "primordial_chestplate", "primordial_leggings", "primordial_boots" -> 53; default -> 50; }; } @@ -1887,6 +1977,16 @@ public final class AntarchyFabricContent { return defense; } + private static java.util.EnumMap createPrimordialArmorDefense() { + java.util.EnumMap defense = new java.util.EnumMap<>(ArmorItem.Type.class); + defense.put(ArmorItem.Type.BOOTS, 3); + defense.put(ArmorItem.Type.LEGGINGS, 6); + defense.put(ArmorItem.Type.CHESTPLATE, 8); + defense.put(ArmorItem.Type.HELMET, 3); + defense.put(ArmorItem.Type.BODY, 8); + return defense; + } + private static java.util.EnumMap createFallenKingCrownDefense() { java.util.EnumMap defense = new java.util.EnumMap<>(ArmorItem.Type.class); defense.put(ArmorItem.Type.BOOTS, 0); @@ -2101,12 +2201,29 @@ public final class AntarchyFabricContent { BRUTALFLY, BRUTALFLY_ORB, HUSH_PROJECTILE, + TORETERROR, + WATER_BOMB, () -> DUPLICATOR_LOG.get(), () -> DUPLICATOR_SAPLING.get(), () -> DUCT_TAPE.get(), () -> INFESTED_ROOTED_DIRT.get(), () -> INFESTED_COARSE_DIRT.get(), () -> NYXITE.get(), + () -> SHELLSTONE.get(), + () -> POLISHED_SHELLSTONE.get(), + () -> SHELLSTONE_BRICKS.get(), + () -> CHISELED_SHELLSTONE.get(), + () -> MOSSY_SHELLSTONE_BRICKS.get(), + () -> CRACKED_SHELLSTONE_BRICKS.get(), + () -> SHELLSTONE_STAIRS.get(), + () -> SHELLSTONE_SLAB.get(), + () -> SHELLSTONE_WALL.get(), + () -> POLISHED_SHELLSTONE_STAIRS.get(), + () -> POLISHED_SHELLSTONE_SLAB.get(), + () -> POLISHED_SHELLSTONE_WALL.get(), + () -> SHELLSTONE_BRICK_STAIRS.get(), + () -> SHELLSTONE_BRICK_SLAB.get(), + () -> SHELLSTONE_BRICK_WALL.get(), () -> CLOUD_BLOCK.get(), () -> TRIFFID_GOO_BLOCK.get(), () -> PALE_NYXITE.get(), diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java index 24a38dc8..fbf5069d 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java @@ -102,6 +102,8 @@ public final class AntarchyFabricClientBootstrap { EntityRendererRegistry.register(AntarchyFabricContent.UPWARD_FALLING_BLOCK.get(), UpwardFallingBlockRenderer::new); EntityRendererRegistry.register(AntarchyFabricContent.SCORPION.get(), ScorpionRenderer::new); EntityRendererRegistry.register(AntarchyFabricContent.EMPEROR_SCORPION.get(), EmperorScorpionRenderer::new); + EntityRendererRegistry.register(AntarchyFabricContent.TORETERROR.get(), ToreterrorRenderer::new); + EntityRendererRegistry.register(AntarchyFabricContent.WATER_BOMB.get(), WaterBombRenderer::new); EntityModelLayerRegistry.registerModelLayer(OuranwoodBoatRenderer.boatLayer(), BoatModel::createBodyModel); EntityModelLayerRegistry.registerModelLayer(OuranwoodBoatRenderer.chestBoatLayer(), ChestBoatModel::createBodyModel); diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/mixin/client/CrossbowArmPoseMixin.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/mixin/client/CrossbowArmPoseMixin.java index 1426d5ef..2c3664a7 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/mixin/client/CrossbowArmPoseMixin.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/mixin/client/CrossbowArmPoseMixin.java @@ -3,6 +3,7 @@ package com.craisinlord.antarchy.fabric.mixin.client; import com.craisinlord.antarchy.content.item.GravityGunItem; import com.craisinlord.antarchy.content.item.SizeRayItem; import com.craisinlord.antarchy.content.item.SquidzookaItem; +import com.craisinlord.antarchy.content.item.WaterCannonItem; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.player.AbstractClientPlayer; import net.minecraft.client.renderer.entity.player.PlayerRenderer; @@ -24,7 +25,7 @@ public class CrossbowArmPoseMixin { ItemStack stack = player.getItemInHand(hand); Item item = stack.getItem(); - if (item instanceof GravityGunItem || item instanceof SquidzookaItem) { + if (item instanceof GravityGunItem || item instanceof SquidzookaItem || item instanceof WaterCannonItem) { cir.setReturnValue(HumanoidModel.ArmPose.CROSSBOW_HOLD); } else if (item instanceof SizeRayItem) { if (player.isUsingItem() && player.getUsedItemHand() == hand) { diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java index 183505ef..3ed697be 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java @@ -143,6 +143,18 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setDreadHallucinationMobsEnabled(AntarchyMobsConfig.dreadHallucinationMobsEnabled()); AntarchySettings.setDreadHallucinationMobMinInterval(AntarchyMobsConfig.dreadHallucinationMobMinInterval()); AntarchySettings.setDreadHallucinationMobMaxInterval(AntarchyMobsConfig.dreadHallucinationMobMaxInterval()); + + AntarchySettings.setToreterrorHealth(AntarchyMobsConfig.toreterrorHealth()); + AntarchySettings.setToreterrorJumpAttackDamage(AntarchyMobsConfig.toreterrorJumpAttackDamage()); + AntarchySettings.setToreterrorJumpAttackKnockback(AntarchyMobsConfig.toreterrorJumpAttackKnockback()); + AntarchySettings.setToreterrorSpinDamage(AntarchyMobsConfig.toreterrorSpinDamage()); + AntarchySettings.setToreterrorSpinKnockback(AntarchyMobsConfig.toreterrorSpinKnockback()); + AntarchySettings.setToreterrorRangedWaterBombChance(AntarchyMobsConfig.toreterrorRangedWaterBombChance()); + AntarchySettings.setWaterBombDamage(AntarchyMobsConfig.waterBombDamage()); + AntarchySettings.setWaterBombLifetimeTicks(AntarchyMobsConfig.waterBombLifetimeTicks()); + AntarchySettings.setWaterBombGravity(AntarchyMobsConfig.waterBombGravity()); + AntarchySettings.setWaterBombKnockback(AntarchyMobsConfig.waterBombKnockback()); + AntarchySettings.setWaterCannonCooldownSeconds(AntarchyMobsConfig.waterCannonCooldownSeconds()); } private static void bakeToolsConfig() { diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java index 97715122..d5fafb82 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java @@ -146,6 +146,21 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.IntValue BASILISK_PREY_PETRIFY_TICKS; + // Toreterror + + private static final ModConfigSpec.DoubleValue TORETERROR_HEALTH; + private static final ModConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_DAMAGE; + private static final ModConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_KNOCKBACK; + private static final ModConfigSpec.DoubleValue TORETERROR_SPIN_DAMAGE; + private static final ModConfigSpec.DoubleValue TORETERROR_SPIN_KNOCKBACK; + private static final ModConfigSpec.DoubleValue TORETERROR_RANGED_WATER_BOMB_CHANCE; + private static final ModConfigSpec.DoubleValue WATER_BOMB_DAMAGE; + private static final ModConfigSpec.IntValue WATER_BOMB_LIFETIME_TICKS; + private static final ModConfigSpec.DoubleValue WATER_BOMB_GRAVITY; + private static final ModConfigSpec.DoubleValue WATER_BOMB_KNOCKBACK; + private static final ModConfigSpec.DoubleValue WATER_CANNON_COOLDOWN_SECONDS; + + // Lucid private static final ModConfigSpec.DoubleValue LUCID_ATTACK_RANGE; @@ -417,6 +432,20 @@ public final class AntarchyMobsConfig { b.pop(); // dread + b.push("toreterror"); + TORETERROR_HEALTH = b.comment("Base max health.").defineInRange("health", 300.0D, 1.0D, 32768.0D); + TORETERROR_JUMP_ATTACK_DAMAGE = b.comment("Damage dealt by the jump shockwave.").defineInRange("jumpAttackDamage", 14.0D, 0.0D, 1024.0D); + TORETERROR_JUMP_ATTACK_KNOCKBACK = b.comment("Knockback strength of the jump shockwave.").defineInRange("jumpAttackKnockback", 2.5D, 0.0D, 10.0D); + TORETERROR_SPIN_DAMAGE = b.comment("Damage per spin-attack tick.").defineInRange("spinDamage", 8.0D, 0.0D, 1024.0D); + TORETERROR_SPIN_KNOCKBACK = b.comment("Knockback strength of the spin attack.").defineInRange("spinKnockback", 1.5D, 0.0D, 10.0D); + TORETERROR_RANGED_WATER_BOMB_CHANCE = b.comment("Chance (0.0-1.0) the ranged attack fires a Water Bomb instead of Bombers.").defineInRange("rangedWaterBombChance", 0.5D, 0.0D, 1.0D); + WATER_BOMB_DAMAGE = b.comment("Damage dealt by a Water Bomb hit.").defineInRange("waterBombDamage", 6.0D, 0.0D, 1024.0D); + WATER_BOMB_LIFETIME_TICKS = b.comment("Ticks before a Water Bomb despawns.").defineInRange("waterBombLifetimeTicks", 120, 1, 6000); + WATER_BOMB_GRAVITY = b.comment("Gravity applied to Water Bombs (higher = steeper arc).").defineInRange("waterBombGravity", 0.12D, 0.0D, 2.0D); + WATER_BOMB_KNOCKBACK = b.comment("Knockback strength when a Water Bomb hits an entity.").defineInRange("waterBombKnockback", 1.2D, 0.0D, 10.0D); + WATER_CANNON_COOLDOWN_SECONDS = b.comment("Cooldown in seconds between Water Cannon shots.").defineInRange("waterCannonCooldownSeconds", 1.5D, 0.0D, 300.0D); + b.pop(); + SPEC = b.build(); } @@ -529,6 +558,18 @@ public final class AntarchyMobsConfig { static double lucidAttackRange() { return LUCID_ATTACK_RANGE.get(); } static double lucidPearlInvertedDurationSeconds() { return LUCID_PEARL_INVERTED_DURATION_SECONDS.get(); } + static double toreterrorHealth() { return TORETERROR_HEALTH.get(); } + static double toreterrorJumpAttackDamage() { return TORETERROR_JUMP_ATTACK_DAMAGE.get(); } + static double toreterrorJumpAttackKnockback() { return TORETERROR_JUMP_ATTACK_KNOCKBACK.get(); } + static double toreterrorSpinDamage() { return TORETERROR_SPIN_DAMAGE.get(); } + static double toreterrorSpinKnockback() { return TORETERROR_SPIN_KNOCKBACK.get(); } + static double toreterrorRangedWaterBombChance() { return TORETERROR_RANGED_WATER_BOMB_CHANCE.get(); } + static double waterBombDamage() { return WATER_BOMB_DAMAGE.get(); } + static int waterBombLifetimeTicks() { return WATER_BOMB_LIFETIME_TICKS.get(); } + static double waterBombGravity() { return WATER_BOMB_GRAVITY.get(); } + static double waterBombKnockback() { return WATER_BOMB_KNOCKBACK.get(); } + static double waterCannonCooldownSeconds() { return WATER_CANNON_COOLDOWN_SECONDS.get(); } + static boolean dreadHallucinationSoundsEnabled() { return DREAD_HALLUCINATION_SOUNDS_ENABLED.get(); } static double dreadHallucinationSoundMinInterval() { return DREAD_HALLUCINATION_SOUND_MIN_INTERVAL.get(); } static double dreadHallucinationSoundMaxInterval() { return DREAD_HALLUCINATION_SOUND_MAX_INTERVAL.get(); } diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java index 91e35dab..8e04b344 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java @@ -181,12 +181,29 @@ public class AntarchyNeoforge { AntarchyNeoforgeEntites.BRUTALFLY, AntarchyNeoforgeEntites.BRUTALFLY_ORB, AntarchyNeoforgeEntites.HUSH_PROJECTILE, + AntarchyNeoforgeEntites.TORETERROR, + AntarchyNeoforgeEntites.WATER_BOMB, () -> AntarchyNeoforgeBlocks.DUPLICATOR_LOG.get(), () -> AntarchyNeoforgeBlocks.DUPLICATOR_SAPLING.get(), () -> AntarchyNeoforgeBlocks.DUCT_TAPE.get(), () -> AntarchyNeoforgeBlocks.INFESTED_ROOTED_DIRT.get(), () -> AntarchyNeoforgeBlocks.INFESTED_COARSE_DIRT.get(), () -> AntarchyNeoforgeBlocks.NYXITE.get(), + () -> AntarchyNeoforgeBlocks.SHELLSTONE.get(), + () -> AntarchyNeoforgeBlocks.POLISHED_SHELLSTONE.get(), + () -> AntarchyNeoforgeBlocks.SHELLSTONE_BRICKS.get(), + () -> AntarchyNeoforgeBlocks.CHISELED_SHELLSTONE.get(), + () -> AntarchyNeoforgeBlocks.MOSSY_SHELLSTONE_BRICKS.get(), + () -> AntarchyNeoforgeBlocks.CRACKED_SHELLSTONE_BRICKS.get(), + () -> AntarchyNeoforgeBlocks.SHELLSTONE_STAIRS.get(), + () -> AntarchyNeoforgeBlocks.SHELLSTONE_SLAB.get(), + () -> AntarchyNeoforgeBlocks.SHELLSTONE_WALL.get(), + () -> AntarchyNeoforgeBlocks.POLISHED_SHELLSTONE_STAIRS.get(), + () -> AntarchyNeoforgeBlocks.POLISHED_SHELLSTONE_SLAB.get(), + () -> AntarchyNeoforgeBlocks.POLISHED_SHELLSTONE_WALL.get(), + () -> AntarchyNeoforgeBlocks.SHELLSTONE_BRICK_STAIRS.get(), + () -> AntarchyNeoforgeBlocks.SHELLSTONE_BRICK_SLAB.get(), + () -> AntarchyNeoforgeBlocks.SHELLSTONE_BRICK_WALL.get(), () -> AntarchyNeoforgeBlocks.CLOUD_BLOCK.get(), () -> AntarchyNeoforgeBlocks.TRIFFID_GOO_BLOCK.get(), () -> AntarchyNeoforgeBlocks.PALE_NYXITE.get(), diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java index 0bb864b8..d17e35eb 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java @@ -114,6 +114,8 @@ public final class AntarchyNeoForgeClient { event.registerEntityRenderer(AntarchyNeoforgeEntites.UPWARD_FALLING_BLOCK.get(), com.craisinlord.antarchy.content.client.renderer.UpwardFallingBlockRenderer::new); event.registerEntityRenderer(AntarchyNeoforgeEntites.SCORPION.get(), context -> withParalyzedGeoLayer(new ScorpionRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.EMPEROR_SCORPION.get(), context -> withParalyzedGeoLayer(new EmperorScorpionRenderer(context))); + event.registerEntityRenderer(AntarchyNeoforgeEntites.TORETERROR.get(), ToreterrorRenderer::new); + event.registerEntityRenderer(AntarchyNeoforgeEntites.WATER_BOMB.get(), WaterBombRenderer::new); } @SubscribeEvent @@ -325,6 +327,7 @@ public final class AntarchyNeoForgeClient { registerGeoItemExtensionSizeRay(event, AntarchyNeoforgeItems.GROWTH_RAY.get()); registerGeoItemExtension(event, AntarchyNeoforgeItems.GRAVITY_GUN.get(), HumanoidModel.ArmPose.CROSSBOW_HOLD); registerGeoItemExtension(event, AntarchyNeoforgeItems.SQUIDZOOKA.get(), HumanoidModel.ArmPose.CROSSBOW_HOLD); + registerGeoItemExtension(event, AntarchyNeoforgeItems.WATER_CANNON.get(), HumanoidModel.ArmPose.CROSSBOW_HOLD); registerGeoItemExtension(event, AntarchyNeoforgeItems.BATTLE_AXE.get()); registerGeoItemExtension(event, AntarchyNeoforgeItems.BIG_BERTHA.get()); } diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java index 4199df5f..e3f2f2de 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java @@ -2,6 +2,7 @@ package com.craisinlord.antarchy.neoforge.registry; import com.craisinlord.antarchy.Antarchy; import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; import com.craisinlord.antarchy.content.block.*; import com.craisinlord.antarchy.content.block.entity.AntNestBlockEntity; import com.craisinlord.antarchy.content.block.entity.DreamCampfireBlockEntity; @@ -123,6 +124,36 @@ public final class AntarchyNeoforgeBlocks { () -> new SlabBlock(nyxiteProperties())); public static final DeferredBlock NYXITE_BRICK_WALL = BLOCKS.register("nyxite_brick_wall", () -> new WallBlock(nyxiteProperties())); + public static final DeferredBlock SHELLSTONE = BLOCKS.register("shellstone", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock POLISHED_SHELLSTONE = BLOCKS.register("polished_shellstone", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_BRICKS = BLOCKS.register("shellstone_bricks", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock CHISELED_SHELLSTONE = BLOCKS.register("chiseled_shellstone", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock MOSSY_SHELLSTONE_BRICKS = BLOCKS.register("mossy_shellstone_bricks", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock CRACKED_SHELLSTONE_BRICKS = BLOCKS.register("cracked_shellstone_bricks", + () -> new Block(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_STAIRS = BLOCKS.register("shellstone_stairs", + () -> new StairBlock(SHELLSTONE.get().defaultBlockState(), AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_SLAB = BLOCKS.register("shellstone_slab", + () -> new SlabBlock(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_WALL = BLOCKS.register("shellstone_wall", + () -> new WallBlock(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock POLISHED_SHELLSTONE_STAIRS = BLOCKS.register("polished_shellstone_stairs", + () -> new StairBlock(POLISHED_SHELLSTONE.get().defaultBlockState(), AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock POLISHED_SHELLSTONE_SLAB = BLOCKS.register("polished_shellstone_slab", + () -> new SlabBlock(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock POLISHED_SHELLSTONE_WALL = BLOCKS.register("polished_shellstone_wall", + () -> new WallBlock(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_BRICK_STAIRS = BLOCKS.register("shellstone_brick_stairs", + () -> new StairBlock(SHELLSTONE_BRICKS.get().defaultBlockState(), AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_BRICK_SLAB = BLOCKS.register("shellstone_brick_slab", + () -> new SlabBlock(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_BRICK_WALL = BLOCKS.register("shellstone_brick_wall", + () -> new WallBlock(AntarchyObjects.shellstoneProperties())); public static final DeferredBlock TRIFFID_GOO_BLOCK = BLOCKS.register("triffid_goo_block", () -> new com.craisinlord.antarchy.content.block.TriffidGooBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SLIME_BLOCK).noOcclusion().isViewBlocking((s, l, p) -> false).isSuffocating((s, l, p) -> false))); public static final DeferredBlock CLOUD_BLOCK = BLOCKS.register("cloud_block", diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java index 44558ddc..989331ea 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java @@ -76,6 +76,7 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.SCORPION_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.BASILISK_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.EMPEROR_SCORPION_SPAWN_EGG.get()); + event.accept(AntarchyNeoforgeItems.TORETERROR_SPAWN_EGG.get()); } if (event.getTabKey() == CreativeModeTabs.NATURAL_BLOCKS) { @@ -168,6 +169,21 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.OURANWOOD_BUTTON_ITEM.get()); event.accept(AntarchyNeoforgeItems.OURANWOOD_SIGN_ITEM.get()); event.accept(AntarchyNeoforgeItems.OURANWOOD_HANGING_SIGN_ITEM.get()); + event.accept(AntarchyNeoforgeItems.SHELLSTONE_ITEM.get()); + event.accept(AntarchyNeoforgeItems.SHELLSTONE_STAIRS_ITEM.get()); + event.accept(AntarchyNeoforgeItems.SHELLSTONE_SLAB_ITEM.get()); + event.accept(AntarchyNeoforgeItems.SHELLSTONE_WALL_ITEM.get()); + event.accept(AntarchyNeoforgeItems.POLISHED_SHELLSTONE_ITEM.get()); + event.accept(AntarchyNeoforgeItems.POLISHED_SHELLSTONE_STAIRS_ITEM.get()); + event.accept(AntarchyNeoforgeItems.POLISHED_SHELLSTONE_SLAB_ITEM.get()); + event.accept(AntarchyNeoforgeItems.POLISHED_SHELLSTONE_WALL_ITEM.get()); + event.accept(AntarchyNeoforgeItems.SHELLSTONE_BRICKS_ITEM.get()); + event.accept(AntarchyNeoforgeItems.SHELLSTONE_BRICK_STAIRS_ITEM.get()); + event.accept(AntarchyNeoforgeItems.SHELLSTONE_BRICK_SLAB_ITEM.get()); + event.accept(AntarchyNeoforgeItems.SHELLSTONE_BRICK_WALL_ITEM.get()); + event.accept(AntarchyNeoforgeItems.CHISELED_SHELLSTONE_ITEM.get()); + event.accept(AntarchyNeoforgeItems.MOSSY_SHELLSTONE_BRICKS_ITEM.get()); + event.accept(AntarchyNeoforgeItems.CRACKED_SHELLSTONE_BRICKS_ITEM.get()); event.accept(AntarchyNeoforgeItems.NYXITE_ITEM.get()); event.accept(AntarchyNeoforgeItems.NYXITE_STAIRS_ITEM.get()); event.accept(AntarchyNeoforgeItems.NYXITE_SLAB_ITEM.get()); @@ -246,7 +262,12 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.SHRINK_RAY.get()); event.accept(AntarchyNeoforgeItems.GROWTH_RAY.get()); event.accept(AntarchyNeoforgeItems.GRAVITY_GUN.get()); + event.accept(AntarchyNeoforgeItems.WATER_CANNON.get()); event.accept(AntarchyNeoforgeItems.LUCID_PEARL.get()); + event.accept(AntarchyNeoforgeItems.PRIMORDIAL_HELMET.get()); + event.accept(AntarchyNeoforgeItems.PRIMORDIAL_CHESTPLATE.get()); + event.accept(AntarchyNeoforgeItems.PRIMORDIAL_LEGGINGS.get()); + event.accept(AntarchyNeoforgeItems.PRIMORDIAL_BOOTS.get()); event.accept(AntarchyNeoforgeItems.NIGHTMARE_HELMET.get()); event.accept(AntarchyNeoforgeItems.NIGHTMARE_CHESTPLATE.get()); event.accept(AntarchyNeoforgeItems.NIGHTMARE_LEGGINGS.get()); @@ -356,12 +377,14 @@ public class AntarchyNeoforgeCreativeModeTabs { // 17 - Weapons case "battle_axe", "basilisk_dagger", "squidzooka", "shrink_ray", "growth_ray", - "gravity_gun", "nightmare_sword", "lucid_pearl", "scorpion_whip", "blood_crystal_katana", + "gravity_gun", "water_cannon", "nightmare_sword", "lucid_pearl", "scorpion_whip", "blood_crystal_katana", "big_bertha", "big_bertha_blade", "big_bertha_handle", "big_bertha_hilt", "ultimate_sword", "ultimate_mace" -> 17; // 18 - Armor sets - case "blood_crystal_helmet", "blood_crystal_chestplate", + case "primordial_helmet", "primordial_chestplate", + "primordial_leggings", "primordial_boots", + "blood_crystal_helmet", "blood_crystal_chestplate", "blood_crystal_leggings", "blood_crystal_boots", "nightmare_helmet", "nightmare_chestplate", "nightmare_leggings", "nightmare_boots", diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java index b2b0d9ef..29f9b395 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java @@ -40,6 +40,8 @@ import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity; import com.craisinlord.antarchy.content.entity.lucid.LucidEntity; import com.craisinlord.antarchy.content.entity.lucid.LucidEyeProjectileEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity; +import com.craisinlord.antarchy.content.entity.ToreterrorEntity; +import com.craisinlord.antarchy.content.entity.WaterBombEntity; import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; @@ -240,6 +242,17 @@ public final class AntarchyNeoforgeEntites { .clientTrackingRange(10) .updateInterval(1) .build("brutalfly_orb")); + public static final DeferredHolder, EntityType> TORETERROR = ENTITY_TYPES.register("toreterror", + () -> EntityType.Builder.of(ToreterrorEntity::new, MobCategory.MONSTER) + .sized(2.5F, 3.0F) + .clientTrackingRange(14) + .build("toreterror")); + public static final DeferredHolder, EntityType> WATER_BOMB = ENTITY_TYPES.register("water_bomb", + () -> EntityType.Builder.of(WaterBombEntity::new, MobCategory.MISC) + .sized(0.4F, 0.4F) + .clientTrackingRange(8) + .updateInterval(1) + .build("water_bomb")); public static final DeferredHolder, EntityType> UPWARD_FALLING_BLOCK = ENTITY_TYPES.register("upward_falling_block", () -> EntityType.Builder.of( UpwardFallingBlockEntity::new, MobCategory.MISC) diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java index 6f3cd66b..2bb79a56 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java @@ -9,6 +9,7 @@ import com.craisinlord.antarchy.content.entity.flying_squirrel.FlyingSquirrelEnt import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity; import com.craisinlord.antarchy.content.entity.lucid.LucidEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity; +import com.craisinlord.antarchy.content.entity.ToreterrorEntity; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.animal.Cow; @@ -51,6 +52,7 @@ public class AntarchyNeoforgeEntityAttributes { event.put(AntarchyNeoforgeEntites.SCORPION.get(), ScorpionEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.BASILISK.get(), BasiliskEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.EMPEROR_SCORPION.get(), EmperorScorpionEntity.createAttributes().build()); + event.put(AntarchyNeoforgeEntites.TORETERROR.get(), ToreterrorEntity.createAttributes().build()); AttributeSupplier redAntAttributes = buildAntAttributes(AntarchySettings.redAntHealth(), AntarchySettings.redAntMovementSpeed(), AntarchySettings.redAntAttackDamage()).build(); AttributeSupplier brownAntAttributes = buildAntAttributes(AntarchySettings.brownAntHealth(), AntarchySettings.brownAntMovementSpeed(), AntarchySettings.brownAntAttackDamage()).build(); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java index 6fe690b5..d7dad96e 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java @@ -13,6 +13,8 @@ import com.craisinlord.antarchy.content.item.BloodCrystalKatanaItem; import com.craisinlord.antarchy.content.item.BloodCrystalShardItem; import com.craisinlord.antarchy.content.item.ultimate.*; import com.craisinlord.antarchy.content.item.NightmareArmorItem; +import com.craisinlord.antarchy.content.item.PrimordialArmorItem; +import com.craisinlord.antarchy.content.item.WaterCannonItem; import com.craisinlord.antarchy.content.item.NightmareSwordItem; import com.craisinlord.antarchy.content.item.LucidEyeItem; import com.craisinlord.antarchy.content.item.LucidPearlItem; @@ -103,6 +105,18 @@ public final class AntarchyNeoforgeItems { 0.0F, 0.0F )); + public static final DeferredItem PRIMORDIAL_SCUTE = ITEMS.registerSimpleItem("primordial_scute", + new Item.Properties().rarity(Rarity.UNCOMMON)); + private static final DeferredHolder PRIMORDIAL_ARMOR_MATERIAL = ARMOR_MATERIALS.register("primordial", + () -> new ArmorMaterial( + createPrimordialArmorDefense(), + 15, + SoundEvents.ARMOR_EQUIP_NETHERITE, + () -> Ingredient.of(PRIMORDIAL_SCUTE.get()), + List.of(new ArmorMaterial.Layer(ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "primordial"))), + 3.0F, + 0.1F + )); private static final DeferredHolder FALLEN_KING_CROWN_ARMOR_MATERIAL = ARMOR_MATERIALS.register("fallen_king_crown", () -> new ArmorMaterial( createFallenKingCrownDefense(), @@ -215,6 +229,21 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem NYXITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_BRICK_STAIRS); public static final DeferredItem NYXITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_BRICK_SLAB); public static final DeferredItem NYXITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_BRICK_WALL); + public static final DeferredItem SHELLSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.SHELLSTONE); + public static final DeferredItem POLISHED_SHELLSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_SHELLSTONE); + public static final DeferredItem SHELLSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.SHELLSTONE_BRICKS); + public static final DeferredItem CHISELED_SHELLSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_SHELLSTONE); + public static final DeferredItem MOSSY_SHELLSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOSSY_SHELLSTONE_BRICKS); + public static final DeferredItem CRACKED_SHELLSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CRACKED_SHELLSTONE_BRICKS); + public static final DeferredItem SHELLSTONE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.SHELLSTONE_STAIRS); + public static final DeferredItem SHELLSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.SHELLSTONE_SLAB); + public static final DeferredItem SHELLSTONE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.SHELLSTONE_WALL); + public static final DeferredItem POLISHED_SHELLSTONE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_SHELLSTONE_STAIRS); + public static final DeferredItem POLISHED_SHELLSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_SHELLSTONE_SLAB); + public static final DeferredItem POLISHED_SHELLSTONE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_SHELLSTONE_WALL); + public static final DeferredItem SHELLSTONE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.SHELLSTONE_BRICK_STAIRS); + public static final DeferredItem SHELLSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.SHELLSTONE_BRICK_SLAB); + public static final DeferredItem SHELLSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.SHELLSTONE_BRICK_WALL); public static final DeferredItem TRIFFID_GOO_BLOCK_ITEM = ITEMS.register("triffid_goo_block", () -> new com.craisinlord.antarchy.content.item.TriffidGooBlockItem(AntarchyNeoforgeBlocks.TRIFFID_GOO_BLOCK.get(), new Item.Properties())); public static final DeferredItem PALE_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PALE_NYXITE); @@ -274,8 +303,6 @@ public final class AntarchyNeoforgeItems { .nutrition(2) .saturationModifier(0.4F) .build()))); - public static final DeferredItem PRIMORDIAL_SCUTE = ITEMS.register("primordial_scute", - () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.UNCOMMON))); public static final DeferredItem TRIFFID_GOO = ITEMS.registerSimpleItem("triffid_goo", new Item.Properties().rarity(Rarity.UNCOMMON)); public static final DeferredItem VORTEX_EYE = ITEMS.register("vortex_eye", @@ -490,6 +517,18 @@ public final class AntarchyNeoforgeItems { new Item.Properties().stacksTo(16).rarity(Rarity.UNCOMMON), AntarchyNeoforgeEntites.LUCID_PEARL_PROJECTILE )); + public static final DeferredItem WATER_CANNON = ITEMS.register("water_cannon", + () -> new WaterCannonItem(new Item.Properties().stacksTo(1).durability(192).rarity(Rarity.RARE))); + public static final DeferredItem PRIMORDIAL_HELMET = ITEMS.register("primordial_helmet", + () -> new PrimordialArmorItem(PRIMORDIAL_ARMOR_MATERIAL, ArmorItem.Type.HELMET, new Item.Properties().rarity(Rarity.RARE).fireResistant())); + public static final DeferredItem PRIMORDIAL_CHESTPLATE = ITEMS.register("primordial_chestplate", + () -> new PrimordialArmorItem(PRIMORDIAL_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, new Item.Properties().rarity(Rarity.RARE).fireResistant())); + public static final DeferredItem PRIMORDIAL_LEGGINGS = ITEMS.register("primordial_leggings", + () -> new PrimordialArmorItem(PRIMORDIAL_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Properties().rarity(Rarity.RARE).fireResistant())); + public static final DeferredItem PRIMORDIAL_BOOTS = ITEMS.register("primordial_boots", + () -> new PrimordialArmorItem(PRIMORDIAL_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().rarity(Rarity.RARE).fireResistant())); + public static final DeferredItem TORETERROR_SPAWN_EGG = ITEMS.register("toreterror_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.TORETERROR, 0x90EE90, 0x5C4033, new Item.Properties().rarity(Rarity.EPIC))); private AntarchyNeoforgeItems() {} @@ -571,6 +610,16 @@ public final class AntarchyNeoforgeItems { return defense; } + private static EnumMap createPrimordialArmorDefense() { + EnumMap defense = new EnumMap<>(ArmorItem.Type.class); + defense.put(ArmorItem.Type.BOOTS, 3); + defense.put(ArmorItem.Type.LEGGINGS, 6); + defense.put(ArmorItem.Type.CHESTPLATE, 8); + defense.put(ArmorItem.Type.HELMET, 3); + defense.put(ArmorItem.Type.BODY, 8); + return defense; + } + private static EnumMap createFallenKingCrownDefense() { EnumMap defense = new EnumMap<>(ArmorItem.Type.class); defense.put(ArmorItem.Type.BOOTS, 0);