From cacffab333d97318711475dd82a15b9663d5bcaa Mon Sep 17 00:00:00 2001 From: craisinlord Date: Wed, 24 Jun 2026 00:02:01 -0500 Subject: [PATCH] Fixed DreamCampfireBlock not working with silk touch. Added first draft of shellstone, water cannon, Toreterror, primordial armor --- .../antarchy/config/AntarchySettings.java | 2 +- .../content/SquidzookaDispenseBehavior.java | 41 ++ .../content/WaterCannonDispenseBehavior.java | 36 ++ .../content/client/model/ToreterrorModel.java | 24 + .../client/renderer/ToreterrorRenderer.java | 19 + .../client/renderer/WaterBombRenderer.java | 60 ++ .../content/entity/ToreterrorEntity.java | 514 ++++++++++++++++++ .../content/entity/WaterBombEntity.java | 110 ++++ .../content/item/PrimordialArmorItem.java | 12 + .../content/item/WaterCannonItem.java | 140 +++++ .../animations/water_cannon.animation.json | 10 + .../blockstates/chiseled_shellstone.json | 8 + .../cracked_shellstone_bricks.json | 7 + .../blockstates/mossy_shellstone_bricks.json | 7 + .../blockstates/polished_shellstone.json | 8 + .../blockstates/polished_shellstone_slab.json | 14 + .../polished_shellstone_stairs.json | 210 +++++++ .../blockstates/polished_shellstone_wall.json | 41 ++ .../antarchy/blockstates/shellstone.json | 8 + .../blockstates/shellstone_brick_slab.json | 14 + .../blockstates/shellstone_brick_stairs.json | 210 +++++++ .../blockstates/shellstone_brick_wall.json | 41 ++ .../blockstates/shellstone_bricks.json | 8 + .../antarchy/blockstates/shellstone_slab.json | 14 + .../blockstates/shellstone_stairs.json | 210 +++++++ .../antarchy/blockstates/shellstone_wall.json | 41 ++ .../assets/antarchy/geo/water_cannon.geo.json | 95 ++++ .../models/block/chiseled_shellstone.json | 7 + .../block/cracked_shellstone_bricks.json | 6 + .../models/block/mossy_shellstone_bricks.json | 6 + .../antarchy/models/block/pale_nyxite.json | 2 +- .../models/block/polished_shellstone.json | 7 + .../block/polished_shellstone_slab.json | 9 + .../block/polished_shellstone_slab_top.json | 9 + .../block/polished_shellstone_stairs.json | 9 + .../polished_shellstone_stairs_inner.json | 9 + .../polished_shellstone_stairs_outer.json | 9 + .../polished_shellstone_wall_inventory.json | 7 + .../block/polished_shellstone_wall_post.json | 7 + .../block/polished_shellstone_wall_side.json | 7 + .../polished_shellstone_wall_side_tall.json | 7 + .../antarchy/models/block/shellstone.json | 7 + .../models/block/shellstone_brick_slab.json | 9 + .../block/shellstone_brick_slab_top.json | 9 + .../models/block/shellstone_brick_stairs.json | 9 + .../block/shellstone_brick_stairs_inner.json | 9 + .../block/shellstone_brick_stairs_outer.json | 9 + .../shellstone_brick_wall_inventory.json | 7 + .../block/shellstone_brick_wall_post.json | 7 + .../block/shellstone_brick_wall_side.json | 7 + .../shellstone_brick_wall_side_tall.json | 7 + .../models/block/shellstone_bricks.json | 7 + .../models/block/shellstone_slab.json | 9 + .../models/block/shellstone_slab_top.json | 9 + .../models/block/shellstone_stairs.json | 9 + .../models/block/shellstone_stairs_inner.json | 9 + .../models/block/shellstone_stairs_outer.json | 9 + .../block/shellstone_wall_inventory.json | 7 + .../models/block/shellstone_wall_post.json | 7 + .../models/block/shellstone_wall_side.json | 7 + .../block/shellstone_wall_side_tall.json | 7 + .../models/item/chiseled_shellstone.json | 3 + .../item/cracked_shellstone_bricks.json | 3 + .../models/item/mossy_shellstone_bricks.json | 3 + .../models/item/polished_shellstone.json | 3 + .../models/item/polished_shellstone_slab.json | 3 + .../item/polished_shellstone_stairs.json | 3 + .../models/item/polished_shellstone_wall.json | 3 + .../models/item/primordial_boots.json | 6 + .../models/item/primordial_chestplate.json | 6 + .../models/item/primordial_helmet.json | 6 + .../models/item/primordial_leggings.json | 6 + .../antarchy/models/item/shellstone.json | 3 + .../models/item/shellstone_brick_slab.json | 3 + .../models/item/shellstone_brick_stairs.json | 3 + .../models/item/shellstone_brick_wall.json | 3 + .../models/item/shellstone_bricks.json | 3 + .../antarchy/models/item/shellstone_slab.json | 3 + .../models/item/shellstone_stairs.json | 3 + .../antarchy/models/item/shellstone_wall.json | 3 + .../models/item/toreterror_spawn_egg.json | 3 + .../{smooth_nyxite.png => pale_nyxite.png} | Bin .../block/shellstone/chiseled_shellstone.png | Bin 0 -> 268 bytes .../blocks/chiseled_shellstone.json | 20 + .../blocks/cracked_shellstone_bricks.json | 20 + .../blocks/mossy_shellstone_bricks.json | 20 + .../blocks/polished_shellstone.json | 20 + .../blocks/polished_shellstone_slab.json | 35 ++ .../blocks/polished_shellstone_stairs.json | 20 + .../blocks/polished_shellstone_wall.json | 20 + .../loot_table/blocks/shellstone.json | 20 + .../blocks/shellstone_brick_slab.json | 35 ++ .../blocks/shellstone_brick_stairs.json | 20 + .../blocks/shellstone_brick_wall.json | 20 + .../loot_table/blocks/shellstone_bricks.json | 20 + .../loot_table/blocks/shellstone_slab.json | 35 ++ .../loot_table/blocks/shellstone_stairs.json | 20 + .../loot_table/blocks/shellstone_wall.json | 20 + .../loot_table/entities/toreterror.json | 56 ++ .../antarchy/recipe/chiseled_shellstone.json | 16 + ...from_polished_shellstone_stonecutting.json | 9 + ...ricks_from_shellstone_bricks_blasting.json | 12 + ...ricks_from_shellstone_bricks_smelting.json | 12 + .../recipe/mossy_shellstone_bricks.json | 16 + .../antarchy/recipe/polished_shellstone.json | 17 + ...ellstone_from_shellstone_stonecutting.json | 9 + .../recipe/polished_shellstone_slab.json | 16 + ...from_polished_shellstone_stonecutting.json | 9 + .../recipe/polished_shellstone_stairs.json | 18 + ...from_polished_shellstone_stonecutting.json | 9 + .../recipe/polished_shellstone_wall.json | 17 + ...from_polished_shellstone_stonecutting.json | 9 + .../antarchy/recipe/primordial_boots.json | 17 + .../recipe/primordial_chestplate.json | 18 + .../antarchy/recipe/primordial_helmet.json | 17 + .../antarchy/recipe/primordial_leggings.json | 18 + .../data/antarchy/recipe/shellstone.json | 21 + .../recipe/shellstone_brick_slab.json | 16 + ...b_from_shellstone_bricks_stonecutting.json | 9 + .../recipe/shellstone_brick_stairs.json | 18 + ...s_from_shellstone_bricks_stonecutting.json | 9 + .../recipe/shellstone_brick_wall.json | 17 + ...l_from_shellstone_bricks_stonecutting.json | 9 + .../antarchy/recipe/shellstone_bricks.json | 17 + ...from_polished_shellstone_stonecutting.json | 9 + .../data/antarchy/recipe/shellstone_slab.json | 16 + ...one_slab_from_shellstone_stonecutting.json | 9 + .../antarchy/recipe/shellstone_stairs.json | 18 + ...e_stairs_from_shellstone_stonecutting.json | 9 + .../data/antarchy/recipe/shellstone_wall.json | 17 + ...one_wall_from_shellstone_stonecutting.json | 9 + .../resources/data/c/tags/item/boots.json | 3 +- .../data/c/tags/item/chestplates.json | 3 +- .../resources/data/c/tags/item/helmets.json | 3 +- .../resources/data/c/tags/item/leggings.json | 3 +- .../data/minecraft/tags/item/chest_armor.json | 3 +- .../tags/item/enchantable/durability.json | 3 +- .../data/minecraft/tags/item/foot_armor.json | 3 +- .../data/minecraft/tags/item/head_armor.json | 3 +- .../data/minecraft/tags/item/leg_armor.json | 3 +- .../fabric/AntarchyFabricContent.java | 8 +- .../antarchy/fabric/AntarchyFabricEvents.java | 6 + .../antarchy/models/item/water_cannon.json | 3 + .../antarchy/neoforge/AntarchyMobsConfig.java | 2 +- .../registry/AntarchyNeoForgeEvents.java | 2 + .../registry/AntarchyNeoforgeItems.java | 8 +- .../antarchy/models/item/water_cannon.json | 18 + 147 files changed, 3134 insertions(+), 20 deletions(-) create mode 100644 common/src/main/java/com/craisinlord/antarchy/content/SquidzookaDispenseBehavior.java create mode 100644 common/src/main/java/com/craisinlord/antarchy/content/WaterCannonDispenseBehavior.java create mode 100644 common/src/main/java/com/craisinlord/antarchy/content/client/model/ToreterrorModel.java create mode 100644 common/src/main/java/com/craisinlord/antarchy/content/client/renderer/ToreterrorRenderer.java create mode 100644 common/src/main/java/com/craisinlord/antarchy/content/client/renderer/WaterBombRenderer.java create mode 100644 common/src/main/java/com/craisinlord/antarchy/content/entity/ToreterrorEntity.java create mode 100644 common/src/main/java/com/craisinlord/antarchy/content/entity/WaterBombEntity.java create mode 100644 common/src/main/java/com/craisinlord/antarchy/content/item/PrimordialArmorItem.java create mode 100644 common/src/main/java/com/craisinlord/antarchy/content/item/WaterCannonItem.java create mode 100644 common/src/main/resources/assets/antarchy/animations/water_cannon.animation.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/chiseled_shellstone.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/cracked_shellstone_bricks.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/mossy_shellstone_bricks.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/polished_shellstone.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_slab.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_stairs.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_wall.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/shellstone.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_slab.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_stairs.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_wall.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/shellstone_bricks.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/shellstone_slab.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/shellstone_stairs.json create mode 100644 common/src/main/resources/assets/antarchy/blockstates/shellstone_wall.json create mode 100644 common/src/main/resources/assets/antarchy/geo/water_cannon.geo.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/chiseled_shellstone.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/cracked_shellstone_bricks.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/mossy_shellstone_bricks.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/polished_shellstone.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/polished_shellstone_slab.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/polished_shellstone_slab_top.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs_inner.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs_outer.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_inventory.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_post.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_side.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_side_tall.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_brick_slab.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_brick_slab_top.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs_inner.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs_outer.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_inventory.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_post.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_side.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_side_tall.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_bricks.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_slab.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_slab_top.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_stairs.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_stairs_inner.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_stairs_outer.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_wall_inventory.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_wall_post.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_wall_side.json create mode 100644 common/src/main/resources/assets/antarchy/models/block/shellstone_wall_side_tall.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/chiseled_shellstone.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/cracked_shellstone_bricks.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/mossy_shellstone_bricks.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/polished_shellstone.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/polished_shellstone_slab.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/polished_shellstone_stairs.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/polished_shellstone_wall.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/primordial_boots.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/primordial_chestplate.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/primordial_helmet.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/primordial_leggings.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/shellstone.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/shellstone_brick_slab.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/shellstone_brick_stairs.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/shellstone_brick_wall.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/shellstone_bricks.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/shellstone_slab.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/shellstone_stairs.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/shellstone_wall.json create mode 100644 common/src/main/resources/assets/antarchy/models/item/toreterror_spawn_egg.json rename common/src/main/resources/assets/antarchy/textures/block/{smooth_nyxite.png => pale_nyxite.png} (100%) create mode 100644 common/src/main/resources/assets/antarchy/textures/block/shellstone/chiseled_shellstone.png create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/chiseled_shellstone.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/cracked_shellstone_bricks.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_bricks.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_slab.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_stairs.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_wall.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/shellstone.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_slab.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_stairs.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_wall.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_bricks.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_slab.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_stairs.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_wall.json create mode 100644 common/src/main/resources/data/antarchy/loot_table/entities/toreterror.json create mode 100644 common/src/main/resources/data/antarchy/recipe/chiseled_shellstone.json create mode 100644 common/src/main/resources/data/antarchy/recipe/chiseled_shellstone_from_polished_shellstone_stonecutting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_blasting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_smelting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/mossy_shellstone_bricks.json create mode 100644 common/src/main/resources/data/antarchy/recipe/polished_shellstone.json create mode 100644 common/src/main/resources/data/antarchy/recipe/polished_shellstone_from_shellstone_stonecutting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/polished_shellstone_slab.json create mode 100644 common/src/main/resources/data/antarchy/recipe/polished_shellstone_slab_from_polished_shellstone_stonecutting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs.json create mode 100644 common/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs_from_polished_shellstone_stonecutting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/polished_shellstone_wall.json create mode 100644 common/src/main/resources/data/antarchy/recipe/polished_shellstone_wall_from_polished_shellstone_stonecutting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/primordial_boots.json create mode 100644 common/src/main/resources/data/antarchy/recipe/primordial_chestplate.json create mode 100644 common/src/main/resources/data/antarchy/recipe/primordial_helmet.json create mode 100644 common/src/main/resources/data/antarchy/recipe/primordial_leggings.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_brick_slab.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_brick_slab_from_shellstone_bricks_stonecutting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs_from_shellstone_bricks_stonecutting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_brick_wall.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_brick_wall_from_shellstone_bricks_stonecutting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_bricks.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_bricks_from_polished_shellstone_stonecutting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_slab.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_slab_from_shellstone_stonecutting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_stairs.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_stairs_from_shellstone_stonecutting.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_wall.json create mode 100644 common/src/main/resources/data/antarchy/recipe/shellstone_wall_from_shellstone_stonecutting.json create mode 100644 fabric/src/main/resources/assets/antarchy/models/item/water_cannon.json create mode 100644 neoforge/src/main/resources/assets/antarchy/models/item/water_cannon.json 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 a506b801..2efe7e24 100644 --- a/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java +++ b/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java @@ -147,7 +147,7 @@ public final class AntarchySettings { private static boolean basiliskPetrifyingGazeEnabled = true; private static int basiliskSpawnMaxLightLevel = 5; private static double basiliskHealth = 150.0D; - private static double basiliskAttackDamage = 8.0D; + private static double basiliskAttackDamage = 36.0D; private static double basiliskMovementSpeed = 0.30D; private static double basiliskArmor = 6.0D; private static double basiliskKnockbackResistance = 0.5D; diff --git a/common/src/main/java/com/craisinlord/antarchy/content/SquidzookaDispenseBehavior.java b/common/src/main/java/com/craisinlord/antarchy/content/SquidzookaDispenseBehavior.java new file mode 100644 index 00000000..271f5d49 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/SquidzookaDispenseBehavior.java @@ -0,0 +1,41 @@ +package com.craisinlord.antarchy.content; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.entity.MissileSquidEntity; +import net.minecraft.core.Direction; +import net.minecraft.core.Position; +import net.minecraft.core.dispenser.BlockSource; +import net.minecraft.core.dispenser.DefaultDispenseItemBehavior; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.level.block.DispenserBlock; + +public class SquidzookaDispenseBehavior extends DefaultDispenseItemBehavior { + @Override + protected ItemStack execute(BlockSource source, ItemStack stack) { + Direction direction = source.state().getValue(DispenserBlock.FACING); + Position position = DispenserBlock.getDispensePosition(source); + + MissileSquidEntity squid = AntarchyObjects.MISSILE_SQUID.get().create(source.level()); + if (squid == null) return super.execute(source, stack); + + squid.setPos(position.x(), position.y(), position.z()); + Vec3 vel = new Vec3(direction.getStepX(), direction.getStepY(), direction.getStepZ()) + .normalize() + .scale(AntarchySettings.squidzookaLaunchVelocity()); + squid.launchAsProjectile(null, vel); + source.level().addFreshEntity(squid); + + if (stack.isDamageableItem()) { + int nextDamage = stack.getDamageValue() + 1; + if (nextDamage >= stack.getMaxDamage()) { + stack.shrink(1); + } else { + stack.setDamageValue(nextDamage); + } + } else { + stack.shrink(1); + } + return stack; + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/WaterCannonDispenseBehavior.java b/common/src/main/java/com/craisinlord/antarchy/content/WaterCannonDispenseBehavior.java new file mode 100644 index 00000000..4f7acb30 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/WaterCannonDispenseBehavior.java @@ -0,0 +1,36 @@ +package com.craisinlord.antarchy.content; + +import com.craisinlord.antarchy.content.entity.WaterBombEntity; +import com.craisinlord.antarchy.content.AntarchyObjects; +import net.minecraft.core.Direction; +import net.minecraft.core.Position; +import net.minecraft.core.dispenser.BlockSource; +import net.minecraft.core.dispenser.DefaultDispenseItemBehavior; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.DispenserBlock; + +public class WaterCannonDispenseBehavior extends DefaultDispenseItemBehavior { + @Override + protected ItemStack execute(BlockSource source, ItemStack stack) { + Direction direction = source.state().getValue(DispenserBlock.FACING); + Position position = DispenserBlock.getDispensePosition(source); + + WaterBombEntity bomb = AntarchyObjects.WATER_BOMB.get().create(source.level()); + if (bomb == null) return super.execute(source, stack); + bomb.setPos(position.x(), position.y(), position.z()); + bomb.shoot(direction.getStepX(), direction.getStepY() + 0.1D, direction.getStepZ(), 1.5F, 0.0F); + source.level().addFreshEntity(bomb); + + if (stack.isDamageableItem()) { + int nextDamage = stack.getDamageValue() + 1; + if (nextDamage >= stack.getMaxDamage()) { + stack.shrink(1); + } else { + stack.setDamageValue(nextDamage); + } + } else { + stack.shrink(1); + } + return stack; + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/model/ToreterrorModel.java b/common/src/main/java/com/craisinlord/antarchy/content/client/model/ToreterrorModel.java new file mode 100644 index 00000000..fe19a154 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/model/ToreterrorModel.java @@ -0,0 +1,24 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.ToreterrorEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class ToreterrorModel extends GeoModel { + + @Override + public ResourceLocation getModelResource(ToreterrorEntity animatable) { + return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/toreterror.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(ToreterrorEntity animatable) { + return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/toreterror.png"); + } + + @Override + public ResourceLocation getAnimationResource(ToreterrorEntity animatable) { + return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "animations/toreterror.animation.json"); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/ToreterrorRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/ToreterrorRenderer.java new file mode 100644 index 00000000..a4d3546d --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/ToreterrorRenderer.java @@ -0,0 +1,19 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.ToreterrorModel; +import com.craisinlord.antarchy.content.entity.ToreterrorEntity; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import software.bernie.geckolib.renderer.GeoEntityRenderer; + +public class ToreterrorRenderer extends GeoEntityRenderer { + + public ToreterrorRenderer(EntityRendererProvider.Context context) { + super(context, new ToreterrorModel()); + this.shadowRadius = 2.0F; + } + + @Override + protected float getDeathMaxRotation(ToreterrorEntity animatable) { + return 0.0F; + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/WaterBombRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/WaterBombRenderer.java new file mode 100644 index 00000000..e19b441a --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/WaterBombRenderer.java @@ -0,0 +1,60 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.entity.WaterBombEntity; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.EntityRenderer; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import org.joml.Matrix4f; + +public class WaterBombRenderer extends EntityRenderer { + + private static final ResourceLocation WATER_TEXTURE = ResourceLocation.withDefaultNamespace("textures/block/water_still.png"); + + public WaterBombRenderer(EntityRendererProvider.Context context) { + super(context); + } + + @Override + protected int getBlockLightLevel(WaterBombEntity entity, BlockPos pos) { + return 12; + } + + @Override + public void render(WaterBombEntity entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource buffer, int packedLight) { + poseStack.pushPose(); + poseStack.mulPose(this.entityRenderDispatcher.cameraOrientation()); + poseStack.scale(0.5F, 0.5F, 0.5F); + + VertexConsumer vertexConsumer = buffer.getBuffer(RenderType.entityTranslucent(WATER_TEXTURE)); + PoseStack.Pose pose = poseStack.last(); + Matrix4f matrix4f = pose.pose(); + addVertex(vertexConsumer, pose, matrix4f, -0.5F, -0.5F, 0.0F, 1.0F, packedLight); + addVertex(vertexConsumer, pose, matrix4f, 0.5F, -0.5F, 1.0F, 1.0F, packedLight); + addVertex(vertexConsumer, pose, matrix4f, 0.5F, 0.5F, 1.0F, 0.0F, packedLight); + addVertex(vertexConsumer, pose, matrix4f, -0.5F, 0.5F, 0.0F, 0.0F, packedLight); + + poseStack.popPose(); + super.render(entity, entityYaw, partialTick, poseStack, buffer, packedLight); + } + + private static void addVertex(VertexConsumer vertexConsumer, PoseStack.Pose pose, Matrix4f matrix4f, + float x, float y, float u, float v, int packedLight) { + vertexConsumer.addVertex(matrix4f, x, y, 0.0F) + .setColor(0.05F, 0.15F, 0.6F, 0.9F) + .setUv(u, v) + .setOverlay(OverlayTexture.NO_OVERLAY) + .setLight(packedLight) + .setNormal(pose, 0.0F, 0.0F, 1.0F); + } + + @Override + public ResourceLocation getTextureLocation(WaterBombEntity entity) { + return WATER_TEXTURE; + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/ToreterrorEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/ToreterrorEntity.java new file mode 100644 index 00000000..8d1f2a8c --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/ToreterrorEntity.java @@ -0,0 +1,514 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.network.syncher.SynchedEntityData; +import net.minecraft.server.level.ServerBossEvent; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.BossEvent; +import net.minecraft.world.Difficulty; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.goal.Goal; +import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal; +import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal; +import net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal; +import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal; +import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal; +import net.minecraft.world.entity.monster.Monster; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.ServerLevelAccessor; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.animatable.GeoEntity; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; +import software.bernie.geckolib.animation.AnimationState; +import software.bernie.geckolib.animation.PlayState; +import software.bernie.geckolib.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +public class ToreterrorEntity extends Monster implements GeoEntity { + + private static final EntityDataAccessor ANIMATION_STATE = SynchedEntityData.defineId(ToreterrorEntity.class, EntityDataSerializers.INT); + + private static final int ANIM_IDLE = 0; + private static final int ANIM_WALK = 1; + private static final int ANIM_SHOOT = 2; + private static final int ANIM_JUMP_ATTACK = 3; + private static final int ANIM_SPIN = 4; + private static final int ANIM_DEATH = 5; + + private static final int DEATH_TICKS = 60; + private static final int SHOOT_TOTAL_TICKS = 80; + private static final int SHOOT_FIRE_START_TICK = 12; + private static final int SHOOT_FIRE_END_TICK = 68; + private static final int SHOOT_FIRE_INTERVAL = 8; + private static final int SHOOT_BOMBER_TICK = 12; + private static final int JUMP_TOTAL_TICKS = 40; + private static final int JUMP_LAUNCH_TICK = 10; + private static final int SPIN_TOTAL_TICKS = 40; + private static final int SPIN_START_TICK = 3; + private static final int SPIN_END_TICK = 22; + private static final int SPIN_HIT_INTERVAL = 5; + + private static final double RANGED_MIN_RANGE_SQR = 9.0D; + private static final double RANGED_MAX_RANGE_SQR = 625.0D; + private static final double MELEE_RANGE_SQR = 9.0D; + private static final double SPIN_RADIUS = 4.5D; + private static final double JUMP_SHOCKWAVE_RADIUS = 6.0D; + + private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("Idle"); + private static final RawAnimation WALK_ANIM = RawAnimation.begin().thenLoop("walk"); + private static final RawAnimation SHOOT_ANIM = RawAnimation.begin().thenPlay("shoot").thenLoop("Idle"); + private static final RawAnimation JUMP_ANIM = RawAnimation.begin().thenPlay("jump_attack").thenLoop("Idle"); + private static final RawAnimation SPIN_ANIM = RawAnimation.begin().thenPlay("spin_attack").thenLoop("Idle"); + private static final RawAnimation DEATH_ANIM = RawAnimation.begin().thenPlayAndHold("death"); + + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + private final ServerBossEvent bossEvent = new ServerBossEvent(Component.translatable("entity.antarchy.toreterror"), BossEvent.BossBarColor.GREEN, BossEvent.BossBarOverlay.PROGRESS); + + private int shootAnimTicks; + private int jumpAnimTicks; + private int spinAnimTicks; + private int shootCooldown; + private int jumpCooldown; + private int spinCooldown; + private boolean jumpLaunched; + private boolean shockwaveApplied; + private boolean shootUseWaterBombs; + private boolean shootBomberFired; + private int shootNextFireElapsed; + private final Map spinHitCooldowns = new HashMap<>(); + + public ToreterrorEntity(EntityType entityType, Level level) { + super(entityType, level); + this.xpReward = 50; + } + + public static AttributeSupplier.Builder createAttributes() { + return Mob.createMobAttributes() + .add(Attributes.MAX_HEALTH, AntarchySettings.toreterrorHealth()) + .add(Attributes.ATTACK_DAMAGE, 8.0D) + .add(Attributes.MOVEMENT_SPEED, 0.25D) + .add(Attributes.FOLLOW_RANGE, 48.0D) + .add(Attributes.KNOCKBACK_RESISTANCE, 0.85D) + .add(Attributes.ARMOR, 10.0D); + } + + public static boolean canSpawn(EntityType entityType, ServerLevelAccessor level, MobSpawnType spawnReason, BlockPos pos, net.minecraft.util.RandomSource random) { + boolean sturdy = level.getBlockState(pos.below()).isFaceSturdy(level, pos.below(), Direction.UP); + return level.getDifficulty() != Difficulty.PEACEFUL && sturdy; + } + + @Override + protected void defineSynchedData(SynchedEntityData.Builder builder) { + super.defineSynchedData(builder); + builder.define(ANIMATION_STATE, ANIM_IDLE); + } + + @Override + protected void registerGoals() { + this.goalSelector.addGoal(1, new ToreterrorRangedGoal()); + this.goalSelector.addGoal(2, new ToreterrorJumpGoal()); + this.goalSelector.addGoal(3, new ToreterrorSpinGoal()); + this.goalSelector.addGoal(5, new LookAtPlayerGoal(this, Player.class, 16.0F)); + this.goalSelector.addGoal(6, new RandomLookAroundGoal(this)); + this.goalSelector.addGoal(7, new WaterAvoidingRandomStrollGoal(this, 0.6D)); + this.targetSelector.addGoal(1, new HurtByTargetGoal(this).setAlertOthers()); + this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::canTargetEntity)); + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "main_controller", 0, this::mainAnimController)); + } + + private PlayState mainAnimController(AnimationState state) { + int animState = this.getAnimationState(); + return switch (animState) { + case ANIM_WALK -> state.setAndContinue(WALK_ANIM); + case ANIM_SHOOT -> state.setAndContinue(SHOOT_ANIM); + case ANIM_JUMP_ATTACK -> state.setAndContinue(JUMP_ANIM); + case ANIM_SPIN -> state.setAndContinue(SPIN_ANIM); + case ANIM_DEATH -> state.setAndContinue(DEATH_ANIM); + default -> state.setAndContinue(IDLE_ANIM); + }; + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + @Override + public void tick() { + super.tick(); + if (this.level().isClientSide) return; + + if (this.shootCooldown > 0) this.shootCooldown--; + if (this.jumpCooldown > 0) this.jumpCooldown--; + if (this.spinCooldown > 0) this.spinCooldown--; + + this.spinHitCooldowns.replaceAll((uuid, cd) -> cd - 1); + this.spinHitCooldowns.entrySet().removeIf(e -> e.getValue() <= 0); + + if (this.isDeadOrDying()) { + this.setAnimationState(ANIM_DEATH); + return; + } + + if (this.shootAnimTicks > 0) { + this.tickShootAnimation(); + } else if (this.jumpAnimTicks > 0) { + this.tickJumpAnimation(); + } else if (this.spinAnimTicks > 0) { + this.tickSpinAnimation(); + } else { + this.updateIdleAnimation(); + } + + this.bossEvent.setProgress(this.getHealth() / this.getMaxHealth()); + } + + @Override + public void startSeenByPlayer(ServerPlayer player) { + super.startSeenByPlayer(player); + this.bossEvent.addPlayer(player); + } + + @Override + public void stopSeenByPlayer(ServerPlayer player) { + super.stopSeenByPlayer(player); + this.bossEvent.removePlayer(player); + } + + @Override + public boolean causeFallDamage(float fallDistance, float multiplier, DamageSource source) { + return false; + } + + @Override + protected void checkFallDamage(double y, boolean onGround, net.minecraft.world.level.block.state.BlockState state, BlockPos pos) { + } + + @Override + public boolean removeWhenFarAway(double distanceToClosestPlayer) { + return false; + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + super.addAdditionalSaveData(tag); + tag.putInt("AnimationState", this.getAnimationState()); + tag.putInt("ShootCooldown", this.shootCooldown); + tag.putInt("JumpCooldown", this.jumpCooldown); + tag.putInt("SpinCooldown", this.spinCooldown); + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + super.readAdditionalSaveData(tag); + this.entityData.set(ANIMATION_STATE, tag.contains("AnimationState") ? tag.getInt("AnimationState") : ANIM_IDLE); + this.shootCooldown = tag.getInt("ShootCooldown"); + this.jumpCooldown = tag.getInt("JumpCooldown"); + this.spinCooldown = tag.getInt("SpinCooldown"); + } + + @Override + public void die(DamageSource damageSource) { + if (!this.level().isClientSide) { + this.setAnimationState(ANIM_DEATH); + this.shootAnimTicks = 0; + this.jumpAnimTicks = 0; + this.spinAnimTicks = 0; + this.setDeltaMovement(Vec3.ZERO); + this.getNavigation().stop(); + } + super.die(damageSource); + } + + @Override + protected void tickDeath() { + this.deathTime++; + if (this.deathTime == 1) { + this.setAnimationState(ANIM_DEATH); + } + if (this.deathTime >= DEATH_TICKS) { + this.remove(RemovalReason.KILLED); + this.dropExperience(this); + } + } + + public int getAnimationState() { + return this.entityData.get(ANIMATION_STATE); + } + + private void setAnimationState(int state) { + if (this.entityData.get(ANIMATION_STATE) != state) { + this.entityData.set(ANIMATION_STATE, state); + } + } + + private void updateIdleAnimation() { + Vec3 vel = this.getDeltaMovement(); + boolean moving = (vel.x * vel.x + vel.z * vel.z) > 0.0004D; + this.setAnimationState(moving ? ANIM_WALK : ANIM_IDLE); + } + + private boolean isInAttackAnimation() { + return this.shootAnimTicks > 0 || this.jumpAnimTicks > 0 || this.spinAnimTicks > 0; + } + + private void tickShootAnimation() { + this.setAnimationState(ANIM_SHOOT); + int elapsed = SHOOT_TOTAL_TICKS - this.shootAnimTicks; + if (this.shootUseWaterBombs) { + if (elapsed >= this.shootNextFireElapsed && this.shootNextFireElapsed <= SHOOT_FIRE_END_TICK) { + this.shootNextFireElapsed += SHOOT_FIRE_INTERVAL; + this.fireWaterBomb(); + } + } else { + if (!this.shootBomberFired && elapsed >= SHOOT_BOMBER_TICK) { + this.shootBomberFired = true; + this.fireBomberBurst(); + } + } + this.getNavigation().stop(); + this.setDeltaMovement(this.getDeltaMovement().scale(0.85D)); + if (this.getTarget() != null) { + this.getLookControl().setLookAt(this.getTarget(), 30.0F, 20.0F); + } + this.shootAnimTicks--; + if (this.shootAnimTicks <= 0) { + this.shootCooldown = 100 + this.random.nextInt(60); + } + } + + private void tickJumpAnimation() { + this.setAnimationState(ANIM_JUMP_ATTACK); + int elapsed = JUMP_TOTAL_TICKS - this.jumpAnimTicks; + if (!this.jumpLaunched && elapsed >= JUMP_LAUNCH_TICK) { + this.jumpLaunched = true; + LivingEntity target = this.getTarget(); + if (target != null) { + Vec3 toTarget = target.position().subtract(this.position()).normalize(); + this.setDeltaMovement(toTarget.x * 0.6D, 0.85D, toTarget.z * 0.6D); + this.hasImpulse = true; + } + } + if (this.jumpLaunched && this.onGround() && elapsed > JUMP_LAUNCH_TICK + 3 && !this.shockwaveApplied) { + this.shockwaveApplied = true; + this.applyJumpShockwave(); + } + this.jumpAnimTicks--; + if (this.jumpAnimTicks <= 0) { + this.jumpCooldown = 140 + this.random.nextInt(80); + } + } + + private void tickSpinAnimation() { + this.setAnimationState(ANIM_SPIN); + int elapsed = SPIN_TOTAL_TICKS - this.spinAnimTicks; + this.getNavigation().stop(); + this.setDeltaMovement(this.getDeltaMovement().multiply(0.7D, 1.0D, 0.7D)); + if (elapsed >= SPIN_START_TICK && elapsed <= SPIN_END_TICK && elapsed % SPIN_HIT_INTERVAL == 0) { + this.applySpinDamage(); + } + this.spinAnimTicks--; + if (this.spinAnimTicks <= 0) { + this.spinCooldown = 160 + this.random.nextInt(80); + this.spinHitCooldowns.clear(); + } + } + + private void fireWaterBomb() { + if (!(this.level() instanceof ServerLevel serverLevel)) return; + LivingEntity target = this.getTarget(); + if (target == null) return; + WaterBombEntity bomb = new WaterBombEntity(this.level(), this); + bomb.moveTo(this.getX(), this.getEyeY(), this.getZ(), this.getYRot(), 0); + bomb.shootFromRotation(this, this.getXRot(), this.getYRot(), 0.0F, 1.4F, 1.5F); + serverLevel.addFreshEntity(bomb); + } + + private void fireBomberBurst() { + if (!(this.level() instanceof ServerLevel serverLevel)) return; + LivingEntity target = this.getTarget(); + if (target == null) return; + int count = 3; + for (int i = 0; i < count; i++) { + BomberEntity bomber = AntarchyObjects.BOMBER.get().create(this.level()); + if (bomber == null) continue; + double spreadAngle = (i - count / 2.0D) * 20.0D; + double yaw = Math.toRadians(this.getYRot() + spreadAngle); + double vx = -Math.sin(yaw) * 1.2D; + double vy = 0.4D; + double vz = Math.cos(yaw) * 1.2D; + bomber.moveTo(this.getX() + vx * 0.5D, this.getEyeY(), this.getZ() + vz * 0.5D, this.getYRot(), 0); + bomber.setDeltaMovement(vx, vy, vz); + bomber.setTarget(target); + serverLevel.addFreshEntity(bomber); + } + } + + private void applyJumpShockwave() { + if (!(this.level() instanceof ServerLevel serverLevel)) return; + AABB shockArea = this.getBoundingBox().inflate(JUMP_SHOCKWAVE_RADIUS, 2.0D, JUMP_SHOCKWAVE_RADIUS); + List victims = this.level().getEntitiesOfClass(LivingEntity.class, shockArea, this::canTargetEntity); + float damage = (float) AntarchySettings.toreterrorJumpAttackDamage(); + for (LivingEntity victim : victims) { + victim.hurt(this.damageSources().mobAttack(this), damage); + Vec3 knockDir = victim.position().subtract(this.position()).normalize().add(0, 0.4D, 0); + double knockback = AntarchySettings.toreterrorJumpAttackKnockback(); + victim.push(knockDir.x * knockback, 0.5D, knockDir.z * knockback); + victim.hurtMarked = true; + } + this.playSound(SoundEvents.GENERIC_EXPLODE.value(), 1.5F, 0.75F); + serverLevel.sendParticles(net.minecraft.core.particles.ParticleTypes.EXPLOSION, this.getX(), this.getY() + 0.5D, this.getZ(), 3, 1.0D, 0.3D, 1.0D, 0.0D); + serverLevel.sendParticles(net.minecraft.core.particles.ParticleTypes.SPLASH, this.getX(), this.getY() + 0.5D, this.getZ(), 40, 2.0D, 0.5D, 2.0D, 0.2D); + } + + private void applySpinDamage() { + if (!(this.level() instanceof ServerLevel)) return; + AABB spinArea = this.getBoundingBox().inflate(SPIN_RADIUS, 2.0D, SPIN_RADIUS); + List victims = this.level().getEntitiesOfClass(LivingEntity.class, spinArea, this::canTargetEntity); + float damage = (float) AntarchySettings.toreterrorSpinDamage(); + double knockback = AntarchySettings.toreterrorSpinKnockback(); + for (LivingEntity victim : victims) { + UUID id = victim.getUUID(); + if (this.spinHitCooldowns.getOrDefault(id, 0) > 0) continue; + if (victim.hurt(this.damageSources().mobAttack(this), damage)) { + this.spinHitCooldowns.put(id, 20); + Vec3 knockDir = victim.position().subtract(this.position()).normalize(); + victim.push(knockDir.x * knockback, 0.35D, knockDir.z * knockback); + victim.hurtMarked = true; + } + } + } + + private boolean canTargetEntity(@Nullable LivingEntity entity) { + if (entity == null || !entity.isAlive() || entity == this || entity.getType() == this.getType()) return false; + if (entity instanceof Player player) { + return !player.isCreative() && !player.isSpectator() && this.level().getDifficulty() != Difficulty.PEACEFUL; + } + return entity instanceof Mob && entity.isAttackable(); + } + + private final class ToreterrorRangedGoal extends Goal { + ToreterrorRangedGoal() { + this.setFlags(EnumSet.of(Flag.MOVE, Flag.LOOK)); + } + + @Override + public boolean canUse() { + LivingEntity target = ToreterrorEntity.this.getTarget(); + if (target == null || ToreterrorEntity.this.isInAttackAnimation()) return false; + if (ToreterrorEntity.this.shootCooldown > 0) return false; + double distSqr = ToreterrorEntity.this.distanceToSqr(target); + return distSqr >= RANGED_MIN_RANGE_SQR && distSqr <= RANGED_MAX_RANGE_SQR + && ToreterrorEntity.this.hasLineOfSight(target); + } + + @Override + public void start() { + ToreterrorEntity.this.shootAnimTicks = SHOOT_TOTAL_TICKS; + ToreterrorEntity.this.shootUseWaterBombs = ToreterrorEntity.this.random.nextFloat() < (float) AntarchySettings.toreterrorRangedWaterBombChance(); + ToreterrorEntity.this.shootNextFireElapsed = SHOOT_FIRE_START_TICK; + ToreterrorEntity.this.shootBomberFired = false; + } + + @Override + public boolean canContinueToUse() { + return ToreterrorEntity.this.shootAnimTicks > 0; + } + + @Override + public void stop() { + ToreterrorEntity.this.shootAnimTicks = 0; + } + } + + private final class ToreterrorJumpGoal extends Goal { + ToreterrorJumpGoal() { + this.setFlags(EnumSet.of(Flag.MOVE, Flag.JUMP)); + } + + @Override + public boolean canUse() { + LivingEntity target = ToreterrorEntity.this.getTarget(); + if (target == null || ToreterrorEntity.this.isInAttackAnimation()) return false; + if (ToreterrorEntity.this.jumpCooldown > 0) return false; + double distSqr = ToreterrorEntity.this.distanceToSqr(target); + return distSqr <= RANGED_MAX_RANGE_SQR && ToreterrorEntity.this.onGround(); + } + + @Override + public void start() { + ToreterrorEntity.this.jumpAnimTicks = JUMP_TOTAL_TICKS; + ToreterrorEntity.this.jumpLaunched = false; + ToreterrorEntity.this.shockwaveApplied = false; + } + + @Override + public boolean canContinueToUse() { + return ToreterrorEntity.this.jumpAnimTicks > 0; + } + + @Override + public void stop() { + ToreterrorEntity.this.jumpAnimTicks = 0; + } + } + + private final class ToreterrorSpinGoal extends Goal { + ToreterrorSpinGoal() { + this.setFlags(EnumSet.of(Flag.MOVE)); + } + + @Override + public boolean canUse() { + LivingEntity target = ToreterrorEntity.this.getTarget(); + if (target == null || ToreterrorEntity.this.isInAttackAnimation()) return false; + if (ToreterrorEntity.this.spinCooldown > 0) return false; + return ToreterrorEntity.this.distanceToSqr(target) <= MELEE_RANGE_SQR && ToreterrorEntity.this.onGround(); + } + + @Override + public void start() { + ToreterrorEntity.this.spinAnimTicks = SPIN_TOTAL_TICKS; + } + + @Override + public boolean canContinueToUse() { + return ToreterrorEntity.this.spinAnimTicks > 0; + } + + @Override + public void stop() { + ToreterrorEntity.this.spinAnimTicks = 0; + } + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/WaterBombEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/WaterBombEntity.java new file mode 100644 index 00000000..bd03bf47 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/WaterBombEntity.java @@ -0,0 +1,110 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchyObjects; +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.projectile.ThrowableProjectile; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.LiquidBlock; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.Vec3; + +import net.minecraft.network.syncher.SynchedEntityData; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class WaterBombEntity extends ThrowableProjectile { + + private int lifetimeTicks; + private final Map hitCooldowns = new HashMap<>(); + + public WaterBombEntity(EntityType entityType, Level level) { + super(entityType, level); + this.lifetimeTicks = AntarchySettings.waterBombLifetimeTicks(); + } + + public WaterBombEntity(Level level, LivingEntity owner) { + super(AntarchyObjects.WATER_BOMB.get(), owner, level); + this.lifetimeTicks = AntarchySettings.waterBombLifetimeTicks(); + } + + @Override + protected void defineSynchedData(SynchedEntityData.Builder builder) { + } + + @Override + protected double getDefaultGravity() { + return AntarchySettings.waterBombGravity(); + } + + @Override + public void tick() { + super.tick(); + + this.hitCooldowns.replaceAll((uuid, cd) -> cd - 1); + this.hitCooldowns.entrySet().removeIf(e -> e.getValue() <= 0); + + if (this.level() instanceof ServerLevel serverLevel) { + serverLevel.sendParticles(ParticleTypes.DRIPPING_WATER, this.getX(), this.getY(), this.getZ(), 3, 0.15D, 0.15D, 0.15D, 0.0D); + serverLevel.sendParticles(ParticleTypes.SPLASH, this.getX(), this.getY(), this.getZ(), 2, 0.1D, 0.1D, 0.1D, 0.01D); + } + + this.lifetimeTicks--; + if (this.lifetimeTicks <= 0) { + this.discard(); + } + } + + @Override + protected void onHitEntity(EntityHitResult result) { + Entity entity = result.getEntity(); + if (entity == this.getOwner()) return; + if (!(entity instanceof LivingEntity living)) return; + + UUID id = entity.getUUID(); + if (this.hitCooldowns.getOrDefault(id, 0) > 0) return; + + float damage = (float) AntarchySettings.waterBombDamage(); + if (living.hurt(this.damageSources().thrown(this, this.getOwner()), damage)) { + this.hitCooldowns.put(id, 15); + Vec3 knockDir = living.position().subtract(this.position()).normalize(); + double knockback = AntarchySettings.waterBombKnockback(); + living.push(knockDir.x * knockback, 0.3D, knockDir.z * knockback); + living.hurtMarked = true; + } + } + + @Override + protected void onHitBlock(BlockHitResult result) { + BlockPos hitPos = result.getBlockPos().relative(result.getDirection()); + Level level = this.level(); + if (level.isEmptyBlock(hitPos) && level.getBlockState(hitPos.below()).isSolid()) { + level.setBlock(hitPos, Blocks.WATER.defaultBlockState().setValue(LiquidBlock.LEVEL, 2), 3); + level.scheduleTick(hitPos, Fluids.WATER, 2); + } + this.discard(); + } + + @Override + public void addAdditionalSaveData(CompoundTag tag) { + super.addAdditionalSaveData(tag); + tag.putInt("LifetimeTicks", this.lifetimeTicks); + } + + @Override + public void readAdditionalSaveData(CompoundTag tag) { + super.readAdditionalSaveData(tag); + this.lifetimeTicks = tag.contains("LifetimeTicks") ? tag.getInt("LifetimeTicks") : AntarchySettings.waterBombLifetimeTicks(); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/item/PrimordialArmorItem.java b/common/src/main/java/com/craisinlord/antarchy/content/item/PrimordialArmorItem.java new file mode 100644 index 00000000..cb47e3be --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/item/PrimordialArmorItem.java @@ -0,0 +1,12 @@ +package com.craisinlord.antarchy.content.item; + +import net.minecraft.core.Holder; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.ArmorMaterial; + +public class PrimordialArmorItem extends ArmorItem { + + public PrimordialArmorItem(Holder material, Type type, Properties properties) { + super(material, type, properties); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/item/WaterCannonItem.java b/common/src/main/java/com/craisinlord/antarchy/content/item/WaterCannonItem.java new file mode 100644 index 00000000..2490f715 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/item/WaterCannonItem.java @@ -0,0 +1,140 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.content.AntarchySoundEvents; +import com.craisinlord.antarchy.content.client.model.ResourceBackedGeoItemModel; +import com.craisinlord.antarchy.content.entity.WaterBombEntity; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundSource; +import net.minecraft.stats.Stats; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.projectile.Projectile; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ProjectileWeaponItem; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; +import software.bernie.geckolib.animatable.GeoItem; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; +import software.bernie.geckolib.animation.PlayState; +import software.bernie.geckolib.animation.RawAnimation; +import com.craisinlord.antarchy.content.client.renderer.AnimatedHeldItemRenderer; +import software.bernie.geckolib.util.GeckoLibUtil; + +import java.util.function.Consumer; +import java.util.function.Predicate; + +public class WaterCannonItem extends ProjectileWeaponItem implements GeoItem { + + private static final String FIRE_CONTROLLER = "fire_controller"; + private static final String FIRE_ANIMATION = "water_cannon_fire"; + private static final Predicate NO_PROJECTILES = stack -> false; + private static final int FIRE_INTERVAL_TICKS = 8; + private static final ResourceLocation MODEL_LOCATION = ResourceLocation.fromNamespaceAndPath("antarchy", "geo/water_cannon.geo.json"); + private static final ResourceLocation TEXTURE_LOCATION = ResourceLocation.fromNamespaceAndPath("antarchy", "textures/models/item/water_cannon.png"); + private static final ResourceLocation ANIMATION_LOCATION = ResourceLocation.fromNamespaceAndPath("antarchy", "animations/water_cannon.animation.json"); + + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + public WaterCannonItem(Properties properties) { + super(properties); + GeoItem.registerSyncedAnimatable(this); + } + + @Override + public int getUseDuration(ItemStack stack, LivingEntity entity) { + return 72000; + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand usedHand) { + player.startUsingItem(usedHand); + return InteractionResultHolder.consume(player.getItemInHand(usedHand)); + } + + @Override + public void onUseTick(Level level, LivingEntity livingEntity, ItemStack stack, int remainingUseTicks) { + if (!(livingEntity instanceof Player player)) return; + int usedTicks = getUseDuration(stack, livingEntity) - remainingUseTicks; + if (usedTicks % FIRE_INTERVAL_TICKS != 0) return; + + level.playSound(null, player.getX(), player.getY(), player.getZ(), + AntarchySoundEvents.SQUIDZOOKA_FIRE.get(), SoundSource.PLAYERS, + 0.8F, 0.9F + level.getRandom().nextFloat() * 0.2F); + + if (!level.isClientSide()) { + WaterBombEntity bomb = new WaterBombEntity(level, player); + bomb.moveTo(player.getX(), player.getEyeY() - 0.1D, player.getZ(), player.getYRot(), player.getXRot()); + bomb.shootFromRotation(player, player.getXRot(), player.getYRot(), 0.0F, 1.5F, 1.0F); + level.addFreshEntity(bomb); + stack.hurtAndBreak(1, player, player.getUsedItemHand() == InteractionHand.MAIN_HAND ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND); + if (level instanceof ServerLevel serverLevel) { + triggerFireAnimation(serverLevel, player, stack); + } + } + + player.awardStat(Stats.ITEM_USED.get(this)); + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.NONE; + } + + @Override + public Predicate getSupportedHeldProjectiles() { + return NO_PROJECTILES; + } + + @Override + public Predicate getAllSupportedProjectiles() { + return NO_PROJECTILES; + } + + @Override + public int getDefaultProjectileRange() { + return 0; + } + + @Override + protected void shootProjectile(LivingEntity livingEntity, Projectile projectile, int i, float velocity, float inaccuracy, float angle, LivingEntity target) { + projectile.shootFromRotation(livingEntity, livingEntity.getXRot(), livingEntity.getYRot(), angle, velocity, inaccuracy); + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, FIRE_CONTROLLER, state -> PlayState.STOP) + .triggerableAnim(FIRE_ANIMATION, RawAnimation.begin().thenPlay(FIRE_ANIMATION))); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private AnimatedHeldItemRenderer renderer; + + @Override + public net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (this.renderer == null) { + this.renderer = new AnimatedHeldItemRenderer<>(new ResourceBackedGeoItemModel<>(MODEL_LOCATION, TEXTURE_LOCATION, ANIMATION_LOCATION)); + } + return this.renderer; + } + }); + } + + private void triggerFireAnimation(ServerLevel level, LivingEntity livingEntity, ItemStack stack) { + long animatableId = GeoItem.getOrAssignId(stack, level); + triggerAnim(livingEntity, animatableId, FIRE_CONTROLLER, FIRE_ANIMATION); + } +} diff --git a/common/src/main/resources/assets/antarchy/animations/water_cannon.animation.json b/common/src/main/resources/assets/antarchy/animations/water_cannon.animation.json new file mode 100644 index 00000000..b96da5a0 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/animations/water_cannon.animation.json @@ -0,0 +1,10 @@ +{ + "format_version": "1.8.0", + "animations": { + "water_cannon_fire": { + "animation_length": 0.5, + "loop": false, + "bones": {} + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/chiseled_shellstone.json b/common/src/main/resources/assets/antarchy/blockstates/chiseled_shellstone.json new file mode 100644 index 00000000..6f109f67 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/chiseled_shellstone.json @@ -0,0 +1,8 @@ +{ + "variants": { + "": { + "model": "antarchy:block/chiseled_shellstone" + } + } +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/cracked_shellstone_bricks.json b/common/src/main/resources/assets/antarchy/blockstates/cracked_shellstone_bricks.json new file mode 100644 index 00000000..2b95dbb7 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/cracked_shellstone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/cracked_shellstone_bricks" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/mossy_shellstone_bricks.json b/common/src/main/resources/assets/antarchy/blockstates/mossy_shellstone_bricks.json new file mode 100644 index 00000000..1273d0ac --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/mossy_shellstone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/mossy_shellstone_bricks" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone.json b/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone.json new file mode 100644 index 00000000..c48195b4 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone.json @@ -0,0 +1,8 @@ +{ + "variants": { + "": { + "model": "antarchy:block/polished_shellstone" + } + } +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_slab.json b/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_slab.json new file mode 100644 index 00000000..78b873c3 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_slab.json @@ -0,0 +1,14 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/polished_shellstone" + }, + "type=bottom": { + "model": "antarchy:block/polished_shellstone_slab" + }, + "type=top": { + "model": "antarchy:block/polished_shellstone_slab_top" + } + } +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_stairs.json b/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_stairs.json new file mode 100644 index 00000000..4613e293 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_shellstone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_shellstone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/polished_shellstone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/polished_shellstone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/polished_shellstone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/polished_shellstone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_shellstone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_shellstone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/polished_shellstone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/polished_shellstone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/polished_shellstone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/polished_shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/polished_shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/polished_shellstone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_wall.json b/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_wall.json new file mode 100644 index 00000000..e860f50b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/polished_shellstone_wall.json @@ -0,0 +1,41 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/polished_shellstone_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/polished_shellstone_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/polished_shellstone_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/polished_shellstone_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/polished_shellstone_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/polished_shellstone_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/polished_shellstone_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/polished_shellstone_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/polished_shellstone_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/shellstone.json b/common/src/main/resources/assets/antarchy/blockstates/shellstone.json new file mode 100644 index 00000000..e56a1537 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/shellstone.json @@ -0,0 +1,8 @@ +{ + "variants": { + "": { + "model": "antarchy:block/shellstone" + } + } +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_slab.json b/common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_slab.json new file mode 100644 index 00000000..423c84c9 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_slab.json @@ -0,0 +1,14 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/shellstone_bricks" + }, + "type=bottom": { + "model": "antarchy:block/shellstone_brick_slab" + }, + "type=top": { + "model": "antarchy:block/shellstone_brick_slab_top" + } + } +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_stairs.json b/common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_stairs.json new file mode 100644 index 00000000..3b6dfffe --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/shellstone_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/shellstone_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/shellstone_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/shellstone_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/shellstone_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/shellstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/shellstone_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/shellstone_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/shellstone_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/shellstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/shellstone_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/shellstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/shellstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/shellstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_wall.json b/common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_wall.json new file mode 100644 index 00000000..2c0cb4b6 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/shellstone_brick_wall.json @@ -0,0 +1,41 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/shellstone_brick_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/shellstone_brick_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/shellstone_brick_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/shellstone_brick_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/shellstone_brick_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/shellstone_brick_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/shellstone_brick_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/shellstone_brick_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/shellstone_brick_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/shellstone_bricks.json b/common/src/main/resources/assets/antarchy/blockstates/shellstone_bricks.json new file mode 100644 index 00000000..c50fb14c --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/shellstone_bricks.json @@ -0,0 +1,8 @@ +{ + "variants": { + "": { + "model": "antarchy:block/shellstone_bricks" + } + } +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/shellstone_slab.json b/common/src/main/resources/assets/antarchy/blockstates/shellstone_slab.json new file mode 100644 index 00000000..ed034a36 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/shellstone_slab.json @@ -0,0 +1,14 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/shellstone" + }, + "type=bottom": { + "model": "antarchy:block/shellstone_slab" + }, + "type=top": { + "model": "antarchy:block/shellstone_slab_top" + } + } +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/shellstone_stairs.json b/common/src/main/resources/assets/antarchy/blockstates/shellstone_stairs.json new file mode 100644 index 00000000..c05d2d34 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/shellstone_stairs.json @@ -0,0 +1,210 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/shellstone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/shellstone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/shellstone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/shellstone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/shellstone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/shellstone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/shellstone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/shellstone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/shellstone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/shellstone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/shellstone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/shellstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/shellstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/shellstone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} + diff --git a/common/src/main/resources/assets/antarchy/blockstates/shellstone_wall.json b/common/src/main/resources/assets/antarchy/blockstates/shellstone_wall.json new file mode 100644 index 00000000..6fd76a87 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/shellstone_wall.json @@ -0,0 +1,41 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/shellstone_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/shellstone_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/shellstone_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/shellstone_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/shellstone_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/shellstone_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/shellstone_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/shellstone_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/shellstone_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} + diff --git a/common/src/main/resources/assets/antarchy/geo/water_cannon.geo.json b/common/src/main/resources/assets/antarchy/geo/water_cannon.geo.json new file mode 100644 index 00000000..4240f801 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/geo/water_cannon.geo.json @@ -0,0 +1,95 @@ +{ + "format_version": "1.21.110", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.water_cannon - Converted", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 4, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "water_cannon", + "pivot": [1, 2.5, -24], + "cubes": [ + { + "origin": [-3.5, 10, -24], + "size": [7, 7, 14], + "uv": { + "north": {"uv": [37, 19], "uv_size": [7, 7]}, + "east": {"uv": [0, 14], "uv_size": [14, 7]}, + "south": {"uv": [37, 26], "uv_size": [7, 7]}, + "west": {"uv": [14, 14], "uv_size": [-14, 7]}, + "up": {"uv": [0, 21], "uv_size": [7, 14]}, + "down": {"uv": [7, 35], "uv_size": [7, -14]} + } + }, + { + "origin": [-3.5, 3, -24], + "size": [7, 7, 0], + "uv": { + "north": {"uv": [57, 12], "uv_size": [7, 7]}, + "east": {"uv": [57, 12], "uv_size": [7, 7]}, + "south": {"uv": [64, 12], "uv_size": [-7, 7]}, + "west": {"uv": [57, 12], "uv_size": [7, 7]}, + "up": {"uv": [64, 19], "uv_size": [-7, -7]}, + "down": {"uv": [64, 19], "uv_size": [-7, -7]} + } + }, + { + "origin": [-4.5, 7, -10], + "size": [9, 11, 5], + "uv": { + "north": {"uv": [49, 0], "uv_size": [9, 11]}, + "east": {"uv": [19, 36], "uv_size": [5, 11]}, + "south": {"uv": [49, 0], "uv_size": [9, 11]}, + "west": {"uv": [24, 36], "uv_size": [-5, 11]}, + "up": {"uv": [29, 37], "uv_size": [9, 5]}, + "down": {"uv": [29, 42], "uv_size": [9, -5]} + } + }, + { + "origin": [-2.5, 11, -5], + "size": [5, 5, 18], + "uv": { + "north": {"uv": [42, 38], "uv_size": [5, 5]}, + "east": {"uv": [28, 14], "uv_size": [18, 5]}, + "south": {"uv": [42, 43], "uv_size": [5, 5]}, + "west": {"uv": [46, 14], "uv_size": [-18, 5]}, + "up": {"uv": [32, 19], "uv_size": [5, 18]}, + "down": {"uv": [0, 53], "uv_size": [5, -18]} + } + }, + { + "origin": [0, 4, -24], + "size": [0, 7, 41], + "uv": { + "north": {"uv": [0, 0], "uv_size": [0, 7]}, + "east": {"uv": [0, 0], "uv_size": [41, 7]}, + "south": {"uv": [0, 0], "uv_size": [0, 7]}, + "west": {"uv": [0, 7], "uv_size": [41, 7]}, + "up": {"uv": [0, 0], "uv_size": [0, 41]}, + "down": {"uv": [0, 41], "uv_size": [0, -41]} + } + }, + { + "origin": [-3.5, 8, 13], + "size": [7, 9, 4], + "uv": { + "north": {"uv": [5, 35], "uv_size": [7, 9]}, + "east": {"uv": [38, 38], "uv_size": [4, 9]}, + "south": {"uv": [12, 36], "uv_size": [7, 9]}, + "west": {"uv": [41, 0], "uv_size": [4, 9]}, + "up": {"uv": [41, 9], "uv_size": [7, 4]}, + "down": {"uv": [29, 46], "uv_size": [7, -4]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common/src/main/resources/assets/antarchy/models/block/chiseled_shellstone.json b/common/src/main/resources/assets/antarchy/models/block/chiseled_shellstone.json new file mode 100644 index 00000000..9b87faca --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiseled_shellstone.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/shellstone/chiseled_shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/cracked_shellstone_bricks.json b/common/src/main/resources/assets/antarchy/models/block/cracked_shellstone_bricks.json new file mode 100644 index 00000000..d987318d --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/cracked_shellstone_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/shellstone/cracked_shellstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/mossy_shellstone_bricks.json b/common/src/main/resources/assets/antarchy/models/block/mossy_shellstone_bricks.json new file mode 100644 index 00000000..1a5fc80c --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/mossy_shellstone_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/shellstone/mossy_shellstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/pale_nyxite.json b/common/src/main/resources/assets/antarchy/models/block/pale_nyxite.json index f9e5ce6d..3ff553f5 100644 --- a/common/src/main/resources/assets/antarchy/models/block/pale_nyxite.json +++ b/common/src/main/resources/assets/antarchy/models/block/pale_nyxite.json @@ -1,6 +1,6 @@ { "parent": "minecraft:block/cube_all", "textures": { - "all": "antarchy:block/smooth_nyxite" + "all": "antarchy:block/pale_nyxite" } } diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_shellstone.json b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone.json new file mode 100644 index 00000000..21712f8f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/shellstone/polished_shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_slab.json b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_slab.json new file mode 100644 index 00000000..c974a013 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/shellstone/polished_shellstone", + "side": "antarchy:block/shellstone/polished_shellstone", + "top": "antarchy:block/shellstone/polished_shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_slab_top.json b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_slab_top.json new file mode 100644 index 00000000..5e388414 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/shellstone/polished_shellstone", + "side": "antarchy:block/shellstone/polished_shellstone", + "top": "antarchy:block/shellstone/polished_shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs.json b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs.json new file mode 100644 index 00000000..754f7f6c --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/shellstone/polished_shellstone", + "side": "antarchy:block/shellstone/polished_shellstone", + "top": "antarchy:block/shellstone/polished_shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs_inner.json b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs_inner.json new file mode 100644 index 00000000..f47c51a0 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/shellstone/polished_shellstone", + "side": "antarchy:block/shellstone/polished_shellstone", + "top": "antarchy:block/shellstone/polished_shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs_outer.json b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs_outer.json new file mode 100644 index 00000000..0e1735e4 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/shellstone/polished_shellstone", + "side": "antarchy:block/shellstone/polished_shellstone", + "top": "antarchy:block/shellstone/polished_shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_inventory.json b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_inventory.json new file mode 100644 index 00000000..10d53d53 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/shellstone/polished_shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_post.json b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_post.json new file mode 100644 index 00000000..e2273dd3 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/shellstone/polished_shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_side.json b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_side.json new file mode 100644 index 00000000..4ee1d428 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/shellstone/polished_shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_side_tall.json b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_side_tall.json new file mode 100644 index 00000000..c4f60b33 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_shellstone_wall_side_tall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/shellstone/polished_shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone.json b/common/src/main/resources/assets/antarchy/models/block/shellstone.json new file mode 100644 index 00000000..655cc77a --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/shellstone/shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_slab.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_slab.json new file mode 100644 index 00000000..45e1115b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/shellstone/shellstone_bricks", + "side": "antarchy:block/shellstone/shellstone_bricks", + "top": "antarchy:block/shellstone/shellstone_bricks" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_slab_top.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_slab_top.json new file mode 100644 index 00000000..79747e4e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/shellstone/shellstone_bricks", + "side": "antarchy:block/shellstone/shellstone_bricks", + "top": "antarchy:block/shellstone/shellstone_bricks" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs.json new file mode 100644 index 00000000..b8fb8223 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/shellstone/shellstone_bricks", + "side": "antarchy:block/shellstone/shellstone_bricks", + "top": "antarchy:block/shellstone/shellstone_bricks" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs_inner.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs_inner.json new file mode 100644 index 00000000..41d2aa82 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/shellstone/shellstone_bricks", + "side": "antarchy:block/shellstone/shellstone_bricks", + "top": "antarchy:block/shellstone/shellstone_bricks" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs_outer.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs_outer.json new file mode 100644 index 00000000..8deb9266 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/shellstone/shellstone_bricks", + "side": "antarchy:block/shellstone/shellstone_bricks", + "top": "antarchy:block/shellstone/shellstone_bricks" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_inventory.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_inventory.json new file mode 100644 index 00000000..2cf2aa35 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/shellstone/shellstone_bricks" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_post.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_post.json new file mode 100644 index 00000000..079118fc --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/shellstone/shellstone_bricks" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_side.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_side.json new file mode 100644 index 00000000..41ba16ef --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/shellstone/shellstone_bricks" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_side_tall.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_side_tall.json new file mode 100644 index 00000000..55362e08 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_brick_wall_side_tall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/shellstone/shellstone_bricks" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_bricks.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_bricks.json new file mode 100644 index 00000000..b9273f08 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_bricks.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/shellstone/shellstone_bricks" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_slab.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_slab.json new file mode 100644 index 00000000..f66b1574 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_slab.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/shellstone/shellstone", + "side": "antarchy:block/shellstone/shellstone", + "top": "antarchy:block/shellstone/shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_slab_top.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_slab_top.json new file mode 100644 index 00000000..2ef11a12 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_slab_top.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/shellstone/shellstone", + "side": "antarchy:block/shellstone/shellstone", + "top": "antarchy:block/shellstone/shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_stairs.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_stairs.json new file mode 100644 index 00000000..7b855e7e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_stairs.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/shellstone/shellstone", + "side": "antarchy:block/shellstone/shellstone", + "top": "antarchy:block/shellstone/shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_stairs_inner.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_stairs_inner.json new file mode 100644 index 00000000..51fd391f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_stairs_inner.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/shellstone/shellstone", + "side": "antarchy:block/shellstone/shellstone", + "top": "antarchy:block/shellstone/shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_stairs_outer.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_stairs_outer.json new file mode 100644 index 00000000..1263e29b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_stairs_outer.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/shellstone/shellstone", + "side": "antarchy:block/shellstone/shellstone", + "top": "antarchy:block/shellstone/shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_inventory.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_inventory.json new file mode 100644 index 00000000..e4e1b6c0 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_inventory.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/shellstone/shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_post.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_post.json new file mode 100644 index 00000000..25756c47 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_post.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/shellstone/shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_side.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_side.json new file mode 100644 index 00000000..8732d77b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_side.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/shellstone/shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_side_tall.json b/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_side_tall.json new file mode 100644 index 00000000..163d909f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/shellstone_wall_side_tall.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/shellstone/shellstone" + } +} + diff --git a/common/src/main/resources/assets/antarchy/models/item/chiseled_shellstone.json b/common/src/main/resources/assets/antarchy/models/item/chiseled_shellstone.json new file mode 100644 index 00000000..dc2b1ee7 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/chiseled_shellstone.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/chiseled_shellstone" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/cracked_shellstone_bricks.json b/common/src/main/resources/assets/antarchy/models/item/cracked_shellstone_bricks.json new file mode 100644 index 00000000..cf653d0b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/cracked_shellstone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/cracked_shellstone_bricks" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/mossy_shellstone_bricks.json b/common/src/main/resources/assets/antarchy/models/item/mossy_shellstone_bricks.json new file mode 100644 index 00000000..7202dc1f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/mossy_shellstone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/mossy_shellstone_bricks" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/polished_shellstone.json b/common/src/main/resources/assets/antarchy/models/item/polished_shellstone.json new file mode 100644 index 00000000..1a14b9b2 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/polished_shellstone.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_shellstone" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/polished_shellstone_slab.json b/common/src/main/resources/assets/antarchy/models/item/polished_shellstone_slab.json new file mode 100644 index 00000000..604a9081 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/polished_shellstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_shellstone_slab" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/polished_shellstone_stairs.json b/common/src/main/resources/assets/antarchy/models/item/polished_shellstone_stairs.json new file mode 100644 index 00000000..6b970b8c --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/polished_shellstone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_shellstone_stairs" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/polished_shellstone_wall.json b/common/src/main/resources/assets/antarchy/models/item/polished_shellstone_wall.json new file mode 100644 index 00000000..d05565f2 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/polished_shellstone_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_shellstone_wall_inventory" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/primordial_boots.json b/common/src/main/resources/assets/antarchy/models/item/primordial_boots.json new file mode 100644 index 00000000..becde834 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/primordial_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/primordial/primordial_boots" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/primordial_chestplate.json b/common/src/main/resources/assets/antarchy/models/item/primordial_chestplate.json new file mode 100644 index 00000000..88601be1 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/primordial_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/primordial/primordial_chestplate" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/primordial_helmet.json b/common/src/main/resources/assets/antarchy/models/item/primordial_helmet.json new file mode 100644 index 00000000..fd3ffc56 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/primordial_helmet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/primordial/primordial_helmet" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/primordial_leggings.json b/common/src/main/resources/assets/antarchy/models/item/primordial_leggings.json new file mode 100644 index 00000000..62fd2486 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/primordial_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/primordial/primordial_leggings" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/shellstone.json b/common/src/main/resources/assets/antarchy/models/item/shellstone.json new file mode 100644 index 00000000..3c47248c --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/shellstone.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/shellstone" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/shellstone_brick_slab.json b/common/src/main/resources/assets/antarchy/models/item/shellstone_brick_slab.json new file mode 100644 index 00000000..6838b0ca --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/shellstone_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/shellstone_brick_slab" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/shellstone_brick_stairs.json b/common/src/main/resources/assets/antarchy/models/item/shellstone_brick_stairs.json new file mode 100644 index 00000000..ed38caae --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/shellstone_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/shellstone_brick_stairs" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/shellstone_brick_wall.json b/common/src/main/resources/assets/antarchy/models/item/shellstone_brick_wall.json new file mode 100644 index 00000000..0ff10c95 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/shellstone_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/shellstone_brick_wall_inventory" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/shellstone_bricks.json b/common/src/main/resources/assets/antarchy/models/item/shellstone_bricks.json new file mode 100644 index 00000000..c7c4998c --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/shellstone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/shellstone_bricks" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/shellstone_slab.json b/common/src/main/resources/assets/antarchy/models/item/shellstone_slab.json new file mode 100644 index 00000000..70d26b0a --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/shellstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/shellstone_slab" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/shellstone_stairs.json b/common/src/main/resources/assets/antarchy/models/item/shellstone_stairs.json new file mode 100644 index 00000000..c2362b7b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/shellstone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/shellstone_stairs" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/shellstone_wall.json b/common/src/main/resources/assets/antarchy/models/item/shellstone_wall.json new file mode 100644 index 00000000..a7ecaa8b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/shellstone_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/shellstone_wall_inventory" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/toreterror_spawn_egg.json b/common/src/main/resources/assets/antarchy/models/item/toreterror_spawn_egg.json new file mode 100644 index 00000000..ddd15597 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/toreterror_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/common/src/main/resources/assets/antarchy/textures/block/smooth_nyxite.png b/common/src/main/resources/assets/antarchy/textures/block/pale_nyxite.png similarity index 100% rename from common/src/main/resources/assets/antarchy/textures/block/smooth_nyxite.png rename to common/src/main/resources/assets/antarchy/textures/block/pale_nyxite.png diff --git a/common/src/main/resources/assets/antarchy/textures/block/shellstone/chiseled_shellstone.png b/common/src/main/resources/assets/antarchy/textures/block/shellstone/chiseled_shellstone.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/data/antarchy/loot_table/blocks/chiseled_shellstone.json b/common/src/main/resources/data/antarchy/loot_table/blocks/chiseled_shellstone.json new file mode 100644 index 00000000..d3467ae6 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/chiseled_shellstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiseled_shellstone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/chiseled_shellstone" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/cracked_shellstone_bricks.json b/common/src/main/resources/data/antarchy/loot_table/blocks/cracked_shellstone_bricks.json new file mode 100644 index 00000000..caf67870 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/cracked_shellstone_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:cracked_shellstone_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/cracked_shellstone_bricks" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_bricks.json b/common/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_bricks.json new file mode 100644 index 00000000..c71114a5 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/mossy_shellstone_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:mossy_shellstone_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/mossy_shellstone_bricks" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone.json b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone.json new file mode 100644 index 00000000..f2f69474 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_shellstone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_shellstone" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_slab.json b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_slab.json new file mode 100644 index 00000000..9f14b34e --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:polished_shellstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:polished_shellstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/polished_shellstone_slab" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_stairs.json b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_stairs.json new file mode 100644 index 00000000..b1834d14 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_shellstone_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_shellstone_stairs" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_wall.json b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_wall.json new file mode 100644 index 00000000..dc9c6f88 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_shellstone_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_shellstone_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/polished_shellstone_wall" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone.json b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone.json new file mode 100644 index 00000000..d3323d86 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_slab.json b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_slab.json new file mode 100644 index 00000000..d18aacd5 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:shellstone_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:shellstone_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/shellstone_brick_slab" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_stairs.json b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_stairs.json new file mode 100644 index 00000000..b5599f00 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone_brick_stairs" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_wall.json b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_wall.json new file mode 100644 index 00000000..fe77132f --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone_brick_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone_brick_wall" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_bricks.json b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_bricks.json new file mode 100644 index 00000000..d726b845 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone_bricks" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_slab.json b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_slab.json new file mode 100644 index 00000000..9b8e83e9 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:shellstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:shellstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/shellstone_slab" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_stairs.json b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_stairs.json new file mode 100644 index 00000000..5afbfa5a --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone_stairs" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_wall.json b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_wall.json new file mode 100644 index 00000000..30fda0e1 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/shellstone_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:shellstone_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/shellstone_wall" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/entities/toreterror.json b/common/src/main/resources/data/antarchy/loot_table/entities/toreterror.json new file mode 100644 index 00000000..54918816 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/entities/toreterror.json @@ -0,0 +1,56 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 5.0, + "max": 10.0 + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "antarchy:primordial_scute" + } + ], + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:constant", + "value": 1 + } + } + ], + "name": "antarchy:water_cannon" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/common/src/main/resources/data/antarchy/recipe/chiseled_shellstone.json b/common/src/main/resources/data/antarchy/recipe/chiseled_shellstone.json new file mode 100644 index 00000000..b59d352d --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/chiseled_shellstone.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_shellstone_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:chiseled_shellstone" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/chiseled_shellstone_from_polished_shellstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/chiseled_shellstone_from_polished_shellstone_stonecutting.json new file mode 100644 index 00000000..24215edb --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/chiseled_shellstone_from_polished_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_shellstone" + }, + "result": { + "id": "antarchy:chiseled_shellstone" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_blasting.json b/common/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_blasting.json new file mode 100644 index 00000000..3892c53f --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_blasting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:blasting", + "category": "blocks", + "experience": 0.1, + "ingredient": { + "item": "antarchy:shellstone_bricks" + }, + "result": { + "id": "antarchy:cracked_shellstone_bricks" + }, + "cookingtime": 100 +} diff --git a/common/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_smelting.json b/common/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_smelting.json new file mode 100644 index 00000000..7c76f625 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/cracked_shellstone_bricks_from_shellstone_bricks_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "experience": 0.1, + "ingredient": { + "item": "antarchy:shellstone_bricks" + }, + "result": { + "id": "antarchy:cracked_shellstone_bricks" + }, + "cookingtime": 200 +} diff --git a/common/src/main/resources/data/antarchy/recipe/mossy_shellstone_bricks.json b/common/src/main/resources/data/antarchy/recipe/mossy_shellstone_bricks.json new file mode 100644 index 00000000..8f99e101 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/mossy_shellstone_bricks.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "antarchy:shellstone_bricks" + }, + { + "item": "minecraft:moss_block" + } + ], + "result": { + "count": 1, + "id": "antarchy:mossy_shellstone_bricks" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_shellstone.json b/common/src/main/resources/data/antarchy/recipe/polished_shellstone.json new file mode 100644 index 00000000..4acf3d56 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_shellstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:polished_shellstone" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_shellstone_from_shellstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_from_shellstone_stonecutting.json new file mode 100644 index 00000000..4ed6dfed --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_from_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone" + }, + "result": { + "id": "antarchy:polished_shellstone" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_shellstone_slab.json b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_slab.json new file mode 100644 index 00000000..6d91fe8d --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_shellstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_shellstone_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_shellstone_slab_from_polished_shellstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_slab_from_polished_shellstone_stonecutting.json new file mode 100644 index 00000000..766aabb5 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_slab_from_polished_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_shellstone" + }, + "result": { + "id": "antarchy:polished_shellstone_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs.json b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs.json new file mode 100644 index 00000000..8baf0e8c --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_shellstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:polished_shellstone_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs_from_polished_shellstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs_from_polished_shellstone_stonecutting.json new file mode 100644 index 00000000..d2b7d1d0 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_stairs_from_polished_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_shellstone" + }, + "result": { + "id": "antarchy:polished_shellstone_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_shellstone_wall.json b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_wall.json new file mode 100644 index 00000000..b9e77a08 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_shellstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_shellstone_wall" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_shellstone_wall_from_polished_shellstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_wall_from_polished_shellstone_stonecutting.json new file mode 100644 index 00000000..6ca39ad3 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_shellstone_wall_from_polished_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_shellstone" + }, + "result": { + "id": "antarchy:polished_shellstone_wall" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/primordial_boots.json b/common/src/main/resources/data/antarchy/recipe/primordial_boots.json new file mode 100644 index 00000000..df018913 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/primordial_boots.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "S S", + "S S" + ], + "key": { + "S": { + "item": "antarchy:primordial_scute" + } + }, + "result": { + "id": "antarchy:primordial_boots", + "count": 1 + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/primordial_chestplate.json b/common/src/main/resources/data/antarchy/recipe/primordial_chestplate.json new file mode 100644 index 00000000..70224df6 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/primordial_chestplate.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "S S", + "SSS", + "SSS" + ], + "key": { + "S": { + "item": "antarchy:primordial_scute" + } + }, + "result": { + "id": "antarchy:primordial_chestplate", + "count": 1 + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/primordial_helmet.json b/common/src/main/resources/data/antarchy/recipe/primordial_helmet.json new file mode 100644 index 00000000..50c0087f --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/primordial_helmet.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "S S" + ], + "key": { + "S": { + "item": "antarchy:primordial_scute" + } + }, + "result": { + "id": "antarchy:primordial_helmet", + "count": 1 + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/primordial_leggings.json b/common/src/main/resources/data/antarchy/recipe/primordial_leggings.json new file mode 100644 index 00000000..aa6fa050 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/primordial_leggings.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "SSS", + "S S", + "S S" + ], + "key": { + "S": { + "item": "antarchy:primordial_scute" + } + }, + "result": { + "id": "antarchy:primordial_leggings", + "count": 1 + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone.json b/common/src/main/resources/data/antarchy/recipe/shellstone.json new file mode 100644 index 00000000..2d6dc380 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "S": { + "item": "minecraft:stone" + }, + "P": { + "item": "antarchy:primordial_scute" + } + }, + "pattern": [ + "SSS", + "SPS", + "SSS" + ], + "result": { + "count": 8, + "id": "antarchy:shellstone" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_brick_slab.json b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_slab.json new file mode 100644 index 00000000..96a68d4f --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:shellstone_brick_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_brick_slab_from_shellstone_bricks_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_slab_from_shellstone_bricks_stonecutting.json new file mode 100644 index 00000000..7ac88bab --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_slab_from_shellstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone_bricks" + }, + "result": { + "id": "antarchy:shellstone_brick_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs.json b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs.json new file mode 100644 index 00000000..a16aae7c --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:shellstone_brick_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs_from_shellstone_bricks_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs_from_shellstone_bricks_stonecutting.json new file mode 100644 index 00000000..71245885 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_stairs_from_shellstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone_bricks" + }, + "result": { + "id": "antarchy:shellstone_brick_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_brick_wall.json b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_wall.json new file mode 100644 index 00000000..d5389cc6 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:shellstone_brick_wall" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_brick_wall_from_shellstone_bricks_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_wall_from_shellstone_bricks_stonecutting.json new file mode 100644 index 00000000..fb6bade5 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_brick_wall_from_shellstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone_bricks" + }, + "result": { + "id": "antarchy:shellstone_brick_wall" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_bricks.json b/common/src/main/resources/data/antarchy/recipe/shellstone_bricks.json new file mode 100644 index 00000000..456f20a6 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_shellstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:shellstone_bricks" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_bricks_from_polished_shellstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/shellstone_bricks_from_polished_shellstone_stonecutting.json new file mode 100644 index 00000000..2658a28c --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_bricks_from_polished_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_shellstone" + }, + "result": { + "id": "antarchy:shellstone_bricks" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_slab.json b/common/src/main/resources/data/antarchy/recipe/shellstone_slab.json new file mode 100644 index 00000000..3950b782 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:shellstone_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_slab_from_shellstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/shellstone_slab_from_shellstone_stonecutting.json new file mode 100644 index 00000000..3f437c99 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_slab_from_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone" + }, + "result": { + "id": "antarchy:shellstone_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_stairs.json b/common/src/main/resources/data/antarchy/recipe/shellstone_stairs.json new file mode 100644 index 00000000..431bab68 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:shellstone_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_stairs_from_shellstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/shellstone_stairs_from_shellstone_stonecutting.json new file mode 100644 index 00000000..d77ae87f --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_stairs_from_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone" + }, + "result": { + "id": "antarchy:shellstone_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_wall.json b/common/src/main/resources/data/antarchy/recipe/shellstone_wall.json new file mode 100644 index 00000000..ace5ddef --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:shellstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:shellstone_wall" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/shellstone_wall_from_shellstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/shellstone_wall_from_shellstone_stonecutting.json new file mode 100644 index 00000000..9ea99f5f --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/shellstone_wall_from_shellstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:shellstone" + }, + "result": { + "id": "antarchy:shellstone_wall" + } +} diff --git a/common/src/main/resources/data/c/tags/item/boots.json b/common/src/main/resources/data/c/tags/item/boots.json index 91b3a273..98d77f94 100644 --- a/common/src/main/resources/data/c/tags/item/boots.json +++ b/common/src/main/resources/data/c/tags/item/boots.json @@ -3,6 +3,7 @@ "values": [ "antarchy:ultimate_boots", "antarchy:nightmare_boots", - "antarchy:blood_crystal_boots" + "antarchy:blood_crystal_boots", + "antarchy:primordial_boots" ] } diff --git a/common/src/main/resources/data/c/tags/item/chestplates.json b/common/src/main/resources/data/c/tags/item/chestplates.json index 033455d2..bff31c6e 100644 --- a/common/src/main/resources/data/c/tags/item/chestplates.json +++ b/common/src/main/resources/data/c/tags/item/chestplates.json @@ -3,6 +3,7 @@ "values": [ "antarchy:ultimate_chestplate", "antarchy:nightmare_chestplate", - "antarchy:blood_crystal_chestplate" + "antarchy:blood_crystal_chestplate", + "antarchy:primordial_chestplate" ] } diff --git a/common/src/main/resources/data/c/tags/item/helmets.json b/common/src/main/resources/data/c/tags/item/helmets.json index bb4cc79a..fad05ccc 100644 --- a/common/src/main/resources/data/c/tags/item/helmets.json +++ b/common/src/main/resources/data/c/tags/item/helmets.json @@ -5,6 +5,7 @@ "antarchy:nightmare_helmet", "antarchy:moggles", "antarchy:blood_crystal_helmet", - "antarchy:fallen_king_crown" + "antarchy:fallen_king_crown", + "antarchy:primordial_helmet" ] } diff --git a/common/src/main/resources/data/c/tags/item/leggings.json b/common/src/main/resources/data/c/tags/item/leggings.json index bfa8e776..04f5edee 100644 --- a/common/src/main/resources/data/c/tags/item/leggings.json +++ b/common/src/main/resources/data/c/tags/item/leggings.json @@ -3,6 +3,7 @@ "values": [ "antarchy:ultimate_leggings", "antarchy:nightmare_leggings", - "antarchy:blood_crystal_leggings" + "antarchy:blood_crystal_leggings", + "antarchy:primordial_leggings" ] } diff --git a/common/src/main/resources/data/minecraft/tags/item/chest_armor.json b/common/src/main/resources/data/minecraft/tags/item/chest_armor.json index 033455d2..bff31c6e 100644 --- a/common/src/main/resources/data/minecraft/tags/item/chest_armor.json +++ b/common/src/main/resources/data/minecraft/tags/item/chest_armor.json @@ -3,6 +3,7 @@ "values": [ "antarchy:ultimate_chestplate", "antarchy:nightmare_chestplate", - "antarchy:blood_crystal_chestplate" + "antarchy:blood_crystal_chestplate", + "antarchy:primordial_chestplate" ] } diff --git a/common/src/main/resources/data/minecraft/tags/item/enchantable/durability.json b/common/src/main/resources/data/minecraft/tags/item/enchantable/durability.json index 01876be3..8080cfa6 100644 --- a/common/src/main/resources/data/minecraft/tags/item/enchantable/durability.json +++ b/common/src/main/resources/data/minecraft/tags/item/enchantable/durability.json @@ -27,6 +27,7 @@ "antarchy:blood_crystal_chestplate", "antarchy:blood_crystal_leggings", "antarchy:blood_crystal_boots", - "antarchy:fallen_king_crown" + "antarchy:fallen_king_crown", + "antarchy:water_cannon" ] } diff --git a/common/src/main/resources/data/minecraft/tags/item/foot_armor.json b/common/src/main/resources/data/minecraft/tags/item/foot_armor.json index 91b3a273..98d77f94 100644 --- a/common/src/main/resources/data/minecraft/tags/item/foot_armor.json +++ b/common/src/main/resources/data/minecraft/tags/item/foot_armor.json @@ -3,6 +3,7 @@ "values": [ "antarchy:ultimate_boots", "antarchy:nightmare_boots", - "antarchy:blood_crystal_boots" + "antarchy:blood_crystal_boots", + "antarchy:primordial_boots" ] } diff --git a/common/src/main/resources/data/minecraft/tags/item/head_armor.json b/common/src/main/resources/data/minecraft/tags/item/head_armor.json index bb4cc79a..fad05ccc 100644 --- a/common/src/main/resources/data/minecraft/tags/item/head_armor.json +++ b/common/src/main/resources/data/minecraft/tags/item/head_armor.json @@ -5,6 +5,7 @@ "antarchy:nightmare_helmet", "antarchy:moggles", "antarchy:blood_crystal_helmet", - "antarchy:fallen_king_crown" + "antarchy:fallen_king_crown", + "antarchy:primordial_helmet" ] } diff --git a/common/src/main/resources/data/minecraft/tags/item/leg_armor.json b/common/src/main/resources/data/minecraft/tags/item/leg_armor.json index bfa8e776..04f5edee 100644 --- a/common/src/main/resources/data/minecraft/tags/item/leg_armor.json +++ b/common/src/main/resources/data/minecraft/tags/item/leg_armor.json @@ -3,6 +3,7 @@ "values": [ "antarchy:ultimate_leggings", "antarchy:nightmare_leggings", - "antarchy:blood_crystal_leggings" + "antarchy:blood_crystal_leggings", + "antarchy:primordial_leggings" ] } 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 53395782..682ad470 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java @@ -1568,16 +1568,16 @@ public final class AntarchyFabricContent { () -> 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)))); + new Item.Properties().stacksTo(1).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)))); + new Item.Properties().stacksTo(1).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)))); + new Item.Properties().stacksTo(1).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)))); + new Item.Properties().stacksTo(1).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) diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java index 3c980b00..5e8aa0f1 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java @@ -13,7 +13,10 @@ import com.craisinlord.antarchy.content.gravity.AntarchyGravityTransition; import net.fabricmc.fabric.api.entity.event.v1.ServerLivingEntityEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; import net.minecraft.server.level.ServerPlayer; +import com.craisinlord.antarchy.content.SquidzookaDispenseBehavior; +import com.craisinlord.antarchy.content.WaterCannonDispenseBehavior; import net.minecraft.world.level.block.ComposterBlock; +import net.minecraft.world.level.block.DispenserBlock; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.tags.FluidTags; @@ -35,6 +38,9 @@ public final class AntarchyFabricEvents { } public static void register() { + DispenserBlock.registerBehavior(AntarchyFabricContent.SQUIDZOOKA.get(), new SquidzookaDispenseBehavior()); + DispenserBlock.registerBehavior(AntarchyFabricContent.WATER_CANNON.get(), new WaterCannonDispenseBehavior()); + ComposterBlock.COMPOSTABLES.put(AntarchyFabricContent.UMBRAL_MOSS_BLOCK.get().asItem(), 0.65f); ComposterBlock.COMPOSTABLES.put(AntarchyFabricContent.UMBRAL_MOSS_CARPET.get().asItem(), 0.3f); ComposterBlock.COMPOSTABLES.put(AntarchyFabricContent.HUSHWEED.get().asItem(), 0.65f); diff --git a/fabric/src/main/resources/assets/antarchy/models/item/water_cannon.json b/fabric/src/main/resources/assets/antarchy/models/item/water_cannon.json new file mode 100644 index 00000000..199aa968 --- /dev/null +++ b/fabric/src/main/resources/assets/antarchy/models/item/water_cannon.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:item/water_cannon_held_geo" +} 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 d5fafb82..5f292cf0 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java @@ -381,7 +381,7 @@ public final class AntarchyMobsConfig { .comment("Maximum local raw light level where basilisk natural spawning is allowed.") .defineInRange("spawnMaxLightLevel", 5, 0, 15); BASILISK_HEALTH = b.comment("Base max health.").defineInRange("health", 150.0D, 1.0D, 32768.0D); - BASILISK_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 18.0D, 0.0D, 1024.0D); + BASILISK_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 36.0D, 0.0D, 1024.0D); BASILISK_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.35D, 0.0D, 10.0D); BASILISK_ARMOR = b.comment("Base armor value.").defineInRange("armor", 6.0D, 0.0D, 1024.0D); BASILISK_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.5D, 0.0D, 1.0D); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java index e0f0fc62..3df66a73 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java @@ -1084,6 +1084,8 @@ public final class AntarchyNeoForgeEvents { event.enqueueWork(() -> { DispenserBlock.registerBehavior(AntarchyNeoforgeItems.SHRINK_RAY.get(), new com.craisinlord.antarchy.content.SizeRayDispenseBehavior()); DispenserBlock.registerBehavior(AntarchyNeoforgeItems.GROWTH_RAY.get(), new com.craisinlord.antarchy.content.SizeRayDispenseBehavior()); + DispenserBlock.registerBehavior(AntarchyNeoforgeItems.SQUIDZOOKA.get(), new com.craisinlord.antarchy.content.SquidzookaDispenseBehavior()); + DispenserBlock.registerBehavior(AntarchyNeoforgeItems.WATER_CANNON.get(), new com.craisinlord.antarchy.content.WaterCannonDispenseBehavior()); LucidEyeProjectileEntity.defaultItemSupplier = () -> AntarchyNeoforgeItems.LUCID_PEARL.get(); LucidEntity.invertedEffectSupplier = () -> AntarchyNeoforgeMisc.INVERTED; FluidInteractionRegistry.addInteraction( 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 d7dad96e..83df6320 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 @@ -520,13 +520,13 @@ public final class AntarchyNeoforgeItems { 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())); + () -> new PrimordialArmorItem(PRIMORDIAL_ARMOR_MATERIAL, ArmorItem.Type.HELMET, new Item.Properties().stacksTo(1).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())); + () -> new PrimordialArmorItem(PRIMORDIAL_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, new Item.Properties().stacksTo(1).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())); + () -> new PrimordialArmorItem(PRIMORDIAL_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Properties().stacksTo(1).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())); + () -> new PrimordialArmorItem(PRIMORDIAL_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().stacksTo(1).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))); diff --git a/neoforge/src/main/resources/assets/antarchy/models/item/water_cannon.json b/neoforge/src/main/resources/assets/antarchy/models/item/water_cannon.json new file mode 100644 index 00000000..b260121f --- /dev/null +++ b/neoforge/src/main/resources/assets/antarchy/models/item/water_cannon.json @@ -0,0 +1,18 @@ +{ + "loader": "neoforge:separate_transforms", + "gui_light": "front", + "base": { + "parent": "antarchy:item/water_cannon_held_geo" + }, + "perspectives": { + "gui": { + "parent": "antarchy:item/water_cannon_gui" + }, + "ground": { + "parent": "antarchy:item/water_cannon_gui" + }, + "fixed": { + "parent": "antarchy:item/water_cannon_gui" + } + } +}